wp-typia 0.19.0 → 0.20.0

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.
Files changed (42) hide show
  1. package/README.md +4 -2
  2. package/dist-bunli/.bunli/commands.gen.js +1843 -1216
  3. package/dist-bunli/.bunli/commands.gen.js.map +36 -33
  4. package/dist-bunli/cli-03j0axbt.js +163 -0
  5. package/dist-bunli/cli-03j0axbt.js.map +11 -0
  6. package/dist-bunli/{cli-7svz19s1.js → cli-2ybmc22r.js} +370 -86
  7. package/dist-bunli/{cli-7svz19s1.js.map → cli-2ybmc22r.js.map} +15 -14
  8. package/dist-bunli/cli-7yg38ht2.js +427 -0
  9. package/dist-bunli/cli-7yg38ht2.js.map +12 -0
  10. package/dist-bunli/{cli-yw0mq0wq.js → cli-93wd227r.js} +108 -3
  11. package/dist-bunli/cli-93wd227r.js.map +10 -0
  12. package/dist-bunli/{cli-kan7a6db.js → cli-a6dwqnhq.js} +24 -2
  13. package/dist-bunli/cli-a6dwqnhq.js.map +11 -0
  14. package/dist-bunli/{cli-add-j2c81sh1.js → cli-add-pq6wm87p.js} +16 -9
  15. package/dist-bunli/{cli-add-j2c81sh1.js.map → cli-add-pq6wm87p.js.map} +3 -3
  16. package/dist-bunli/{cli-diagnostics-c65hhyhx.js → cli-diagnostics-e5gxeprp.js} +8 -4
  17. package/dist-bunli/{cli-diagnostics-c65hhyhx.js.map → cli-diagnostics-e5gxeprp.js.map} +1 -1
  18. package/dist-bunli/{cli-doctor-hft0wr0e.js → cli-doctor-qk6fwpds.js} +14 -13
  19. package/dist-bunli/{cli-doctor-hft0wr0e.js.map → cli-doctor-qk6fwpds.js.map} +3 -3
  20. package/dist-bunli/{cli-572d6g4m.js → cli-hv2yedw2.js} +2 -157
  21. package/dist-bunli/{cli-572d6g4m.js.map → cli-hv2yedw2.js.map} +4 -6
  22. package/dist-bunli/{cli-scaffold-vcg6wem5.js → cli-scaffold-s3nhwe7x.js} +9 -7
  23. package/dist-bunli/cli-scaffold-s3nhwe7x.js.map +10 -0
  24. package/dist-bunli/cli-t73q5aqz.js +103 -0
  25. package/dist-bunli/cli-t73q5aqz.js.map +10 -0
  26. package/dist-bunli/{cli-templates-4qxszbmc.js → cli-templates-j65r4k9v.js} +1 -1
  27. package/dist-bunli/{cli-wtrvnce5.js → cli-w4r0rr8a.js} +8 -8
  28. package/dist-bunli/cli-w4r0rr8a.js.map +10 -0
  29. package/dist-bunli/cli.js +127 -2863
  30. package/dist-bunli/cli.js.map +5 -56
  31. package/dist-bunli/command-list-37n1za5q.js +2485 -0
  32. package/dist-bunli/command-list-37n1za5q.js.map +58 -0
  33. package/dist-bunli/node-cli.js +432 -323
  34. package/dist-bunli/node-cli.js.map +11 -10
  35. package/dist-bunli/{sync-x91y9jtv.js → sync-k2k8svyc.js} +3 -2
  36. package/dist-bunli/{sync-x91y9jtv.js.map → sync-k2k8svyc.js.map} +1 -1
  37. package/package.json +6 -3
  38. package/dist-bunli/cli-kan7a6db.js.map +0 -11
  39. package/dist-bunli/cli-scaffold-vcg6wem5.js.map +0 -10
  40. package/dist-bunli/cli-wtrvnce5.js.map +0 -10
  41. package/dist-bunli/cli-yw0mq0wq.js.map +0 -10
  42. /package/dist-bunli/{cli-templates-4qxszbmc.js.map → cli-templates-j65r4k9v.js.map} +0 -0
@@ -1,18 +1,19 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/node-cli.ts", "../src/command-option-metadata.ts", "../src/config.ts", "../src/config-override.ts", "../src/runtime-bridge-add-dry-run.ts", "../src/runtime-bridge-output.ts", "../src/runtime-bridge-sync.ts", "../src/runtime-bridge.ts", "../src/command-contract.ts"],
3
+ "sources": ["../src/node-cli.ts", "../src/command-option-metadata.ts", "../src/config.ts", "../src/config-override.ts", "../src/runtime-bridge-add-dry-run.ts", "../src/runtime-bridge-output.ts", "../src/runtime-capabilities.ts", "../src/runtime-bridge-sync.ts", "../src/runtime-bridge.ts", "../src/command-contract.ts"],
4
4
  "sourcesContent": [
5
- "import packageJson from \"../package.json\";\nimport {\n\tcreateCliCommandError,\n\tformatCliDiagnosticError,\n} from \"@wp-typia/project-tools/cli-diagnostics\";\nimport {\n\tADD_OPTION_METADATA,\n\tcollectOptionNamesByType,\n\tCREATE_OPTION_METADATA,\n\tformatNodeFallbackOptionHelp,\n\tGLOBAL_OPTION_METADATA,\n\tMIGRATE_OPTION_METADATA,\n\tTEMPLATES_OPTION_METADATA,\n} from \"./command-option-metadata\";\nimport {\n\tgetTemplateById,\n\tlistTemplates,\n} from \"@wp-typia/project-tools/cli-templates\";\nimport {\n\tgetAddBlockDefaults,\n\tgetCreateDefaults,\n\tloadWpTypiaUserConfig,\n\tloadWpTypiaUserConfigFromSource,\n\tmergeWpTypiaUserConfig,\n} from \"./config\";\nimport { extractWpTypiaConfigOverride } from \"./config-override\";\nimport {\n\texecuteAddCommand,\n\texecuteCreateCommand,\n\texecuteDoctorCommand,\n\texecuteMigrateCommand,\n\texecuteSyncCommand,\n\texecuteTemplatesCommand,\n} from \"./runtime-bridge\";\nimport {\n\tWP_TYPIA_CANONICAL_CREATE_USAGE,\n\tWP_TYPIA_CANONICAL_MIGRATE_USAGE,\n\tWP_TYPIA_FUTURE_COMMAND_TREE,\n\tWP_TYPIA_POSITIONAL_ALIAS_USAGE,\n\tWP_TYPIA_TOP_LEVEL_COMMAND_NAMES,\n\tnormalizeWpTypiaArgv,\n} from \"./command-contract\";\n\ntype GlobalFlags = {\n\tformat?: string;\n\tid?: string;\n};\n\ntype ParsedArgv = {\n\tflags: Record<string, unknown>;\n\tpositionals: string[];\n};\n\nconst STRING_FLAG_NAMES = new Set([\n\t...collectOptionNamesByType(GLOBAL_OPTION_METADATA, \"string\"),\n\t...collectOptionNamesByType(CREATE_OPTION_METADATA, \"string\"),\n\t...collectOptionNamesByType(ADD_OPTION_METADATA, \"string\"),\n\t...collectOptionNamesByType(MIGRATE_OPTION_METADATA, \"string\"),\n\t...collectOptionNamesByType(TEMPLATES_OPTION_METADATA, \"string\"),\n]);\n\nconst BOOLEAN_FLAG_NAMES = new Set([\n\t...collectOptionNamesByType(CREATE_OPTION_METADATA, \"boolean\"),\n\t...collectOptionNamesByType(ADD_OPTION_METADATA, \"boolean\"),\n\t...collectOptionNamesByType(MIGRATE_OPTION_METADATA, \"boolean\"),\n\t\"check\",\n\t\"help\",\n\t\"version\",\n]);\n\nconst SHORT_FLAG_MAP = new Map<\n\tstring,\n\t{\n\t\tname: string;\n\t\ttype: \"boolean\" | \"string\";\n\t}\n>(\n\tObject.entries({\n\t\t...GLOBAL_OPTION_METADATA,\n\t\t...CREATE_OPTION_METADATA,\n\t\t...ADD_OPTION_METADATA,\n\t\t...MIGRATE_OPTION_METADATA,\n\t\t...TEMPLATES_OPTION_METADATA,\n\t}).flatMap(([name, option]) =>\n\t\t\"short\" in option && typeof option.short === \"string\"\n\t\t\t? [[option.short, { name, type: option.type }] as const]\n\t\t\t: [],\n\t),\n);\n\nconst NODE_FALLBACK_RUNTIME_SUMMARY_LINES = [\n\t\"Runtime: Node fallback\",\n\t\"Human-readable fallback for common non-interactive create/add/migrate flows, doctor, sync, templates, --help, and --version when Bun is unavailable.\",\n\t\"Install Bun 1.3.11+ or use `bunx wp-typia ...` for the full Bunli/OpenTUI runtime and Bun-only command surfaces such as `skills`, `completions`, and `mcp`.\",\n];\n\nfunction printLine(line = \"\") {\n\tconsole.log(line);\n}\n\nfunction printBlock(lines: string[]) {\n\tfor (const line of lines) {\n\t\tprintLine(line);\n\t}\n}\n\nexport function hasFlagBeforeTerminator(argv: string[], flag: string): boolean {\n\tfor (const arg of argv) {\n\t\tif (arg === \"--\") {\n\t\t\treturn false;\n\t\t}\n\t\tif (arg === flag) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\nexport function parseGlobalFlags(argv: string[]): {\n\targv: string[];\n\tflags: GlobalFlags;\n} {\n\tconst nextArgv: string[] = [];\n\tconst flags: GlobalFlags = {};\n\n\tfor (let index = 0; index < argv.length; index += 1) {\n\t\tconst arg = argv[index];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (arg === \"--\") {\n\t\t\tnextArgv.push(...argv.slice(index));\n\t\t\tbreak;\n\t\t}\n\n\t\tif (arg === \"--format\" || arg === \"--id\") {\n\t\t\tconst next = argv[index + 1];\n\t\t\tif (!next || next.startsWith(\"-\")) {\n\t\t\t\tthrow new Error(`\\`${arg}\\` requires a value.`);\n\t\t\t}\n\t\t\tif (arg === \"--format\") {\n\t\t\t\tflags.format = next;\n\t\t\t} else {\n\t\t\t\tflags.id = next;\n\t\t\t}\n\t\t\tindex += 1;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (arg.startsWith(\"--format=\")) {\n\t\t\tflags.format = arg.slice(\"--format=\".length);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (arg.startsWith(\"--id=\")) {\n\t\t\tflags.id = arg.slice(\"--id=\".length);\n\t\t\tcontinue;\n\t\t}\n\n\t\tnextArgv.push(arg);\n\t}\n\n\treturn {\n\t\targv: nextArgv,\n\t\tflags,\n\t};\n}\n\nasync function applyNodeFallbackConfigDefaults(\n\tcommand: string | undefined,\n\tsubcommand: string | undefined,\n\tflags: Record<string, unknown>,\n\tconfigOverridePath: string | undefined,\n\tcwd: string,\n): Promise<Record<string, unknown>> {\n\tlet config = await loadWpTypiaUserConfig(cwd);\n\tif (configOverridePath) {\n\t\tconst overrideConfig = await loadWpTypiaUserConfigFromSource(cwd, configOverridePath);\n\t\tconfig = mergeWpTypiaUserConfig(config, overrideConfig);\n\t}\n\n\tif (command === \"create\") {\n\t\treturn {\n\t\t\t...getCreateDefaults(config),\n\t\t\t...flags,\n\t\t};\n\t}\n\n\tif (command === \"add\" && subcommand === \"block\") {\n\t\treturn {\n\t\t\t...getAddBlockDefaults(config),\n\t\t\t...flags,\n\t\t};\n\t}\n\n\treturn flags;\n}\n\nfunction parseArgv(argv: string[]): ParsedArgv {\n\tconst flags: Record<string, unknown> = {};\n\tconst positionals: string[] = [];\n\n\tfor (let index = 0; index < argv.length; index += 1) {\n\t\tconst arg = argv[index];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (arg === \"--\") {\n\t\t\tpositionals.push(...argv.slice(index + 1));\n\t\t\tbreak;\n\t\t}\n\n\t\tif (arg.length === 2 && arg.startsWith(\"-\")) {\n\t\t\tconst shortFlag = SHORT_FLAG_MAP.get(arg.slice(1));\n\t\t\tif (!shortFlag) {\n\t\t\t\tthrow new Error(`Unknown option \\`${arg}\\`.`);\n\t\t\t}\n\t\t\tif (shortFlag.type === \"boolean\") {\n\t\t\t\tflags[shortFlag.name] = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst next = argv[index + 1];\n\t\t\tif (!next || next.startsWith(\"-\")) {\n\t\t\t\tthrow new Error(`\\`${arg}\\` requires a value.`);\n\t\t\t}\n\t\t\tflags[shortFlag.name] = next;\n\t\t\tindex += 1;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (arg.startsWith(\"--\")) {\n\t\t\tconst option = arg.slice(2);\n\t\t\tconst separatorIndex = option.indexOf(\"=\");\n\t\t\tconst rawName =\n\t\t\t\tseparatorIndex === -1 ? option : option.slice(0, separatorIndex);\n\t\t\tconst inlineValue =\n\t\t\t\tseparatorIndex === -1 ? undefined : option.slice(separatorIndex + 1);\n\t\t\tif (BOOLEAN_FLAG_NAMES.has(rawName)) {\n\t\t\t\tflags[rawName] = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!STRING_FLAG_NAMES.has(rawName)) {\n\t\t\t\tthrow new Error(`Unknown option \\`--${rawName}\\`.`);\n\t\t\t}\n\t\t\tif (inlineValue !== undefined) {\n\t\t\t\tif (!inlineValue) {\n\t\t\t\t\tthrow new Error(`\\`--${rawName}\\` requires a value.`);\n\t\t\t\t}\n\t\t\t\tflags[rawName] = inlineValue;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst next = argv[index + 1];\n\t\t\tif (!next || next.startsWith(\"-\")) {\n\t\t\t\tthrow new Error(`\\`--${rawName}\\` requires a value.`);\n\t\t\t}\n\t\t\tflags[rawName] = next;\n\t\t\tindex += 1;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (arg.startsWith(\"-\")) {\n\t\t\tthrow new Error(`Unknown option \\`${arg}\\`.`);\n\t\t}\n\n\t\tpositionals.push(arg);\n\t}\n\n\treturn {\n\t\tflags,\n\t\tpositionals,\n\t};\n}\n\nfunction renderGeneralHelp() {\n\tprintBlock([\n\t\t`wp-typia ${packageJson.version}`,\n\t\t\"\",\n\t\t\"Canonical CLI package for wp-typia scaffolding and project workflows.\",\n\t\t\"\",\n\t\t...NODE_FALLBACK_RUNTIME_SUMMARY_LINES,\n\t\t\"\",\n\t\t\"Commands:\",\n\t\t...WP_TYPIA_FUTURE_COMMAND_TREE.map(\n\t\t\t(command) => `- ${command.name}: ${command.description}`,\n\t\t),\n\t\t\"\",\n\t\t\"Canonical usage:\",\n\t\t`- ${WP_TYPIA_CANONICAL_CREATE_USAGE}`,\n\t\t`- ${WP_TYPIA_CANONICAL_MIGRATE_USAGE}`,\n\t\t`- ${WP_TYPIA_POSITIONAL_ALIAS_USAGE}`,\n\t]);\n}\n\nfunction renderTemplatesHelp() {\n\tprintBlock([\n\t\t\"wp-typia templates <list|inspect>\",\n\t\t\"\",\n\t\t...NODE_FALLBACK_RUNTIME_SUMMARY_LINES,\n\t\t\"\",\n\t\t\"Supported flags:\",\n\t\t...formatNodeFallbackOptionHelp(TEMPLATES_OPTION_METADATA),\n\t]);\n}\n\nfunction renderCreateHelp() {\n\tprintBlock([\n\t\t`Usage: ${WP_TYPIA_CANONICAL_CREATE_USAGE}`,\n\t\t\"\",\n\t\t...NODE_FALLBACK_RUNTIME_SUMMARY_LINES,\n\t\t\"\",\n\t\t\"Supported flags:\",\n\t\t...formatNodeFallbackOptionHelp(CREATE_OPTION_METADATA),\n\t]);\n}\n\nfunction renderAddHelp() {\n\tprintBlock([\n\t\t\"Usage: wp-typia add <kind> <name>\",\n\t\t\"\",\n\t\t...NODE_FALLBACK_RUNTIME_SUMMARY_LINES,\n\t\t\"\",\n\t\t\"Supported flags:\",\n\t\t...formatNodeFallbackOptionHelp(ADD_OPTION_METADATA),\n\t]);\n}\n\nfunction renderMigrateHelp() {\n\tprintBlock([\n\t\t`Usage: ${WP_TYPIA_CANONICAL_MIGRATE_USAGE}`,\n\t\t\"\",\n\t\t...NODE_FALLBACK_RUNTIME_SUMMARY_LINES,\n\t\t\"\",\n\t\t\"Supported flags:\",\n\t\t...formatNodeFallbackOptionHelp(MIGRATE_OPTION_METADATA),\n\t]);\n}\n\nfunction renderVersion(options: {\n\tformat?: string;\n} = {}) {\n\tif (options.format === \"json\") {\n\t\tprintLine(\n\t\t\tJSON.stringify(\n\t\t\t\t{\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\ttype: \"version\",\n\t\t\t\t\t\tname: packageJson.name,\n\t\t\t\t\t\tversion: packageJson.version,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tnull,\n\t\t\t\t2,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\n\tprintLine(`wp-typia ${packageJson.version}`);\n}\n\nfunction renderTemplatesJson(flags: GlobalFlags, subcommand: string) {\n\tif (subcommand === \"list\") {\n\t\tprintLine(\n\t\t\tJSON.stringify(\n\t\t\t\t{\n\t\t\t\t\ttemplates: listTemplates(),\n\t\t\t\t},\n\t\t\t\tnull,\n\t\t\t\t2,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\n\tconst templateId = flags.id;\n\tif (!templateId) {\n\t\tthrow new Error(\"`wp-typia templates inspect` requires <template-id>.\");\n\t}\n\tconst template = getTemplateById(templateId);\n\tif (!template) {\n\t\tthrow new Error(`Unknown template \"${templateId}\".`);\n\t}\n\tprintLine(\n\t\tJSON.stringify(\n\t\t\t{\n\t\t\t\ttemplate,\n\t\t\t},\n\t\t\tnull,\n\t\t\t2,\n\t\t),\n\t);\n}\n\nfunction renderUnsupportedCommand(command: string) {\n\tthrow new Error(\n\t\t[\n\t\t\t`The Bun-free fallback runtime does not support \\`${command}\\` yet.`,\n\t\t\t\"Supported without Bun: `--version`, `--help`, non-interactive `create`/`add`/`migrate`, `doctor`, `sync`, `templates list`, and `templates inspect`.\",\n\t\t\t\"Install Bun 1.3.11+ or use `bunx wp-typia ...` for the full Bunli-powered runtime.\",\n\t\t].join(\" \"),\n\t);\n}\n\nasync function renderDoctorJson(): Promise<void> {\n\tconst [{ getDoctorChecks }, { createCliCommandError, getDoctorFailureDetailLines }] =\n\t\tawait Promise.all([\n\t\t\timport(\"@wp-typia/project-tools/cli-doctor\"),\n\t\t\timport(\"@wp-typia/project-tools/cli-diagnostics\"),\n\t\t]);\n\tconst checks = await getDoctorChecks(process.cwd());\n\tprintLine(\n\t\tJSON.stringify(\n\t\t\t{\n\t\t\t\tchecks,\n\t\t\t},\n\t\t\tnull,\n\t\t\t2,\n\t\t),\n\t);\n\tif (checks.some((check) => check.status === \"fail\")) {\n\t\tthrow createCliCommandError({\n\t\t\tcommand: \"doctor\",\n\t\t\tdetailLines: getDoctorFailureDetailLines(checks),\n\t\t\tsummary: \"One or more doctor checks failed.\",\n\t\t});\n\t}\n}\n\nexport async function runNodeCli(argv = process.argv.slice(2)): Promise<void> {\n\tconst normalizedArgv = normalizeWpTypiaArgv(argv);\n\tconst {\n\t\targv: argvWithoutConfigOverride,\n\t\tconfigOverridePath,\n\t} = extractWpTypiaConfigOverride(normalizedArgv);\n\tconst { argv: cliArgv, flags } = parseGlobalFlags(argvWithoutConfigOverride);\n\tconst { flags: commandFlags, positionals } = parseArgv(cliArgv);\n\tconst rawMergedFlags: Record<string, unknown> = {\n\t\t...commandFlags,\n\t\t...flags,\n\t};\n\tconst [command, subcommand] = positionals;\n\tconst helpRequested =\n\t\tcliArgv.length === 0 || hasFlagBeforeTerminator(cliArgv, \"--help\") || command === \"help\";\n\tconst versionRequested =\n\t\thasFlagBeforeTerminator(cliArgv, \"--version\") || command === \"version\";\n\n\tif (helpRequested) {\n\t\tif (command === \"templates\") {\n\t\t\trenderTemplatesHelp();\n\t\t\treturn;\n\t\t}\n\t\tif (command === \"create\") {\n\t\t\trenderCreateHelp();\n\t\t\treturn;\n\t\t}\n\t\tif (command === \"add\") {\n\t\t\trenderAddHelp();\n\t\t\treturn;\n\t\t}\n\t\tif (command === \"migrate\") {\n\t\t\trenderMigrateHelp();\n\t\t\treturn;\n\t\t}\n\t\trenderGeneralHelp();\n\t\treturn;\n\t}\n\n\tif (versionRequested) {\n\t\trenderVersion({\n\t\t\tformat: typeof rawMergedFlags.format === \"string\" ? rawMergedFlags.format : undefined,\n\t\t});\n\t\treturn;\n\t}\n\n\tconst mergedFlags = await applyNodeFallbackConfigDefaults(\n\t\tcommand,\n\t\tsubcommand,\n\t\trawMergedFlags,\n\t\tconfigOverridePath,\n\t\tprocess.cwd(),\n\t);\n\n\tif (command === \"templates\") {\n\t\tconst templateId =\n\t\t\ttypeof mergedFlags.id === \"string\"\n\t\t\t\t? mergedFlags.id\n\t\t\t\t: (positionals[2] as string | undefined);\n\t\tconst resolvedSubcommand = templateId ? \"inspect\" : subcommand ?? \"list\";\n\t\tif (resolvedSubcommand !== \"list\" && resolvedSubcommand !== \"inspect\") {\n\t\t\tthrow new Error(\n\t\t\t\t`Unknown templates subcommand \"${resolvedSubcommand}\". Expected list or inspect.`,\n\t\t\t);\n\t\t}\n\t\tif (mergedFlags.format === \"json\") {\n\t\t\trenderTemplatesJson(\n\t\t\t\t{\n\t\t\t\t\tformat: mergedFlags.format as string | undefined,\n\t\t\t\t\tid: templateId,\n\t\t\t\t},\n\t\t\t\tresolvedSubcommand,\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tawait executeTemplatesCommand({\n\t\t\tflags: {\n\t\t\t\tid: templateId,\n\t\t\t\tsubcommand: resolvedSubcommand,\n\t\t\t},\n\t\t});\n\t\treturn;\n\t}\n\n\tif (command === \"create\") {\n\t\tconst projectDir = positionals[1];\n\t\tif (!projectDir) {\n\t\t\tthrow createCliCommandError({\n\t\t\t\tcommand: \"create\",\n\t\t\t\tdetailLines: [\"`wp-typia create` requires <project-dir>.\"],\n\t\t\t});\n\t\t}\n\t\tawait executeCreateCommand({\n\t\t\tcwd: process.cwd(),\n\t\t\tflags: mergedFlags,\n\t\t\tinteractive: false,\n\t\t\tprojectDir,\n\t\t});\n\t\treturn;\n\t}\n\n\tif (command === \"add\") {\n\t\tawait executeAddCommand({\n\t\t\tcwd: process.cwd(),\n\t\t\tflags: mergedFlags,\n\t\t\tinteractive: false,\n\t\t\tkind: positionals[1],\n\t\t\tname: positionals[2],\n\t\t});\n\t\treturn;\n\t}\n\n\tif (command === \"migrate\") {\n\t\tawait executeMigrateCommand({\n\t\t\tcommand: positionals[1],\n\t\t\tcwd: process.cwd(),\n\t\t\tflags: mergedFlags,\n\t\t});\n\t\treturn;\n\t}\n\n\tif (command === \"doctor\") {\n\t\tif (mergedFlags.format === \"json\") {\n\t\t\tawait renderDoctorJson();\n\t\t\treturn;\n\t\t}\n\t\tawait executeDoctorCommand(process.cwd());\n\t\treturn;\n\t}\n\n\tif (command === \"sync\") {\n\t\tawait executeSyncCommand({\n\t\t\tcheck: Boolean(mergedFlags.check),\n\t\t\tcwd: process.cwd(),\n\t\t});\n\t\treturn;\n\t}\n\n\trenderUnsupportedCommand(command ?? \"(missing)\");\n}\n\nexport async function runNodeCliEntrypoint(argv = process.argv.slice(2)): Promise<void> {\n\ttry {\n\t\tawait runNodeCli(argv);\n\t} catch (error) {\n\t\tconsole.error(`Error: ${await formatCliDiagnosticError(error)}`);\n\t\tprocess.exit(1);\n\t}\n}\n",
6
- "import { z } from \"zod\";\n\nexport type CommandOptionMetadata = {\n\targumentKind?: \"flag\";\n\tdescription: string;\n\tshort?: string;\n\ttype: \"boolean\" | \"string\";\n};\n\ntype CommandOptionMetadataMap = Record<string, CommandOptionMetadata>;\n\n/**\n * Shared `wp-typia create` option metadata used by both the Bunli command\n * definitions and the Node fallback parser/help surface.\n */\nexport const CREATE_OPTION_METADATA = {\n\t\"alternate-render-targets\": {\n\t\tdescription:\n\t\t\t\"Comma-separated alternate render targets for dynamic block scaffolds (email,mjml,plain-text).\",\n\t\ttype: \"string\",\n\t},\n\t\"data-storage\": {\n\t\tdescription: \"Persistence storage mode for persistence-capable templates.\",\n\t\ttype: \"string\",\n\t},\n\t\"dry-run\": {\n\t\targumentKind: \"flag\",\n\t\tdescription: \"Preview scaffold output without writing files to the target directory.\",\n\t\ttype: \"boolean\",\n\t},\n\t\"external-layer-id\": {\n\t\tdescription: \"Explicit layer id when an external layer package exposes multiple selectable layers.\",\n\t\ttype: \"string\",\n\t},\n\t\"external-layer-source\": {\n\t\tdescription: \"Local path, GitHub locator, or npm package that exposes wp-typia.layers.json for built-in templates.\",\n\t\ttype: \"string\",\n\t},\n\t\"inner-blocks-preset\": {\n\t\tdescription:\n\t\t\t\"Compound-only InnerBlocks preset (freeform, ordered, horizontal, locked-structure).\",\n\t\ttype: \"string\",\n\t},\n\tnamespace: {\n\t\tdescription: \"Override the default block namespace.\",\n\t\ttype: \"string\",\n\t},\n\t\"no-install\": {\n\t\targumentKind: \"flag\",\n\t\tdescription: \"Skip dependency installation after scaffold.\",\n\t\ttype: \"boolean\",\n\t},\n\t\"package-manager\": {\n\t\tdescription: \"Package manager to use for install and scripts.\",\n\t\tshort: \"p\",\n\t\ttype: \"string\",\n\t},\n\t\"persistence-policy\": {\n\t\tdescription: \"Authenticated or public write policy for persistence-capable templates.\",\n\t\ttype: \"string\",\n\t},\n\t\"php-prefix\": {\n\t\tdescription: \"Custom PHP symbol prefix.\",\n\t\ttype: \"string\",\n\t},\n\t\"query-post-type\": {\n\t\tdescription: \"Default post type assigned to Query Loop variation scaffolds.\",\n\t\ttype: \"string\",\n\t},\n\ttemplate: {\n\t\tdescription: \"Template id or external template package.\",\n\t\tshort: \"t\",\n\t\ttype: \"string\",\n\t},\n\t\"text-domain\": {\n\t\tdescription: \"Custom text domain for the generated project.\",\n\t\ttype: \"string\",\n\t},\n\tvariant: {\n\t\tdescription: \"Optional template variant identifier.\",\n\t\ttype: \"string\",\n\t},\n\t\"with-migration-ui\": {\n\t\targumentKind: \"flag\",\n\t\tdescription: \"Enable migration UI support when the template supports it.\",\n\t\ttype: \"boolean\",\n\t},\n\t\"with-test-preset\": {\n\t\targumentKind: \"flag\",\n\t\tdescription: \"Include the Playwright smoke-test preset.\",\n\t\ttype: \"boolean\",\n\t},\n\t\"with-wp-env\": {\n\t\targumentKind: \"flag\",\n\t\tdescription: \"Include a local wp-env preset.\",\n\t\ttype: \"boolean\",\n\t},\n\tyes: {\n\t\targumentKind: \"flag\",\n\t\tdescription: \"Accept defaults without prompt fallbacks.\",\n\t\tshort: \"y\",\n\t\ttype: \"boolean\",\n\t},\n} as const satisfies CommandOptionMetadataMap;\n\n/**\n * Shared `wp-typia add` option metadata used by both runtime entry paths.\n */\nexport const ADD_OPTION_METADATA = {\n\t\"alternate-render-targets\": {\n\t\tdescription:\n\t\t\t\"Comma-separated alternate render targets for dynamic block scaffolds (email,mjml,plain-text).\",\n\t\ttype: \"string\",\n\t},\n\tanchor: {\n\t\tdescription: \"Anchor block name for hooked-block workflows.\",\n\t\ttype: \"string\",\n\t},\n\tblock: {\n\t\tdescription: \"Target block slug for variation workflows.\",\n\t\ttype: \"string\",\n\t},\n\t\"data-storage\": {\n\t\tdescription: \"Persistence storage mode for persistence-capable templates.\",\n\t\ttype: \"string\",\n\t},\n\t\"dry-run\": {\n\t\targumentKind: \"flag\",\n\t\tdescription: \"Preview workspace file updates without writing them.\",\n\t\ttype: \"boolean\",\n\t},\n\t\"external-layer-id\": {\n\t\tdescription: \"Explicit layer id when an external layer package exposes multiple selectable layers.\",\n\t\ttype: \"string\",\n\t},\n\t\"external-layer-source\": {\n\t\tdescription: \"Local path, GitHub locator, or npm package that exposes wp-typia.layers.json for built-in block templates.\",\n\t\ttype: \"string\",\n\t},\n\t\"inner-blocks-preset\": {\n\t\tdescription:\n\t\t\t\"Compound-only InnerBlocks preset (freeform, ordered, horizontal, locked-structure).\",\n\t\ttype: \"string\",\n\t},\n\tmethods: {\n\t\tdescription: \"Comma-separated REST resource methods for rest-resource workflows.\",\n\t\ttype: \"string\",\n\t},\n\tnamespace: {\n\t\tdescription: \"REST namespace for rest-resource workflows.\",\n\t\ttype: \"string\",\n\t},\n\t\"persistence-policy\": {\n\t\tdescription: \"Persistence write policy for persistence-capable templates.\",\n\t\ttype: \"string\",\n\t},\n\tposition: {\n\t\tdescription: \"Hook position for hooked-block workflows.\",\n\t\ttype: \"string\",\n\t},\n\tslot: {\n\t\tdescription: \"Document editor shell slot for editor-plugin workflows.\",\n\t\ttype: \"string\",\n\t},\n\ttemplate: {\n\t\tdescription: \"Built-in block family for the new block.\",\n\t\ttype: \"string\",\n\t},\n} as const satisfies CommandOptionMetadataMap;\n\n/**\n * Shared `wp-typia migrate` option metadata used by both runtime entry paths.\n */\nexport const MIGRATE_OPTION_METADATA = {\n\tall: {\n\t\targumentKind: \"flag\",\n\t\tdescription: \"Run across every configured migration version and block target.\",\n\t\ttype: \"boolean\",\n\t},\n\t\"current-migration-version\": {\n\t\tdescription: \"Current migration version label for `migrate init`.\",\n\t\ttype: \"string\",\n\t},\n\tforce: {\n\t\targumentKind: \"flag\",\n\t\tdescription: \"Force overwrite behavior where supported.\",\n\t\ttype: \"boolean\",\n\t},\n\t\"from-migration-version\": {\n\t\tdescription: \"Source migration version label.\",\n\t\ttype: \"string\",\n\t},\n\titerations: {\n\t\tdescription: \"Iteration count for `migrate fuzz`.\",\n\t\ttype: \"string\",\n\t},\n\t\"migration-version\": {\n\t\tdescription: \"Version label to capture with `migrate snapshot`.\",\n\t\ttype: \"string\",\n\t},\n\tseed: {\n\t\tdescription: \"Deterministic fuzz seed.\",\n\t\ttype: \"string\",\n\t},\n\t\"to-migration-version\": {\n\t\tdescription: \"Target migration version label.\",\n\t\ttype: \"string\",\n\t},\n} as const satisfies CommandOptionMetadataMap;\n\n/**\n * Shared `wp-typia templates` option metadata.\n */\nexport const TEMPLATES_OPTION_METADATA = {\n\tid: {\n\t\tdescription: \"Template id for `templates inspect`.\",\n\t\ttype: \"string\",\n\t},\n} as const satisfies CommandOptionMetadataMap;\n\n/**\n * Global option metadata used by Node fallback parsing before command dispatch.\n */\nexport const GLOBAL_OPTION_METADATA = {\n\tconfig: {\n\t\tdescription: \"Config override file path.\",\n\t\tshort: \"c\",\n\t\ttype: \"string\",\n\t},\n\tformat: {\n\t\tdescription: \"Output format for supported commands.\",\n\t\ttype: \"string\",\n\t},\n\tid: {\n\t\tdescription: \"Template id for top-level `templates inspect` convenience.\",\n\t\ttype: \"string\",\n\t},\n\t\"output-dir\": {\n\t\tdescription: \"Output directory for generated MCP metadata.\",\n\t\ttype: \"string\",\n\t},\n} as const satisfies CommandOptionMetadataMap;\n\nexport function buildCommandOptions<TOptions extends CommandOptionMetadataMap>(\n\tmetadata: TOptions,\n): Record<string, {\n\targumentKind?: \"flag\";\n\tdescription: string;\n\tschema: z.ZodDefault<z.ZodBoolean> | z.ZodOptional<z.ZodString>;\n\tshort?: string;\n}> {\n\treturn Object.fromEntries(\n\t\tObject.entries(metadata).map(([name, option]) => [\n\t\t\tname,\n\t\t\t{\n\t\t\t\t...(option.argumentKind ? { argumentKind: option.argumentKind } : {}),\n\t\t\t\tdescription: option.description,\n\t\t\t\tschema:\n\t\t\t\t\toption.type === \"boolean\"\n\t\t\t\t\t\t? z.boolean().default(false)\n\t\t\t\t\t\t: z.string().optional(),\n\t\t\t\t...(option.short ? { short: option.short } : {}),\n\t\t\t},\n\t\t]),\n\t);\n}\n\nexport function collectOptionNamesByType(\n\tmetadata: CommandOptionMetadataMap,\n\ttype: CommandOptionMetadata[\"type\"],\n): string[] {\n\treturn Object.entries(metadata)\n\t\t.filter(([, option]) => option.type === type)\n\t\t.map(([name]) => name);\n}\n\nexport function formatNodeFallbackOptionHelp(\n\tmetadata: CommandOptionMetadataMap,\n): string[] {\n\treturn Object.entries(metadata).map(([name, option]) => {\n\t\tconst short = option.short ? `, -${option.short}` : \"\";\n\t\treturn `- --${name}${short}: ${option.description}`;\n\t});\n}\n",
5
+ "import packageJson from \"../package.json\";\nimport {\n\tCLI_DIAGNOSTIC_CODES,\n\tcreateCliCommandError,\n\tformatCliDiagnosticError,\n\tserializeCliDiagnosticError,\n} from \"@wp-typia/project-tools/cli-diagnostics\";\nimport {\n\tADD_OPTION_METADATA,\n\tbuildCommandOptionParser,\n\tCREATE_OPTION_METADATA,\n\tformatNodeFallbackOptionHelp,\n\tGLOBAL_OPTION_METADATA,\n\tMIGRATE_OPTION_METADATA,\n\tparseCommandArgvWithMetadata,\n\tresolveCommandOptionValues,\n\tTEMPLATES_OPTION_METADATA,\n} from \"./command-option-metadata\";\nimport {\n\tgetTemplateById,\n\tlistTemplates,\n} from \"@wp-typia/project-tools/cli-templates\";\nimport {\n\tgetAddBlockDefaults,\n\tgetCreateDefaults,\n\tloadWpTypiaUserConfig,\n\tloadWpTypiaUserConfigFromSource,\n\tmergeWpTypiaUserConfig,\n} from \"./config\";\nimport { extractWpTypiaConfigOverride } from \"./config-override\";\nimport {\n\texecuteAddCommand,\n\texecuteCreateCommand,\n\texecuteDoctorCommand,\n\texecuteMigrateCommand,\n\texecuteSyncCommand,\n\texecuteTemplatesCommand,\n} from \"./runtime-bridge\";\nimport {\n\tWP_TYPIA_CANONICAL_CREATE_USAGE,\n\tWP_TYPIA_CANONICAL_MIGRATE_USAGE,\n\tWP_TYPIA_FUTURE_COMMAND_TREE,\n\tWP_TYPIA_POSITIONAL_ALIAS_USAGE,\n\tWP_TYPIA_TOP_LEVEL_COMMAND_NAMES,\n\tnormalizeWpTypiaArgv,\n} from \"./command-contract\";\n\ntype GlobalFlags = {\n\tformat?: string;\n\tid?: string;\n};\n\nconst NODE_FALLBACK_OPTION_PARSER = buildCommandOptionParser(\n\tGLOBAL_OPTION_METADATA,\n\tCREATE_OPTION_METADATA,\n\tADD_OPTION_METADATA,\n\tMIGRATE_OPTION_METADATA,\n\tTEMPLATES_OPTION_METADATA,\n);\nconst NODE_FALLBACK_BOOLEAN_OPTION_NAMES = [\"check\", \"help\", \"version\"] as const;\n\nconst NODE_FALLBACK_RUNTIME_SUMMARY_LINES = [\n\t\"Runtime: Node fallback\",\n\t\"Human-readable fallback for common non-interactive create/add/migrate flows, doctor, sync, templates, --help, and --version when Bun is unavailable.\",\n\t\"Install Bun 1.3.11+ or use `bunx wp-typia ...` for the full Bunli/OpenTUI runtime and Bun-only command surfaces such as `skills`, `completions`, and `mcp`.\",\n];\n\nfunction printLine(line = \"\") {\n\tconsole.log(line);\n}\n\nfunction printBlock(lines: string[]) {\n\tfor (const line of lines) {\n\t\tprintLine(line);\n\t}\n}\n\nexport function hasFlagBeforeTerminator(argv: string[], flag: string): boolean {\n\tfor (const arg of argv) {\n\t\tif (arg === \"--\") {\n\t\t\treturn false;\n\t\t}\n\t\tif (arg === flag) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\nexport function parseGlobalFlags(argv: string[]): {\n\targv: string[];\n\tflags: GlobalFlags;\n} {\n\tconst nextArgv: string[] = [];\n\tconst flags: GlobalFlags = {};\n\n\tfor (let index = 0; index < argv.length; index += 1) {\n\t\tconst arg = argv[index];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (arg === \"--\") {\n\t\t\tnextArgv.push(...argv.slice(index));\n\t\t\tbreak;\n\t\t}\n\n\t\tif (arg === \"--format\" || arg === \"--id\") {\n\t\t\tconst next = argv[index + 1];\n\t\t\tif (!next || next.startsWith(\"-\")) {\n\t\t\t\tthrow new Error(`\\`${arg}\\` requires a value.`);\n\t\t\t}\n\t\t\tif (arg === \"--format\") {\n\t\t\t\tflags.format = next;\n\t\t\t} else {\n\t\t\t\tflags.id = next;\n\t\t\t}\n\t\t\tindex += 1;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (arg.startsWith(\"--format=\")) {\n\t\t\tflags.format = arg.slice(\"--format=\".length);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (arg.startsWith(\"--id=\")) {\n\t\t\tflags.id = arg.slice(\"--id=\".length);\n\t\t\tcontinue;\n\t\t}\n\n\t\tnextArgv.push(arg);\n\t}\n\n\treturn {\n\t\targv: nextArgv,\n\t\tflags,\n\t};\n}\n\nasync function applyNodeFallbackConfigDefaults(\n\tcommand: string | undefined,\n\tsubcommand: string | undefined,\n\tflags: Record<string, unknown>,\n\tconfigOverridePath: string | undefined,\n\tcwd: string,\n): Promise<Record<string, unknown>> {\n\tlet config = await loadWpTypiaUserConfig(cwd);\n\tif (configOverridePath) {\n\t\tconst overrideConfig = await loadWpTypiaUserConfigFromSource(cwd, configOverridePath);\n\t\tconfig = mergeWpTypiaUserConfig(config, overrideConfig);\n\t}\n\n\tif (command === \"create\") {\n\t\treturn resolveCommandOptionValues(CREATE_OPTION_METADATA, {\n\t\t\tdefaults: getCreateDefaults(config),\n\t\t\tflags,\n\t\t});\n\t}\n\n\tif (command === \"add\" && subcommand === \"block\") {\n\t\treturn resolveCommandOptionValues(ADD_OPTION_METADATA, {\n\t\t\tdefaults: getAddBlockDefaults(config),\n\t\t\tflags,\n\t\t});\n\t}\n\n\treturn flags;\n}\n\nfunction parseArgv(argv: string[]) {\n\treturn parseCommandArgvWithMetadata(argv, {\n\t\textraBooleanOptionNames: NODE_FALLBACK_BOOLEAN_OPTION_NAMES,\n\t\tparser: NODE_FALLBACK_OPTION_PARSER,\n\t});\n}\n\nfunction renderGeneralHelp() {\n\tprintBlock([\n\t\t`wp-typia ${packageJson.version}`,\n\t\t\"\",\n\t\t\"Canonical CLI package for wp-typia scaffolding and project workflows.\",\n\t\t\"\",\n\t\t...NODE_FALLBACK_RUNTIME_SUMMARY_LINES,\n\t\t\"\",\n\t\t\"Commands:\",\n\t\t...WP_TYPIA_FUTURE_COMMAND_TREE.map(\n\t\t\t(command) => `- ${command.name}: ${command.description}`,\n\t\t),\n\t\t\"\",\n\t\t\"Canonical usage:\",\n\t\t`- ${WP_TYPIA_CANONICAL_CREATE_USAGE}`,\n\t\t`- ${WP_TYPIA_CANONICAL_MIGRATE_USAGE}`,\n\t\t`- ${WP_TYPIA_POSITIONAL_ALIAS_USAGE}`,\n\t]);\n}\n\nfunction renderTemplatesHelp() {\n\tprintBlock([\n\t\t\"wp-typia templates <list|inspect>\",\n\t\t\"\",\n\t\t...NODE_FALLBACK_RUNTIME_SUMMARY_LINES,\n\t\t\"\",\n\t\t\"Supported flags:\",\n\t\t...formatNodeFallbackOptionHelp(TEMPLATES_OPTION_METADATA),\n\t]);\n}\n\nfunction renderCreateHelp() {\n\tprintBlock([\n\t\t`Usage: ${WP_TYPIA_CANONICAL_CREATE_USAGE}`,\n\t\t\"\",\n\t\t...NODE_FALLBACK_RUNTIME_SUMMARY_LINES,\n\t\t\"\",\n\t\t\"Supported flags:\",\n\t\t...formatNodeFallbackOptionHelp(CREATE_OPTION_METADATA),\n\t]);\n}\n\nfunction renderAddHelp() {\n\tprintBlock([\n\t\t\"Usage: wp-typia add <kind> <name>\",\n\t\t\"\",\n\t\t...NODE_FALLBACK_RUNTIME_SUMMARY_LINES,\n\t\t\"\",\n\t\t\"Supported flags:\",\n\t\t...formatNodeFallbackOptionHelp(ADD_OPTION_METADATA),\n\t]);\n}\n\nfunction renderMigrateHelp() {\n\tprintBlock([\n\t\t`Usage: ${WP_TYPIA_CANONICAL_MIGRATE_USAGE}`,\n\t\t\"\",\n\t\t...NODE_FALLBACK_RUNTIME_SUMMARY_LINES,\n\t\t\"\",\n\t\t\"Supported flags:\",\n\t\t...formatNodeFallbackOptionHelp(MIGRATE_OPTION_METADATA),\n\t]);\n}\n\nfunction renderVersion(options: {\n\tformat?: string;\n} = {}) {\n\tif (options.format === \"json\") {\n\t\tprintLine(\n\t\t\tJSON.stringify(\n\t\t\t\t{\n\t\t\t\t\tok: true,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\ttype: \"version\",\n\t\t\t\t\t\tname: packageJson.name,\n\t\t\t\t\t\tversion: packageJson.version,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tnull,\n\t\t\t\t2,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\n\tprintLine(`wp-typia ${packageJson.version}`);\n}\n\nfunction renderTemplatesJson(flags: GlobalFlags, subcommand: string) {\n\tif (subcommand === \"list\") {\n\t\tprintLine(\n\t\t\tJSON.stringify(\n\t\t\t\t{\n\t\t\t\t\ttemplates: listTemplates(),\n\t\t\t\t},\n\t\t\t\tnull,\n\t\t\t\t2,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\n\tconst templateId = flags.id;\n\tif (!templateId) {\n\t\tthrow createCliCommandError({\n\t\t\tcode: CLI_DIAGNOSTIC_CODES.MISSING_ARGUMENT,\n\t\t\tcommand: \"templates\",\n\t\t\tdetailLines: [\"`wp-typia templates inspect` requires <template-id>.\"],\n\t\t});\n\t}\n\tconst template = getTemplateById(templateId);\n\tif (!template) {\n\t\tthrow createCliCommandError({\n\t\t\tcode: CLI_DIAGNOSTIC_CODES.INVALID_ARGUMENT,\n\t\t\tcommand: \"templates\",\n\t\t\tdetailLines: [`Unknown template \"${templateId}\".`],\n\t\t});\n\t}\n\tprintLine(\n\t\tJSON.stringify(\n\t\t\t{\n\t\t\t\ttemplate,\n\t\t\t},\n\t\t\tnull,\n\t\t\t2,\n\t\t),\n\t);\n}\n\nfunction renderUnsupportedCommand(command: string) {\n\tthrow createCliCommandError({\n\t\tcode: CLI_DIAGNOSTIC_CODES.UNSUPPORTED_COMMAND,\n\t\tcommand: command,\n\t\tdetailLines: [\n\t\t\t[\n\t\t\t\t`The Bun-free fallback runtime does not support \\`${command}\\` yet.`,\n\t\t\t\t\"Supported without Bun: `--version`, `--help`, non-interactive `create`/`add`/`migrate`, `doctor`, `sync`, `templates list`, and `templates inspect`.\",\n\t\t\t\t\"Install Bun 1.3.11+ or use `bunx wp-typia ...` for the full Bunli-powered runtime.\",\n\t\t\t].join(\" \"),\n\t\t],\n\t\tsummary: \"This command requires the Bun-powered runtime.\",\n\t});\n}\n\nasync function renderDoctorJson(): Promise<void> {\n\tconst [{ getDoctorChecks }, { createCliCommandError, getDoctorFailureDetailLines }] =\n\t\tawait Promise.all([\n\t\t\timport(\"@wp-typia/project-tools/cli-doctor\"),\n\t\t\timport(\"@wp-typia/project-tools/cli-diagnostics\"),\n\t\t]);\n\tconst checks = await getDoctorChecks(process.cwd());\n\tprintLine(\n\t\tJSON.stringify(\n\t\t\t{\n\t\t\t\tchecks,\n\t\t\t},\n\t\t\tnull,\n\t\t\t2,\n\t\t),\n\t);\n\tif (checks.some((check) => check.status === \"fail\")) {\n\t\tthrow createCliCommandError({\n\t\t\tcommand: \"doctor\",\n\t\t\tdetailLines: getDoctorFailureDetailLines(checks),\n\t\t\tsummary: \"One or more doctor checks failed.\",\n\t\t});\n\t}\n}\n\nexport async function runNodeCli(argv = process.argv.slice(2)): Promise<void> {\n\tconst normalizedArgv = normalizeWpTypiaArgv(argv);\n\tconst {\n\t\targv: argvWithoutConfigOverride,\n\t\tconfigOverridePath,\n\t} = extractWpTypiaConfigOverride(normalizedArgv);\n\tconst { argv: cliArgv, flags } = parseGlobalFlags(argvWithoutConfigOverride);\n\tconst { flags: commandFlags, positionals } = parseArgv(cliArgv);\n\tconst rawMergedFlags: Record<string, unknown> = {\n\t\t...commandFlags,\n\t\t...flags,\n\t};\n\tconst [command, subcommand] = positionals;\n\tconst helpRequested =\n\t\tcliArgv.length === 0 || hasFlagBeforeTerminator(cliArgv, \"--help\") || command === \"help\";\n\tconst versionRequested =\n\t\thasFlagBeforeTerminator(cliArgv, \"--version\") || command === \"version\";\n\n\tif (helpRequested) {\n\t\tif (command === \"templates\") {\n\t\t\trenderTemplatesHelp();\n\t\t\treturn;\n\t\t}\n\t\tif (command === \"create\") {\n\t\t\trenderCreateHelp();\n\t\t\treturn;\n\t\t}\n\t\tif (command === \"add\") {\n\t\t\trenderAddHelp();\n\t\t\treturn;\n\t\t}\n\t\tif (command === \"migrate\") {\n\t\t\trenderMigrateHelp();\n\t\t\treturn;\n\t\t}\n\t\trenderGeneralHelp();\n\t\treturn;\n\t}\n\n\tif (versionRequested) {\n\t\trenderVersion({\n\t\t\tformat: typeof rawMergedFlags.format === \"string\" ? rawMergedFlags.format : undefined,\n\t\t});\n\t\treturn;\n\t}\n\n\tconst mergedFlags = await applyNodeFallbackConfigDefaults(\n\t\tcommand,\n\t\tsubcommand,\n\t\trawMergedFlags,\n\t\tconfigOverridePath,\n\t\tprocess.cwd(),\n\t);\n\n\tif (command === \"templates\") {\n\t\tconst templateId =\n\t\t\ttypeof mergedFlags.id === \"string\"\n\t\t\t\t? mergedFlags.id\n\t\t\t\t: (positionals[2] as string | undefined);\n\t\tconst resolvedSubcommand = templateId ? \"inspect\" : subcommand ?? \"list\";\n\t\tif (resolvedSubcommand !== \"list\" && resolvedSubcommand !== \"inspect\") {\n\t\t\tthrow new Error(\n\t\t\t\t`Unknown templates subcommand \"${resolvedSubcommand}\". Expected list or inspect.`,\n\t\t\t);\n\t\t}\n\t\tif (mergedFlags.format === \"json\") {\n\t\t\trenderTemplatesJson(\n\t\t\t\t{\n\t\t\t\t\tformat: mergedFlags.format as string | undefined,\n\t\t\t\t\tid: templateId,\n\t\t\t\t},\n\t\t\t\tresolvedSubcommand,\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tawait executeTemplatesCommand({\n\t\t\tflags: {\n\t\t\t\tid: templateId,\n\t\t\t\tsubcommand: resolvedSubcommand,\n\t\t\t},\n\t\t});\n\t\treturn;\n\t}\n\n\tif (command === \"create\") {\n\t\tconst projectDir = positionals[1];\n\t\tif (!projectDir) {\n\t\t\tthrow createCliCommandError({\n\t\t\t\tcommand: \"create\",\n\t\t\t\tdetailLines: [\n\t\t\t\t\t\"`wp-typia create` requires <project-dir>.\",\n\t\t\t\t\t\"`--dry-run` still needs a logical project directory name because wp-typia derives slugs, package names, and planned file paths from it.\",\n\t\t\t\t],\n\t\t\t});\n\t\t}\n\t\tawait executeCreateCommand({\n\t\t\tcwd: process.cwd(),\n\t\t\tflags: mergedFlags,\n\t\t\tinteractive: false,\n\t\t\tprojectDir,\n\t\t});\n\t\treturn;\n\t}\n\n\tif (command === \"add\") {\n\t\tif (!positionals[1]) {\n\t\t\tconst { formatAddHelpText } = await import(\"@wp-typia/project-tools/cli-add\");\n\t\t\tprintLine(formatAddHelpText());\n\t\t\tthrow createCliCommandError({\n\t\t\t\tcommand: \"add\",\n\t\t\t\tdetailLines: [\n\t\t\t\t\t\"`wp-typia add` requires <kind>. Usage: wp-typia add <block|variation|pattern|binding-source|rest-resource|editor-plugin|hooked-block> ...\",\n\t\t\t\t],\n\t\t\t});\n\t\t}\n\t\tawait executeAddCommand({\n\t\t\tcwd: process.cwd(),\n\t\t\tflags: mergedFlags,\n\t\t\tinteractive: false,\n\t\t\tkind: positionals[1],\n\t\t\tname: positionals[2],\n\t\t});\n\t\treturn;\n\t}\n\n\tif (command === \"migrate\") {\n\t\tawait executeMigrateCommand({\n\t\t\tcommand: positionals[1],\n\t\t\tcwd: process.cwd(),\n\t\t\tflags: mergedFlags,\n\t\t});\n\t\treturn;\n\t}\n\n\tif (command === \"doctor\") {\n\t\tif (mergedFlags.format === \"json\") {\n\t\t\tawait renderDoctorJson();\n\t\t\treturn;\n\t\t}\n\t\tawait executeDoctorCommand(process.cwd());\n\t\treturn;\n\t}\n\n\tif (command === \"sync\") {\n\t\ttry {\n\t\t\tawait executeSyncCommand({\n\t\t\t\tcheck: Boolean(mergedFlags.check),\n\t\t\t\tcwd: process.cwd(),\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tthrow createCliCommandError({\n\t\t\t\tcommand: \"sync\",\n\t\t\t\terror,\n\t\t\t});\n\t\t}\n\t\treturn;\n\t}\n\n\trenderUnsupportedCommand(command ?? \"(missing)\");\n}\n\nexport async function runNodeCliEntrypoint(argv = process.argv.slice(2)): Promise<void> {\n\ttry {\n\t\tawait runNodeCli(argv);\n\t} catch (error) {\n\t\tlet prefersStructuredErrorOutput = false;\n\t\ttry {\n\t\t\tconst normalizedArgv = normalizeWpTypiaArgv(argv);\n\t\t\tconst { argv: argvWithoutConfigOverride } =\n\t\t\t\textractWpTypiaConfigOverride(normalizedArgv);\n\t\t\tconst { flags } = parseGlobalFlags(argvWithoutConfigOverride);\n\t\t\tprefersStructuredErrorOutput = flags.format === \"json\";\n\t\t} catch {}\n\n\t\tif (prefersStructuredErrorOutput) {\n\t\t\tconsole.error(\n\t\t\t\tJSON.stringify(\n\t\t\t\t\t{\n\t\t\t\t\t\tok: false,\n\t\t\t\t\t\terror: serializeCliDiagnosticError(error),\n\t\t\t\t\t},\n\t\t\t\t\tnull,\n\t\t\t\t\t2,\n\t\t\t\t),\n\t\t\t);\n\t\t\tprocess.exitCode = 1;\n\t\t\treturn;\n\t\t}\n\t\tconsole.error(`Error: ${await formatCliDiagnosticError(error)}`);\n\t\tprocess.exitCode = 1;\n\t}\n}\n",
6
+ "import { z } from \"zod\";\n\nexport type CommandOptionMetadata = {\n\targumentKind?: \"flag\";\n\tdescription: string;\n\tshort?: string;\n\ttype: \"boolean\" | \"string\";\n};\n\ntype CommandOptionMetadataMap = Record<string, CommandOptionMetadata>;\ntype ParsedCommandArgv = {\n\tflags: Record<string, unknown>;\n\tpositionals: string[];\n};\ntype ShortOptionDescriptor = {\n\tname: string;\n\ttype: CommandOptionMetadata[\"type\"];\n};\ntype CommandOptionParser = {\n\tbooleanOptionNames: Set<string>;\n\tshortFlagMap: Map<string, ShortOptionDescriptor>;\n\tstringOptionNames: Set<string>;\n};\n\n/**\n * Shared `wp-typia create` option metadata used by both the Bunli command\n * definitions and the Node fallback parser/help surface.\n */\nexport const CREATE_OPTION_METADATA = {\n\t\"alternate-render-targets\": {\n\t\tdescription:\n\t\t\t\"Comma-separated alternate render targets for dynamic block scaffolds (email,mjml,plain-text).\",\n\t\ttype: \"string\",\n\t},\n\t\"data-storage\": {\n\t\tdescription: \"Persistence storage mode for persistence-capable templates.\",\n\t\ttype: \"string\",\n\t},\n\t\"dry-run\": {\n\t\targumentKind: \"flag\",\n\t\tdescription:\n\t\t\t\"Preview scaffold output for a logical <project-dir> without writing files to the target directory.\",\n\t\ttype: \"boolean\",\n\t},\n\t\"external-layer-id\": {\n\t\tdescription: \"Explicit layer id when an external layer package exposes multiple selectable layers.\",\n\t\ttype: \"string\",\n\t},\n\t\"external-layer-source\": {\n\t\tdescription: \"Local path, GitHub locator, or npm package that exposes wp-typia.layers.json for built-in templates.\",\n\t\ttype: \"string\",\n\t},\n\t\"inner-blocks-preset\": {\n\t\tdescription:\n\t\t\t\"Compound-only InnerBlocks preset (freeform, ordered, horizontal, locked-structure).\",\n\t\ttype: \"string\",\n\t},\n\tnamespace: {\n\t\tdescription: \"Override the default block namespace.\",\n\t\ttype: \"string\",\n\t},\n\t\"no-install\": {\n\t\targumentKind: \"flag\",\n\t\tdescription: \"Skip dependency installation after scaffold.\",\n\t\ttype: \"boolean\",\n\t},\n\t\"package-manager\": {\n\t\tdescription: \"Package manager to use for install and scripts.\",\n\t\tshort: \"p\",\n\t\ttype: \"string\",\n\t},\n\t\"persistence-policy\": {\n\t\tdescription: \"Authenticated or public write policy for persistence-capable templates.\",\n\t\ttype: \"string\",\n\t},\n\t\"php-prefix\": {\n\t\tdescription: \"Custom PHP symbol prefix.\",\n\t\ttype: \"string\",\n\t},\n\t\"query-post-type\": {\n\t\tdescription: \"Default post type assigned to Query Loop variation scaffolds.\",\n\t\ttype: \"string\",\n\t},\n\ttemplate: {\n\t\tdescription: \"Template id or external template package.\",\n\t\tshort: \"t\",\n\t\ttype: \"string\",\n\t},\n\t\"text-domain\": {\n\t\tdescription: \"Custom text domain for the generated project.\",\n\t\ttype: \"string\",\n\t},\n\tvariant: {\n\t\tdescription: \"Optional template variant identifier.\",\n\t\ttype: \"string\",\n\t},\n\t\"with-migration-ui\": {\n\t\targumentKind: \"flag\",\n\t\tdescription: \"Enable migration UI support when the template supports it.\",\n\t\ttype: \"boolean\",\n\t},\n\t\"with-test-preset\": {\n\t\targumentKind: \"flag\",\n\t\tdescription: \"Include the Playwright smoke-test preset.\",\n\t\ttype: \"boolean\",\n\t},\n\t\"with-wp-env\": {\n\t\targumentKind: \"flag\",\n\t\tdescription: \"Include a local wp-env preset.\",\n\t\ttype: \"boolean\",\n\t},\n\tyes: {\n\t\targumentKind: \"flag\",\n\t\tdescription: \"Accept defaults without prompt fallbacks.\",\n\t\tshort: \"y\",\n\t\ttype: \"boolean\",\n\t},\n} as const satisfies CommandOptionMetadataMap;\n\n/**\n * Shared `wp-typia add` option metadata used by both runtime entry paths.\n */\nexport const ADD_OPTION_METADATA = {\n\t\"alternate-render-targets\": {\n\t\tdescription:\n\t\t\t\"Comma-separated alternate render targets for dynamic block scaffolds (email,mjml,plain-text).\",\n\t\ttype: \"string\",\n\t},\n\tanchor: {\n\t\tdescription: \"Anchor block name for hooked-block workflows.\",\n\t\ttype: \"string\",\n\t},\n\tblock: {\n\t\tdescription: \"Target block slug for variation workflows.\",\n\t\ttype: \"string\",\n\t},\n\t\"data-storage\": {\n\t\tdescription: \"Persistence storage mode for persistence-capable templates.\",\n\t\ttype: \"string\",\n\t},\n\t\"dry-run\": {\n\t\targumentKind: \"flag\",\n\t\tdescription:\n\t\t\t\"Preview workspace file updates and completion guidance without writing them.\",\n\t\ttype: \"boolean\",\n\t},\n\t\"external-layer-id\": {\n\t\tdescription: \"Explicit layer id when an external layer package exposes multiple selectable layers.\",\n\t\ttype: \"string\",\n\t},\n\t\"external-layer-source\": {\n\t\tdescription: \"Local path, GitHub locator, or npm package that exposes wp-typia.layers.json for built-in block templates.\",\n\t\ttype: \"string\",\n\t},\n\t\"inner-blocks-preset\": {\n\t\tdescription:\n\t\t\t\"Compound-only InnerBlocks preset (freeform, ordered, horizontal, locked-structure).\",\n\t\ttype: \"string\",\n\t},\n\tmethods: {\n\t\tdescription: \"Comma-separated REST resource methods for rest-resource workflows.\",\n\t\ttype: \"string\",\n\t},\n\tnamespace: {\n\t\tdescription: \"REST namespace for rest-resource workflows.\",\n\t\ttype: \"string\",\n\t},\n\t\"persistence-policy\": {\n\t\tdescription: \"Persistence write policy for persistence-capable templates.\",\n\t\ttype: \"string\",\n\t},\n\tposition: {\n\t\tdescription: \"Hook position for hooked-block workflows.\",\n\t\ttype: \"string\",\n\t},\n\tslot: {\n\t\tdescription: \"Document editor shell slot for editor-plugin workflows.\",\n\t\ttype: \"string\",\n\t},\n\ttemplate: {\n\t\tdescription: \"Built-in block family for the new block.\",\n\t\ttype: \"string\",\n\t},\n} as const satisfies CommandOptionMetadataMap;\n\n/**\n * Shared `wp-typia migrate` option metadata used by both runtime entry paths.\n */\nexport const MIGRATE_OPTION_METADATA = {\n\tall: {\n\t\targumentKind: \"flag\",\n\t\tdescription: \"Run across every configured migration version and block target.\",\n\t\ttype: \"boolean\",\n\t},\n\t\"current-migration-version\": {\n\t\tdescription: \"Current migration version label for `migrate init`.\",\n\t\ttype: \"string\",\n\t},\n\tforce: {\n\t\targumentKind: \"flag\",\n\t\tdescription: \"Force overwrite behavior where supported.\",\n\t\ttype: \"boolean\",\n\t},\n\t\"from-migration-version\": {\n\t\tdescription: \"Source migration version label.\",\n\t\ttype: \"string\",\n\t},\n\titerations: {\n\t\tdescription: \"Iteration count for `migrate fuzz`.\",\n\t\ttype: \"string\",\n\t},\n\t\"migration-version\": {\n\t\tdescription: \"Version label to capture with `migrate snapshot`.\",\n\t\ttype: \"string\",\n\t},\n\tseed: {\n\t\tdescription: \"Deterministic fuzz seed.\",\n\t\ttype: \"string\",\n\t},\n\t\"to-migration-version\": {\n\t\tdescription: \"Target migration version label.\",\n\t\ttype: \"string\",\n\t},\n} as const satisfies CommandOptionMetadataMap;\n\n/**\n * Shared `wp-typia templates` option metadata.\n */\nexport const TEMPLATES_OPTION_METADATA = {\n\tid: {\n\t\tdescription: \"Template id for `templates inspect`.\",\n\t\ttype: \"string\",\n\t},\n} as const satisfies CommandOptionMetadataMap;\n\n/**\n * Global option metadata used by Node fallback parsing before command dispatch.\n */\nexport const GLOBAL_OPTION_METADATA = {\n\tconfig: {\n\t\tdescription: \"Config override file path.\",\n\t\tshort: \"c\",\n\t\ttype: \"string\",\n\t},\n\tformat: {\n\t\tdescription: \"Output format for supported commands.\",\n\t\ttype: \"string\",\n\t},\n\tid: {\n\t\tdescription: \"Template id for top-level `templates inspect` convenience.\",\n\t\ttype: \"string\",\n\t},\n\t\"output-dir\": {\n\t\tdescription: \"Output directory for generated MCP metadata.\",\n\t\ttype: \"string\",\n\t},\n} as const satisfies CommandOptionMetadataMap;\n\nexport function buildCommandOptions<TOptions extends CommandOptionMetadataMap>(\n\tmetadata: TOptions,\n): Record<string, {\n\targumentKind?: \"flag\";\n\tdescription: string;\n\tschema: z.ZodDefault<z.ZodBoolean> | z.ZodOptional<z.ZodString>;\n\tshort?: string;\n}> {\n\treturn Object.fromEntries(\n\t\tObject.entries(metadata).map(([name, option]) => [\n\t\t\tname,\n\t\t\t{\n\t\t\t\t...(option.argumentKind ? { argumentKind: option.argumentKind } : {}),\n\t\t\t\tdescription: option.description,\n\t\t\t\tschema:\n\t\t\t\t\toption.type === \"boolean\"\n\t\t\t\t\t\t? z.boolean().default(false)\n\t\t\t\t\t\t: z.string().optional(),\n\t\t\t\t...(option.short ? { short: option.short } : {}),\n\t\t\t},\n\t\t]),\n\t);\n}\n\nexport function collectOptionNamesByType(\n\tmetadata: CommandOptionMetadataMap,\n\ttype: CommandOptionMetadata[\"type\"],\n): string[] {\n\treturn Object.entries(metadata)\n\t\t.filter(([, option]) => option.type === type)\n\t\t.map(([name]) => name);\n}\n\nexport function formatNodeFallbackOptionHelp(\n\tmetadata: CommandOptionMetadataMap,\n): string[] {\n\treturn Object.entries(metadata).map(([name, option]) => {\n\t\tconst short = option.short ? `, -${option.short}` : \"\";\n\t\treturn `- --${name}${short}: ${option.description}`;\n\t});\n}\n\nexport function buildCommandOptionParser(\n\t...metadataMaps: CommandOptionMetadataMap[]\n): CommandOptionParser {\n\tconst metadata: CommandOptionMetadataMap = Object.assign({}, ...metadataMaps);\n\n\treturn {\n\t\tbooleanOptionNames: new Set(collectOptionNamesByType(metadata, \"boolean\")),\n\t\tshortFlagMap: new Map<string, ShortOptionDescriptor>(\n\t\t\tObject.entries(metadata).flatMap(([name, option]) =>\n\t\t\t\toption.short\n\t\t\t\t\t? [[option.short, { name, type: option.type }] as const]\n\t\t\t\t\t: [],\n\t\t\t),\n\t\t),\n\t\tstringOptionNames: new Set(collectOptionNamesByType(metadata, \"string\")),\n\t};\n}\n\nexport function parseCommandArgvWithMetadata(\n\targv: string[],\n\toptions: {\n\t\textraBooleanOptionNames?: Iterable<string>;\n\t\tparser: CommandOptionParser;\n\t},\n): ParsedCommandArgv {\n\tconst flags: Record<string, unknown> = {};\n\tconst positionals: string[] = [];\n\tconst booleanOptionNames = new Set(options.parser.booleanOptionNames);\n\n\tfor (const optionName of options.extraBooleanOptionNames ?? []) {\n\t\tbooleanOptionNames.add(optionName);\n\t}\n\n\tfor (let index = 0; index < argv.length; index += 1) {\n\t\tconst arg = argv[index];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (arg === \"--\") {\n\t\t\tpositionals.push(...argv.slice(index + 1));\n\t\t\tbreak;\n\t\t}\n\n\t\tif (arg.length === 2 && arg.startsWith(\"-\")) {\n\t\t\tconst shortFlag = options.parser.shortFlagMap.get(arg.slice(1));\n\t\t\tif (!shortFlag) {\n\t\t\t\tthrow new Error(`Unknown option \\`${arg}\\`.`);\n\t\t\t}\n\t\t\tif (shortFlag.type === \"boolean\") {\n\t\t\t\tflags[shortFlag.name] = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst next = argv[index + 1];\n\t\t\tif (!next || next.startsWith(\"-\")) {\n\t\t\t\tthrow new Error(`\\`${arg}\\` requires a value.`);\n\t\t\t}\n\t\t\tflags[shortFlag.name] = next;\n\t\t\tindex += 1;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (arg.startsWith(\"--\")) {\n\t\t\tconst option = arg.slice(2);\n\t\t\tconst separatorIndex = option.indexOf(\"=\");\n\t\t\tconst rawName =\n\t\t\t\tseparatorIndex === -1 ? option : option.slice(0, separatorIndex);\n\t\t\tconst inlineValue =\n\t\t\t\tseparatorIndex === -1 ? undefined : option.slice(separatorIndex + 1);\n\t\t\tif (booleanOptionNames.has(rawName)) {\n\t\t\t\tflags[rawName] = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!options.parser.stringOptionNames.has(rawName)) {\n\t\t\t\tthrow new Error(`Unknown option \\`--${rawName}\\`.`);\n\t\t\t}\n\t\t\tif (inlineValue !== undefined) {\n\t\t\t\tif (!inlineValue) {\n\t\t\t\t\tthrow new Error(`\\`--${rawName}\\` requires a value.`);\n\t\t\t\t}\n\t\t\t\tflags[rawName] = inlineValue;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst next = argv[index + 1];\n\t\t\tif (!next || next.startsWith(\"-\")) {\n\t\t\t\tthrow new Error(`\\`--${rawName}\\` requires a value.`);\n\t\t\t}\n\t\t\tflags[rawName] = next;\n\t\t\tindex += 1;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (arg.startsWith(\"-\")) {\n\t\t\tthrow new Error(`Unknown option \\`${arg}\\`.`);\n\t\t}\n\n\t\tpositionals.push(arg);\n\t}\n\n\treturn {\n\t\tflags,\n\t\tpositionals,\n\t};\n}\n\nexport function resolveCommandOptionValues<\n\tTMetadata extends CommandOptionMetadataMap,\n>(\n\tmetadata: TMetadata,\n\toptions: {\n\t\tdefaults?: Record<string, unknown>;\n\t\tflags?: Record<string, unknown>;\n\t\toptionNames?: Iterable<keyof TMetadata | string>;\n\t},\n): Record<string, string | boolean | undefined> {\n\tconst resolved: Record<string, string | boolean | undefined> = {};\n\tconst optionNames =\n\t\toptions.optionNames ?? (Object.keys(metadata) as Array<keyof TMetadata>);\n\n\tfor (const optionName of optionNames) {\n\t\tconst name = String(optionName);\n\t\tconst descriptor = metadata[name];\n\t\tif (!descriptor) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst value = options.flags?.[name] ?? options.defaults?.[name];\n\t\tif (descriptor.type === \"boolean\") {\n\t\t\tresolved[name] = Boolean(value ?? false);\n\t\t\tcontinue;\n\t\t}\n\n\t\tresolved[name] = typeof value === \"string\" ? value : undefined;\n\t}\n\n\treturn resolved;\n}\n",
7
7
  "import fs from \"node:fs/promises\";\nimport os from \"node:os\";\nimport path from \"node:path\";\n\nimport { isPlainObject as isRecord } from \"@wp-typia/api-client/runtime-primitives\";\n\nexport type WpTypiaSchemaSource = {\n\tnamespace: string;\n\tpath: string;\n};\n\nexport type WpTypiaUserConfig = {\n\tcreate?: {\n\t\t\"alternate-render-targets\"?: string;\n\t\t\"inner-blocks-preset\"?: string;\n\t\t\"data-storage\"?: string;\n\t\t\"dry-run\"?: boolean;\n\t\t\"external-layer-id\"?: string;\n\t\t\"external-layer-source\"?: string;\n\t\tnamespace?: string;\n\t\t\"no-install\"?: boolean;\n\t\t\"package-manager\"?: string;\n\t\t\"persistence-policy\"?: string;\n\t\t\"php-prefix\"?: string;\n\t\t\"query-post-type\"?: string;\n\t\ttemplate?: string;\n\t\t\"text-domain\"?: string;\n\t\tvariant?: string;\n\t\t\"with-migration-ui\"?: boolean;\n\t\t\"with-test-preset\"?: boolean;\n\t\t\"with-wp-env\"?: boolean;\n\t\tyes?: boolean;\n\t};\n\tadd?: {\n\t\tblock?: {\n\t\t\t\"alternate-render-targets\"?: string;\n\t\t\t\"data-storage\"?: string;\n\t\t\t\"external-layer-id\"?: string;\n\t\t\t\"external-layer-source\"?: string;\n\t\t\t\"inner-blocks-preset\"?: string;\n\t\t\t\"persistence-policy\"?: string;\n\t\t\ttemplate?: string;\n\t\t};\n\t};\n\tmcp?: {\n\t\tschemaSources?: WpTypiaSchemaSource[];\n\t};\n};\n\nexport const WP_TYPIA_CONFIG_SOURCES = [\n\t\"~/.config/wp-typia/config.json\",\n\t\".wp-typiarc\",\n\t\".wp-typiarc.json\",\n] as const;\ntype JsonRecord = Record<string, unknown>;\n\nfunction deepMerge<T extends JsonRecord>(base: T, incoming: JsonRecord): T {\n\tconst merged: JsonRecord = { ...base };\n\n\tfor (const [key, value] of Object.entries(incoming)) {\n\t\tif (Array.isArray(value)) {\n\t\t\tmerged[key] = value.slice();\n\t\t\tcontinue;\n\t\t}\n\t\tif (isRecord(value) && isRecord(merged[key])) {\n\t\t\tmerged[key] = deepMerge(merged[key] as JsonRecord, value);\n\t\t\tcontinue;\n\t\t}\n\t\tmerged[key] = value;\n\t}\n\n\treturn merged as T;\n}\n\nasync function readJsonFile(filePath: string): Promise<JsonRecord | null> {\n\ttry {\n\t\tconst source = await fs.readFile(filePath, \"utf8\");\n\t\tconst parsed = JSON.parse(source);\n\t\treturn isRecord(parsed) ? parsed : null;\n\t} catch (error) {\n\t\tif (\n\t\t\ttypeof error === \"object\" &&\n\t\t\terror !== null &&\n\t\t\t\"code\" in error &&\n\t\t\terror.code === \"ENOENT\"\n\t\t) {\n\t\t\treturn null;\n\t\t}\n\t\tthrow error;\n\t}\n}\n\nfunction resolveConfigPath(cwd: string, source: string): string {\n\tif (source.startsWith(\"~/\")) {\n\t\treturn path.join(os.homedir(), source.slice(2));\n\t}\n\treturn path.resolve(cwd, source);\n}\n\nexport function mergeWpTypiaUserConfig(\n\tbase: WpTypiaUserConfig,\n\tincoming: WpTypiaUserConfig,\n): WpTypiaUserConfig {\n\treturn deepMerge(base as JsonRecord, incoming as JsonRecord) as WpTypiaUserConfig;\n}\n\nexport async function loadWpTypiaUserConfigFromSource(\n\tcwd: string,\n\tsource: string,\n): Promise<WpTypiaUserConfig> {\n\tconst config = await readJsonFile(resolveConfigPath(cwd, source));\n\treturn (config ?? {}) as WpTypiaUserConfig;\n}\n\nexport async function loadWpTypiaUserConfig(cwd: string): Promise<WpTypiaUserConfig> {\n\tlet merged: JsonRecord = {};\n\n\tfor (const source of WP_TYPIA_CONFIG_SOURCES) {\n\t\tconst configPath = resolveConfigPath(cwd, source);\n\t\tconst config = await readJsonFile(configPath);\n\t\tif (config) {\n\t\t\tmerged = deepMerge(merged, config);\n\t\t}\n\t}\n\n\tconst packageJson = await readJsonFile(path.join(cwd, \"package.json\"));\n\tif (packageJson && isRecord(packageJson[\"wp-typia\"])) {\n\t\tmerged = deepMerge(merged, packageJson[\"wp-typia\"] as JsonRecord);\n\t}\n\n\treturn merged as WpTypiaUserConfig;\n}\n\nexport function getCreateDefaults(config: WpTypiaUserConfig): NonNullable<WpTypiaUserConfig[\"create\"]> {\n\treturn config.create ?? {};\n}\n\nexport function getAddBlockDefaults(\n\tconfig: WpTypiaUserConfig,\n): NonNullable<NonNullable<WpTypiaUserConfig[\"add\"]>[\"block\"]> {\n\treturn config.add?.block ?? {};\n}\n\nexport function getMcpSchemaSources(config: WpTypiaUserConfig): WpTypiaSchemaSource[] {\n\treturn config.mcp?.schemaSources ?? [];\n}\n",
8
8
  "export function extractWpTypiaConfigOverride(argv: string[]): {\n\targv: string[];\n\tconfigOverridePath?: string;\n} {\n\tconst nextArgv: string[] = [];\n\tlet configOverridePath: string | undefined;\n\n\tfor (let index = 0; index < argv.length; index += 1) {\n\t\tconst arg = argv[index];\n\t\tif (!arg) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (arg === \"--\") {\n\t\t\tnextArgv.push(...argv.slice(index));\n\t\t\tbreak;\n\t\t}\n\n\t\tif (arg === \"--config\" || arg === \"-c\") {\n\t\t\tconst next = argv[index + 1];\n\t\t\tif (!next || next.startsWith(\"-\")) {\n\t\t\t\tthrow new Error(`\\`${arg}\\` requires a value.`);\n\t\t\t}\n\t\t\tconfigOverridePath = next;\n\t\t\tindex += 1;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (arg.startsWith(\"--config=\")) {\n\t\t\tconst inlineValue = arg.slice(\"--config=\".length);\n\t\t\tif (!inlineValue) {\n\t\t\t\tthrow new Error(\"`--config` requires a value.\");\n\t\t\t}\n\t\t\tconfigOverridePath = inlineValue;\n\t\t\tcontinue;\n\t\t}\n\n\t\tnextArgv.push(arg);\n\t}\n\n\treturn {\n\t\targv: nextArgv,\n\t\tconfigOverridePath,\n\t};\n}\n",
9
- "import fs from \"node:fs\";\nimport { promises as fsp } from \"node:fs\";\nimport os from \"node:os\";\nimport path from \"node:path\";\n\ntype WorkspaceFileOperation = `delete ${string}` | `update ${string}` | `write ${string}`;\n\nconst SKIPPED_COPY_ROOT_ENTRIES = new Set([\".git\", \"node_modules\"]);\nconst SKIPPED_COMPARE_ROOT_ENTRIES = new Set([\n\t\".git\",\n\t\".pnp.cjs\",\n\t\".pnp.loader.mjs\",\n\t\"node_modules\",\n]);\n\nasync function copyWorkspaceProject(sourceDir: string, targetDir: string): Promise<void> {\n\tawait fsp.cp(sourceDir, targetDir, {\n\t\tfilter: (sourcePath) => {\n\t\t\tconst relativePath = path.relative(sourceDir, sourcePath);\n\t\t\tif (relativePath === \"\") {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst [rootEntry] = relativePath.split(path.sep);\n\t\t\treturn !SKIPPED_COPY_ROOT_ENTRIES.has(rootEntry ?? \"\");\n\t\t},\n\t\trecursive: true,\n\t});\n}\n\nfunction ensureWorkspaceInstallMarkers(sourceDir: string, targetDir: string): void {\n\tconst sourceNodeModules = path.join(sourceDir, \"node_modules\");\n\tif (fs.existsSync(sourceNodeModules)) {\n\t\tfs.symlinkSync(sourceNodeModules, path.join(targetDir, \"node_modules\"), \"junction\");\n\t}\n\n\tfor (const marker of [\".pnp.cjs\", \".pnp.loader.mjs\"] as const) {\n\t\tconst sourceMarker = path.join(sourceDir, marker);\n\t\tif (!fs.existsSync(sourceMarker)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst targetMarker = path.join(targetDir, marker);\n\t\ttry {\n\t\t\tfs.symlinkSync(sourceMarker, targetMarker);\n\t\t} catch {\n\t\t\ttry {\n\t\t\t\tfs.linkSync(sourceMarker, targetMarker);\n\t\t\t} catch {\n\t\t\t\tfs.copyFileSync(sourceMarker, targetMarker);\n\t\t\t}\n\t\t}\n\t}\n}\n\nasync function listWorkspaceFiles(rootDir: string): Promise<Map<string, Buffer>> {\n\tconst files = new Map<string, Buffer>();\n\n\tasync function visit(currentDir: string): Promise<void> {\n\t\tconst entries = await fsp.readdir(currentDir, { withFileTypes: true });\n\t\tfor (const entry of entries) {\n\t\t\tconst absolutePath = path.join(currentDir, entry.name);\n\t\t\tconst relativePath = path.relative(rootDir, absolutePath);\n\t\t\tconst [rootEntry] = relativePath.split(path.sep);\n\t\t\tif (SKIPPED_COMPARE_ROOT_ENTRIES.has(rootEntry ?? \"\")) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (entry.isDirectory()) {\n\t\t\t\tawait visit(absolutePath);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (!entry.isFile()) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tfiles.set(\n\t\t\t\trelativePath.replace(path.sep === \"\\\\\" ? /\\\\/gu : /\\//gu, \"/\"),\n\t\t\t\tawait fsp.readFile(absolutePath),\n\t\t\t);\n\t\t}\n\t}\n\n\tawait visit(rootDir);\n\treturn files;\n}\n\nfunction compareStrings(left: string, right: string): number {\n\tif (left < right) {\n\t\treturn -1;\n\t}\n\tif (left > right) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n\nasync function collectWorkspaceFileOperations(\n\tsourceDir: string,\n\tsimulatedDir: string,\n): Promise<WorkspaceFileOperation[]> {\n\tconst [sourceFiles, simulatedFiles] = await Promise.all([\n\t\tlistWorkspaceFiles(sourceDir),\n\t\tlistWorkspaceFiles(simulatedDir),\n\t]);\n\tconst operations: WorkspaceFileOperation[] = [];\n\n\tfor (const [relativePath, simulatedSource] of simulatedFiles) {\n\t\tconst originalSource = sourceFiles.get(relativePath);\n\t\tif (originalSource === undefined) {\n\t\t\toperations.push(`write ${relativePath}`);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!originalSource.equals(simulatedSource)) {\n\t\t\toperations.push(`update ${relativePath}`);\n\t\t}\n\t}\n\n\tfor (const relativePath of sourceFiles.keys()) {\n\t\tif (!simulatedFiles.has(relativePath)) {\n\t\t\toperations.push(`delete ${relativePath}`);\n\t\t}\n\t}\n\n\treturn operations.sort(compareStrings);\n}\n\n/**\n * Runs a mutating workspace add command against a temporary clone and reports\n * the file operations that would be applied to the real workspace.\n *\n * @param options Workspace add dry-run options.\n * @returns The simulated command result plus normalized file operations.\n */\nexport async function simulateWorkspaceAddDryRun<T>({\n\tcwd,\n\texecute,\n}: {\n\tcwd: string;\n\texecute: (simulatedCwd: string) => Promise<T>;\n}): Promise<{\n\tfileOperations: WorkspaceFileOperation[];\n\tresult: T;\n}> {\n\tconst { resolveWorkspaceProject } = await import(\"@wp-typia/project-tools/workspace-project\");\n\tconst workspace = resolveWorkspaceProject(cwd);\n\tconst relativeCwd = path.relative(workspace.projectDir, path.resolve(cwd));\n\tconst tempRoot = await fsp.mkdtemp(path.join(os.tmpdir(), \"wp-typia-add-plan-\"));\n\tconst simulatedProjectDir = path.join(tempRoot, \"workspace\");\n\n\ttry {\n\t\tawait copyWorkspaceProject(workspace.projectDir, simulatedProjectDir);\n\t\tensureWorkspaceInstallMarkers(workspace.projectDir, simulatedProjectDir);\n\n\t\tconst simulatedCwd =\n\t\t\trelativeCwd.length > 0 ? path.join(simulatedProjectDir, relativeCwd) : simulatedProjectDir;\n\t\tconst result = await execute(simulatedCwd);\n\t\tconst fileOperations = await collectWorkspaceFileOperations(\n\t\t\tworkspace.projectDir,\n\t\t\tsimulatedProjectDir,\n\t\t);\n\n\t\treturn {\n\t\t\tfileOperations,\n\t\t\tresult,\n\t\t};\n\t} finally {\n\t\tawait fsp.rm(tempRoot, { force: true, recursive: true });\n\t}\n}\n",
10
- "import packageJson from \"../package.json\";\nimport { formatPackageExecCommand } from \"@wp-typia/project-tools/package-managers\";\nimport type { AlternateBufferCompletionPayload } from \"./ui/alternate-buffer-lifecycle\";\n\ntype PrintLine = (line: string) => void;\n\nexport type CreateProgressPayload = {\n\tdetail: string;\n\ttitle: string;\n};\n\ntype ExternalLayerSelectOption = {\n\tdescription?: string;\n\textends: string[];\n\tid: string;\n};\n\n/**\n * Prints a formatted alternate-buffer completion payload to the provided writers.\n *\n * @param payload Structured completion payload to render.\n * @param options Optional line printers for normal output and warnings.\n * @returns Nothing.\n */\nexport function printCompletionPayload(\n\tpayload: AlternateBufferCompletionPayload,\n\toptions: {\n\t\tprintLine?: PrintLine;\n\t\twarnLine?: PrintLine;\n\t} = {},\n): void {\n\tconst printLine = options.printLine ?? (console.log as PrintLine);\n\tconst warnLine = options.warnLine ?? printLine;\n\n\tfor (const line of payload.preambleLines ?? []) {\n\t\tprintLine(line);\n\t}\n\tfor (const warning of payload.warningLines ?? []) {\n\t\twarnLine(`⚠️ ${warning}`);\n\t}\n\n\tconst hasDetails =\n\t\t(payload.summaryLines?.length ?? 0) > 0 ||\n\t\t(payload.nextSteps?.length ?? 0) > 0 ||\n\t\t(payload.optionalLines?.length ?? 0) > 0 ||\n\t\tBoolean(payload.optionalNote);\n\tconst hasLeadingContext =\n\t\t(payload.preambleLines?.length ?? 0) > 0 ||\n\t\t(payload.warningLines?.length ?? 0) > 0;\n\n\tprintLine(hasLeadingContext && hasDetails ? `\\n${payload.title}` : payload.title);\n\tfor (const line of payload.summaryLines ?? []) {\n\t\tprintLine(line);\n\t}\n\tif ((payload.nextSteps?.length ?? 0) > 0) {\n\t\tprintLine(\"Next steps:\");\n\t\tfor (const step of payload.nextSteps ?? []) {\n\t\t\tprintLine(` ${step}`);\n\t\t}\n\t}\n\tif ((payload.optionalLines?.length ?? 0) > 0) {\n\t\tprintLine(`\\n${payload.optionalTitle ?? \"Optional:\"}`);\n\t\tfor (const step of payload.optionalLines ?? []) {\n\t\t\tprintLine(` ${step}`);\n\t\t}\n\t}\n\tif (payload.optionalNote) {\n\t\tprintLine(`Note: ${payload.optionalNote}`);\n\t}\n}\n\n/**\n * Formats a lightweight create-progress line for fallback CLI output.\n *\n * @param payload User-facing scaffold progress payload.\n * @returns A single readable status line.\n */\nexport function formatCreateProgressLine(payload: CreateProgressPayload): string {\n\treturn `⏳ ${payload.title}: ${payload.detail}`;\n}\n\n/**\n * Builds the completion payload shown after a create flow succeeds.\n *\n * @param flow Resolved create-flow data including onboarding steps and warnings.\n * @returns A structured alternate-buffer completion payload.\n */\nexport function buildCreateCompletionPayload(flow: {\n\tnextSteps: string[];\n\toptionalOnboarding: {\n\t\tnote: string;\n\t\tsteps: string[];\n\t};\n\tpackageManager: string;\n\tprojectDir: string;\n\tresult: {\n\t\tselectedVariant?: string | null;\n\t\tvariables: {\n\t\t\ttitle: string;\n\t\t};\n\t\twarnings: string[];\n\t};\n}): AlternateBufferCompletionPayload {\n\tconst verificationSteps = [\n\t\tformatPackageExecCommand(\n\t\t\tflow.packageManager as \"bun\" | \"npm\" | \"pnpm\" | \"yarn\",\n\t\t\t`wp-typia@${packageJson.version}`,\n\t\t\t\"doctor\",\n\t\t),\n\t\t...flow.optionalOnboarding.steps,\n\t];\n\n\treturn {\n\t\tnextSteps: flow.nextSteps,\n\t\toptionalLines: verificationSteps,\n\t\toptionalNote: flow.optionalOnboarding.note,\n\t\toptionalTitle: \"Verify and sync (optional):\",\n\t\tpreambleLines: flow.result.selectedVariant\n\t\t\t? [`Template variant: ${flow.result.selectedVariant}`]\n\t\t\t: undefined,\n\t\tsummaryLines: [`Project directory: ${flow.projectDir}`],\n\t\ttitle: `✅ Created ${flow.result.variables.title} in ${flow.projectDir}`,\n\t\twarningLines: flow.result.warnings,\n\t};\n}\n\n/**\n * Builds the completion payload shown after a dry-run create flow succeeds.\n *\n * @param flow Resolved create-flow data including the non-mutating scaffold plan.\n * @returns A structured alternate-buffer completion payload.\n */\nexport function buildCreateDryRunPayload(flow: {\n\tpackageManager: string;\n\tplan: {\n\t\tdependencyInstall: \"skipped-by-flag\" | \"would-install\";\n\t\tfiles: string[];\n\t};\n\tprojectDir: string;\n\tresult: {\n\t\tselectedVariant?: string | null;\n\t\ttemplateId: string;\n\t\tvariables: {\n\t\t\ttitle: string;\n\t\t};\n\t\twarnings: string[];\n\t};\n}): AlternateBufferCompletionPayload {\n\tlet dependencyInstallLine: string;\n\tswitch (flow.plan.dependencyInstall) {\n\t\tcase \"skipped-by-flag\":\n\t\t\tdependencyInstallLine = \"Dependency install: already skipped via --no-install\";\n\t\t\tbreak;\n\t\tcase \"would-install\":\n\t\t\tdependencyInstallLine = \"Dependency install: would run during a real scaffold\";\n\t\t\tbreak;\n\t}\n\n\treturn {\n\t\toptionalLines: flow.plan.files.map((relativePath) => `write ${relativePath}`),\n\t\toptionalNote:\n\t\t\t\"No files were written because --dry-run was enabled. Re-run without --dry-run to materialize this scaffold.\",\n\t\toptionalTitle: `Planned files (${flow.plan.files.length}):`,\n\t\tpreambleLines: flow.result.selectedVariant\n\t\t\t? [`Template variant: ${flow.result.selectedVariant}`]\n\t\t\t: undefined,\n\t\tsummaryLines: [\n\t\t\t`Project directory: ${flow.projectDir}`,\n\t\t\t`Template: ${flow.result.templateId}`,\n\t\t\t`Package manager: ${flow.packageManager}`,\n\t\t\tdependencyInstallLine,\n\t\t],\n\t\ttitle: `🧪 Dry run for ${flow.result.variables.title} at ${flow.projectDir}`,\n\t\twarningLines: flow.result.warnings,\n\t};\n}\n\n/**\n * Builds the completion payload shown after a migrate command succeeds.\n *\n * @param options Completed migrate command metadata plus rendered lines.\n * @returns A structured alternate-buffer completion payload.\n */\nexport function buildMigrationCompletionPayload(options: {\n\tcommand: string;\n\tlines: string[];\n}): AlternateBufferCompletionPayload {\n\tconst summaryLines = options.lines.filter((line) => line.trim().length > 0);\n\n\treturn {\n\t\tsummaryLines,\n\t\ttitle: `✅ Completed wp-typia migrate ${options.command}`,\n\t};\n}\n\n/**\n * Builds the completion payload shown after an add flow succeeds.\n *\n * @param options Add-flow kind plus normalized values to summarize.\n * @returns A structured alternate-buffer completion payload.\n */\nexport function buildAddCompletionPayload(options: {\n\tkind:\n\t\t| \"binding-source\"\n\t\t| \"block\"\n\t\t| \"editor-plugin\"\n\t\t| \"hooked-block\"\n\t\t| \"pattern\"\n\t\t| \"rest-resource\"\n\t\t| \"variation\";\n\tprojectDir: string;\n\tvalues: Record<string, string>;\n\twarnings?: string[];\n}): AlternateBufferCompletionPayload {\n\tswitch (options.kind) {\n\t\tcase \"variation\":\n\t\t\treturn {\n\t\t\t\tsummaryLines: [\n\t\t\t\t\t`Variation: ${options.values.variationSlug}`,\n\t\t\t\t\t`Target block: ${options.values.blockSlug}`,\n\t\t\t\t\t`Project directory: ${options.projectDir}`,\n\t\t\t\t],\n\t\t\t\ttitle: \"✅ Added workspace variation\",\n\t\t\t};\n\t\tcase \"pattern\":\n\t\t\treturn {\n\t\t\t\tsummaryLines: [\n\t\t\t\t\t`Pattern: ${options.values.patternSlug}`,\n\t\t\t\t\t`Project directory: ${options.projectDir}`,\n\t\t\t\t],\n\t\t\t\ttitle: \"✅ Added workspace pattern\",\n\t\t\t};\n\t\tcase \"binding-source\":\n\t\t\treturn {\n\t\t\t\tsummaryLines: [\n\t\t\t\t\t`Binding source: ${options.values.bindingSourceSlug}`,\n\t\t\t\t\t`Project directory: ${options.projectDir}`,\n\t\t\t\t],\n\t\t\t\ttitle: \"✅ Added binding source\",\n\t\t\t};\n\t\tcase \"rest-resource\":\n\t\t\treturn {\n\t\t\t\tsummaryLines: [\n\t\t\t\t\t`REST resource: ${options.values.restResourceSlug}`,\n\t\t\t\t\t`Namespace: ${options.values.namespace}`,\n\t\t\t\t\t`Methods: ${options.values.methods}`,\n\t\t\t\t\t`Project directory: ${options.projectDir}`,\n\t\t\t\t],\n\t\t\t\ttitle: \"✅ Added plugin-level REST resource\",\n\t\t\t};\n\t\tcase \"editor-plugin\":\n\t\t\treturn {\n\t\t\t\tsummaryLines: [\n\t\t\t\t\t`Editor plugin: ${options.values.editorPluginSlug}`,\n\t\t\t\t\t`Slot: ${options.values.slot}`,\n\t\t\t\t\t`Project directory: ${options.projectDir}`,\n\t\t\t\t],\n\t\t\t\ttitle: \"✅ Added editor plugin\",\n\t\t\t};\n\t\tcase \"hooked-block\":\n\t\t\treturn {\n\t\t\t\tsummaryLines: [\n\t\t\t\t\t`Block: ${options.values.blockSlug}`,\n\t\t\t\t\t`Anchor: ${options.values.anchorBlockName}`,\n\t\t\t\t\t`Position: ${options.values.position}`,\n\t\t\t\t\t`Project directory: ${options.projectDir}`,\n\t\t\t\t],\n\t\t\t\ttitle: \"✅ Added blockHooks metadata\",\n\t\t\t};\n\t\tdefault:\n\t\t\treturn {\n\t\t\t\tsummaryLines: [\n\t\t\t\t\t`Blocks: ${options.values.blockSlugs}`,\n\t\t\t\t\t`Template family: ${options.values.templateId}`,\n\t\t\t\t\t`Project directory: ${options.projectDir}`,\n\t\t\t\t],\n\t\t\t\ttitle: \"✅ Added workspace block\",\n\t\t\t\twarningLines: options.warnings,\n\t\t\t};\n\t}\n}\n\n/**\n * Builds the completion payload shown after a dry-run add flow succeeds.\n *\n * @param options Existing add completion metadata plus the planned file updates.\n * @returns A structured alternate-buffer completion payload.\n */\nexport function buildAddDryRunPayload(options: {\n\tcompletion: AlternateBufferCompletionPayload;\n\tfileOperations: string[];\n}): AlternateBufferCompletionPayload {\n\tconst normalizedTitle = options.completion.title.replace(/^✅\\s*Added\\s*/u, \"\");\n\n\treturn {\n\t\toptionalLines: options.fileOperations,\n\t\toptionalNote:\n\t\t\t\"No workspace files were changed because --dry-run was enabled. Re-run without --dry-run to apply this add command.\",\n\t\toptionalTitle: `Planned workspace updates (${options.fileOperations.length}):`,\n\t\tpreambleLines: options.completion.preambleLines,\n\t\tsummaryLines: options.completion.summaryLines,\n\t\ttitle: `🧪 Dry run for ${normalizedTitle || \"workspace add command\"}`,\n\t\twarningLines: options.completion.warningLines,\n\t};\n}\n\n/**\n * Prints a block of text lines using a shared line printer.\n *\n * @param lines Lines to print in order.\n * @param printLine Line printer to use.\n * @returns Nothing.\n */\nexport function printBlock(lines: string[], printLine: PrintLine): void {\n\tfor (const line of lines) {\n\t\tprintLine(line);\n\t}\n}\n\nfunction formatExternalLayerSelectHint(option: ExternalLayerSelectOption): string | undefined {\n\tconst details = [\n\t\toption.description,\n\t\toption.extends.length > 0 ? `extends ${option.extends.join(\", \")}` : undefined,\n\t].filter((value): value is string => typeof value === \"string\" && value.length > 0);\n\n\treturn details.length > 0 ? details.join(\" · \") : undefined;\n}\n\n/**\n * Converts external layer options into prompt-compatible select items.\n *\n * @param options External layer options returned by the block generator.\n * @returns Prompt select options with labels and hints.\n */\nexport function toExternalLayerPromptOptions(options: ExternalLayerSelectOption[]) {\n\treturn options.map((option) => ({\n\t\thint: formatExternalLayerSelectHint(option),\n\t\tlabel: option.id,\n\t\tvalue: option.id,\n\t}));\n}\n",
11
- "import { spawnSync } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\n\ntype PackageManagerId = \"bun\" | \"npm\" | \"pnpm\" | \"yarn\";\n\ntype SyncExecutionInput = {\n\tcheck?: boolean;\n\tcwd: string;\n};\n\ntype SyncProjectContext = {\n\tcwd: string;\n\tpackageJsonPath: string;\n\tpackageManager: PackageManagerId;\n\tscripts: Partial<Record<\"sync\" | \"sync-rest\" | \"sync-types\", string>>;\n};\n\nconst SYNC_INSTALL_MARKERS = [\"node_modules\", \".pnp.cjs\", \".pnp.loader.mjs\"] as const;\nconst LOCAL_SYNC_TOOL_PATTERN = /(^|[\\s;&|()])(?:tsx|wp-scripts)(?=($|[\\s;&|()]))/u;\n\nfunction formatRunScript(\n\tpackageManagerId: PackageManagerId,\n\tscriptName: string,\n\textraArgs = \"\",\n) {\n\tconst args = extraArgs.trim();\n\tif (packageManagerId === \"bun\") {\n\t\treturn args ? `bun run ${scriptName} ${args}` : `bun run ${scriptName}`;\n\t}\n\tif (packageManagerId === \"npm\") {\n\t\treturn args ? `npm run ${scriptName} -- ${args}` : `npm run ${scriptName}`;\n\t}\n\tif (packageManagerId === \"pnpm\") {\n\t\treturn args ? `pnpm run ${scriptName} ${args}` : `pnpm run ${scriptName}`;\n\t}\n\treturn args ? `yarn run ${scriptName} ${args}` : `yarn run ${scriptName}`;\n}\n\nfunction formatInstallCommand(packageManagerId: PackageManagerId): string {\n\tswitch (packageManagerId) {\n\t\tcase \"bun\":\n\t\t\treturn \"bun install\";\n\t\tcase \"pnpm\":\n\t\t\treturn \"pnpm install\";\n\t\tcase \"yarn\":\n\t\t\treturn \"yarn install\";\n\t\tdefault:\n\t\t\treturn \"npm install\";\n\t}\n}\n\nfunction getSyncRootError(cwd: string): Error {\n\treturn new Error(\n\t\t`No generated wp-typia project root was found at ${cwd}. Run \\`wp-typia sync\\` from a scaffolded project or official workspace root.`,\n\t);\n}\n\nfunction inferSyncPackageManager(cwd: string, packageManagerField?: string): PackageManagerId {\n\tconst field = String(packageManagerField ?? \"\");\n\tif (field.startsWith(\"bun@\")) return \"bun\";\n\tif (field.startsWith(\"npm@\")) return \"npm\";\n\tif (field.startsWith(\"pnpm@\")) return \"pnpm\";\n\tif (field.startsWith(\"yarn@\")) return \"yarn\";\n\n\tif (\n\t\tfs.existsSync(path.join(cwd, \"bun.lock\")) ||\n\t\tfs.existsSync(path.join(cwd, \"bun.lockb\"))\n\t) {\n\t\treturn \"bun\";\n\t}\n\tif (fs.existsSync(path.join(cwd, \"pnpm-lock.yaml\"))) {\n\t\treturn \"pnpm\";\n\t}\n\tif (\n\t\tfs.existsSync(path.join(cwd, \"yarn.lock\")) ||\n\t\tfs.existsSync(path.join(cwd, \".pnp.cjs\")) ||\n\t\tfs.existsSync(path.join(cwd, \".pnp.loader.mjs\")) ||\n\t\tfs.existsSync(path.join(cwd, \".yarnrc.yml\"))\n\t) {\n\t\treturn \"yarn\";\n\t}\n\tif (\n\t\tfs.existsSync(path.join(cwd, \"package-lock.json\")) ||\n\t\tfs.existsSync(path.join(cwd, \"npm-shrinkwrap.json\"))\n\t) {\n\t\treturn \"npm\";\n\t}\n\n\treturn \"npm\";\n}\n\nfunction resolveSyncProjectContext(cwd: string): SyncProjectContext {\n\tconst packageJsonPath = path.join(cwd, \"package.json\");\n\tif (!fs.existsSync(packageJsonPath)) {\n\t\tthrow getSyncRootError(cwd);\n\t}\n\n\tconst packageJson = JSON.parse(fs.readFileSync(packageJsonPath, \"utf8\")) as {\n\t\tpackageManager?: string;\n\t\tscripts?: Record<string, unknown>;\n\t};\n\tconst scripts = packageJson.scripts ?? {};\n\tconst syncScripts = {\n\t\tsync: typeof scripts.sync === \"string\" ? scripts.sync : undefined,\n\t\t\"sync-rest\":\n\t\t\ttypeof scripts[\"sync-rest\"] === \"string\" ? scripts[\"sync-rest\"] : undefined,\n\t\t\"sync-types\":\n\t\t\ttypeof scripts[\"sync-types\"] === \"string\" ? scripts[\"sync-types\"] : undefined,\n\t} satisfies SyncProjectContext[\"scripts\"];\n\n\tif (!syncScripts.sync && !syncScripts[\"sync-types\"]) {\n\t\tthrow new Error(\n\t\t\t`Expected ${packageJsonPath} to define either a \\`sync\\` or \\`sync-types\\` script.`,\n\t\t);\n\t}\n\n\treturn {\n\t\tcwd,\n\t\tpackageJsonPath,\n\t\tpackageManager: inferSyncPackageManager(cwd, packageJson.packageManager),\n\t\tscripts: syncScripts,\n\t};\n}\n\nfunction findInstalledDependencyMarkerDir(projectDir: string): string | null {\n\tlet currentDir = path.resolve(projectDir);\n\n\twhile (true) {\n\t\tif (\n\t\t\tSYNC_INSTALL_MARKERS.some((marker) =>\n\t\t\t\tfs.existsSync(path.join(currentDir, marker)),\n\t\t\t)\n\t\t) {\n\t\t\treturn currentDir;\n\t\t}\n\n\t\tconst parentDir = path.dirname(currentDir);\n\t\tif (parentDir === currentDir) {\n\t\t\treturn null;\n\t\t}\n\t\tcurrentDir = parentDir;\n\t}\n}\n\nfunction scriptsLikelyNeedInstalledDependencies(project: SyncProjectContext): boolean {\n\tconst candidateScripts = project.scripts.sync\n\t\t? [project.scripts.sync]\n\t\t: [project.scripts[\"sync-types\"], project.scripts[\"sync-rest\"]];\n\n\treturn candidateScripts.some(\n\t\t(script): script is string =>\n\t\t\ttypeof script === \"string\" && LOCAL_SYNC_TOOL_PATTERN.test(script),\n\t);\n}\n\nfunction assertSyncDependenciesInstalled(project: SyncProjectContext): void {\n\tif (!scriptsLikelyNeedInstalledDependencies(project)) {\n\t\treturn;\n\t}\n\tconst markerDir = findInstalledDependencyMarkerDir(project.cwd);\n\tif (markerDir) {\n\t\treturn;\n\t}\n\n\tthrow new Error(\n\t\t`Project dependencies have not been installed yet. Run \\`${formatInstallCommand(project.packageManager)}\\` from the project root before \\`wp-typia sync\\`. The generated sync scripts rely on local tools such as \\`tsx\\`.`,\n\t);\n}\n\nfunction getPackageManagerRunInvocation(\n\tpackageManager: PackageManagerId,\n\tscriptName: string,\n\textraArgs: string[],\n): { args: string[]; command: string } {\n\tswitch (packageManager) {\n\t\tcase \"bun\":\n\t\t\treturn { args: [\"run\", scriptName, ...extraArgs], command: \"bun\" };\n\t\tcase \"npm\":\n\t\t\treturn {\n\t\t\t\targs: [\"run\", scriptName, ...(extraArgs.length > 0 ? [\"--\", ...extraArgs] : [])],\n\t\t\t\tcommand: \"npm\",\n\t\t\t};\n\t\tcase \"pnpm\":\n\t\t\treturn { args: [\"run\", scriptName, ...extraArgs], command: \"pnpm\" };\n\t\tcase \"yarn\":\n\t\t\treturn { args: [\"run\", scriptName, ...extraArgs], command: \"yarn\" };\n\t}\n}\n\nfunction runProjectScript(\n\tproject: SyncProjectContext,\n\tscriptName: \"sync\" | \"sync-rest\" | \"sync-types\",\n\textraArgs: string[],\n): void {\n\tconst script = project.scripts[scriptName];\n\tif (!script) {\n\t\treturn;\n\t}\n\n\tconst invocation = getPackageManagerRunInvocation(\n\t\tproject.packageManager,\n\t\tscriptName,\n\t\textraArgs,\n\t);\n\n\tconst result = spawnSync(invocation.command, invocation.args, {\n\t\tcwd: project.cwd,\n\t\tshell: process.platform === \"win32\",\n\t\tstdio: \"inherit\",\n\t});\n\n\tif (result.error || result.status !== 0) {\n\t\tthrow new Error(\n\t\t\t`\\`${formatRunScript(project.packageManager, scriptName, extraArgs.join(\" \"))}\\` failed.`,\n\t\t\t{\n\t\t\t\tcause: result.error,\n\t\t\t},\n\t\t);\n\t}\n}\n\n/**\n * Executes the generated-project sync flow through the local project scripts.\n *\n * @param options Sync execution options including cwd and optional `--check`.\n * @returns A promise that resolves after the relevant sync scripts complete.\n */\nexport async function executeSyncCommand({\n\tcheck = false,\n\tcwd,\n}: SyncExecutionInput): Promise<void> {\n\tconst project = resolveSyncProjectContext(cwd);\n\tassertSyncDependenciesInstalled(project);\n\tconst extraArgs = check ? [\"--check\"] : [];\n\n\tif (project.scripts.sync) {\n\t\trunProjectScript(project, \"sync\", extraArgs);\n\t\treturn;\n\t}\n\n\trunProjectScript(project, \"sync-types\", extraArgs);\n\n\tif (project.scripts[\"sync-rest\"]) {\n\t\trunProjectScript(project, \"sync-rest\", extraArgs);\n\t}\n}\n",
12
- "import type { ReadlinePrompt } from \"@wp-typia/project-tools/cli-prompt\";\nimport { simulateWorkspaceAddDryRun } from \"./runtime-bridge-add-dry-run\";\nimport type { AlternateBufferCompletionPayload } from \"./ui/alternate-buffer-lifecycle\";\nimport {\n\tbuildAddCompletionPayload,\n\tbuildAddDryRunPayload,\n\tbuildCreateCompletionPayload,\n\tbuildCreateDryRunPayload,\n\tbuildMigrationCompletionPayload,\n\tformatCreateProgressLine,\n\tprintBlock,\n\tprintCompletionPayload,\n\ttoExternalLayerPromptOptions,\n} from \"./runtime-bridge-output\";\nexport {\n\tbuildCreateCompletionPayload,\n\tbuildCreateDryRunPayload,\n\tbuildMigrationCompletionPayload,\n\tformatCreateProgressLine,\n\tprintCompletionPayload,\n} from \"./runtime-bridge-output\";\nexport { executeSyncCommand } from \"./runtime-bridge-sync\";\n\ntype CreateProgressPayload = {\n\tdetail: string;\n\ttitle: string;\n};\n\ntype CreateExecutionInput = {\n\tprojectDir: string;\n\tcwd: string;\n\temitOutput?: boolean;\n\tflags: Record<string, unknown>;\n\tinteractive?: boolean;\n\tonProgress?: (payload: CreateProgressPayload) => void;\n\tprintLine?: PrintLine;\n\tprompt?: ReadlinePrompt;\n\twarnLine?: PrintLine;\n};\n\ntype AddExecutionInput = {\n\tcwd: string;\n\temitOutput?: boolean;\n\tflags: Record<string, unknown>;\n\tinteractive?: boolean;\n\tkind?: string;\n\tname?: string;\n\tprintLine?: PrintLine;\n\tprompt?: ReadlinePrompt;\n\twarnLine?: PrintLine;\n};\n\ntype TemplatesExecutionInput = {\n\tflags: {\n\t\tid?: string;\n\t\tsubcommand?: string;\n\t};\n};\n\ntype MigrateExecutionInput = {\n\tcommand?: string;\n\tcwd: string;\n\tflags: Record<string, unknown>;\n\tprompt?: ReadlinePrompt;\n\trenderLine?: (line: string) => void;\n};\n\ntype PrintLine = (line: string) => void;\ntype CliCommandId = \"add\" | \"create\" | \"doctor\" | \"migrate\";\n\nconst loadCliAddRuntime = () => import(\"@wp-typia/project-tools/cli-add\");\nconst loadCliDiagnosticsRuntime = () => import(\"@wp-typia/project-tools/cli-diagnostics\");\nconst loadCliDoctorRuntime = () => import(\"@wp-typia/project-tools/cli-doctor\");\nconst loadCliPromptRuntime = () => import(\"@wp-typia/project-tools/cli-prompt\");\nconst loadCliScaffoldRuntime = () => import(\"@wp-typia/project-tools/cli-scaffold\");\nconst loadCliTemplatesRuntime = () => import(\"@wp-typia/project-tools/cli-templates\");\nconst loadWorkspaceProjectRuntime = () => import(\"@wp-typia/project-tools/workspace-project\");\nconst loadMigrationsRuntime = () => import(\"@wp-typia/project-tools/migrations\");\n\nasync function wrapCliCommandError(command: CliCommandId, error: unknown) {\n\tconst { createCliCommandError } = await loadCliDiagnosticsRuntime();\n\treturn createCliCommandError({ command, error });\n}\n\nfunction shouldWrapCliCommandError(options: {\n\temitOutput?: boolean;\n\trenderLine?: ((line: string) => void) | undefined;\n}): boolean {\n\tif (options.emitOutput === false) {\n\t\treturn false;\n\t}\n\n\tif (options.renderLine) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n\nfunction readOptionalStringFlag(\n\tflags: Record<string, unknown>,\n\tname: string,\n): string | undefined {\n\tconst value = flags[name];\n\tif (value === undefined || value === null) {\n\t\treturn undefined;\n\t}\n\tif (typeof value !== \"string\" || value.trim().length === 0) {\n\t\tthrow new Error(`\\`--${name}\\` requires a value.`);\n\t}\n\treturn value;\n}\n\nfunction readOptionalLooseStringFlag(\n\tflags: Record<string, unknown>,\n\tname: string,\n): string | undefined {\n\tconst value = flags[name];\n\tif (value === undefined || value === null) {\n\t\treturn undefined;\n\t}\n\tif (typeof value !== \"string\") {\n\t\tthrow new Error(`\\`--${name}\\` requires a value.`);\n\t}\n\tconst trimmed = value.trim();\n\treturn trimmed.length > 0 ? trimmed : undefined;\n}\n\nfunction pushFlag(argv: string[], name: string, value: unknown): void {\n\tif (value === undefined || value === null || value === false) {\n\t\treturn;\n\t}\n\tif (value === true) {\n\t\targv.push(`--${name}`);\n\t\treturn;\n\t}\n\targv.push(`--${name}`, String(value));\n}\n\nconst PACKAGE_MANAGER_PROMPT_OPTIONS = [\n\t{ label: \"npm\", value: \"npm\", hint: \"Use npm\" },\n\t{ label: \"pnpm\", value: \"pnpm\", hint: \"Use pnpm\" },\n\t{ label: \"yarn\", value: \"yarn\", hint: \"Use yarn\" },\n\t{ label: \"bun\", value: \"bun\", hint: \"Use bun\" },\n] as const;\n\nconst DATA_STORAGE_PROMPT_OPTIONS = [\n\t{ label: \"custom-table\", value: \"custom-table\", hint: \"Dedicated custom table storage\" },\n\t{ label: \"post-meta\", value: \"post-meta\", hint: \"Persist through post meta\" },\n] as const;\n\nconst PERSISTENCE_POLICY_PROMPT_OPTIONS = [\n\t{ label: \"authenticated\", value: \"authenticated\", hint: \"Authenticated write policy\" },\n\t{ label: \"public\", value: \"public\", hint: \"Public token policy\" },\n] as const;\n\nconst BOOLEAN_PROMPT_OPTIONS = [\n\t{ label: \"Yes\", value: \"yes\", hint: \"Enable this option\" },\n\t{ label: \"No\", value: \"no\", hint: \"Keep the default disabled state\" },\n] as const;\n\nfunction emitCompletion(\n\tpayload: AlternateBufferCompletionPayload,\n\toptions: {\n\t\temitOutput: boolean;\n\t\tprintLine: PrintLine;\n\t\twarnLine?: PrintLine;\n\t},\n): AlternateBufferCompletionPayload {\n\tif (options.emitOutput) {\n\t\tprintCompletionPayload(payload, {\n\t\t\tprintLine: options.printLine,\n\t\t\twarnLine: options.warnLine,\n\t\t});\n\t}\n\n\treturn payload;\n}\n\nexport async function executeCreateCommand({\n\tprojectDir,\n\tcwd,\n\temitOutput = true,\n\tflags,\n\tinteractive,\n\tonProgress,\n\tprintLine = console.log as PrintLine,\n\tprompt,\n\twarnLine = console.warn as PrintLine,\n}: CreateExecutionInput): Promise<AlternateBufferCompletionPayload> {\n\tconst [\n\t\t{ createReadlinePrompt },\n\t\t{ runScaffoldFlow },\n\t\t{ getTemplateSelectOptions },\n\t] = await Promise.all([\n\t\tloadCliPromptRuntime(),\n\t\tloadCliScaffoldRuntime(),\n\t\tloadCliTemplatesRuntime(),\n\t]);\n\tconst shouldPrompt =\n\t\tinteractive ?? (!Boolean(flags.yes) && Boolean(process.stdin.isTTY) && Boolean(process.stdout.isTTY));\n\tconst activePrompt = shouldPrompt ? (prompt ?? createReadlinePrompt()) : undefined;\n\tconst shouldPromptForExternalLayerSelection =\n\t\tBoolean(activePrompt) && activePrompt !== prompt;\n\tconst effectiveYes = Boolean(flags.yes) || (Boolean(flags[\"dry-run\"]) && !Boolean(activePrompt));\n\n\ttry {\n\t\tconst flow = await runScaffoldFlow({\n\t\t\talternateRenderTargets: readOptionalLooseStringFlag(\n\t\t\t\tflags,\n\t\t\t\t\"alternate-render-targets\",\n\t\t\t),\n\t\t\tcwd,\n\t\t\tdataStorageMode: readOptionalLooseStringFlag(flags, \"data-storage\"),\n\t\t\tdryRun: Boolean(flags[\"dry-run\"]),\n\t\t\texternalLayerId: readOptionalLooseStringFlag(flags, \"external-layer-id\"),\n\t\t\texternalLayerSource: readOptionalLooseStringFlag(flags, \"external-layer-source\"),\n\t\t\tinnerBlocksPreset: readOptionalLooseStringFlag(flags, \"inner-blocks-preset\"),\n\t\t\tisInteractive: Boolean(activePrompt),\n\t\t\tnamespace: readOptionalLooseStringFlag(flags, \"namespace\"),\n\t\t\tnoInstall: Boolean(flags[\"no-install\"]),\n\t\t\tpackageManager: readOptionalLooseStringFlag(flags, \"package-manager\"),\n\t\t\tpersistencePolicy: readOptionalLooseStringFlag(flags, \"persistence-policy\"),\n\t\t\tphpPrefix: readOptionalLooseStringFlag(flags, \"php-prefix\"),\n\t\t\tprojectInput: projectDir,\n\t\t\tonProgress: async (progress) => {\n\t\t\t\tconst payload = {\n\t\t\t\t\tdetail: progress.detail,\n\t\t\t\t\ttitle: progress.title,\n\t\t\t\t};\n\t\t\t\tonProgress?.(payload);\n\t\t\t\tif (emitOutput) {\n\t\t\t\t\tprintLine(formatCreateProgressLine(payload));\n\t\t\t\t}\n\t\t\t},\n\t\t\tpromptText: activePrompt\n\t\t\t\t? (message, defaultValue, validate) => activePrompt.text(message, defaultValue, validate)\n\t\t\t\t: undefined,\n\t\t\tqueryPostType: readOptionalLooseStringFlag(flags, \"query-post-type\"),\n\t\t\tselectDataStorage: activePrompt\n\t\t\t\t? () => activePrompt.select(\"Select a data storage mode\", [...DATA_STORAGE_PROMPT_OPTIONS], 1)\n\t\t\t\t: undefined,\n\t\t\tselectExternalLayerId: shouldPromptForExternalLayerSelection && activePrompt\n\t\t\t\t? (options) =>\n\t\t\t\t\t\tactivePrompt.select(\n\t\t\t\t\t\t\t\"Select an external layer\",\n\t\t\t\t\t\t\ttoExternalLayerPromptOptions(options),\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t)\n\t\t\t\t: undefined,\n\t\t\tselectPackageManager: activePrompt\n\t\t\t\t? () => activePrompt.select(\"Select a package manager\", [...PACKAGE_MANAGER_PROMPT_OPTIONS], 1)\n\t\t\t\t: undefined,\n\t\t\tselectPersistencePolicy: activePrompt\n\t\t\t\t? () =>\n\t\t\t\t\t\tactivePrompt.select(\n\t\t\t\t\t\t\t\"Select a persistence policy\",\n\t\t\t\t\t\t\t[...PERSISTENCE_POLICY_PROMPT_OPTIONS],\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t)\n\t\t\t\t: undefined,\n\t\t\tselectTemplate: activePrompt\n\t\t\t\t? () => activePrompt.select(\"Select a template\", getTemplateSelectOptions(), 1)\n\t\t\t\t: undefined,\n\t\t\tselectWithMigrationUi: activePrompt\n\t\t\t\t? async () =>\n\t\t\t\t\t\t(await activePrompt.select(\"Enable migration UI support?\", [...BOOLEAN_PROMPT_OPTIONS], 2)) ===\n\t\t\t\t\t\t\"yes\"\n\t\t\t\t: undefined,\n\t\t\tselectWithTestPreset: activePrompt\n\t\t\t\t? async () =>\n\t\t\t\t\t\t(await activePrompt.select(\"Include the Playwright test preset?\", [...BOOLEAN_PROMPT_OPTIONS], 2)) ===\n\t\t\t\t\t\t\"yes\"\n\t\t\t\t: undefined,\n\t\t\tselectWithWpEnv: activePrompt\n\t\t\t\t? async () =>\n\t\t\t\t\t\t(await activePrompt.select(\"Include a local wp-env preset?\", [...BOOLEAN_PROMPT_OPTIONS], 2)) ===\n\t\t\t\t\t\t\"yes\"\n\t\t\t\t: undefined,\n\t\t\ttemplateId: readOptionalLooseStringFlag(flags, \"template\"),\n\t\t\ttextDomain: readOptionalLooseStringFlag(flags, \"text-domain\"),\n\t\t\tvariant: readOptionalLooseStringFlag(flags, \"variant\"),\n\t\t\twithMigrationUi: flags[\"with-migration-ui\"] as boolean | undefined,\n\t\t\twithTestPreset: flags[\"with-test-preset\"] as boolean | undefined,\n\t\t\twithWpEnv: flags[\"with-wp-env\"] as boolean | undefined,\n\t\t\tyes: effectiveYes,\n\t\t});\n\n\t\tconst payload = flow.dryRun && flow.plan\n\t\t\t? buildCreateDryRunPayload({\n\t\t\t\t\tpackageManager: flow.packageManager,\n\t\t\t\t\tplan: flow.plan,\n\t\t\t\t\tprojectDir: flow.projectDir,\n\t\t\t\t\tresult: flow.result,\n\t\t\t\t})\n\t\t\t: buildCreateCompletionPayload(flow);\n\t\treturn emitCompletion(payload, { emitOutput, printLine, warnLine });\n\t} catch (error) {\n\t\tif (!shouldWrapCliCommandError({ emitOutput })) {\n\t\t\tthrow error;\n\t\t}\n\t\tthrow await wrapCliCommandError(\"create\", error);\n\t} finally {\n\t\tif (activePrompt && activePrompt !== prompt) {\n\t\t\tactivePrompt.close();\n\t\t}\n\t}\n}\n\nexport async function executeAddCommand({\n\tcwd,\n\temitOutput = true,\n\tflags,\n\tinteractive,\n\tkind,\n\tname,\n\tprintLine = console.log as PrintLine,\n\tprompt,\n\twarnLine = console.warn as PrintLine,\n}: AddExecutionInput): Promise<AlternateBufferCompletionPayload | void> {\n\tif (!kind) {\n\t\tconst { formatAddHelpText } = await loadCliAddRuntime();\n\t\tprintLine(formatAddHelpText());\n\t\treturn;\n\t}\n\n\tconst addRuntime = await loadCliAddRuntime();\n\tlet activePrompt: ReadlinePrompt | undefined;\n\tconst dryRun = Boolean(flags[\"dry-run\"]);\n\n\ttry {\n\t\tif (kind === \"variation\") {\n\t\t\tif (!name) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"`wp-typia add variation` requires <name>. Usage: wp-typia add variation <name> --block <block-slug>\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst blockSlug = readOptionalStringFlag(flags, \"block\");\n\t\t\tif (!blockSlug) {\n\t\t\t\tthrow new Error(\"`wp-typia add variation` requires --block <block-slug>.\");\n\t\t\t}\n\n\t\t\tconst simulated = dryRun\n\t\t\t\t? await simulateWorkspaceAddDryRun({\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\texecute: (simulatedCwd) =>\n\t\t\t\t\t\t\taddRuntime.runAddVariationCommand({\n\t\t\t\t\t\t\t\tblockName: blockSlug,\n\t\t\t\t\t\t\t\tcwd: simulatedCwd,\n\t\t\t\t\t\t\t\tvariationName: name,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t})\n\t\t\t\t: null;\n\t\t\tconst result =\n\t\t\t\tsimulated?.result ??\n\t\t\t\t(await addRuntime.runAddVariationCommand({\n\t\t\t\t\tblockName: blockSlug,\n\t\t\t\t\tcwd,\n\t\t\t\t\tvariationName: name,\n\t\t\t\t}));\n\t\t\tconst completion = buildAddCompletionPayload({\n\t\t\t\tkind: \"variation\",\n\t\t\t\tprojectDir: result.projectDir,\n\t\t\t\tvalues: {\n\t\t\t\t\tblockSlug: result.blockSlug,\n\t\t\t\t\tvariationSlug: result.variationSlug,\n\t\t\t\t},\n\t\t\t});\n\t\t\tif (!dryRun) {\n\t\t\t\treturn emitCompletion(completion, { emitOutput, printLine });\n\t\t\t}\n\n\t\t\treturn emitCompletion(\n\t\t\t\tbuildAddDryRunPayload({\n\t\t\t\t\tcompletion,\n\t\t\t\t\tfileOperations: simulated!.fileOperations,\n\t\t\t\t}),\n\t\t\t\t{ emitOutput, printLine },\n\t\t\t);\n\t\t}\n\n\t\tif (kind === \"pattern\") {\n\t\t\tif (!name) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"`wp-typia add pattern` requires <name>. Usage: wp-typia add pattern <name>.\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst simulated = dryRun\n\t\t\t\t? await simulateWorkspaceAddDryRun({\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\texecute: (simulatedCwd) =>\n\t\t\t\t\t\t\taddRuntime.runAddPatternCommand({\n\t\t\t\t\t\t\t\tcwd: simulatedCwd,\n\t\t\t\t\t\t\t\tpatternName: name,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t})\n\t\t\t\t: null;\n\t\t\tconst result =\n\t\t\t\tsimulated?.result ??\n\t\t\t\t(await addRuntime.runAddPatternCommand({\n\t\t\t\t\tcwd,\n\t\t\t\t\tpatternName: name,\n\t\t\t\t}));\n\t\t\tconst completion = buildAddCompletionPayload({\n\t\t\t\tkind: \"pattern\",\n\t\t\t\tprojectDir: result.projectDir,\n\t\t\t\tvalues: {\n\t\t\t\t\tpatternSlug: result.patternSlug,\n\t\t\t\t},\n\t\t\t});\n\t\t\tif (!dryRun) {\n\t\t\t\treturn emitCompletion(completion, { emitOutput, printLine });\n\t\t\t}\n\n\t\t\treturn emitCompletion(\n\t\t\t\tbuildAddDryRunPayload({\n\t\t\t\t\tcompletion,\n\t\t\t\t\tfileOperations: simulated!.fileOperations,\n\t\t\t\t}),\n\t\t\t\t{ emitOutput, printLine },\n\t\t\t);\n\t\t}\n\n\t\tif (kind === \"binding-source\") {\n\t\t\tif (!name) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"`wp-typia add binding-source` requires <name>. Usage: wp-typia add binding-source <name>.\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst simulated = dryRun\n\t\t\t\t? await simulateWorkspaceAddDryRun({\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\texecute: (simulatedCwd) =>\n\t\t\t\t\t\t\taddRuntime.runAddBindingSourceCommand({\n\t\t\t\t\t\t\t\tbindingSourceName: name,\n\t\t\t\t\t\t\t\tcwd: simulatedCwd,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t})\n\t\t\t\t: null;\n\t\t\tconst result =\n\t\t\t\tsimulated?.result ??\n\t\t\t\t(await addRuntime.runAddBindingSourceCommand({\n\t\t\t\t\tbindingSourceName: name,\n\t\t\t\t\tcwd,\n\t\t\t\t}));\n\t\t\tconst completion = buildAddCompletionPayload({\n\t\t\t\tkind: \"binding-source\",\n\t\t\t\tprojectDir: result.projectDir,\n\t\t\t\tvalues: {\n\t\t\t\t\tbindingSourceSlug: result.bindingSourceSlug,\n\t\t\t\t},\n\t\t\t});\n\t\t\tif (!dryRun) {\n\t\t\t\treturn emitCompletion(completion, { emitOutput, printLine });\n\t\t\t}\n\n\t\t\treturn emitCompletion(\n\t\t\t\tbuildAddDryRunPayload({\n\t\t\t\t\tcompletion,\n\t\t\t\t\tfileOperations: simulated!.fileOperations,\n\t\t\t\t}),\n\t\t\t\t{ emitOutput, printLine },\n\t\t\t);\n\t\t}\n\n\t\tif (kind === \"rest-resource\") {\n\t\t\tif (!name) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"`wp-typia add rest-resource` requires <name>. Usage: wp-typia add rest-resource <name> [--namespace <vendor/v1>] [--methods <list,read,create>].\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst methods = readOptionalStringFlag(flags, \"methods\");\n\t\t\tconst namespace = readOptionalStringFlag(flags, \"namespace\");\n\t\t\tconst simulated = dryRun\n\t\t\t\t? await simulateWorkspaceAddDryRun({\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\texecute: (simulatedCwd) =>\n\t\t\t\t\t\t\taddRuntime.runAddRestResourceCommand({\n\t\t\t\t\t\t\t\tcwd: simulatedCwd,\n\t\t\t\t\t\t\t\tmethods,\n\t\t\t\t\t\t\t\tnamespace,\n\t\t\t\t\t\t\t\trestResourceName: name,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t})\n\t\t\t\t: null;\n\t\t\tconst result =\n\t\t\t\tsimulated?.result ??\n\t\t\t\t(await addRuntime.runAddRestResourceCommand({\n\t\t\t\t\tcwd,\n\t\t\t\t\tmethods,\n\t\t\t\t\tnamespace,\n\t\t\t\t\trestResourceName: name,\n\t\t\t\t}));\n\t\t\tconst completion = buildAddCompletionPayload({\n\t\t\t\tkind: \"rest-resource\",\n\t\t\t\tprojectDir: result.projectDir,\n\t\t\t\tvalues: {\n\t\t\t\t\tmethods: result.methods.join(\", \"),\n\t\t\t\t\tnamespace: result.namespace,\n\t\t\t\t\trestResourceSlug: result.restResourceSlug,\n\t\t\t\t},\n\t\t\t});\n\t\t\tif (!dryRun) {\n\t\t\t\treturn emitCompletion(completion, { emitOutput, printLine });\n\t\t\t}\n\n\t\t\treturn emitCompletion(\n\t\t\t\tbuildAddDryRunPayload({\n\t\t\t\t\tcompletion,\n\t\t\t\t\tfileOperations: simulated!.fileOperations,\n\t\t\t\t}),\n\t\t\t\t{ emitOutput, printLine },\n\t\t\t);\n\t\t}\n\n\t\tif (kind === \"editor-plugin\") {\n\t\t\tif (!name) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"`wp-typia add editor-plugin` requires <name>. Usage: wp-typia add editor-plugin <name> [--slot <PluginSidebar>].\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst slot = readOptionalStringFlag(flags, \"slot\");\n\t\t\tconst simulated = dryRun\n\t\t\t\t? await simulateWorkspaceAddDryRun({\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\texecute: (simulatedCwd) =>\n\t\t\t\t\t\t\taddRuntime.runAddEditorPluginCommand({\n\t\t\t\t\t\t\t\tcwd: simulatedCwd,\n\t\t\t\t\t\t\t\teditorPluginName: name,\n\t\t\t\t\t\t\t\tslot,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t})\n\t\t\t\t: null;\n\t\t\tconst result =\n\t\t\t\tsimulated?.result ??\n\t\t\t\t(await addRuntime.runAddEditorPluginCommand({\n\t\t\t\t\tcwd,\n\t\t\t\t\teditorPluginName: name,\n\t\t\t\t\tslot,\n\t\t\t\t}));\n\t\t\tconst completion = buildAddCompletionPayload({\n\t\t\t\tkind: \"editor-plugin\",\n\t\t\t\tprojectDir: result.projectDir,\n\t\t\t\tvalues: {\n\t\t\t\t\teditorPluginSlug: result.editorPluginSlug,\n\t\t\t\t\tslot: result.slot,\n\t\t\t\t},\n\t\t\t});\n\t\t\tif (!dryRun) {\n\t\t\t\treturn emitCompletion(completion, { emitOutput, printLine });\n\t\t\t}\n\n\t\t\treturn emitCompletion(\n\t\t\t\tbuildAddDryRunPayload({\n\t\t\t\t\tcompletion,\n\t\t\t\t\tfileOperations: simulated!.fileOperations,\n\t\t\t\t}),\n\t\t\t\t{ emitOutput, printLine },\n\t\t\t);\n\t\t}\n\n\t\tif (kind === \"hooked-block\") {\n\t\t\tif (!name) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"`wp-typia add hooked-block` requires <block-slug>. Usage: wp-typia add hooked-block <block-slug> --anchor <anchor-block-name> --position <before|after|firstChild|lastChild>.\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst anchorBlockName = readOptionalStringFlag(flags, \"anchor\");\n\t\t\tif (!anchorBlockName) {\n\t\t\t\tthrow new Error(\"`wp-typia add hooked-block` requires --anchor <anchor-block-name>.\");\n\t\t\t}\n\n\t\t\tconst position = readOptionalStringFlag(flags, \"position\");\n\t\t\tif (!position) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"`wp-typia add hooked-block` requires --position <before|after|firstChild|lastChild>.\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst simulated = dryRun\n\t\t\t\t? await simulateWorkspaceAddDryRun({\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\texecute: (simulatedCwd) =>\n\t\t\t\t\t\t\taddRuntime.runAddHookedBlockCommand({\n\t\t\t\t\t\t\t\tanchorBlockName,\n\t\t\t\t\t\t\t\tblockName: name,\n\t\t\t\t\t\t\t\tcwd: simulatedCwd,\n\t\t\t\t\t\t\t\tposition,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t})\n\t\t\t\t: null;\n\t\t\tconst result =\n\t\t\t\tsimulated?.result ??\n\t\t\t\t(await addRuntime.runAddHookedBlockCommand({\n\t\t\t\t\tanchorBlockName,\n\t\t\t\t\tblockName: name,\n\t\t\t\t\tcwd,\n\t\t\t\t\tposition,\n\t\t\t\t}));\n\t\t\tconst completion = buildAddCompletionPayload({\n\t\t\t\tkind: \"hooked-block\",\n\t\t\t\tprojectDir: result.projectDir,\n\t\t\t\tvalues: {\n\t\t\t\t\tanchorBlockName: result.anchorBlockName,\n\t\t\t\t\tblockSlug: result.blockSlug,\n\t\t\t\t\tposition: result.position,\n\t\t\t\t},\n\t\t\t});\n\t\t\tif (!dryRun) {\n\t\t\t\treturn emitCompletion(completion, { emitOutput, printLine });\n\t\t\t}\n\n\t\t\treturn emitCompletion(\n\t\t\t\tbuildAddDryRunPayload({\n\t\t\t\t\tcompletion,\n\t\t\t\t\tfileOperations: simulated!.fileOperations,\n\t\t\t\t}),\n\t\t\t\t{ emitOutput, printLine },\n\t\t\t);\n\t\t}\n\n\t\tif (kind !== \"block\") {\n\t\t\tthrow new Error(\n\t\t\t\t`Unknown add kind \"${kind}\". Expected one of: block, variation, pattern, binding-source, rest-resource, editor-plugin, hooked-block.`,\n\t\t\t);\n\t\t}\n\n\t\tif (!name) {\n\t\t\tthrow new Error(\n\t\t\t\t\"`wp-typia add block` requires <name>. Usage: wp-typia add block <name> --template <basic|interactivity|persistence|compound>\",\n\t\t\t);\n\t\t}\n\n\t\tif (!flags.template) {\n\t\t\tthrow new Error(\n\t\t\t\t\"`wp-typia add block` requires --template <basic|interactivity|persistence|compound>.\",\n\t\t\t);\n\t\t}\n\n\t\tconst externalLayerId = readOptionalStringFlag(flags, \"external-layer-id\");\n\t\tconst externalLayerSource = readOptionalStringFlag(flags, \"external-layer-source\");\n\t\tconst shouldPromptForLayerSelection =\n\t\t\tBoolean(externalLayerSource) &&\n\t\t\t!Boolean(externalLayerId) &&\n\t\t\t(interactive ?? (Boolean(process.stdin.isTTY) && Boolean(process.stdout.isTTY)));\n\t\tconst promptRuntime = shouldPromptForLayerSelection\n\t\t\t? await loadCliPromptRuntime()\n\t\t\t: undefined;\n\t\tactivePrompt = shouldPromptForLayerSelection\n\t\t\t? (prompt ?? promptRuntime?.createReadlinePrompt())\n\t\t\t: undefined;\n\t\tconst selectPrompt = activePrompt;\n\n\t\tconst alternateRenderTargets = readOptionalStringFlag(\n\t\t\tflags,\n\t\t\t\"alternate-render-targets\",\n\t\t);\n\t\tconst dataStorageMode = readOptionalStringFlag(flags, \"data-storage\");\n\t\tconst innerBlocksPreset = readOptionalStringFlag(flags, \"inner-blocks-preset\");\n\t\tconst persistencePolicy = readOptionalStringFlag(flags, \"persistence-policy\");\n\t\tconst resolvedTemplateId = readOptionalStringFlag(flags, \"template\") as\n\t\t\t| \"basic\"\n\t\t\t| \"interactivity\"\n\t\t\t| \"persistence\"\n\t\t\t| \"compound\";\n\n\t\tconst simulated = dryRun\n\t\t\t? await simulateWorkspaceAddDryRun({\n\t\t\t\t\tcwd,\n\t\t\t\t\texecute: (simulatedCwd) =>\n\t\t\t\t\t\taddRuntime.runAddBlockCommand({\n\t\t\t\t\t\t\talternateRenderTargets,\n\t\t\t\t\t\t\tblockName: name,\n\t\t\t\t\t\t\tcwd: simulatedCwd,\n\t\t\t\t\t\t\tdataStorageMode,\n\t\t\t\t\t\t\texternalLayerId,\n\t\t\t\t\t\t\texternalLayerSource,\n\t\t\t\t\t\t\tinnerBlocksPreset,\n\t\t\t\t\t\t\tpersistencePolicy,\n\t\t\t\t\t\t\tselectExternalLayerId: selectPrompt\n\t\t\t\t\t\t\t\t? (options) =>\n\t\t\t\t\t\t\t\t\t\tselectPrompt.select(\n\t\t\t\t\t\t\t\t\t\t\t\"Select an external layer\",\n\t\t\t\t\t\t\t\t\t\t\ttoExternalLayerPromptOptions(options),\n\t\t\t\t\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\ttemplateId: resolvedTemplateId,\n\t\t\t\t\t\t}),\n\t\t\t\t})\n\t\t\t: null;\n\t\tconst result =\n\t\t\tsimulated?.result ??\n\t\t\t(await addRuntime.runAddBlockCommand({\n\t\t\t\talternateRenderTargets,\n\t\t\t\tblockName: name,\n\t\t\t\tcwd,\n\t\t\t\tdataStorageMode,\n\t\t\t\texternalLayerId,\n\t\t\t\texternalLayerSource,\n\t\t\t\tinnerBlocksPreset,\n\t\t\t\tpersistencePolicy,\n\t\t\t\tselectExternalLayerId: selectPrompt\n\t\t\t\t\t? (options) =>\n\t\t\t\t\t\t\tselectPrompt.select(\n\t\t\t\t\t\t\t\t\"Select an external layer\",\n\t\t\t\t\t\t\t\ttoExternalLayerPromptOptions(options),\n\t\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t)\n\t\t\t\t\t: undefined,\n\t\t\t\ttemplateId: resolvedTemplateId,\n\t\t\t}));\n\n\t\tconst completion = buildAddCompletionPayload({\n\t\t\tkind: \"block\",\n\t\t\tprojectDir: result.projectDir,\n\t\t\tvalues: {\n\t\t\t\tblockSlugs: result.blockSlugs.join(\", \"),\n\t\t\t\ttemplateId: result.templateId,\n\t\t\t},\n\t\t\twarnings: result.warnings,\n\t\t});\n\t\tif (!dryRun) {\n\t\t\treturn emitCompletion(completion, { emitOutput, printLine, warnLine });\n\t\t}\n\n\t\treturn emitCompletion(\n\t\t\tbuildAddDryRunPayload({\n\t\t\t\tcompletion,\n\t\t\t\tfileOperations: simulated!.fileOperations,\n\t\t\t}),\n\t\t\t{ emitOutput, printLine, warnLine },\n\t\t);\n\t} catch (error) {\n\t\tif (!shouldWrapCliCommandError({ emitOutput })) {\n\t\t\tthrow error;\n\t\t}\n\t\tthrow await wrapCliCommandError(\"add\", error);\n\t} finally {\n\t\tif (activePrompt && activePrompt !== prompt) {\n\t\t\tactivePrompt.close();\n\t\t}\n\t}\n}\n\nexport async function executeTemplatesCommand(\n\t{ flags }: TemplatesExecutionInput,\n\tprintLine: PrintLine = console.log,\n): Promise<void> {\n\tconst {\n\t\tformatTemplateDetails,\n\t\tformatTemplateFeatures,\n\t\tformatTemplateSummary,\n\t\tgetTemplateById,\n\t\tlistTemplates,\n\t} = await loadCliTemplatesRuntime();\n\tconst subcommand = flags.subcommand ?? \"list\";\n\n\tif (subcommand === \"list\") {\n\t\tfor (const template of listTemplates()) {\n\t\t\tprintBlock(\n\t\t\t\t[formatTemplateSummary(template), formatTemplateFeatures(template)],\n\t\t\t\tprintLine,\n\t\t\t);\n\t\t}\n\t\treturn;\n\t}\n\n\tif (subcommand === \"inspect\") {\n\t\tif (!flags.id) {\n\t\t\tthrow new Error(\"`wp-typia templates inspect` requires <template-id>.\");\n\t\t}\n\t\tconst template = getTemplateById(flags.id);\n\t\tif (!template) {\n\t\t\tthrow new Error(`Unknown template \"${flags.id}\".`);\n\t\t}\n\t\tprintBlock(\n\t\t\t[\n\t\t\t\tformatTemplateSummary(template),\n\t\t\t\tformatTemplateFeatures(template),\n\t\t\t\tformatTemplateDetails(template),\n\t\t\t],\n\t\t\tprintLine,\n\t\t);\n\t\treturn;\n\t}\n\n\tthrow new Error(`Unknown templates subcommand \"${subcommand}\". Expected list or inspect.`);\n}\n\nexport async function executeDoctorCommand(cwd: string): Promise<void> {\n\ttry {\n\t\tconst { runDoctor } = await loadCliDoctorRuntime();\n\t\tawait runDoctor(cwd);\n\t} catch (error) {\n\t\tthrow await wrapCliCommandError(\"doctor\", error);\n\t}\n}\n\nexport async function loadAddWorkspaceBlockOptions(cwd: string) {\n\tconst { tryResolveWorkspaceProject } = await loadWorkspaceProjectRuntime();\n\tconst workspace = tryResolveWorkspaceProject(cwd);\n\tif (!workspace) {\n\t\treturn [];\n\t}\n\n\tconst { getWorkspaceBlockSelectOptions } = await loadCliAddRuntime();\n\treturn getWorkspaceBlockSelectOptions(workspace.projectDir);\n}\n\nexport async function executeMigrateCommand({\n\tcommand,\n\tcwd,\n\tflags,\n\tprompt,\n\trenderLine,\n}: MigrateExecutionInput): Promise<AlternateBufferCompletionPayload | void> {\n\tconst { formatMigrationHelpText, parseMigrationArgs, runMigrationCommand } =\n\t\tawait loadMigrationsRuntime();\n\tif (!command) {\n\t\tconsole.log(formatMigrationHelpText());\n\t\treturn;\n\t}\n\n\ttry {\n\t\tconst argv = [command];\n\t\tpushFlag(argv, \"all\", flags.all);\n\t\tpushFlag(argv, \"force\", flags.force);\n\t\tpushFlag(\n\t\t\targv,\n\t\t\t\"current-migration-version\",\n\t\t\treadOptionalLooseStringFlag(flags, \"current-migration-version\"),\n\t\t);\n\t\tpushFlag(argv, \"migration-version\", readOptionalLooseStringFlag(flags, \"migration-version\"));\n\t\tpushFlag(\n\t\t\targv,\n\t\t\t\"from-migration-version\",\n\t\t\treadOptionalLooseStringFlag(flags, \"from-migration-version\"),\n\t\t);\n\t\tpushFlag(\n\t\t\targv,\n\t\t\t\"to-migration-version\",\n\t\t\treadOptionalLooseStringFlag(flags, \"to-migration-version\"),\n\t\t);\n\t\tpushFlag(argv, \"iterations\", readOptionalLooseStringFlag(flags, \"iterations\"));\n\t\tpushFlag(argv, \"seed\", readOptionalLooseStringFlag(flags, \"seed\"));\n\n\t\tconst parsed = parseMigrationArgs(argv);\n\t\tconst lines: string[] | null = renderLine ? [] : null;\n\t\tconst captureLine = (line: string) => {\n\t\t\tlines?.push(line);\n\t\t\tif (renderLine) {\n\t\t\t\trenderLine(line);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconsole.log(line);\n\t\t};\n\t\tconst result = await runMigrationCommand(parsed, cwd, {\n\t\t\tprompt,\n\t\t\trenderLine: captureLine,\n\t\t});\n\t\tif (renderLine) {\n\t\t\treturn result && typeof result === \"object\" && \"cancelled\" in result && result.cancelled === true\n\t\t\t\t\t? undefined\n\t\t\t\t\t: buildMigrationCompletionPayload({\n\t\t\t\t\t\tcommand: parsed.command ?? \"plan\",\n\t\t\t\t\t\tlines: lines ?? [],\n\t\t\t\t\t});\n\t\t}\n\n\t\tif (result && typeof result === \"object\" && \"cancelled\" in result && result.cancelled === true) {\n\t\t\treturn;\n\t\t}\n\t} catch (error) {\n\t\tif (!shouldWrapCliCommandError({ renderLine })) {\n\t\t\tthrow error;\n\t\t}\n\t\tthrow await wrapCliCommandError(\"migrate\", error);\n\t}\n}\n\nexport async function listTemplatesForRuntime() {\n\tconst { listTemplates } = await loadCliTemplatesRuntime();\n\treturn listTemplates();\n}\n",
13
- "import path from 'node:path'\nimport {\n ADD_OPTION_METADATA,\n collectOptionNamesByType,\n CREATE_OPTION_METADATA,\n GLOBAL_OPTION_METADATA,\n MIGRATE_OPTION_METADATA,\n TEMPLATES_OPTION_METADATA,\n} from './command-option-metadata'\n\nexport const WP_TYPIA_CANONICAL_CREATE_USAGE = 'wp-typia create <project-dir>';\nexport const WP_TYPIA_POSITIONAL_ALIAS_USAGE = 'wp-typia <project-dir>';\nexport const WP_TYPIA_CANONICAL_MIGRATE_USAGE = 'wp-typia migrate <subcommand>';\nexport const WP_TYPIA_DEPRECATED_MIGRATIONS_USAGE =\n 'wp-typia migrations <subcommand>';\nexport const WP_TYPIA_BUNLI_MIGRATION_DOC =\n 'https://imjlk.github.io/wp-typia/maintainers/bunli-cli-migration/';\n\nexport const WP_TYPIA_RESERVED_TOP_LEVEL_COMMAND_NAMES = [\n 'create',\n 'sync',\n 'add',\n 'migrate',\n 'templates',\n 'doctor',\n 'mcp',\n 'help',\n 'version',\n 'skills',\n 'completions',\n 'complete',\n] as const;\n\nexport const WP_TYPIA_TOP_LEVEL_COMMAND_NAMES = [\n 'create',\n 'sync',\n 'add',\n 'migrate',\n 'templates',\n 'doctor',\n 'mcp',\n] as const;\n\nconst STRING_OPTION_NAMES_BY_COMMAND = {\n add: new Set(collectOptionNamesByType(ADD_OPTION_METADATA, 'string')),\n create: new Set(collectOptionNamesByType(CREATE_OPTION_METADATA, 'string')),\n migrate: new Set(collectOptionNamesByType(MIGRATE_OPTION_METADATA, 'string')),\n templates: new Set(collectOptionNamesByType(TEMPLATES_OPTION_METADATA, 'string')),\n} as const;\n\nconst GLOBAL_STRING_OPTION_NAMES = new Set(\n collectOptionNamesByType(GLOBAL_OPTION_METADATA, 'string'),\n);\n\nconst SHORT_OPTION_NAMES_WITH_VALUES = new Set<string>(\n Object.values({\n ...ADD_OPTION_METADATA,\n ...GLOBAL_OPTION_METADATA,\n ...CREATE_OPTION_METADATA,\n ...MIGRATE_OPTION_METADATA,\n ...TEMPLATES_OPTION_METADATA,\n })\n .filter((option) => option.type === 'string')\n .flatMap((option) =>\n 'short' in option && typeof option.short === 'string' ? [option.short] : [],\n ),\n);\n\nfunction isLongOptionValueConsumer(optionName: string): boolean {\n if (GLOBAL_STRING_OPTION_NAMES.has(optionName)) {\n return true;\n }\n\n return Object.values(STRING_OPTION_NAMES_BY_COMMAND).some((optionNames) =>\n optionNames.has(optionName as never),\n );\n}\n\nfunction findFirstPositionalIndex(argv: string[]): number {\n const positionalIndexes = collectPositionalIndexes(argv);\n return positionalIndexes[0] ?? -1;\n}\n\nfunction collectPositionalIndexes(argv: string[]): number[] {\n const positionalIndexes: number[] = [];\n\n for (let index = 0; index < argv.length; index += 1) {\n const arg = argv[index];\n if (arg === '--') {\n for (let restIndex = index + 1; restIndex < argv.length; restIndex += 1) {\n positionalIndexes.push(restIndex);\n }\n break;\n }\n if (!arg.startsWith('-') || arg === '-') {\n positionalIndexes.push(index);\n continue;\n }\n if (arg.startsWith('--')) {\n if (arg.includes('=')) {\n continue;\n }\n if (isLongOptionValueConsumer(arg.slice(2))) {\n index += 1;\n }\n continue;\n }\n if (arg.length === 2 && SHORT_OPTION_NAMES_WITH_VALUES.has(arg.slice(1))) {\n index += 1;\n }\n }\n\n return positionalIndexes;\n}\n\nexport const WP_TYPIA_FUTURE_COMMAND_TREE = [\n {\n description: 'Scaffold a new wp-typia project.',\n name: 'create',\n },\n {\n description: 'Run the common generated-project sync workflow.',\n name: 'sync',\n },\n {\n description: 'Extend an official wp-typia workspace.',\n name: 'add',\n subcommands: [\n 'block',\n 'variation',\n 'pattern',\n 'binding-source',\n 'rest-resource',\n 'editor-plugin',\n 'hooked-block',\n ],\n },\n {\n description: 'Run migration workflows.',\n name: 'migrate',\n subcommands: [\n 'init',\n 'snapshot',\n 'diff',\n 'scaffold',\n 'plan',\n 'wizard',\n 'verify',\n 'doctor',\n 'fixtures',\n 'fuzz',\n ],\n },\n {\n description: 'Inspect scaffold templates.',\n name: 'templates',\n subcommands: ['list', 'inspect'],\n },\n {\n description: 'Run repository and project diagnostics.',\n name: 'doctor',\n },\n {\n description: 'Inspect or sync schema-driven MCP metadata.',\n name: 'mcp',\n subcommands: ['list', 'sync'],\n },\n] as const;\n\nexport function isReservedTopLevelCommandName(value: string): boolean {\n return WP_TYPIA_RESERVED_TOP_LEVEL_COMMAND_NAMES.includes(\n value as (typeof WP_TYPIA_RESERVED_TOP_LEVEL_COMMAND_NAMES)[number],\n );\n}\n\nfunction assertStringOptionValues(argv: string[]): void {\n const firstPositionalIndex = findFirstPositionalIndex(argv);\n if (firstPositionalIndex === -1) {\n return;\n }\n\n const commandName = argv[\n firstPositionalIndex\n ] as keyof typeof STRING_OPTION_NAMES_BY_COMMAND;\n const stringOptionNames = new Set<string>(GLOBAL_STRING_OPTION_NAMES);\n for (const optionName of STRING_OPTION_NAMES_BY_COMMAND[commandName] ?? []) {\n stringOptionNames.add(optionName);\n }\n\n for (let index = firstPositionalIndex + 1; index < argv.length; index += 1) {\n const arg = argv[index];\n if (arg === '--') {\n break;\n }\n if (arg.length === 2 && arg.startsWith('-')) {\n if (SHORT_OPTION_NAMES_WITH_VALUES.has(arg.slice(1))) {\n const next = argv[index + 1];\n if (!next || next.startsWith('-')) {\n throw new Error(`\\`${arg}\\` requires a value.`);\n }\n index += 1;\n }\n continue;\n }\n if (!arg.startsWith('--')) {\n continue;\n }\n\n const [rawName, inlineValue] = arg.slice(2).split('=', 2);\n if (!stringOptionNames.has(rawName)) {\n continue;\n }\n\n if (arg.includes('=')) {\n if (!inlineValue) {\n throw new Error(`\\`--${rawName}\\` requires a value.`);\n }\n continue;\n }\n\n const next = argv[index + 1];\n if (!next || next.startsWith('-')) {\n throw new Error(`\\`--${rawName}\\` requires a value.`);\n }\n index += 1;\n }\n}\n\nfunction isWindowsDrivePath(value: string): boolean {\n return /^[A-Za-z]:([\\\\/]|$)/.test(value);\n}\n\nfunction looksLikeStructuredProjectInput(value: string): boolean {\n if (value.includes('#')) {\n return true;\n }\n\n if (!isWindowsDrivePath(value) && /^[A-Za-z][A-Za-z0-9+.-]*:/u.test(value)) {\n return true;\n }\n\n return value.startsWith('@') && value.includes('/');\n}\n\nfunction assertPositionalAliasProjectDir(projectDir: string): void {\n const normalizedProjectDir =\n path.normalize(projectDir).replace(/[\\\\/]+$/u, '') || path.normalize(projectDir);\n if (normalizedProjectDir === '.' || normalizedProjectDir === '..') {\n throw new Error(\n `The positional alias does not scaffold into \\`${projectDir}\\`. Use \\`${WP_TYPIA_CANONICAL_CREATE_USAGE}\\` with an explicit child directory instead.`,\n );\n }\n\n if (looksLikeStructuredProjectInput(projectDir)) {\n throw new Error(\n `The positional alias only accepts unambiguous local project directories. Use \\`${WP_TYPIA_CANONICAL_CREATE_USAGE}\\` for \\`${projectDir}\\`.`,\n );\n }\n}\n\nexport function normalizeWpTypiaArgv(argv: string[]): string[] {\n const positionalIndexes = collectPositionalIndexes(argv);\n const firstPositionalIndex = positionalIndexes[0] ?? -1;\n if (firstPositionalIndex === -1) {\n return argv;\n }\n\n const firstPositional = argv[firstPositionalIndex];\n if (!firstPositional) {\n return argv;\n }\n\n if (firstPositional === 'migrations') {\n throw new Error(\n '`wp-typia migrations` was removed in favor of `wp-typia migrate`. Use `wp-typia migrate <subcommand>` instead.',\n );\n }\n\n if (isReservedTopLevelCommandName(firstPositional)) {\n assertStringOptionValues(argv);\n return argv;\n }\n\n if (positionalIndexes.length > 1) {\n const extraPositionals = positionalIndexes\n .slice(1)\n .map((index) => argv[index])\n .filter(\n (value): value is string =>\n typeof value === 'string' && value.length > 0,\n );\n\n throw new Error(\n `The positional alias only accepts a single project directory. Use \\`${WP_TYPIA_CANONICAL_CREATE_USAGE}\\` for scaffold invocations with additional positional arguments, or check the command spelling if you meant another top-level command. Extra positional arguments: ${extraPositionals.map((value) => `\\`${value}\\``).join(', ')}.`,\n );\n }\n\n assertPositionalAliasProjectDir(firstPositional);\n\n const normalizedArgv = [\n ...argv.slice(0, firstPositionalIndex),\n 'create',\n ...argv.slice(firstPositionalIndex),\n ];\n assertStringOptionValues(normalizedArgv);\n return normalizedArgv;\n}\n"
9
+ "import fs from \"node:fs\";\nimport { promises as fsp } from \"node:fs\";\nimport path from \"node:path\";\n\nimport { createManagedTempRoot } from \"@wp-typia/project-tools/temp-roots\";\n\ntype WorkspaceFileOperation = `delete ${string}` | `update ${string}` | `write ${string}`;\n\nconst SKIPPED_COPY_ROOT_ENTRIES = new Set([\".git\", \"node_modules\"]);\nconst SKIPPED_COMPARE_ROOT_ENTRIES = new Set([\n\t\".git\",\n\t\".pnp.cjs\",\n\t\".pnp.loader.mjs\",\n\t\"node_modules\",\n]);\n\nasync function copyWorkspaceProject(sourceDir: string, targetDir: string): Promise<void> {\n\tawait fsp.cp(sourceDir, targetDir, {\n\t\tfilter: (sourcePath) => {\n\t\t\tconst relativePath = path.relative(sourceDir, sourcePath);\n\t\t\tif (relativePath === \"\") {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst [rootEntry] = relativePath.split(path.sep);\n\t\t\treturn !SKIPPED_COPY_ROOT_ENTRIES.has(rootEntry ?? \"\");\n\t\t},\n\t\trecursive: true,\n\t});\n}\n\nfunction ensureWorkspaceInstallMarkers(sourceDir: string, targetDir: string): void {\n\tconst sourceNodeModules = path.join(sourceDir, \"node_modules\");\n\tif (fs.existsSync(sourceNodeModules)) {\n\t\tfs.symlinkSync(sourceNodeModules, path.join(targetDir, \"node_modules\"), \"junction\");\n\t}\n\n\tfor (const marker of [\".pnp.cjs\", \".pnp.loader.mjs\"] as const) {\n\t\tconst sourceMarker = path.join(sourceDir, marker);\n\t\tif (!fs.existsSync(sourceMarker)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst targetMarker = path.join(targetDir, marker);\n\t\ttry {\n\t\t\tfs.symlinkSync(sourceMarker, targetMarker);\n\t\t} catch {\n\t\t\ttry {\n\t\t\t\tfs.linkSync(sourceMarker, targetMarker);\n\t\t\t} catch {\n\t\t\t\tfs.copyFileSync(sourceMarker, targetMarker);\n\t\t\t}\n\t\t}\n\t}\n}\n\nasync function listWorkspaceFiles(rootDir: string): Promise<Map<string, Buffer>> {\n\tconst files = new Map<string, Buffer>();\n\n\tasync function visit(currentDir: string): Promise<void> {\n\t\tconst entries = await fsp.readdir(currentDir, { withFileTypes: true });\n\t\tfor (const entry of entries) {\n\t\t\tconst absolutePath = path.join(currentDir, entry.name);\n\t\t\tconst relativePath = path.relative(rootDir, absolutePath);\n\t\t\tconst [rootEntry] = relativePath.split(path.sep);\n\t\t\tif (SKIPPED_COMPARE_ROOT_ENTRIES.has(rootEntry ?? \"\")) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (entry.isDirectory()) {\n\t\t\t\tawait visit(absolutePath);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (!entry.isFile()) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tfiles.set(\n\t\t\t\trelativePath.replace(path.sep === \"\\\\\" ? /\\\\/gu : /\\//gu, \"/\"),\n\t\t\t\tawait fsp.readFile(absolutePath),\n\t\t\t);\n\t\t}\n\t}\n\n\tawait visit(rootDir);\n\treturn files;\n}\n\nfunction compareStrings(left: string, right: string): number {\n\tif (left < right) {\n\t\treturn -1;\n\t}\n\tif (left > right) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n\nasync function collectWorkspaceFileOperations(\n\tsourceDir: string,\n\tsimulatedDir: string,\n): Promise<WorkspaceFileOperation[]> {\n\tconst [sourceFiles, simulatedFiles] = await Promise.all([\n\t\tlistWorkspaceFiles(sourceDir),\n\t\tlistWorkspaceFiles(simulatedDir),\n\t]);\n\tconst operations: WorkspaceFileOperation[] = [];\n\n\tfor (const [relativePath, simulatedSource] of simulatedFiles) {\n\t\tconst originalSource = sourceFiles.get(relativePath);\n\t\tif (originalSource === undefined) {\n\t\t\toperations.push(`write ${relativePath}`);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!originalSource.equals(simulatedSource)) {\n\t\t\toperations.push(`update ${relativePath}`);\n\t\t}\n\t}\n\n\tfor (const relativePath of sourceFiles.keys()) {\n\t\tif (!simulatedFiles.has(relativePath)) {\n\t\t\toperations.push(`delete ${relativePath}`);\n\t\t}\n\t}\n\n\treturn operations.sort(compareStrings);\n}\n\n/**\n * Runs a mutating workspace add command against a temporary clone and reports\n * the file operations that would be applied to the real workspace.\n *\n * @param options Workspace add dry-run options.\n * @returns The simulated command result plus normalized file operations.\n */\nexport async function simulateWorkspaceAddDryRun<T>({\n\tcwd,\n\texecute,\n}: {\n\tcwd: string;\n\texecute: (simulatedCwd: string) => Promise<T>;\n}): Promise<{\n\tfileOperations: WorkspaceFileOperation[];\n\tresult: T;\n}> {\n\tconst { resolveWorkspaceProject } = await import(\"@wp-typia/project-tools/workspace-project\");\n\tconst workspace = resolveWorkspaceProject(cwd);\n\tconst relativeCwd = path.relative(workspace.projectDir, path.resolve(cwd));\n\tconst { path: tempRoot, cleanup } = await createManagedTempRoot(\n\t\t\"wp-typia-add-plan-\",\n\t);\n\tconst simulatedProjectDir = path.join(tempRoot, \"workspace\");\n\n\ttry {\n\t\tawait copyWorkspaceProject(workspace.projectDir, simulatedProjectDir);\n\t\tensureWorkspaceInstallMarkers(workspace.projectDir, simulatedProjectDir);\n\n\t\tconst simulatedCwd =\n\t\t\trelativeCwd.length > 0 ? path.join(simulatedProjectDir, relativeCwd) : simulatedProjectDir;\n\t\tconst result = await execute(simulatedCwd);\n\t\tconst fileOperations = await collectWorkspaceFileOperations(\n\t\t\tworkspace.projectDir,\n\t\t\tsimulatedProjectDir,\n\t\t);\n\n\t\treturn {\n\t\t\tfileOperations,\n\t\t\tresult,\n\t\t};\n\t} finally {\n\t\tawait cleanup();\n\t}\n}\n",
10
+ "import fs from \"node:fs\";\nimport path from \"node:path\";\n\nimport packageJson from \"../package.json\";\nimport { formatPackageExecCommand } from \"@wp-typia/project-tools/package-managers\";\nimport type { AlternateBufferCompletionPayload } from \"./ui/alternate-buffer-lifecycle\";\n\ntype PrintLine = (line: string) => void;\ntype PackageManagerId = \"bun\" | \"npm\" | \"pnpm\" | \"yarn\";\n\nexport type CreateProgressPayload = {\n\tdetail: string;\n\ttitle: string;\n};\n\ntype ExternalLayerSelectOption = {\n\tdescription?: string;\n\textends: string[];\n\tid: string;\n};\n\n/**\n * Prints a formatted alternate-buffer completion payload to the provided writers.\n *\n * @param payload Structured completion payload to render.\n * @param options Optional line printers for normal output and warnings.\n * @returns Nothing.\n */\nexport function printCompletionPayload(\n\tpayload: AlternateBufferCompletionPayload,\n\toptions: {\n\t\tprintLine?: PrintLine;\n\t\twarnLine?: PrintLine;\n\t} = {},\n): void {\n\tconst printLine = options.printLine ?? (console.log as PrintLine);\n\tconst warnLine = options.warnLine ?? printLine;\n\n\tfor (const line of payload.preambleLines ?? []) {\n\t\tprintLine(line);\n\t}\n\tfor (const warning of payload.warningLines ?? []) {\n\t\twarnLine(`⚠️ ${warning}`);\n\t}\n\n\tconst hasDetails =\n\t\t(payload.summaryLines?.length ?? 0) > 0 ||\n\t\t(payload.nextSteps?.length ?? 0) > 0 ||\n\t\t(payload.optionalLines?.length ?? 0) > 0 ||\n\t\tBoolean(payload.optionalNote);\n\tconst hasLeadingContext =\n\t\t(payload.preambleLines?.length ?? 0) > 0 ||\n\t\t(payload.warningLines?.length ?? 0) > 0;\n\n\tprintLine(hasLeadingContext && hasDetails ? `\\n${payload.title}` : payload.title);\n\tfor (const line of payload.summaryLines ?? []) {\n\t\tprintLine(line);\n\t}\n\tif ((payload.nextSteps?.length ?? 0) > 0) {\n\t\tprintLine(\"Next steps:\");\n\t\tfor (const step of payload.nextSteps ?? []) {\n\t\t\tprintLine(` ${step}`);\n\t\t}\n\t}\n\tif ((payload.optionalLines?.length ?? 0) > 0) {\n\t\tprintLine(`\\n${payload.optionalTitle ?? \"Optional:\"}`);\n\t\tfor (const step of payload.optionalLines ?? []) {\n\t\t\tprintLine(` ${step}`);\n\t\t}\n\t}\n\tif (payload.optionalNote) {\n\t\tprintLine(`Note: ${payload.optionalNote}`);\n\t}\n}\n\n/**\n * Formats a lightweight create-progress line for fallback CLI output.\n *\n * @param payload User-facing scaffold progress payload.\n * @returns A single readable status line.\n */\nexport function formatCreateProgressLine(payload: CreateProgressPayload): string {\n\treturn `⏳ ${payload.title}: ${payload.detail}`;\n}\n\n/**\n * Builds the completion payload shown after a create flow succeeds.\n *\n * @param flow Resolved create-flow data including onboarding steps and warnings.\n * @returns A structured alternate-buffer completion payload.\n */\nexport function buildCreateCompletionPayload(flow: {\n\tnextSteps: string[];\n\toptionalOnboarding: {\n\t\tnote: string;\n\t\tsteps: string[];\n\t};\n\tpackageManager: string;\n\tprojectDir: string;\n\tresult: {\n\t\tselectedVariant?: string | null;\n\t\tvariables: {\n\t\t\ttitle: string;\n\t\t};\n\t\twarnings: string[];\n\t};\n}): AlternateBufferCompletionPayload {\n\tconst verificationSteps = [\n\t\tformatPackageExecCommand(\n\t\t\tflow.packageManager as \"bun\" | \"npm\" | \"pnpm\" | \"yarn\",\n\t\t\t`wp-typia@${packageJson.version}`,\n\t\t\t\"doctor\",\n\t\t),\n\t\t...flow.optionalOnboarding.steps,\n\t];\n\n\treturn {\n\t\tnextSteps: flow.nextSteps,\n\t\toptionalLines: verificationSteps,\n\t\toptionalNote: flow.optionalOnboarding.note,\n\t\toptionalTitle: \"Verify and sync (optional):\",\n\t\tpreambleLines: flow.result.selectedVariant\n\t\t\t? [`Template variant: ${flow.result.selectedVariant}`]\n\t\t\t: undefined,\n\t\tsummaryLines: [`Project directory: ${flow.projectDir}`],\n\t\ttitle: `✅ Created ${flow.result.variables.title} in ${flow.projectDir}`,\n\t\twarningLines: flow.result.warnings,\n\t};\n}\n\n/**\n * Builds the completion payload shown after a dry-run create flow succeeds.\n *\n * @param flow Resolved create-flow data including the non-mutating scaffold plan.\n * @returns A structured alternate-buffer completion payload.\n */\nexport function buildCreateDryRunPayload(flow: {\n\tpackageManager: string;\n\tplan: {\n\t\tdependencyInstall: \"skipped-by-flag\" | \"would-install\";\n\t\tfiles: string[];\n\t};\n\tprojectDir: string;\n\tresult: {\n\t\tselectedVariant?: string | null;\n\t\ttemplateId: string;\n\t\tvariables: {\n\t\t\ttitle: string;\n\t\t};\n\t\twarnings: string[];\n\t};\n}): AlternateBufferCompletionPayload {\n\tlet dependencyInstallLine: string;\n\tswitch (flow.plan.dependencyInstall) {\n\t\tcase \"skipped-by-flag\":\n\t\t\tdependencyInstallLine = \"Dependency install: already skipped via --no-install\";\n\t\t\tbreak;\n\t\tcase \"would-install\":\n\t\t\tdependencyInstallLine = \"Dependency install: would run during a real scaffold\";\n\t\t\tbreak;\n\t}\n\n\treturn {\n\t\toptionalLines: flow.plan.files.map((relativePath) => `write ${relativePath}`),\n\t\toptionalNote:\n\t\t\t\"No files were written because --dry-run was enabled. Re-run without --dry-run to materialize this scaffold.\",\n\t\toptionalTitle: `Planned files (${flow.plan.files.length}):`,\n\t\tpreambleLines: flow.result.selectedVariant\n\t\t\t? [`Template variant: ${flow.result.selectedVariant}`]\n\t\t\t: undefined,\n\t\tsummaryLines: [\n\t\t\t`Project directory: ${flow.projectDir}`,\n\t\t\t`Template: ${flow.result.templateId}`,\n\t\t\t`Package manager: ${flow.packageManager}`,\n\t\t\tdependencyInstallLine,\n\t\t],\n\t\ttitle: `🧪 Dry run for ${flow.result.variables.title} at ${flow.projectDir}`,\n\t\twarningLines: flow.result.warnings,\n\t};\n}\n\nfunction inferProjectPackageManager(projectDir: string): PackageManagerId {\n\ttry {\n\t\tconst packageJsonPath = path.join(projectDir, \"package.json\");\n\t\tif (fs.existsSync(packageJsonPath)) {\n\t\t\tconst manifest = JSON.parse(fs.readFileSync(packageJsonPath, \"utf8\")) as {\n\t\t\t\tpackageManager?: string;\n\t\t\t};\n\t\t\tif (manifest.packageManager?.startsWith(\"bun@\")) return \"bun\";\n\t\t\tif (manifest.packageManager?.startsWith(\"pnpm@\")) return \"pnpm\";\n\t\t\tif (manifest.packageManager?.startsWith(\"yarn@\")) return \"yarn\";\n\t\t\tif (manifest.packageManager?.startsWith(\"npm@\")) return \"npm\";\n\t\t}\n\t} catch {}\n\n\tif (\n\t\tfs.existsSync(path.join(projectDir, \"bun.lock\")) ||\n\t\tfs.existsSync(path.join(projectDir, \"bun.lockb\"))\n\t) {\n\t\treturn \"bun\";\n\t}\n\tif (fs.existsSync(path.join(projectDir, \"pnpm-lock.yaml\"))) {\n\t\treturn \"pnpm\";\n\t}\n\tif (\n\t\tfs.existsSync(path.join(projectDir, \"yarn.lock\")) ||\n\t\tfs.existsSync(path.join(projectDir, \".yarnrc.yml\"))\n\t) {\n\t\treturn \"yarn\";\n\t}\n\n\treturn \"npm\";\n}\n\n/**\n * Builds the completion payload shown after a migrate command succeeds.\n *\n * @param options Completed migrate command metadata plus rendered lines.\n * @returns A structured alternate-buffer completion payload.\n */\nexport function buildMigrationCompletionPayload(options: {\n\tcommand: string;\n\tlines: string[];\n}): AlternateBufferCompletionPayload {\n\tconst summaryLines = options.lines.filter((line) => line.trim().length > 0);\n\n\treturn {\n\t\tsummaryLines,\n\t\ttitle: `✅ Completed wp-typia migrate ${options.command}`,\n\t};\n}\n\n/**\n * Builds the completion payload shown after an add flow succeeds.\n *\n * @param options Add-flow kind plus normalized values to summarize.\n * @returns A structured alternate-buffer completion payload.\n */\nexport function buildAddCompletionPayload(options: {\n\tkind:\n\t\t| \"binding-source\"\n\t\t| \"block\"\n\t\t| \"editor-plugin\"\n\t\t| \"hooked-block\"\n\t\t| \"pattern\"\n\t\t| \"rest-resource\"\n\t\t| \"variation\";\n\tpackageManager?: PackageManagerId;\n\tprojectDir: string;\n\tvalues: Record<string, string>;\n\twarnings?: string[];\n}): AlternateBufferCompletionPayload {\n\tconst verificationLines = [\n\t\tformatPackageExecCommand(\n\t\t\toptions.packageManager ?? inferProjectPackageManager(options.projectDir),\n\t\t\t`wp-typia@${packageJson.version}`,\n\t\t\t\"doctor\",\n\t\t),\n\t];\n\tconst verificationNote =\n\t\t\"Run doctor via your package manager for a quick inventory and generated-artifact check after the add workflow.\";\n\n\tswitch (options.kind) {\n\t\tcase \"variation\":\n\t\t\treturn {\n\t\t\t\tnextSteps: [\n\t\t\t\t\t`Review src/blocks/${options.values.blockSlug}/variations/${options.values.variationSlug}.ts.`,\n\t\t\t\t\t\"Run your workspace build or dev command to pick up the new variation.\",\n\t\t\t\t],\n\t\t\t\toptionalLines: verificationLines,\n\t\t\t\toptionalNote: verificationNote,\n\t\t\t\toptionalTitle: \"Verify workspace health (optional):\",\n\t\t\t\tsummaryLines: [\n\t\t\t\t\t`Variation: ${options.values.variationSlug}`,\n\t\t\t\t\t`Target block: ${options.values.blockSlug}`,\n\t\t\t\t\t`Project directory: ${options.projectDir}`,\n\t\t\t\t],\n\t\t\t\ttitle: \"✅ Added workspace variation\",\n\t\t\t};\n\t\tcase \"pattern\":\n\t\t\treturn {\n\t\t\t\tnextSteps: [\n\t\t\t\t\t`Review src/patterns/${options.values.patternSlug}.php.`,\n\t\t\t\t\t\"Run your workspace build or dev command to verify the new pattern registration.\",\n\t\t\t\t],\n\t\t\t\toptionalLines: verificationLines,\n\t\t\t\toptionalNote: verificationNote,\n\t\t\t\toptionalTitle: \"Verify workspace health (optional):\",\n\t\t\t\tsummaryLines: [\n\t\t\t\t\t`Pattern: ${options.values.patternSlug}`,\n\t\t\t\t\t`Project directory: ${options.projectDir}`,\n\t\t\t\t],\n\t\t\t\ttitle: \"✅ Added workspace pattern\",\n\t\t\t};\n\t\tcase \"binding-source\":\n\t\t\treturn {\n\t\t\t\tnextSteps: [\n\t\t\t\t\t`Review src/bindings/${options.values.bindingSourceSlug}/server.php and src/bindings/${options.values.bindingSourceSlug}/editor.ts.`,\n\t\t\t\t\t\"Run your workspace build or dev command to verify the binding source hooks and editor registration.\",\n\t\t\t\t],\n\t\t\t\toptionalLines: verificationLines,\n\t\t\t\toptionalNote: verificationNote,\n\t\t\t\toptionalTitle: \"Verify workspace health (optional):\",\n\t\t\t\tsummaryLines: [\n\t\t\t\t\t`Binding source: ${options.values.bindingSourceSlug}`,\n\t\t\t\t\t`Project directory: ${options.projectDir}`,\n\t\t\t\t],\n\t\t\t\ttitle: \"✅ Added binding source\",\n\t\t\t};\n\t\tcase \"rest-resource\":\n\t\t\treturn {\n\t\t\t\tnextSteps: [\n\t\t\t\t\t`Review src/rest/${options.values.restResourceSlug}/ and inc/rest/${options.values.restResourceSlug}.php.`,\n\t\t\t\t\t\"Run your workspace build or dev command to verify the generated REST resource contract.\",\n\t\t\t\t],\n\t\t\t\toptionalLines: verificationLines,\n\t\t\t\toptionalNote: verificationNote,\n\t\t\t\toptionalTitle: \"Verify workspace health (optional):\",\n\t\t\t\tsummaryLines: [\n\t\t\t\t\t`REST resource: ${options.values.restResourceSlug}`,\n\t\t\t\t\t`Namespace: ${options.values.namespace}`,\n\t\t\t\t\t`Methods: ${options.values.methods}`,\n\t\t\t\t\t`Project directory: ${options.projectDir}`,\n\t\t\t\t],\n\t\t\t\ttitle: \"✅ Added plugin-level REST resource\",\n\t\t\t};\n\t\tcase \"editor-plugin\":\n\t\t\treturn {\n\t\t\t\tnextSteps: [\n\t\t\t\t\t`Review src/editor-plugins/${options.values.editorPluginSlug}/.`,\n\t\t\t\t\t\"Run your workspace build or dev command to verify the new editor plugin registration.\",\n\t\t\t\t],\n\t\t\t\toptionalLines: verificationLines,\n\t\t\t\toptionalNote: verificationNote,\n\t\t\t\toptionalTitle: \"Verify workspace health (optional):\",\n\t\t\t\tsummaryLines: [\n\t\t\t\t\t`Editor plugin: ${options.values.editorPluginSlug}`,\n\t\t\t\t\t`Slot: ${options.values.slot}`,\n\t\t\t\t\t`Project directory: ${options.projectDir}`,\n\t\t\t\t],\n\t\t\t\ttitle: \"✅ Added editor plugin\",\n\t\t\t};\n\t\tcase \"hooked-block\":\n\t\t\treturn {\n\t\t\t\tnextSteps: [\n\t\t\t\t\t`Review src/blocks/${options.values.blockSlug}/block.json for the new blockHooks entry.`,\n\t\t\t\t\t\"Run your workspace build or dev command to verify the updated hooked-block metadata.\",\n\t\t\t\t],\n\t\t\t\toptionalLines: verificationLines,\n\t\t\t\toptionalNote: verificationNote,\n\t\t\t\toptionalTitle: \"Verify workspace health (optional):\",\n\t\t\t\tsummaryLines: [\n\t\t\t\t\t`Block: ${options.values.blockSlug}`,\n\t\t\t\t\t`Anchor: ${options.values.anchorBlockName}`,\n\t\t\t\t\t`Position: ${options.values.position}`,\n\t\t\t\t\t`Project directory: ${options.projectDir}`,\n\t\t\t\t],\n\t\t\t\ttitle: \"✅ Added blockHooks metadata\",\n\t\t\t};\n\t\tdefault:\n\t\t\treturn {\n\t\t\t\tnextSteps: [\n\t\t\t\t\t\"Review the generated sources under src/blocks/ and the updated scripts/block-config.ts entry.\",\n\t\t\t\t\t\"Run your workspace build or dev command to verify the new scaffolded block family.\",\n\t\t\t\t],\n\t\t\t\toptionalLines: verificationLines,\n\t\t\t\toptionalNote: verificationNote,\n\t\t\t\toptionalTitle: \"Verify workspace health (optional):\",\n\t\t\t\tsummaryLines: [\n\t\t\t\t\t`Blocks: ${options.values.blockSlugs}`,\n\t\t\t\t\t`Template family: ${options.values.templateId}`,\n\t\t\t\t\t`Project directory: ${options.projectDir}`,\n\t\t\t\t],\n\t\t\t\ttitle: \"✅ Added workspace block\",\n\t\t\t\twarningLines: options.warnings,\n\t\t\t};\n\t}\n}\n\n/**\n * Builds the completion payload shown after a dry-run add flow succeeds.\n *\n * @param options Existing add completion metadata plus the planned file updates.\n * @returns A structured alternate-buffer completion payload.\n */\nexport function buildAddDryRunPayload(options: {\n\tcompletion: AlternateBufferCompletionPayload;\n\tfileOperations: string[];\n}): AlternateBufferCompletionPayload {\n\tconst normalizedTitle = options.completion.title.replace(/^✅\\s*Added\\s*/u, \"\");\n\n\treturn {\n\t\toptionalLines: options.fileOperations,\n\t\toptionalNote:\n\t\t\t\"No workspace files were changed because --dry-run was enabled. Re-run without --dry-run to apply this add command.\",\n\t\toptionalTitle: `Planned workspace updates (${options.fileOperations.length}):`,\n\t\tpreambleLines: options.completion.preambleLines,\n\t\tsummaryLines: options.completion.summaryLines,\n\t\ttitle: `🧪 Dry run for ${normalizedTitle || \"workspace add command\"}`,\n\t\twarningLines: options.completion.warningLines,\n\t};\n}\n\n/**\n * Prints a block of text lines using a shared line printer.\n *\n * @param lines Lines to print in order.\n * @param printLine Line printer to use.\n * @returns Nothing.\n */\nexport function printBlock(lines: string[], printLine: PrintLine): void {\n\tfor (const line of lines) {\n\t\tprintLine(line);\n\t}\n}\n\nfunction formatExternalLayerSelectHint(option: ExternalLayerSelectOption): string | undefined {\n\tconst details = [\n\t\toption.description,\n\t\toption.extends.length > 0 ? `extends ${option.extends.join(\", \")}` : undefined,\n\t].filter((value): value is string => typeof value === \"string\" && value.length > 0);\n\n\treturn details.length > 0 ? details.join(\" · \") : undefined;\n}\n\n/**\n * Converts external layer options into prompt-compatible select items.\n *\n * @param options External layer options returned by the block generator.\n * @returns Prompt select options with labels and hints.\n */\nexport function toExternalLayerPromptOptions(options: ExternalLayerSelectOption[]) {\n\treturn options.map((option) => ({\n\t\thint: formatExternalLayerSelectHint(option),\n\t\tlabel: option.id,\n\t\tvalue: option.id,\n\t}));\n}\n",
11
+ "type TtyLike = {\n\tisTTY?: boolean;\n};\n\ntype RuntimeCapabilityOptions = {\n\thasBunRuntime?: boolean;\n\tstdin?: TtyLike | null | undefined;\n\tstdout?: TtyLike | null | undefined;\n\tterm?: string | undefined;\n};\n\n/**\n * Detect whether the current runtime can safely prompt on an interactive terminal.\n */\nexport function isInteractiveTerminal({\n\tstdin = process.stdin,\n\tstdout = process.stdout,\n\tterm = process.env.TERM,\n}: RuntimeCapabilityOptions = {}): boolean {\n\treturn Boolean(stdin?.isTTY) && Boolean(stdout?.isTTY) && term !== \"dumb\";\n}\n\n/**\n * Detect whether the Bun-powered TUI runtime should be enabled for this process.\n */\nexport function supportsInteractiveTui(\n\toptions: RuntimeCapabilityOptions = {},\n): boolean {\n\tconst hasBunRuntime =\n\t\toptions.hasBunRuntime ?? typeof Bun !== \"undefined\";\n\treturn hasBunRuntime && isInteractiveTerminal(options);\n}\n",
12
+ "import { spawnSync } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\n\ntype PackageManagerId = \"bun\" | \"npm\" | \"pnpm\" | \"yarn\";\n\ntype SyncExecutionInput = {\n\tcheck?: boolean;\n\tcwd: string;\n};\n\ntype SyncProjectContext = {\n\tcwd: string;\n\tpackageJsonPath: string;\n\tpackageManager: PackageManagerId;\n\tscripts: Partial<Record<\"sync\" | \"sync-rest\" | \"sync-types\", string>>;\n};\n\nconst SYNC_INSTALL_MARKERS = [\"node_modules\", \".pnp.cjs\", \".pnp.loader.mjs\"] as const;\nconst LOCAL_SYNC_TOOL_PATTERN = /(^|[\\s;&|()])(?:tsx|wp-scripts)(?=($|[\\s;&|()]))/u;\n\nfunction formatRunScript(\n\tpackageManagerId: PackageManagerId,\n\tscriptName: string,\n\textraArgs = \"\",\n) {\n\tconst args = extraArgs.trim();\n\tif (packageManagerId === \"bun\") {\n\t\treturn args ? `bun run ${scriptName} ${args}` : `bun run ${scriptName}`;\n\t}\n\tif (packageManagerId === \"npm\") {\n\t\treturn args ? `npm run ${scriptName} -- ${args}` : `npm run ${scriptName}`;\n\t}\n\tif (packageManagerId === \"pnpm\") {\n\t\treturn args ? `pnpm run ${scriptName} ${args}` : `pnpm run ${scriptName}`;\n\t}\n\treturn args ? `yarn run ${scriptName} ${args}` : `yarn run ${scriptName}`;\n}\n\nfunction formatInstallCommand(packageManagerId: PackageManagerId): string {\n\tswitch (packageManagerId) {\n\t\tcase \"bun\":\n\t\t\treturn \"bun install\";\n\t\tcase \"pnpm\":\n\t\t\treturn \"pnpm install\";\n\t\tcase \"yarn\":\n\t\t\treturn \"yarn install\";\n\t\tdefault:\n\t\t\treturn \"npm install\";\n\t}\n}\n\nfunction getSyncRootError(cwd: string): Error {\n\treturn new Error(\n\t\t`No generated wp-typia project root was found at ${cwd}. Run \\`wp-typia sync\\` from a scaffolded project or official workspace root that already contains generated sync scripts. If you expected this directory to work, cd into the scaffold root first or rerun the scaffold before syncing.`,\n\t);\n}\n\nfunction inferSyncPackageManager(cwd: string, packageManagerField?: string): PackageManagerId {\n\tconst field = String(packageManagerField ?? \"\");\n\tif (field.startsWith(\"bun@\")) return \"bun\";\n\tif (field.startsWith(\"npm@\")) return \"npm\";\n\tif (field.startsWith(\"pnpm@\")) return \"pnpm\";\n\tif (field.startsWith(\"yarn@\")) return \"yarn\";\n\n\tif (\n\t\tfs.existsSync(path.join(cwd, \"bun.lock\")) ||\n\t\tfs.existsSync(path.join(cwd, \"bun.lockb\"))\n\t) {\n\t\treturn \"bun\";\n\t}\n\tif (fs.existsSync(path.join(cwd, \"pnpm-lock.yaml\"))) {\n\t\treturn \"pnpm\";\n\t}\n\tif (\n\t\tfs.existsSync(path.join(cwd, \"yarn.lock\")) ||\n\t\tfs.existsSync(path.join(cwd, \".pnp.cjs\")) ||\n\t\tfs.existsSync(path.join(cwd, \".pnp.loader.mjs\")) ||\n\t\tfs.existsSync(path.join(cwd, \".yarnrc.yml\"))\n\t) {\n\t\treturn \"yarn\";\n\t}\n\tif (\n\t\tfs.existsSync(path.join(cwd, \"package-lock.json\")) ||\n\t\tfs.existsSync(path.join(cwd, \"npm-shrinkwrap.json\"))\n\t) {\n\t\treturn \"npm\";\n\t}\n\n\treturn \"npm\";\n}\n\nfunction resolveSyncProjectContext(cwd: string): SyncProjectContext {\n\tconst packageJsonPath = path.join(cwd, \"package.json\");\n\tif (!fs.existsSync(packageJsonPath)) {\n\t\tthrow getSyncRootError(cwd);\n\t}\n\n\tconst packageJson = JSON.parse(fs.readFileSync(packageJsonPath, \"utf8\")) as {\n\t\tpackageManager?: string;\n\t\tscripts?: Record<string, unknown>;\n\t};\n\tconst scripts = packageJson.scripts ?? {};\n\tconst syncScripts = {\n\t\tsync: typeof scripts.sync === \"string\" ? scripts.sync : undefined,\n\t\t\"sync-rest\":\n\t\t\ttypeof scripts[\"sync-rest\"] === \"string\" ? scripts[\"sync-rest\"] : undefined,\n\t\t\"sync-types\":\n\t\t\ttypeof scripts[\"sync-types\"] === \"string\" ? scripts[\"sync-types\"] : undefined,\n\t} satisfies SyncProjectContext[\"scripts\"];\n\n\tif (!syncScripts.sync && !syncScripts[\"sync-types\"]) {\n\t\tthrow new Error(\n\t\t\t`Expected ${packageJsonPath} to define either a \\`sync\\` or \\`sync-types\\` script.`,\n\t\t);\n\t}\n\n\treturn {\n\t\tcwd,\n\t\tpackageJsonPath,\n\t\tpackageManager: inferSyncPackageManager(cwd, packageJson.packageManager),\n\t\tscripts: syncScripts,\n\t};\n}\n\nfunction findInstalledDependencyMarkerDir(projectDir: string): string | null {\n\tlet currentDir = path.resolve(projectDir);\n\n\twhile (true) {\n\t\tif (\n\t\t\tSYNC_INSTALL_MARKERS.some((marker) =>\n\t\t\t\tfs.existsSync(path.join(currentDir, marker)),\n\t\t\t)\n\t\t) {\n\t\t\treturn currentDir;\n\t\t}\n\n\t\tconst parentDir = path.dirname(currentDir);\n\t\tif (parentDir === currentDir) {\n\t\t\treturn null;\n\t\t}\n\t\tcurrentDir = parentDir;\n\t}\n}\n\nfunction scriptsLikelyNeedInstalledDependencies(project: SyncProjectContext): boolean {\n\tconst candidateScripts = project.scripts.sync\n\t\t? [project.scripts.sync]\n\t\t: [project.scripts[\"sync-types\"], project.scripts[\"sync-rest\"]];\n\n\treturn candidateScripts.some(\n\t\t(script): script is string =>\n\t\t\ttypeof script === \"string\" && LOCAL_SYNC_TOOL_PATTERN.test(script),\n\t);\n}\n\nfunction assertSyncDependenciesInstalled(project: SyncProjectContext): void {\n\tif (!scriptsLikelyNeedInstalledDependencies(project)) {\n\t\treturn;\n\t}\n\tconst markerDir = findInstalledDependencyMarkerDir(project.cwd);\n\tif (markerDir) {\n\t\treturn;\n\t}\n\n\tthrow new Error(\n\t\t`Project dependencies have not been installed yet. Run \\`${formatInstallCommand(project.packageManager)}\\` from the project root before \\`wp-typia sync\\`. The generated sync scripts rely on local tools such as \\`tsx\\`.`,\n\t);\n}\n\nfunction getPackageManagerRunInvocation(\n\tpackageManager: PackageManagerId,\n\tscriptName: string,\n\textraArgs: string[],\n): { args: string[]; command: string } {\n\tswitch (packageManager) {\n\t\tcase \"bun\":\n\t\t\treturn { args: [\"run\", scriptName, ...extraArgs], command: \"bun\" };\n\t\tcase \"npm\":\n\t\t\treturn {\n\t\t\t\targs: [\"run\", scriptName, ...(extraArgs.length > 0 ? [\"--\", ...extraArgs] : [])],\n\t\t\t\tcommand: \"npm\",\n\t\t\t};\n\t\tcase \"pnpm\":\n\t\t\treturn { args: [\"run\", scriptName, ...extraArgs], command: \"pnpm\" };\n\t\tcase \"yarn\":\n\t\t\treturn { args: [\"run\", scriptName, ...extraArgs], command: \"yarn\" };\n\t}\n}\n\nfunction runProjectScript(\n\tproject: SyncProjectContext,\n\tscriptName: \"sync\" | \"sync-rest\" | \"sync-types\",\n\textraArgs: string[],\n): void {\n\tconst script = project.scripts[scriptName];\n\tif (!script) {\n\t\treturn;\n\t}\n\n\tconst invocation = getPackageManagerRunInvocation(\n\t\tproject.packageManager,\n\t\tscriptName,\n\t\textraArgs,\n\t);\n\n\tconst result = spawnSync(invocation.command, invocation.args, {\n\t\tcwd: project.cwd,\n\t\tshell: process.platform === \"win32\",\n\t\tstdio: \"inherit\",\n\t});\n\n\tif (result.error || result.status !== 0) {\n\t\tthrow new Error(\n\t\t\t`\\`${formatRunScript(project.packageManager, scriptName, extraArgs.join(\" \"))}\\` failed.`,\n\t\t\t{\n\t\t\t\tcause: result.error,\n\t\t\t},\n\t\t);\n\t}\n}\n\n/**\n * Executes the generated-project sync flow through the local project scripts.\n *\n * @param options Sync execution options including cwd and optional `--check`.\n * @returns A promise that resolves after the relevant sync scripts complete.\n */\nexport async function executeSyncCommand({\n\tcheck = false,\n\tcwd,\n}: SyncExecutionInput): Promise<void> {\n\tconst project = resolveSyncProjectContext(cwd);\n\tassertSyncDependenciesInstalled(project);\n\tconst extraArgs = check ? [\"--check\"] : [];\n\n\tif (project.scripts.sync) {\n\t\trunProjectScript(project, \"sync\", extraArgs);\n\t\treturn;\n\t}\n\n\trunProjectScript(project, \"sync-types\", extraArgs);\n\n\tif (project.scripts[\"sync-rest\"]) {\n\t\trunProjectScript(project, \"sync-rest\", extraArgs);\n\t}\n}\n",
13
+ "import type { ReadlinePrompt } from \"@wp-typia/project-tools/cli-prompt\";\nimport { simulateWorkspaceAddDryRun } from \"./runtime-bridge-add-dry-run\";\nimport type { AlternateBufferCompletionPayload } from \"./ui/alternate-buffer-lifecycle\";\nimport {\n\tbuildAddCompletionPayload,\n\tbuildAddDryRunPayload,\n\tbuildCreateCompletionPayload,\n\tbuildCreateDryRunPayload,\n\tbuildMigrationCompletionPayload,\n\tformatCreateProgressLine,\n\tprintBlock,\n\tprintCompletionPayload,\n\ttoExternalLayerPromptOptions,\n} from \"./runtime-bridge-output\";\nimport { isInteractiveTerminal } from \"./runtime-capabilities\";\nexport {\n\tbuildCreateCompletionPayload,\n\tbuildCreateDryRunPayload,\n\tbuildMigrationCompletionPayload,\n\tformatCreateProgressLine,\n\tprintCompletionPayload,\n} from \"./runtime-bridge-output\";\nexport { executeSyncCommand } from \"./runtime-bridge-sync\";\n\ntype CreateProgressPayload = {\n\tdetail: string;\n\ttitle: string;\n};\n\ntype CreateExecutionInput = {\n\tprojectDir: string;\n\tcwd: string;\n\temitOutput?: boolean;\n\tflags: Record<string, unknown>;\n\tinteractive?: boolean;\n\tonProgress?: (payload: CreateProgressPayload) => void;\n\tprintLine?: PrintLine;\n\tprompt?: ReadlinePrompt;\n\twarnLine?: PrintLine;\n};\n\ntype AddExecutionInput = {\n\tcwd: string;\n\temitOutput?: boolean;\n\tflags: Record<string, unknown>;\n\tinteractive?: boolean;\n\tkind?: string;\n\tname?: string;\n\tprintLine?: PrintLine;\n\tprompt?: ReadlinePrompt;\n\twarnLine?: PrintLine;\n};\n\ntype TemplatesExecutionInput = {\n\tflags: {\n\t\tid?: string;\n\t\tsubcommand?: string;\n\t};\n};\n\ntype MigrateExecutionInput = {\n\tcommand?: string;\n\tcwd: string;\n\tflags: Record<string, unknown>;\n\tprompt?: ReadlinePrompt;\n\trenderLine?: (line: string) => void;\n};\n\ntype PrintLine = (line: string) => void;\ntype CliCommandId = \"add\" | \"create\" | \"doctor\" | \"migrate\";\n\nconst loadCliAddRuntime = () => import(\"@wp-typia/project-tools/cli-add\");\nconst loadCliDiagnosticsRuntime = () => import(\"@wp-typia/project-tools/cli-diagnostics\");\nconst loadCliDoctorRuntime = () => import(\"@wp-typia/project-tools/cli-doctor\");\nconst loadCliPromptRuntime = () => import(\"@wp-typia/project-tools/cli-prompt\");\nconst loadCliScaffoldRuntime = () => import(\"@wp-typia/project-tools/cli-scaffold\");\nconst loadCliTemplatesRuntime = () => import(\"@wp-typia/project-tools/cli-templates\");\nconst loadWorkspaceProjectRuntime = () => import(\"@wp-typia/project-tools/workspace-project\");\nconst loadMigrationsRuntime = () => import(\"@wp-typia/project-tools/migrations\");\n\nasync function wrapCliCommandError(command: CliCommandId, error: unknown) {\n\tconst { createCliCommandError } = await loadCliDiagnosticsRuntime();\n\treturn createCliCommandError({ command, error });\n}\n\nfunction shouldWrapCliCommandError(options: {\n\temitOutput?: boolean;\n\trenderLine?: ((line: string) => void) | undefined;\n}): boolean {\n\tif (options.emitOutput === false) {\n\t\treturn false;\n\t}\n\n\tif (options.renderLine) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n\nfunction readOptionalStringFlag(\n\tflags: Record<string, unknown>,\n\tname: string,\n): string | undefined {\n\tconst value = flags[name];\n\tif (value === undefined || value === null) {\n\t\treturn undefined;\n\t}\n\tif (typeof value !== \"string\" || value.trim().length === 0) {\n\t\tthrow new Error(`\\`--${name}\\` requires a value.`);\n\t}\n\treturn value;\n}\n\nfunction readOptionalLooseStringFlag(\n\tflags: Record<string, unknown>,\n\tname: string,\n): string | undefined {\n\tconst value = flags[name];\n\tif (value === undefined || value === null) {\n\t\treturn undefined;\n\t}\n\tif (typeof value !== \"string\") {\n\t\tthrow new Error(`\\`--${name}\\` requires a value.`);\n\t}\n\tconst trimmed = value.trim();\n\treturn trimmed.length > 0 ? trimmed : undefined;\n}\n\nfunction pushFlag(argv: string[], name: string, value: unknown): void {\n\tif (value === undefined || value === null || value === false) {\n\t\treturn;\n\t}\n\tif (value === true) {\n\t\targv.push(`--${name}`);\n\t\treturn;\n\t}\n\targv.push(`--${name}`, String(value));\n}\n\nasync function executeWorkspaceAddWithOptionalDryRun<TResult>(options: {\n\tbuildCompletion: (\n\t\tresult: TResult,\n\t) => ReturnType<typeof buildAddCompletionPayload>;\n\tcwd: string;\n\tdryRun: boolean;\n\temitOutput: boolean | undefined;\n\texecute: (cwd: string) => Promise<TResult>;\n\tprintLine: PrintLine;\n\twarnLine?: PrintLine;\n}): Promise<AlternateBufferCompletionPayload | void> {\n\tconst simulated = options.dryRun\n\t\t? await simulateWorkspaceAddDryRun({\n\t\t\t\tcwd: options.cwd,\n\t\t\t\texecute: options.execute,\n\t\t\t})\n\t\t: null;\n\tconst result = simulated?.result ?? (await options.execute(options.cwd));\n\tconst completion = options.buildCompletion(result);\n\n\tif (!options.dryRun) {\n\t\treturn emitCompletion(completion, {\n\t\t\temitOutput: options.emitOutput ?? true,\n\t\t\tprintLine: options.printLine,\n\t\t\twarnLine: options.warnLine,\n\t\t});\n\t}\n\n\treturn emitCompletion(\n\t\tbuildAddDryRunPayload({\n\t\t\tcompletion,\n\t\t\tfileOperations: simulated!.fileOperations,\n\t\t}),\n\t\t{\n\t\t\temitOutput: options.emitOutput ?? true,\n\t\t\tprintLine: options.printLine,\n\t\t\twarnLine: options.warnLine,\n\t\t},\n\t);\n}\n\nconst PACKAGE_MANAGER_PROMPT_OPTIONS = [\n\t{ label: \"npm\", value: \"npm\", hint: \"Use npm\" },\n\t{ label: \"pnpm\", value: \"pnpm\", hint: \"Use pnpm\" },\n\t{ label: \"yarn\", value: \"yarn\", hint: \"Use yarn\" },\n\t{ label: \"bun\", value: \"bun\", hint: \"Use bun\" },\n] as const;\n\nconst DATA_STORAGE_PROMPT_OPTIONS = [\n\t{ label: \"custom-table\", value: \"custom-table\", hint: \"Dedicated custom table storage\" },\n\t{ label: \"post-meta\", value: \"post-meta\", hint: \"Persist through post meta\" },\n] as const;\n\nconst PERSISTENCE_POLICY_PROMPT_OPTIONS = [\n\t{ label: \"authenticated\", value: \"authenticated\", hint: \"Authenticated write policy\" },\n\t{ label: \"public\", value: \"public\", hint: \"Public token policy\" },\n] as const;\n\nconst BOOLEAN_PROMPT_OPTIONS = [\n\t{ label: \"Yes\", value: \"yes\", hint: \"Enable this option\" },\n\t{ label: \"No\", value: \"no\", hint: \"Keep the default disabled state\" },\n] as const;\n\nfunction emitCompletion(\n\tpayload: AlternateBufferCompletionPayload,\n\toptions: {\n\t\temitOutput: boolean;\n\t\tprintLine: PrintLine;\n\t\twarnLine?: PrintLine;\n\t},\n): AlternateBufferCompletionPayload {\n\tif (options.emitOutput) {\n\t\tprintCompletionPayload(payload, {\n\t\t\tprintLine: options.printLine,\n\t\t\twarnLine: options.warnLine,\n\t\t});\n\t}\n\n\treturn payload;\n}\n\nexport async function executeCreateCommand({\n\tprojectDir,\n\tcwd,\n\temitOutput = true,\n\tflags,\n\tinteractive,\n\tonProgress,\n\tprintLine = console.log as PrintLine,\n\tprompt,\n\twarnLine = console.warn as PrintLine,\n}: CreateExecutionInput): Promise<AlternateBufferCompletionPayload> {\n\tconst [\n\t\t{ createReadlinePrompt },\n\t\t{ runScaffoldFlow },\n\t\t{ getTemplateSelectOptions },\n\t] = await Promise.all([\n\t\tloadCliPromptRuntime(),\n\t\tloadCliScaffoldRuntime(),\n\t\tloadCliTemplatesRuntime(),\n\t]);\n\tconst shouldPrompt =\n\t\tinteractive ?? (!Boolean(flags.yes) && isInteractiveTerminal());\n\tconst activePrompt = shouldPrompt ? (prompt ?? createReadlinePrompt()) : undefined;\n\tconst shouldPromptForExternalLayerSelection =\n\t\tBoolean(activePrompt) && activePrompt !== prompt;\n\tconst effectiveYes = Boolean(flags.yes) || (Boolean(flags[\"dry-run\"]) && !Boolean(activePrompt));\n\n\ttry {\n\t\tconst flow = await runScaffoldFlow({\n\t\t\talternateRenderTargets: readOptionalLooseStringFlag(\n\t\t\t\tflags,\n\t\t\t\t\"alternate-render-targets\",\n\t\t\t),\n\t\t\tcwd,\n\t\t\tdataStorageMode: readOptionalLooseStringFlag(flags, \"data-storage\"),\n\t\t\tdryRun: Boolean(flags[\"dry-run\"]),\n\t\t\texternalLayerId: readOptionalLooseStringFlag(flags, \"external-layer-id\"),\n\t\t\texternalLayerSource: readOptionalLooseStringFlag(flags, \"external-layer-source\"),\n\t\t\tinnerBlocksPreset: readOptionalLooseStringFlag(flags, \"inner-blocks-preset\"),\n\t\t\tisInteractive: Boolean(activePrompt),\n\t\t\tnamespace: readOptionalLooseStringFlag(flags, \"namespace\"),\n\t\t\tnoInstall: Boolean(flags[\"no-install\"]),\n\t\t\tpackageManager: readOptionalLooseStringFlag(flags, \"package-manager\"),\n\t\t\tpersistencePolicy: readOptionalLooseStringFlag(flags, \"persistence-policy\"),\n\t\t\tphpPrefix: readOptionalLooseStringFlag(flags, \"php-prefix\"),\n\t\t\tprojectInput: projectDir,\n\t\t\tonProgress: async (progress) => {\n\t\t\t\tconst payload = {\n\t\t\t\t\tdetail: progress.detail,\n\t\t\t\t\ttitle: progress.title,\n\t\t\t\t};\n\t\t\t\tonProgress?.(payload);\n\t\t\t\tif (emitOutput) {\n\t\t\t\t\tprintLine(formatCreateProgressLine(payload));\n\t\t\t\t}\n\t\t\t},\n\t\t\tpromptText: activePrompt\n\t\t\t\t? (message, defaultValue, validate) => activePrompt.text(message, defaultValue, validate)\n\t\t\t\t: undefined,\n\t\t\tqueryPostType: readOptionalLooseStringFlag(flags, \"query-post-type\"),\n\t\t\tselectDataStorage: activePrompt\n\t\t\t\t? () => activePrompt.select(\"Select a data storage mode\", [...DATA_STORAGE_PROMPT_OPTIONS], 1)\n\t\t\t\t: undefined,\n\t\t\tselectExternalLayerId: shouldPromptForExternalLayerSelection && activePrompt\n\t\t\t\t? (options) =>\n\t\t\t\t\t\tactivePrompt.select(\n\t\t\t\t\t\t\t\"Select an external layer\",\n\t\t\t\t\t\t\ttoExternalLayerPromptOptions(options),\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t)\n\t\t\t\t: undefined,\n\t\t\tselectPackageManager: activePrompt\n\t\t\t\t? () => activePrompt.select(\"Select a package manager\", [...PACKAGE_MANAGER_PROMPT_OPTIONS], 1)\n\t\t\t\t: undefined,\n\t\t\tselectPersistencePolicy: activePrompt\n\t\t\t\t? () =>\n\t\t\t\t\t\tactivePrompt.select(\n\t\t\t\t\t\t\t\"Select a persistence policy\",\n\t\t\t\t\t\t\t[...PERSISTENCE_POLICY_PROMPT_OPTIONS],\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t)\n\t\t\t\t: undefined,\n\t\t\tselectTemplate: activePrompt\n\t\t\t\t? () => activePrompt.select(\"Select a template\", getTemplateSelectOptions(), 1)\n\t\t\t\t: undefined,\n\t\t\tselectWithMigrationUi: activePrompt\n\t\t\t\t? async () =>\n\t\t\t\t\t\t(await activePrompt.select(\"Enable migration UI support?\", [...BOOLEAN_PROMPT_OPTIONS], 2)) ===\n\t\t\t\t\t\t\"yes\"\n\t\t\t\t: undefined,\n\t\t\tselectWithTestPreset: activePrompt\n\t\t\t\t? async () =>\n\t\t\t\t\t\t(await activePrompt.select(\"Include the Playwright test preset?\", [...BOOLEAN_PROMPT_OPTIONS], 2)) ===\n\t\t\t\t\t\t\"yes\"\n\t\t\t\t: undefined,\n\t\t\tselectWithWpEnv: activePrompt\n\t\t\t\t? async () =>\n\t\t\t\t\t\t(await activePrompt.select(\"Include a local wp-env preset?\", [...BOOLEAN_PROMPT_OPTIONS], 2)) ===\n\t\t\t\t\t\t\"yes\"\n\t\t\t\t: undefined,\n\t\t\ttemplateId: readOptionalLooseStringFlag(flags, \"template\"),\n\t\t\ttextDomain: readOptionalLooseStringFlag(flags, \"text-domain\"),\n\t\t\tvariant: readOptionalLooseStringFlag(flags, \"variant\"),\n\t\t\twithMigrationUi: flags[\"with-migration-ui\"] as boolean | undefined,\n\t\t\twithTestPreset: flags[\"with-test-preset\"] as boolean | undefined,\n\t\t\twithWpEnv: flags[\"with-wp-env\"] as boolean | undefined,\n\t\t\tyes: effectiveYes,\n\t\t});\n\n\t\tconst payload = flow.dryRun && flow.plan\n\t\t\t? buildCreateDryRunPayload({\n\t\t\t\t\tpackageManager: flow.packageManager,\n\t\t\t\t\tplan: flow.plan,\n\t\t\t\t\tprojectDir: flow.projectDir,\n\t\t\t\t\tresult: flow.result,\n\t\t\t\t})\n\t\t\t: buildCreateCompletionPayload(flow);\n\t\treturn emitCompletion(payload, { emitOutput, printLine, warnLine });\n\t} catch (error) {\n\t\tif (!shouldWrapCliCommandError({ emitOutput })) {\n\t\t\tthrow error;\n\t\t}\n\t\tthrow await wrapCliCommandError(\"create\", error);\n\t} finally {\n\t\tif (activePrompt && activePrompt !== prompt) {\n\t\t\tactivePrompt.close();\n\t\t}\n\t}\n}\n\nexport async function executeAddCommand({\n\tcwd,\n\temitOutput = true,\n\tflags,\n\tinteractive,\n\tkind,\n\tname,\n\tprintLine = console.log as PrintLine,\n\tprompt,\n\twarnLine = console.warn as PrintLine,\n}: AddExecutionInput): Promise<AlternateBufferCompletionPayload | void> {\n\tlet activePrompt: ReadlinePrompt | undefined;\n\tconst dryRun = Boolean(flags[\"dry-run\"]);\n\n\ttry {\n\t\tconst addRuntime = await loadCliAddRuntime();\n\n\t\tif (!kind) {\n\t\t\tprintLine(addRuntime.formatAddHelpText());\n\t\t\tthrow new Error(\n\t\t\t\t\"`wp-typia add` requires <kind>. Usage: wp-typia add <block|variation|pattern|binding-source|rest-resource|editor-plugin|hooked-block> ...\",\n\t\t\t);\n\t\t}\n\n\t\tif (kind === \"variation\") {\n\t\t\tif (!name) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"`wp-typia add variation` requires <name>. Usage: wp-typia add variation <name> --block <block-slug>\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst blockSlug = readOptionalStringFlag(flags, \"block\");\n\t\t\tif (!blockSlug) {\n\t\t\t\tthrow new Error(\"`wp-typia add variation` requires --block <block-slug>.\");\n\t\t\t}\n\n\t\t\treturn executeWorkspaceAddWithOptionalDryRun<\n\t\t\t\tAwaited<ReturnType<typeof addRuntime.runAddVariationCommand>>\n\t\t\t>({\n\t\t\t\tbuildCompletion: (result) =>\n\t\t\t\t\tbuildAddCompletionPayload({\n\t\t\t\t\t\tkind: \"variation\",\n\t\t\t\t\t\tprojectDir: result.projectDir,\n\t\t\t\t\t\tvalues: {\n\t\t\t\t\t\t\tblockSlug: result.blockSlug,\n\t\t\t\t\t\t\tvariationSlug: result.variationSlug,\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\tcwd,\n\t\t\t\tdryRun,\n\t\t\t\temitOutput,\n\t\t\t\texecute: (targetCwd) =>\n\t\t\t\t\taddRuntime.runAddVariationCommand({\n\t\t\t\t\t\tblockName: blockSlug,\n\t\t\t\t\t\tcwd: targetCwd,\n\t\t\t\t\t\tvariationName: name,\n\t\t\t\t\t}),\n\t\t\t\tprintLine,\n\t\t\t});\n\t\t}\n\n\t\tif (kind === \"pattern\") {\n\t\t\tif (!name) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"`wp-typia add pattern` requires <name>. Usage: wp-typia add pattern <name>.\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn executeWorkspaceAddWithOptionalDryRun<\n\t\t\t\tAwaited<ReturnType<typeof addRuntime.runAddPatternCommand>>\n\t\t\t>({\n\t\t\t\tbuildCompletion: (result) =>\n\t\t\t\t\tbuildAddCompletionPayload({\n\t\t\t\t\t\tkind: \"pattern\",\n\t\t\t\t\t\tprojectDir: result.projectDir,\n\t\t\t\t\t\tvalues: {\n\t\t\t\t\t\t\tpatternSlug: result.patternSlug,\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\tcwd,\n\t\t\t\tdryRun,\n\t\t\t\temitOutput,\n\t\t\t\texecute: (targetCwd) =>\n\t\t\t\t\taddRuntime.runAddPatternCommand({\n\t\t\t\t\t\tcwd: targetCwd,\n\t\t\t\t\t\tpatternName: name,\n\t\t\t\t\t}),\n\t\t\t\tprintLine,\n\t\t\t});\n\t\t}\n\n\t\tif (kind === \"binding-source\") {\n\t\t\tif (!name) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"`wp-typia add binding-source` requires <name>. Usage: wp-typia add binding-source <name>.\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn executeWorkspaceAddWithOptionalDryRun<\n\t\t\t\tAwaited<ReturnType<typeof addRuntime.runAddBindingSourceCommand>>\n\t\t\t>({\n\t\t\t\tbuildCompletion: (result) =>\n\t\t\t\t\tbuildAddCompletionPayload({\n\t\t\t\t\t\tkind: \"binding-source\",\n\t\t\t\t\t\tprojectDir: result.projectDir,\n\t\t\t\t\t\tvalues: {\n\t\t\t\t\t\t\tbindingSourceSlug: result.bindingSourceSlug,\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\tcwd,\n\t\t\t\tdryRun,\n\t\t\t\temitOutput,\n\t\t\t\texecute: (targetCwd) =>\n\t\t\t\t\taddRuntime.runAddBindingSourceCommand({\n\t\t\t\t\t\tbindingSourceName: name,\n\t\t\t\t\t\tcwd: targetCwd,\n\t\t\t\t\t}),\n\t\t\t\tprintLine,\n\t\t\t});\n\t\t}\n\n\t\tif (kind === \"rest-resource\") {\n\t\t\tif (!name) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"`wp-typia add rest-resource` requires <name>. Usage: wp-typia add rest-resource <name> [--namespace <vendor/v1>] [--methods <list,read,create>].\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst methods = readOptionalStringFlag(flags, \"methods\");\n\t\t\tconst namespace = readOptionalStringFlag(flags, \"namespace\");\n\t\t\treturn executeWorkspaceAddWithOptionalDryRun<\n\t\t\t\tAwaited<ReturnType<typeof addRuntime.runAddRestResourceCommand>>\n\t\t\t>({\n\t\t\t\tbuildCompletion: (result) =>\n\t\t\t\t\tbuildAddCompletionPayload({\n\t\t\t\t\t\tkind: \"rest-resource\",\n\t\t\t\t\t\tprojectDir: result.projectDir,\n\t\t\t\t\t\tvalues: {\n\t\t\t\t\t\t\tmethods: result.methods.join(\", \"),\n\t\t\t\t\t\t\tnamespace: result.namespace,\n\t\t\t\t\t\t\trestResourceSlug: result.restResourceSlug,\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\tcwd,\n\t\t\t\tdryRun,\n\t\t\t\temitOutput,\n\t\t\t\texecute: (targetCwd) =>\n\t\t\t\t\taddRuntime.runAddRestResourceCommand({\n\t\t\t\t\t\tcwd: targetCwd,\n\t\t\t\t\t\tmethods,\n\t\t\t\t\t\tnamespace,\n\t\t\t\t\t\trestResourceName: name,\n\t\t\t\t\t}),\n\t\t\t\tprintLine,\n\t\t\t});\n\t\t}\n\n\t\tif (kind === \"editor-plugin\") {\n\t\t\tif (!name) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"`wp-typia add editor-plugin` requires <name>. Usage: wp-typia add editor-plugin <name> [--slot <PluginSidebar>].\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst slot = readOptionalStringFlag(flags, \"slot\");\n\t\t\treturn executeWorkspaceAddWithOptionalDryRun<\n\t\t\t\tAwaited<ReturnType<typeof addRuntime.runAddEditorPluginCommand>>\n\t\t\t>({\n\t\t\t\tbuildCompletion: (result) =>\n\t\t\t\t\tbuildAddCompletionPayload({\n\t\t\t\t\t\tkind: \"editor-plugin\",\n\t\t\t\t\t\tprojectDir: result.projectDir,\n\t\t\t\t\t\tvalues: {\n\t\t\t\t\t\t\teditorPluginSlug: result.editorPluginSlug,\n\t\t\t\t\t\t\tslot: result.slot,\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\tcwd,\n\t\t\t\tdryRun,\n\t\t\t\temitOutput,\n\t\t\t\texecute: (targetCwd) =>\n\t\t\t\t\taddRuntime.runAddEditorPluginCommand({\n\t\t\t\t\t\tcwd: targetCwd,\n\t\t\t\t\t\teditorPluginName: name,\n\t\t\t\t\t\tslot,\n\t\t\t\t\t}),\n\t\t\t\tprintLine,\n\t\t\t});\n\t\t}\n\n\t\tif (kind === \"hooked-block\") {\n\t\t\tif (!name) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"`wp-typia add hooked-block` requires <block-slug>. Usage: wp-typia add hooked-block <block-slug> --anchor <anchor-block-name> --position <before|after|firstChild|lastChild>.\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst anchorBlockName = readOptionalStringFlag(flags, \"anchor\");\n\t\t\tif (!anchorBlockName) {\n\t\t\t\tthrow new Error(\"`wp-typia add hooked-block` requires --anchor <anchor-block-name>.\");\n\t\t\t}\n\n\t\t\tconst position = readOptionalStringFlag(flags, \"position\");\n\t\t\tif (!position) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"`wp-typia add hooked-block` requires --position <before|after|firstChild|lastChild>.\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn executeWorkspaceAddWithOptionalDryRun<\n\t\t\t\tAwaited<ReturnType<typeof addRuntime.runAddHookedBlockCommand>>\n\t\t\t>({\n\t\t\t\tbuildCompletion: (result) =>\n\t\t\t\t\tbuildAddCompletionPayload({\n\t\t\t\t\t\tkind: \"hooked-block\",\n\t\t\t\t\t\tprojectDir: result.projectDir,\n\t\t\t\t\t\tvalues: {\n\t\t\t\t\t\t\tanchorBlockName: result.anchorBlockName,\n\t\t\t\t\t\t\tblockSlug: result.blockSlug,\n\t\t\t\t\t\t\tposition: result.position,\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\tcwd,\n\t\t\t\tdryRun,\n\t\t\t\temitOutput,\n\t\t\t\texecute: (targetCwd) =>\n\t\t\t\t\taddRuntime.runAddHookedBlockCommand({\n\t\t\t\t\t\tanchorBlockName,\n\t\t\t\t\t\tblockName: name,\n\t\t\t\t\t\tcwd: targetCwd,\n\t\t\t\t\t\tposition,\n\t\t\t\t\t}),\n\t\t\t\tprintLine,\n\t\t\t});\n\t\t}\n\n\t\tif (kind !== \"block\") {\n\t\t\tthrow new Error(\n\t\t\t\t`Unknown add kind \"${kind}\". Expected one of: block, variation, pattern, binding-source, rest-resource, editor-plugin, hooked-block.`,\n\t\t\t);\n\t\t}\n\n\t\tif (!name) {\n\t\t\tthrow new Error(\n\t\t\t\t\"`wp-typia add block` requires <name>. Usage: wp-typia add block <name> --template <basic|interactivity|persistence|compound>\",\n\t\t\t);\n\t\t}\n\n\t\tif (!flags.template) {\n\t\t\tthrow new Error(\n\t\t\t\t\"`wp-typia add block` requires --template <basic|interactivity|persistence|compound>.\",\n\t\t\t);\n\t\t}\n\n\t\tconst externalLayerId = readOptionalStringFlag(flags, \"external-layer-id\");\n\t\tconst externalLayerSource = readOptionalStringFlag(flags, \"external-layer-source\");\n\t\tconst shouldPromptForLayerSelection =\n\t\t\tBoolean(externalLayerSource) &&\n\t\t\t!Boolean(externalLayerId) &&\n\t\t\t(interactive ?? isInteractiveTerminal());\n\t\tconst promptRuntime = shouldPromptForLayerSelection\n\t\t\t? await loadCliPromptRuntime()\n\t\t\t: undefined;\n\t\tactivePrompt = shouldPromptForLayerSelection\n\t\t\t? (prompt ?? promptRuntime?.createReadlinePrompt())\n\t\t\t: undefined;\n\t\tconst selectPrompt = activePrompt;\n\n\t\tconst alternateRenderTargets = readOptionalStringFlag(\n\t\t\tflags,\n\t\t\t\"alternate-render-targets\",\n\t\t);\n\t\tconst dataStorageMode = readOptionalStringFlag(flags, \"data-storage\");\n\t\tconst innerBlocksPreset = readOptionalStringFlag(flags, \"inner-blocks-preset\");\n\t\tconst persistencePolicy = readOptionalStringFlag(flags, \"persistence-policy\");\n\t\tconst resolvedTemplateId = readOptionalStringFlag(flags, \"template\") as\n\t\t\t| \"basic\"\n\t\t\t| \"interactivity\"\n\t\t\t| \"persistence\"\n\t\t\t| \"compound\";\n\n\t\treturn executeWorkspaceAddWithOptionalDryRun<\n\t\t\tAwaited<ReturnType<typeof addRuntime.runAddBlockCommand>>\n\t\t>({\n\t\t\tbuildCompletion: (result) =>\n\t\t\t\tbuildAddCompletionPayload({\n\t\t\t\t\tkind: \"block\",\n\t\t\t\t\tprojectDir: result.projectDir,\n\t\t\t\t\tvalues: {\n\t\t\t\t\t\tblockSlugs: result.blockSlugs.join(\", \"),\n\t\t\t\t\t\ttemplateId: result.templateId,\n\t\t\t\t\t},\n\t\t\t\t\twarnings: result.warnings,\n\t\t\t\t}),\n\t\t\tcwd,\n\t\t\tdryRun,\n\t\t\temitOutput,\n\t\t\texecute: (targetCwd) =>\n\t\t\t\taddRuntime.runAddBlockCommand({\n\t\t\t\t\talternateRenderTargets,\n\t\t\t\t\tblockName: name,\n\t\t\t\t\tcwd: targetCwd,\n\t\t\t\t\tdataStorageMode,\n\t\t\t\t\texternalLayerId,\n\t\t\t\t\texternalLayerSource,\n\t\t\t\t\tinnerBlocksPreset,\n\t\t\t\t\tpersistencePolicy,\n\t\t\t\t\tselectExternalLayerId: selectPrompt\n\t\t\t\t\t\t? (options) =>\n\t\t\t\t\t\t\t\tselectPrompt.select(\n\t\t\t\t\t\t\t\t\t\"Select an external layer\",\n\t\t\t\t\t\t\t\t\ttoExternalLayerPromptOptions(options),\n\t\t\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\ttemplateId: resolvedTemplateId,\n\t\t\t\t}),\n\t\t\tprintLine,\n\t\t\twarnLine,\n\t\t});\n\t} catch (error) {\n\t\tif (!shouldWrapCliCommandError({ emitOutput })) {\n\t\t\tthrow error;\n\t\t}\n\t\tthrow await wrapCliCommandError(\"add\", error);\n\t} finally {\n\t\tif (activePrompt && activePrompt !== prompt) {\n\t\t\tactivePrompt.close();\n\t\t}\n\t}\n}\n\nexport async function executeTemplatesCommand(\n\t{ flags }: TemplatesExecutionInput,\n\tprintLine: PrintLine = console.log,\n): Promise<void> {\n\tconst {\n\t\tformatTemplateDetails,\n\t\tformatTemplateFeatures,\n\t\tformatTemplateSummary,\n\t\tgetTemplateById,\n\t\tlistTemplates,\n\t} = await loadCliTemplatesRuntime();\n\tconst subcommand = flags.subcommand ?? \"list\";\n\n\tif (subcommand === \"list\") {\n\t\tfor (const template of listTemplates()) {\n\t\t\tprintBlock(\n\t\t\t\t[formatTemplateSummary(template), formatTemplateFeatures(template)],\n\t\t\t\tprintLine,\n\t\t\t);\n\t\t}\n\t\treturn;\n\t}\n\n\tif (subcommand === \"inspect\") {\n\t\tif (!flags.id) {\n\t\t\tthrow new Error(\"`wp-typia templates inspect` requires <template-id>.\");\n\t\t}\n\t\tconst template = getTemplateById(flags.id);\n\t\tif (!template) {\n\t\t\tthrow new Error(`Unknown template \"${flags.id}\".`);\n\t\t}\n\t\tprintBlock(\n\t\t\t[\n\t\t\t\tformatTemplateSummary(template),\n\t\t\t\tformatTemplateFeatures(template),\n\t\t\t\tformatTemplateDetails(template),\n\t\t\t],\n\t\t\tprintLine,\n\t\t);\n\t\treturn;\n\t}\n\n\tthrow new Error(`Unknown templates subcommand \"${subcommand}\". Expected list or inspect.`);\n}\n\nexport async function executeDoctorCommand(cwd: string): Promise<void> {\n\ttry {\n\t\tconst { runDoctor } = await loadCliDoctorRuntime();\n\t\tawait runDoctor(cwd);\n\t} catch (error) {\n\t\tthrow await wrapCliCommandError(\"doctor\", error);\n\t}\n}\n\nexport async function loadAddWorkspaceBlockOptions(cwd: string) {\n\tconst { tryResolveWorkspaceProject } = await loadWorkspaceProjectRuntime();\n\tconst workspace = tryResolveWorkspaceProject(cwd);\n\tif (!workspace) {\n\t\treturn [];\n\t}\n\n\tconst { getWorkspaceBlockSelectOptions } = await loadCliAddRuntime();\n\treturn getWorkspaceBlockSelectOptions(workspace.projectDir);\n}\n\nexport async function executeMigrateCommand({\n\tcommand,\n\tcwd,\n\tflags,\n\tprompt,\n\trenderLine,\n}: MigrateExecutionInput): Promise<AlternateBufferCompletionPayload | void> {\n\tconst { formatMigrationHelpText, parseMigrationArgs, runMigrationCommand } =\n\t\tawait loadMigrationsRuntime();\n\tif (!command) {\n\t\tconsole.log(formatMigrationHelpText());\n\t\treturn;\n\t}\n\n\ttry {\n\t\tconst argv = [command];\n\t\tpushFlag(argv, \"all\", flags.all);\n\t\tpushFlag(argv, \"force\", flags.force);\n\t\tpushFlag(\n\t\t\targv,\n\t\t\t\"current-migration-version\",\n\t\t\treadOptionalLooseStringFlag(flags, \"current-migration-version\"),\n\t\t);\n\t\tpushFlag(argv, \"migration-version\", readOptionalLooseStringFlag(flags, \"migration-version\"));\n\t\tpushFlag(\n\t\t\targv,\n\t\t\t\"from-migration-version\",\n\t\t\treadOptionalLooseStringFlag(flags, \"from-migration-version\"),\n\t\t);\n\t\tpushFlag(\n\t\t\targv,\n\t\t\t\"to-migration-version\",\n\t\t\treadOptionalLooseStringFlag(flags, \"to-migration-version\"),\n\t\t);\n\t\tpushFlag(argv, \"iterations\", readOptionalLooseStringFlag(flags, \"iterations\"));\n\t\tpushFlag(argv, \"seed\", readOptionalLooseStringFlag(flags, \"seed\"));\n\n\t\tconst parsed = parseMigrationArgs(argv);\n\t\tconst lines: string[] | null = renderLine ? [] : null;\n\t\tconst captureLine = (line: string) => {\n\t\t\tlines?.push(line);\n\t\t\tif (renderLine) {\n\t\t\t\trenderLine(line);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconsole.log(line);\n\t\t};\n\t\tconst result = await runMigrationCommand(parsed, cwd, {\n\t\t\tprompt,\n\t\t\trenderLine: captureLine,\n\t\t});\n\t\tif (renderLine) {\n\t\t\treturn result && typeof result === \"object\" && \"cancelled\" in result && result.cancelled === true\n\t\t\t\t\t? undefined\n\t\t\t\t\t: buildMigrationCompletionPayload({\n\t\t\t\t\t\tcommand: parsed.command ?? \"plan\",\n\t\t\t\t\t\tlines: lines ?? [],\n\t\t\t\t\t});\n\t\t}\n\n\t\tif (result && typeof result === \"object\" && \"cancelled\" in result && result.cancelled === true) {\n\t\t\treturn;\n\t\t}\n\t} catch (error) {\n\t\tif (!shouldWrapCliCommandError({ renderLine })) {\n\t\t\tthrow error;\n\t\t}\n\t\tthrow await wrapCliCommandError(\"migrate\", error);\n\t}\n}\n\nexport async function listTemplatesForRuntime() {\n\tconst { listTemplates } = await loadCliTemplatesRuntime();\n\treturn listTemplates();\n}\n",
14
+ "import path from 'node:path'\nimport {\n ADD_OPTION_METADATA,\n buildCommandOptionParser,\n collectOptionNamesByType,\n CREATE_OPTION_METADATA,\n GLOBAL_OPTION_METADATA,\n MIGRATE_OPTION_METADATA,\n TEMPLATES_OPTION_METADATA,\n} from './command-option-metadata'\n\nexport const WP_TYPIA_CANONICAL_CREATE_USAGE = 'wp-typia create <project-dir>';\nexport const WP_TYPIA_POSITIONAL_ALIAS_USAGE = 'wp-typia <project-dir>';\nexport const WP_TYPIA_CANONICAL_MIGRATE_USAGE = 'wp-typia migrate <subcommand>';\nexport const WP_TYPIA_DEPRECATED_MIGRATIONS_USAGE =\n 'wp-typia migrations <subcommand>';\nexport const WP_TYPIA_BUNLI_MIGRATION_DOC =\n 'https://imjlk.github.io/wp-typia/maintainers/bunli-cli-migration/';\n\nexport const WP_TYPIA_RESERVED_TOP_LEVEL_COMMAND_NAMES = [\n 'create',\n 'sync',\n 'add',\n 'migrate',\n 'templates',\n 'doctor',\n 'mcp',\n 'help',\n 'version',\n 'skills',\n 'completions',\n 'complete',\n] as const;\n\nexport const WP_TYPIA_TOP_LEVEL_COMMAND_NAMES = [\n 'create',\n 'sync',\n 'add',\n 'migrate',\n 'templates',\n 'doctor',\n 'mcp',\n] as const;\n\nconst SHARED_OPTION_PARSER = buildCommandOptionParser(\n ADD_OPTION_METADATA,\n GLOBAL_OPTION_METADATA,\n CREATE_OPTION_METADATA,\n MIGRATE_OPTION_METADATA,\n TEMPLATES_OPTION_METADATA,\n);\n\nconst STRING_OPTION_NAMES_BY_COMMAND = {\n add: new Set(collectOptionNamesByType(ADD_OPTION_METADATA, 'string')),\n create: new Set(collectOptionNamesByType(CREATE_OPTION_METADATA, 'string')),\n migrate: new Set(collectOptionNamesByType(MIGRATE_OPTION_METADATA, 'string')),\n templates: new Set(collectOptionNamesByType(TEMPLATES_OPTION_METADATA, 'string')),\n} as const;\n\nconst GLOBAL_STRING_OPTION_NAMES = new Set(\n collectOptionNamesByType(GLOBAL_OPTION_METADATA, 'string'),\n);\n\nconst SHORT_OPTION_NAMES_WITH_VALUES = new Set<string>(\n [...SHARED_OPTION_PARSER.shortFlagMap.entries()]\n .filter(([, option]) => option.type === 'string')\n .map(([short]) => short),\n);\n\nfunction isLongOptionValueConsumer(optionName: string): boolean {\n if (GLOBAL_STRING_OPTION_NAMES.has(optionName)) {\n return true;\n }\n\n return Object.values(STRING_OPTION_NAMES_BY_COMMAND).some((optionNames) =>\n optionNames.has(optionName as never),\n );\n}\n\nfunction findFirstPositionalIndex(argv: string[]): number {\n const positionalIndexes = collectPositionalIndexes(argv);\n return positionalIndexes[0] ?? -1;\n}\n\nfunction collectPositionalIndexes(argv: string[]): number[] {\n const positionalIndexes: number[] = [];\n\n for (let index = 0; index < argv.length; index += 1) {\n const arg = argv[index];\n if (arg === '--') {\n for (let restIndex = index + 1; restIndex < argv.length; restIndex += 1) {\n positionalIndexes.push(restIndex);\n }\n break;\n }\n if (!arg.startsWith('-') || arg === '-') {\n positionalIndexes.push(index);\n continue;\n }\n if (arg.startsWith('--')) {\n if (arg.includes('=')) {\n continue;\n }\n if (isLongOptionValueConsumer(arg.slice(2))) {\n index += 1;\n }\n continue;\n }\n if (arg.length === 2 && SHORT_OPTION_NAMES_WITH_VALUES.has(arg.slice(1))) {\n index += 1;\n }\n }\n\n return positionalIndexes;\n}\n\nexport const WP_TYPIA_FUTURE_COMMAND_TREE = [\n {\n description: 'Scaffold a new wp-typia project.',\n name: 'create',\n },\n {\n description: 'Run the common generated-project sync workflow.',\n name: 'sync',\n },\n {\n description: 'Extend an official wp-typia workspace.',\n name: 'add',\n subcommands: [\n 'block',\n 'variation',\n 'pattern',\n 'binding-source',\n 'rest-resource',\n 'editor-plugin',\n 'hooked-block',\n ],\n },\n {\n description: 'Run migration workflows.',\n name: 'migrate',\n subcommands: [\n 'init',\n 'snapshot',\n 'diff',\n 'scaffold',\n 'plan',\n 'wizard',\n 'verify',\n 'doctor',\n 'fixtures',\n 'fuzz',\n ],\n },\n {\n description: 'Inspect scaffold templates.',\n name: 'templates',\n subcommands: ['list', 'inspect'],\n },\n {\n description: 'Run repository and project diagnostics.',\n name: 'doctor',\n },\n {\n description: 'Inspect or sync schema-driven MCP metadata.',\n name: 'mcp',\n subcommands: ['list', 'sync'],\n },\n] as const;\n\nexport function isReservedTopLevelCommandName(value: string): boolean {\n return WP_TYPIA_RESERVED_TOP_LEVEL_COMMAND_NAMES.includes(\n value as (typeof WP_TYPIA_RESERVED_TOP_LEVEL_COMMAND_NAMES)[number],\n );\n}\n\nfunction assertStringOptionValues(argv: string[]): void {\n const firstPositionalIndex = findFirstPositionalIndex(argv);\n if (firstPositionalIndex === -1) {\n return;\n }\n\n const commandName = argv[\n firstPositionalIndex\n ] as keyof typeof STRING_OPTION_NAMES_BY_COMMAND;\n const stringOptionNames = new Set<string>(GLOBAL_STRING_OPTION_NAMES);\n for (const optionName of STRING_OPTION_NAMES_BY_COMMAND[commandName] ?? []) {\n stringOptionNames.add(optionName);\n }\n\n for (let index = firstPositionalIndex + 1; index < argv.length; index += 1) {\n const arg = argv[index];\n if (arg === '--') {\n break;\n }\n if (arg.length === 2 && arg.startsWith('-')) {\n if (SHORT_OPTION_NAMES_WITH_VALUES.has(arg.slice(1))) {\n const next = argv[index + 1];\n if (!next || next.startsWith('-')) {\n throw new Error(`\\`${arg}\\` requires a value.`);\n }\n index += 1;\n }\n continue;\n }\n if (!arg.startsWith('--')) {\n continue;\n }\n\n const [rawName, inlineValue] = arg.slice(2).split('=', 2);\n if (!stringOptionNames.has(rawName)) {\n continue;\n }\n\n if (arg.includes('=')) {\n if (!inlineValue) {\n throw new Error(`\\`--${rawName}\\` requires a value.`);\n }\n continue;\n }\n\n const next = argv[index + 1];\n if (!next || next.startsWith('-')) {\n throw new Error(`\\`--${rawName}\\` requires a value.`);\n }\n index += 1;\n }\n}\n\nfunction isWindowsDrivePath(value: string): boolean {\n return /^[A-Za-z]:([\\\\/]|$)/.test(value);\n}\n\nfunction looksLikeStructuredProjectInput(value: string): boolean {\n if (value.includes('#')) {\n return true;\n }\n\n if (!isWindowsDrivePath(value) && /^[A-Za-z][A-Za-z0-9+.-]*:/u.test(value)) {\n return true;\n }\n\n return value.startsWith('@') && value.includes('/');\n}\n\nfunction assertPositionalAliasProjectDir(projectDir: string): void {\n const normalizedProjectDir =\n path.normalize(projectDir).replace(/[\\\\/]+$/u, '') || path.normalize(projectDir);\n if (normalizedProjectDir === '.' || normalizedProjectDir === '..') {\n throw new Error(\n `The positional alias does not scaffold into \\`${projectDir}\\`. Use \\`${WP_TYPIA_CANONICAL_CREATE_USAGE}\\` with an explicit child directory instead.`,\n );\n }\n\n if (looksLikeStructuredProjectInput(projectDir)) {\n throw new Error(\n `The positional alias only accepts unambiguous local project directories. Use \\`${WP_TYPIA_CANONICAL_CREATE_USAGE}\\` for \\`${projectDir}\\`.`,\n );\n }\n}\n\nexport function normalizeWpTypiaArgv(argv: string[]): string[] {\n const positionalIndexes = collectPositionalIndexes(argv);\n const firstPositionalIndex = positionalIndexes[0] ?? -1;\n if (firstPositionalIndex === -1) {\n return argv;\n }\n\n const firstPositional = argv[firstPositionalIndex];\n if (!firstPositional) {\n return argv;\n }\n\n if (firstPositional === 'migrations') {\n throw new Error(\n '`wp-typia migrations` was removed in favor of `wp-typia migrate`. Use `wp-typia migrate <subcommand>` instead.',\n );\n }\n\n if (isReservedTopLevelCommandName(firstPositional)) {\n assertStringOptionValues(argv);\n return argv;\n }\n\n if (positionalIndexes.length > 1) {\n const extraPositionals = positionalIndexes\n .slice(1)\n .map((index) => argv[index])\n .filter(\n (value): value is string =>\n typeof value === 'string' && value.length > 0,\n );\n\n throw new Error(\n `The positional alias only accepts a single project directory. Use \\`${WP_TYPIA_CANONICAL_CREATE_USAGE}\\` for scaffold invocations with additional positional arguments, or check the command spelling if you meant another top-level command. Extra positional arguments: ${extraPositionals.map((value) => `\\`${value}\\``).join(', ')}.`,\n );\n }\n\n assertPositionalAliasProjectDir(firstPositional);\n\n const normalizedArgv = [\n ...argv.slice(0, firstPositionalIndex),\n 'create',\n ...argv.slice(firstPositionalIndex),\n ];\n assertStringOptionValues(normalizedArgv);\n return normalizedArgv;\n}\n"
14
15
  ],
15
- "mappings": "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",
16
- "debugId": "7B916CF74AF5C70064756E2164756E21",
16
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACDA;AA4BO,IAAM,yBAAyB;AAAA,EACrC,4BAA4B;AAAA,IAC3B,aACC;AAAA,IACD,MAAM;AAAA,EACP;AAAA,EACA,gBAAgB;AAAA,IACf,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,WAAW;AAAA,IACV,cAAc;AAAA,IACd,aACC;AAAA,IACD,MAAM;AAAA,EACP;AAAA,EACA,qBAAqB;AAAA,IACpB,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,yBAAyB;AAAA,IACxB,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,uBAAuB;AAAA,IACtB,aACC;AAAA,IACD,MAAM;AAAA,EACP;AAAA,EACA,WAAW;AAAA,IACV,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,cAAc;AAAA,IACb,cAAc;AAAA,IACd,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,mBAAmB;AAAA,IAClB,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,EACP;AAAA,EACA,sBAAsB;AAAA,IACrB,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,cAAc;AAAA,IACb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,mBAAmB;AAAA,IAClB,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,UAAU;AAAA,IACT,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,EACP;AAAA,EACA,eAAe;AAAA,IACd,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,SAAS;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,qBAAqB;AAAA,IACpB,cAAc;AAAA,IACd,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,oBAAoB;AAAA,IACnB,cAAc;AAAA,IACd,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,eAAe;AAAA,IACd,cAAc;AAAA,IACd,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,KAAK;AAAA,IACJ,cAAc;AAAA,IACd,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,EACP;AACD;AAKO,IAAM,sBAAsB;AAAA,EAClC,4BAA4B;AAAA,IAC3B,aACC;AAAA,IACD,MAAM;AAAA,EACP;AAAA,EACA,QAAQ;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,OAAO;AAAA,IACN,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,gBAAgB;AAAA,IACf,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,WAAW;AAAA,IACV,cAAc;AAAA,IACd,aACC;AAAA,IACD,MAAM;AAAA,EACP;AAAA,EACA,qBAAqB;AAAA,IACpB,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,yBAAyB;AAAA,IACxB,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,uBAAuB;AAAA,IACtB,aACC;AAAA,IACD,MAAM;AAAA,EACP;AAAA,EACA,SAAS;AAAA,IACR,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,WAAW;AAAA,IACV,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,sBAAsB;AAAA,IACrB,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,UAAU;AAAA,IACT,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,MAAM;AAAA,IACL,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,UAAU;AAAA,IACT,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AACD;AAKO,IAAM,0BAA0B;AAAA,EACtC,KAAK;AAAA,IACJ,cAAc;AAAA,IACd,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,6BAA6B;AAAA,IAC5B,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,OAAO;AAAA,IACN,cAAc;AAAA,IACd,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,0BAA0B;AAAA,IACzB,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,YAAY;AAAA,IACX,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,qBAAqB;AAAA,IACpB,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,MAAM;AAAA,IACL,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,wBAAwB;AAAA,IACvB,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AACD;AAKO,IAAM,4BAA4B;AAAA,EACxC,IAAI;AAAA,IACH,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AACD;AAKO,IAAM,yBAAyB;AAAA,EACrC,QAAQ;AAAA,IACP,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,EACP;AAAA,EACA,QAAQ;AAAA,IACP,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,IAAI;AAAA,IACH,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,cAAc;AAAA,IACb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AACD;AA0BO,SAAS,wBAAwB,CACvC,UACA,MACW;AAAA,EACX,OAAO,OAAO,QAAQ,QAAQ,EAC5B,OAAO,IAAI,YAAY,OAAO,SAAS,IAAI,EAC3C,IAAI,EAAE,UAAU,IAAI;AAAA;AAGhB,SAAS,4BAA4B,CAC3C,UACW;AAAA,EACX,OAAO,OAAO,QAAQ,QAAQ,EAAE,IAAI,EAAE,MAAM,YAAY;AAAA,IACvD,MAAM,QAAQ,OAAO,QAAQ,MAAM,OAAO,UAAU;AAAA,IACpD,OAAO,OAAO,OAAO,UAAU,OAAO;AAAA,GACtC;AAAA;AAGK,SAAS,wBAAwB,IACpC,cACmB;AAAA,EACtB,MAAM,WAAqC,OAAO,OAAO,CAAC,GAAG,GAAG,YAAY;AAAA,EAE5E,OAAO;AAAA,IACN,oBAAoB,IAAI,IAAI,yBAAyB,UAAU,SAAS,CAAC;AAAA,IACzE,cAAc,IAAI,IACjB,OAAO,QAAQ,QAAQ,EAAE,QAAQ,EAAE,MAAM,YACxC,OAAO,QACJ,CAAC,CAAC,OAAO,OAAO,EAAE,MAAM,MAAM,OAAO,KAAK,CAAC,CAAU,IACrD,CAAC,CACL,CACD;AAAA,IACA,mBAAmB,IAAI,IAAI,yBAAyB,UAAU,QAAQ,CAAC;AAAA,EACxE;AAAA;AAGM,SAAS,4BAA4B,CAC3C,MACA,SAIoB;AAAA,EACpB,MAAM,QAAiC,CAAC;AAAA,EACxC,MAAM,cAAwB,CAAC;AAAA,EAC/B,MAAM,qBAAqB,IAAI,IAAI,QAAQ,OAAO,kBAAkB;AAAA,EAEpE,WAAW,cAAc,QAAQ,2BAA2B,CAAC,GAAG;AAAA,IAC/D,mBAAmB,IAAI,UAAU;AAAA,EAClC;AAAA,EAEA,SAAS,QAAQ,EAAG,QAAQ,KAAK,QAAQ,SAAS,GAAG;AAAA,IACpD,MAAM,MAAM,KAAK;AAAA,IACjB,IAAI,CAAC,KAAK;AAAA,MACT;AAAA,IACD;AAAA,IAEA,IAAI,QAAQ,MAAM;AAAA,MACjB,YAAY,KAAK,GAAG,KAAK,MAAM,QAAQ,CAAC,CAAC;AAAA,MACzC;AAAA,IACD;AAAA,IAEA,IAAI,IAAI,WAAW,KAAK,IAAI,WAAW,GAAG,GAAG;AAAA,MAC5C,MAAM,YAAY,QAAQ,OAAO,aAAa,IAAI,IAAI,MAAM,CAAC,CAAC;AAAA,MAC9D,IAAI,CAAC,WAAW;AAAA,QACf,MAAM,IAAI,MAAM,oBAAoB,QAAQ;AAAA,MAC7C;AAAA,MACA,IAAI,UAAU,SAAS,WAAW;AAAA,QACjC,MAAM,UAAU,QAAQ;AAAA,QACxB;AAAA,MACD;AAAA,MACA,MAAM,OAAO,KAAK,QAAQ;AAAA,MAC1B,IAAI,CAAC,QAAQ,KAAK,WAAW,GAAG,GAAG;AAAA,QAClC,MAAM,IAAI,MAAM,KAAK,yBAAyB;AAAA,MAC/C;AAAA,MACA,MAAM,UAAU,QAAQ;AAAA,MACxB,SAAS;AAAA,MACT;AAAA,IACD;AAAA,IAEA,IAAI,IAAI,WAAW,IAAI,GAAG;AAAA,MACzB,MAAM,SAAS,IAAI,MAAM,CAAC;AAAA,MAC1B,MAAM,iBAAiB,OAAO,QAAQ,GAAG;AAAA,MACzC,MAAM,UACL,mBAAmB,KAAK,SAAS,OAAO,MAAM,GAAG,cAAc;AAAA,MAChE,MAAM,cACL,mBAAmB,KAAK,YAAY,OAAO,MAAM,iBAAiB,CAAC;AAAA,MACpE,IAAI,mBAAmB,IAAI,OAAO,GAAG;AAAA,QACpC,MAAM,WAAW;AAAA,QACjB;AAAA,MACD;AAAA,MACA,IAAI,CAAC,QAAQ,OAAO,kBAAkB,IAAI,OAAO,GAAG;AAAA,QACnD,MAAM,IAAI,MAAM,sBAAsB,YAAY;AAAA,MACnD;AAAA,MACA,IAAI,gBAAgB,WAAW;AAAA,QAC9B,IAAI,CAAC,aAAa;AAAA,UACjB,MAAM,IAAI,MAAM,OAAO,6BAA6B;AAAA,QACrD;AAAA,QACA,MAAM,WAAW;AAAA,QACjB;AAAA,MACD;AAAA,MACA,MAAM,OAAO,KAAK,QAAQ;AAAA,MAC1B,IAAI,CAAC,QAAQ,KAAK,WAAW,GAAG,GAAG;AAAA,QAClC,MAAM,IAAI,MAAM,OAAO,6BAA6B;AAAA,MACrD;AAAA,MACA,MAAM,WAAW;AAAA,MACjB,SAAS;AAAA,MACT;AAAA,IACD;AAAA,IAEA,IAAI,IAAI,WAAW,GAAG,GAAG;AAAA,MACxB,MAAM,IAAI,MAAM,oBAAoB,QAAQ;AAAA,IAC7C;AAAA,IAEA,YAAY,KAAK,GAAG;AAAA,EACrB;AAAA,EAEA,OAAO;AAAA,IACN;AAAA,IACA;AAAA,EACD;AAAA;AAGM,SAAS,0BAEf,CACA,UACA,SAK+C;AAAA,EAC/C,MAAM,WAAyD,CAAC;AAAA,EAChE,MAAM,cACL,QAAQ,eAAgB,OAAO,KAAK,QAAQ;AAAA,EAE7C,WAAW,cAAc,aAAa;AAAA,IACrC,MAAM,OAAO,OAAO,UAAU;AAAA,IAC9B,MAAM,aAAa,SAAS;AAAA,IAC5B,IAAI,CAAC,YAAY;AAAA,MAChB;AAAA,IACD;AAAA,IAEA,MAAM,QAAQ,QAAQ,QAAQ,SAAS,QAAQ,WAAW;AAAA,IAC1D,IAAI,WAAW,SAAS,WAAW;AAAA,MAClC,SAAS,QAAQ,QAAQ,SAAS,KAAK;AAAA,MACvC;AAAA,IACD;AAAA,IAEA,SAAS,QAAQ,OAAO,UAAU,WAAW,QAAQ;AAAA,EACtD;AAAA,EAEA,OAAO;AAAA;;;ADjaR;AAAA;AAAA;AAAA;;;AElBA;AACA;AACA;AAEA,0BAAS;AA6CF,IAAM,0BAA0B;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AACD;AAGA,SAAS,SAA+B,CAAC,MAAS,UAAyB;AAAA,EAC1E,MAAM,SAAqB,KAAK,KAAK;AAAA,EAErC,YAAY,KAAK,UAAU,OAAO,QAAQ,QAAQ,GAAG;AAAA,IACpD,IAAI,MAAM,QAAQ,KAAK,GAAG;AAAA,MACzB,OAAO,OAAO,MAAM,MAAM;AAAA,MAC1B;AAAA,IACD;AAAA,IACA,IAAI,SAAS,KAAK,KAAK,SAAS,OAAO,IAAI,GAAG;AAAA,MAC7C,OAAO,OAAO,UAAU,OAAO,MAAoB,KAAK;AAAA,MACxD;AAAA,IACD;AAAA,IACA,OAAO,OAAO;AAAA,EACf;AAAA,EAEA,OAAO;AAAA;AAGR,eAAe,YAAY,CAAC,UAA8C;AAAA,EACzE,IAAI;AAAA,IACH,MAAM,SAAS,MAAM,GAAG,SAAS,UAAU,MAAM;AAAA,IACjD,MAAM,SAAS,KAAK,MAAM,MAAM;AAAA,IAChC,OAAO,SAAS,MAAM,IAAI,SAAS;AAAA,IAClC,OAAO,OAAO;AAAA,IACf,IACC,OAAO,UAAU,YACjB,UAAU,QACV,UAAU,SACV,MAAM,SAAS,UACd;AAAA,MACD,OAAO;AAAA,IACR;AAAA,IACA,MAAM;AAAA;AAAA;AAIR,SAAS,iBAAiB,CAAC,KAAa,QAAwB;AAAA,EAC/D,IAAI,OAAO,WAAW,IAAI,GAAG;AAAA,IAC5B,OAAO,KAAK,KAAK,GAAG,QAAQ,GAAG,OAAO,MAAM,CAAC,CAAC;AAAA,EAC/C;AAAA,EACA,OAAO,KAAK,QAAQ,KAAK,MAAM;AAAA;AAGzB,SAAS,sBAAsB,CACrC,MACA,UACoB;AAAA,EACpB,OAAO,UAAU,MAAoB,QAAsB;AAAA;AAG5D,eAAsB,+BAA+B,CACpD,KACA,QAC6B;AAAA,EAC7B,MAAM,SAAS,MAAM,aAAa,kBAAkB,KAAK,MAAM,CAAC;AAAA,EAChE,OAAQ,UAAU,CAAC;AAAA;AAGpB,eAAsB,qBAAqB,CAAC,KAAyC;AAAA,EACpF,IAAI,SAAqB,CAAC;AAAA,EAE1B,WAAW,UAAU,yBAAyB;AAAA,IAC7C,MAAM,aAAa,kBAAkB,KAAK,MAAM;AAAA,IAChD,MAAM,SAAS,MAAM,aAAa,UAAU;AAAA,IAC5C,IAAI,QAAQ;AAAA,MACX,SAAS,UAAU,QAAQ,MAAM;AAAA,IAClC;AAAA,EACD;AAAA,EAEA,MAAM,cAAc,MAAM,aAAa,KAAK,KAAK,KAAK,cAAc,CAAC;AAAA,EACrE,IAAI,eAAe,SAAS,YAAY,WAAW,GAAG;AAAA,IACrD,SAAS,UAAU,QAAQ,YAAY,WAAyB;AAAA,EACjE;AAAA,EAEA,OAAO;AAAA;AAGD,SAAS,iBAAiB,CAAC,QAAqE;AAAA,EACtG,OAAO,OAAO,UAAU,CAAC;AAAA;AAGnB,SAAS,mBAAmB,CAClC,QAC8D;AAAA,EAC9D,OAAO,OAAO,KAAK,SAAS,CAAC;AAAA;;;AC5IvB,SAAS,4BAA4B,CAAC,MAG3C;AAAA,EACD,MAAM,WAAqB,CAAC;AAAA,EAC5B,IAAI;AAAA,EAEJ,SAAS,QAAQ,EAAG,QAAQ,KAAK,QAAQ,SAAS,GAAG;AAAA,IACpD,MAAM,MAAM,KAAK;AAAA,IACjB,IAAI,CAAC,KAAK;AAAA,MACT;AAAA,IACD;AAAA,IAEA,IAAI,QAAQ,MAAM;AAAA,MACjB,SAAS,KAAK,GAAG,KAAK,MAAM,KAAK,CAAC;AAAA,MAClC;AAAA,IACD;AAAA,IAEA,IAAI,QAAQ,cAAc,QAAQ,MAAM;AAAA,MACvC,MAAM,OAAO,KAAK,QAAQ;AAAA,MAC1B,IAAI,CAAC,QAAQ,KAAK,WAAW,GAAG,GAAG;AAAA,QAClC,MAAM,IAAI,MAAM,KAAK,yBAAyB;AAAA,MAC/C;AAAA,MACA,qBAAqB;AAAA,MACrB,SAAS;AAAA,MACT;AAAA,IACD;AAAA,IAEA,IAAI,IAAI,WAAW,WAAW,GAAG;AAAA,MAChC,MAAM,cAAc,IAAI,MAAM,YAAY,MAAM;AAAA,MAChD,IAAI,CAAC,aAAa;AAAA,QACjB,MAAM,IAAI,MAAM,8BAA8B;AAAA,MAC/C;AAAA,MACA,qBAAqB;AAAA,MACrB;AAAA,IACD;AAAA,IAEA,SAAS,KAAK,GAAG;AAAA,EAClB;AAAA,EAEA,OAAO;AAAA,IACN,MAAM;AAAA,IACN;AAAA,EACD;AAAA;;;AC3CD;AACA,qBAAS;AACT;AAEA;AAIA,IAAM,4BAA4B,IAAI,IAAI,CAAC,QAAQ,cAAc,CAAC;AAClE,IAAM,+BAA+B,IAAI,IAAI;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,CAAC;AAED,eAAe,oBAAoB,CAAC,WAAmB,WAAkC;AAAA,EACxF,MAAM,IAAI,GAAG,WAAW,WAAW;AAAA,IAClC,QAAQ,CAAC,eAAe;AAAA,MACvB,MAAM,eAAe,MAAK,SAAS,WAAW,UAAU;AAAA,MACxD,IAAI,iBAAiB,IAAI;AAAA,QACxB,OAAO;AAAA,MACR;AAAA,MAEA,OAAO,aAAa,aAAa,MAAM,MAAK,GAAG;AAAA,MAC/C,OAAO,CAAC,0BAA0B,IAAI,aAAa,EAAE;AAAA;AAAA,IAEtD,WAAW;AAAA,EACZ,CAAC;AAAA;AAGF,SAAS,6BAA6B,CAAC,WAAmB,WAAyB;AAAA,EAClF,MAAM,oBAAoB,MAAK,KAAK,WAAW,cAAc;AAAA,EAC7D,IAAI,IAAG,WAAW,iBAAiB,GAAG;AAAA,IACrC,IAAG,YAAY,mBAAmB,MAAK,KAAK,WAAW,cAAc,GAAG,UAAU;AAAA,EACnF;AAAA,EAEA,WAAW,UAAU,CAAC,YAAY,iBAAiB,GAAY;AAAA,IAC9D,MAAM,eAAe,MAAK,KAAK,WAAW,MAAM;AAAA,IAChD,IAAI,CAAC,IAAG,WAAW,YAAY,GAAG;AAAA,MACjC;AAAA,IACD;AAAA,IAEA,MAAM,eAAe,MAAK,KAAK,WAAW,MAAM;AAAA,IAChD,IAAI;AAAA,MACH,IAAG,YAAY,cAAc,YAAY;AAAA,MACxC,MAAM;AAAA,MACP,IAAI;AAAA,QACH,IAAG,SAAS,cAAc,YAAY;AAAA,QACrC,MAAM;AAAA,QACP,IAAG,aAAa,cAAc,YAAY;AAAA;AAAA;AAAA,EAG7C;AAAA;AAGD,eAAe,kBAAkB,CAAC,SAA+C;AAAA,EAChF,MAAM,QAAQ,IAAI;AAAA,EAElB,eAAe,KAAK,CAAC,YAAmC;AAAA,IACvD,MAAM,UAAU,MAAM,IAAI,QAAQ,YAAY,EAAE,eAAe,KAAK,CAAC;AAAA,IACrE,WAAW,SAAS,SAAS;AAAA,MAC5B,MAAM,eAAe,MAAK,KAAK,YAAY,MAAM,IAAI;AAAA,MACrD,MAAM,eAAe,MAAK,SAAS,SAAS,YAAY;AAAA,MACxD,OAAO,aAAa,aAAa,MAAM,MAAK,GAAG;AAAA,MAC/C,IAAI,6BAA6B,IAAI,aAAa,EAAE,GAAG;AAAA,QACtD;AAAA,MACD;AAAA,MAEA,IAAI,MAAM,YAAY,GAAG;AAAA,QACxB,MAAM,MAAM,YAAY;AAAA,QACxB;AAAA,MACD;AAAA,MAEA,IAAI,CAAC,MAAM,OAAO,GAAG;AAAA,QACpB;AAAA,MACD;AAAA,MAEA,MAAM,IACL,aAAa,QAAQ,MAAK,QAAQ,OAAO,SAAS,QAAQ,GAAG,GAC7D,MAAM,IAAI,SAAS,YAAY,CAChC;AAAA,IACD;AAAA;AAAA,EAGD,MAAM,MAAM,OAAO;AAAA,EACnB,OAAO;AAAA;AAGR,SAAS,cAAc,CAAC,MAAc,OAAuB;AAAA,EAC5D,IAAI,OAAO,OAAO;AAAA,IACjB,OAAO;AAAA,EACR;AAAA,EACA,IAAI,OAAO,OAAO;AAAA,IACjB,OAAO;AAAA,EACR;AAAA,EACA,OAAO;AAAA;AAGR,eAAe,8BAA8B,CAC5C,WACA,cACoC;AAAA,EACpC,OAAO,aAAa,kBAAkB,MAAM,QAAQ,IAAI;AAAA,IACvD,mBAAmB,SAAS;AAAA,IAC5B,mBAAmB,YAAY;AAAA,EAChC,CAAC;AAAA,EACD,MAAM,aAAuC,CAAC;AAAA,EAE9C,YAAY,cAAc,oBAAoB,gBAAgB;AAAA,IAC7D,MAAM,iBAAiB,YAAY,IAAI,YAAY;AAAA,IACnD,IAAI,mBAAmB,WAAW;AAAA,MACjC,WAAW,KAAK,SAAS,cAAc;AAAA,MACvC;AAAA,IACD;AAAA,IAEA,IAAI,CAAC,eAAe,OAAO,eAAe,GAAG;AAAA,MAC5C,WAAW,KAAK,UAAU,cAAc;AAAA,IACzC;AAAA,EACD;AAAA,EAEA,WAAW,gBAAgB,YAAY,KAAK,GAAG;AAAA,IAC9C,IAAI,CAAC,eAAe,IAAI,YAAY,GAAG;AAAA,MACtC,WAAW,KAAK,UAAU,cAAc;AAAA,IACzC;AAAA,EACD;AAAA,EAEA,OAAO,WAAW,KAAK,cAAc;AAAA;AAUtC,eAAsB,0BAA6B;AAAA,EAClD;AAAA,EACA;AAAA,GAOE;AAAA,EACF,QAAQ,4BAA4B,MAAa;AAAA,EACjD,MAAM,YAAY,wBAAwB,GAAG;AAAA,EAC7C,MAAM,cAAc,MAAK,SAAS,UAAU,YAAY,MAAK,QAAQ,GAAG,CAAC;AAAA,EACzE,QAAQ,MAAM,UAAU,YAAY,MAAM,sBACzC,oBACD;AAAA,EACA,MAAM,sBAAsB,MAAK,KAAK,UAAU,WAAW;AAAA,EAE3D,IAAI;AAAA,IACH,MAAM,qBAAqB,UAAU,YAAY,mBAAmB;AAAA,IACpE,8BAA8B,UAAU,YAAY,mBAAmB;AAAA,IAEvE,MAAM,eACL,YAAY,SAAS,IAAI,MAAK,KAAK,qBAAqB,WAAW,IAAI;AAAA,IACxE,MAAM,SAAS,MAAM,QAAQ,YAAY;AAAA,IACzC,MAAM,iBAAiB,MAAM,+BAC5B,UAAU,YACV,mBACD;AAAA,IAEA,OAAO;AAAA,MACN;AAAA,MACA;AAAA,IACD;AAAA,YACC;AAAA,IACD,MAAM,QAAQ;AAAA;AAAA;;;AC5KhB;AACA;AAGA;AAwBO,SAAS,sBAAsB,CACrC,SACA,UAGI,CAAC,GACE;AAAA,EACP,MAAM,YAAY,QAAQ,aAAc,QAAQ;AAAA,EAChD,MAAM,WAAW,QAAQ,YAAY;AAAA,EAErC,WAAW,QAAQ,QAAQ,iBAAiB,CAAC,GAAG;AAAA,IAC/C,UAAU,IAAI;AAAA,EACf;AAAA,EACA,WAAW,WAAW,QAAQ,gBAAgB,CAAC,GAAG;AAAA,IACjD,SAAS,MAAK,SAAS;AAAA,EACxB;AAAA,EAEA,MAAM,cACJ,QAAQ,cAAc,UAAU,KAAK,MACrC,QAAQ,WAAW,UAAU,KAAK,MAClC,QAAQ,eAAe,UAAU,KAAK,KACvC,QAAQ,QAAQ,YAAY;AAAA,EAC7B,MAAM,qBACJ,QAAQ,eAAe,UAAU,KAAK,MACtC,QAAQ,cAAc,UAAU,KAAK;AAAA,EAEvC,UAAU,qBAAqB,aAAa;AAAA,EAAK,QAAQ,UAAU,QAAQ,KAAK;AAAA,EAChF,WAAW,QAAQ,QAAQ,gBAAgB,CAAC,GAAG;AAAA,IAC9C,UAAU,IAAI;AAAA,EACf;AAAA,EACA,KAAK,QAAQ,WAAW,UAAU,KAAK,GAAG;AAAA,IACzC,UAAU,aAAa;AAAA,IACvB,WAAW,QAAQ,QAAQ,aAAa,CAAC,GAAG;AAAA,MAC3C,UAAU,KAAK,MAAM;AAAA,IACtB;AAAA,EACD;AAAA,EACA,KAAK,QAAQ,eAAe,UAAU,KAAK,GAAG;AAAA,IAC7C,UAAU;AAAA,EAAK,QAAQ,iBAAiB,aAAa;AAAA,IACrD,WAAW,QAAQ,QAAQ,iBAAiB,CAAC,GAAG;AAAA,MAC/C,UAAU,KAAK,MAAM;AAAA,IACtB;AAAA,EACD;AAAA,EACA,IAAI,QAAQ,cAAc;AAAA,IACzB,UAAU,SAAS,QAAQ,cAAc;AAAA,EAC1C;AAAA;AASM,SAAS,wBAAwB,CAAC,SAAwC;AAAA,EAChF,OAAO,KAAI,QAAQ,UAAU,QAAQ;AAAA;AAS/B,SAAS,4BAA4B,CAAC,MAeR;AAAA,EACpC,MAAM,oBAAoB;AAAA,IACzB,yBACC,KAAK,gBACL,YAAY,gBAAY,WACxB,QACD;AAAA,IACA,GAAG,KAAK,mBAAmB;AAAA,EAC5B;AAAA,EAEA,OAAO;AAAA,IACN,WAAW,KAAK;AAAA,IAChB,eAAe;AAAA,IACf,cAAc,KAAK,mBAAmB;AAAA,IACtC,eAAe;AAAA,IACf,eAAe,KAAK,OAAO,kBACxB,CAAC,qBAAqB,KAAK,OAAO,iBAAiB,IACnD;AAAA,IACH,cAAc,CAAC,sBAAsB,KAAK,YAAY;AAAA,IACtD,OAAO,aAAY,KAAK,OAAO,UAAU,YAAY,KAAK;AAAA,IAC1D,cAAc,KAAK,OAAO;AAAA,EAC3B;AAAA;AASM,SAAS,wBAAwB,CAAC,MAeJ;AAAA,EACpC,IAAI;AAAA,EACJ,QAAQ,KAAK,KAAK;AAAA,SACZ;AAAA,MACJ,wBAAwB;AAAA,MACxB;AAAA,SACI;AAAA,MACJ,wBAAwB;AAAA,MACxB;AAAA;AAAA,EAGF,OAAO;AAAA,IACN,eAAe,KAAK,KAAK,MAAM,IAAI,CAAC,iBAAiB,SAAS,cAAc;AAAA,IAC5E,cACC;AAAA,IACD,eAAe,kBAAkB,KAAK,KAAK,MAAM;AAAA,IACjD,eAAe,KAAK,OAAO,kBACxB,CAAC,qBAAqB,KAAK,OAAO,iBAAiB,IACnD;AAAA,IACH,cAAc;AAAA,MACb,sBAAsB,KAAK;AAAA,MAC3B,aAAa,KAAK,OAAO;AAAA,MACzB,oBAAoB,KAAK;AAAA,MACzB;AAAA,IACD;AAAA,IACA,OAAO,4BAAiB,KAAK,OAAO,UAAU,YAAY,KAAK;AAAA,IAC/D,cAAc,KAAK,OAAO;AAAA,EAC3B;AAAA;AAGD,SAAS,0BAA0B,CAAC,YAAsC;AAAA,EACzE,IAAI;AAAA,IACH,MAAM,kBAAkB,MAAK,KAAK,YAAY,cAAc;AAAA,IAC5D,IAAI,IAAG,WAAW,eAAe,GAAG;AAAA,MACnC,MAAM,WAAW,KAAK,MAAM,IAAG,aAAa,iBAAiB,MAAM,CAAC;AAAA,MAGpE,IAAI,SAAS,gBAAgB,WAAW,MAAM;AAAA,QAAG,OAAO;AAAA,MACxD,IAAI,SAAS,gBAAgB,WAAW,OAAO;AAAA,QAAG,OAAO;AAAA,MACzD,IAAI,SAAS,gBAAgB,WAAW,OAAO;AAAA,QAAG,OAAO;AAAA,MACzD,IAAI,SAAS,gBAAgB,WAAW,MAAM;AAAA,QAAG,OAAO;AAAA,IACzD;AAAA,IACC,MAAM;AAAA,EAER,IACC,IAAG,WAAW,MAAK,KAAK,YAAY,UAAU,CAAC,KAC/C,IAAG,WAAW,MAAK,KAAK,YAAY,WAAW,CAAC,GAC/C;AAAA,IACD,OAAO;AAAA,EACR;AAAA,EACA,IAAI,IAAG,WAAW,MAAK,KAAK,YAAY,gBAAgB,CAAC,GAAG;AAAA,IAC3D,OAAO;AAAA,EACR;AAAA,EACA,IACC,IAAG,WAAW,MAAK,KAAK,YAAY,WAAW,CAAC,KAChD,IAAG,WAAW,MAAK,KAAK,YAAY,aAAa,CAAC,GACjD;AAAA,IACD,OAAO;AAAA,EACR;AAAA,EAEA,OAAO;AAAA;AASD,SAAS,+BAA+B,CAAC,SAGX;AAAA,EACpC,MAAM,eAAe,QAAQ,MAAM,OAAO,CAAC,SAAS,KAAK,KAAK,EAAE,SAAS,CAAC;AAAA,EAE1E,OAAO;AAAA,IACN;AAAA,IACA,OAAO,gCAA+B,QAAQ;AAAA,EAC/C;AAAA;AASM,SAAS,yBAAyB,CAAC,SAaL;AAAA,EACpC,MAAM,oBAAoB;AAAA,IACzB,yBACC,QAAQ,kBAAkB,2BAA2B,QAAQ,UAAU,GACvE,YAAY,gBAAY,WACxB,QACD;AAAA,EACD;AAAA,EACA,MAAM,mBACL;AAAA,EAED,QAAQ,QAAQ;AAAA,SACV;AAAA,MACJ,OAAO;AAAA,QACN,WAAW;AAAA,UACV,qBAAqB,QAAQ,OAAO,wBAAwB,QAAQ,OAAO;AAAA,UAC3E;AAAA,QACD;AAAA,QACA,eAAe;AAAA,QACf,cAAc;AAAA,QACd,eAAe;AAAA,QACf,cAAc;AAAA,UACb,cAAc,QAAQ,OAAO;AAAA,UAC7B,iBAAiB,QAAQ,OAAO;AAAA,UAChC,sBAAsB,QAAQ;AAAA,QAC/B;AAAA,QACA,OAAO;AAAA,MACR;AAAA,SACI;AAAA,MACJ,OAAO;AAAA,QACN,WAAW;AAAA,UACV,uBAAuB,QAAQ,OAAO;AAAA,UACtC;AAAA,QACD;AAAA,QACA,eAAe;AAAA,QACf,cAAc;AAAA,QACd,eAAe;AAAA,QACf,cAAc;AAAA,UACb,YAAY,QAAQ,OAAO;AAAA,UAC3B,sBAAsB,QAAQ;AAAA,QAC/B;AAAA,QACA,OAAO;AAAA,MACR;AAAA,SACI;AAAA,MACJ,OAAO;AAAA,QACN,WAAW;AAAA,UACV,uBAAuB,QAAQ,OAAO,iDAAiD,QAAQ,OAAO;AAAA,UACtG;AAAA,QACD;AAAA,QACA,eAAe;AAAA,QACf,cAAc;AAAA,QACd,eAAe;AAAA,QACf,cAAc;AAAA,UACb,mBAAmB,QAAQ,OAAO;AAAA,UAClC,sBAAsB,QAAQ;AAAA,QAC/B;AAAA,QACA,OAAO;AAAA,MACR;AAAA,SACI;AAAA,MACJ,OAAO;AAAA,QACN,WAAW;AAAA,UACV,mBAAmB,QAAQ,OAAO,kCAAkC,QAAQ,OAAO;AAAA,UACnF;AAAA,QACD;AAAA,QACA,eAAe;AAAA,QACf,cAAc;AAAA,QACd,eAAe;AAAA,QACf,cAAc;AAAA,UACb,kBAAkB,QAAQ,OAAO;AAAA,UACjC,cAAc,QAAQ,OAAO;AAAA,UAC7B,YAAY,QAAQ,OAAO;AAAA,UAC3B,sBAAsB,QAAQ;AAAA,QAC/B;AAAA,QACA,OAAO;AAAA,MACR;AAAA,SACI;AAAA,MACJ,OAAO;AAAA,QACN,WAAW;AAAA,UACV,6BAA6B,QAAQ,OAAO;AAAA,UAC5C;AAAA,QACD;AAAA,QACA,eAAe;AAAA,QACf,cAAc;AAAA,QACd,eAAe;AAAA,QACf,cAAc;AAAA,UACb,kBAAkB,QAAQ,OAAO;AAAA,UACjC,SAAS,QAAQ,OAAO;AAAA,UACxB,sBAAsB,QAAQ;AAAA,QAC/B;AAAA,QACA,OAAO;AAAA,MACR;AAAA,SACI;AAAA,MACJ,OAAO;AAAA,QACN,WAAW;AAAA,UACV,qBAAqB,QAAQ,OAAO;AAAA,UACpC;AAAA,QACD;AAAA,QACA,eAAe;AAAA,QACf,cAAc;AAAA,QACd,eAAe;AAAA,QACf,cAAc;AAAA,UACb,UAAU,QAAQ,OAAO;AAAA,UACzB,WAAW,QAAQ,OAAO;AAAA,UAC1B,aAAa,QAAQ,OAAO;AAAA,UAC5B,sBAAsB,QAAQ;AAAA,QAC/B;AAAA,QACA,OAAO;AAAA,MACR;AAAA;AAAA,MAEA,OAAO;AAAA,QACN,WAAW;AAAA,UACV;AAAA,UACA;AAAA,QACD;AAAA,QACA,eAAe;AAAA,QACf,cAAc;AAAA,QACd,eAAe;AAAA,QACf,cAAc;AAAA,UACb,WAAW,QAAQ,OAAO;AAAA,UAC1B,oBAAoB,QAAQ,OAAO;AAAA,UACnC,sBAAsB,QAAQ;AAAA,QAC/B;AAAA,QACA,OAAO;AAAA,QACP,cAAc,QAAQ;AAAA,MACvB;AAAA;AAAA;AAUI,SAAS,qBAAqB,CAAC,SAGD;AAAA,EACpC,MAAM,kBAAkB,QAAQ,WAAW,MAAM,QAAQ,kBAAiB,EAAE;AAAA,EAE5E,OAAO;AAAA,IACN,eAAe,QAAQ;AAAA,IACvB,cACC;AAAA,IACD,eAAe,8BAA8B,QAAQ,eAAe;AAAA,IACpE,eAAe,QAAQ,WAAW;AAAA,IAClC,cAAc,QAAQ,WAAW;AAAA,IACjC,OAAO,4BAAiB,mBAAmB;AAAA,IAC3C,cAAc,QAAQ,WAAW;AAAA,EAClC;AAAA;AAUM,SAAS,UAAU,CAAC,OAAiB,WAA4B;AAAA,EACvE,WAAW,QAAQ,OAAO;AAAA,IACzB,UAAU,IAAI;AAAA,EACf;AAAA;AAGD,SAAS,6BAA6B,CAAC,QAAuD;AAAA,EAC7F,MAAM,UAAU;AAAA,IACf,OAAO;AAAA,IACP,OAAO,QAAQ,SAAS,IAAI,WAAW,OAAO,QAAQ,KAAK,IAAI,MAAM;AAAA,EACtE,EAAE,OAAO,CAAC,UAA2B,OAAO,UAAU,YAAY,MAAM,SAAS,CAAC;AAAA,EAElF,OAAO,QAAQ,SAAS,IAAI,QAAQ,KAAK,KAAI,IAAI;AAAA;AAS3C,SAAS,4BAA4B,CAAC,SAAsC;AAAA,EAClF,OAAO,QAAQ,IAAI,CAAC,YAAY;AAAA,IAC/B,MAAM,8BAA8B,MAAM;AAAA,IAC1C,OAAO,OAAO;AAAA,IACd,OAAO,OAAO;AAAA,EACf,EAAE;AAAA;;;ACtaI,SAAS,qBAAqB;AAAA,EACpC,QAAQ,QAAQ;AAAA,EAChB,SAAS,QAAQ;AAAA,EACjB,OAAO,QAAQ,IAAI;AAAA,IACU,CAAC,GAAY;AAAA,EAC1C,OAAO,QAAQ,OAAO,KAAK,KAAK,QAAQ,QAAQ,KAAK,KAAK,SAAS;AAAA;;ACnBpE;AACA;AACA;AAgBA,IAAM,uBAAuB,CAAC,gBAAgB,YAAY,iBAAiB;AAC3E,IAAM,0BAA0B;AAEhC,SAAS,eAAe,CACvB,kBACA,YACA,YAAY,IACX;AAAA,EACD,MAAM,OAAO,UAAU,KAAK;AAAA,EAC5B,IAAI,qBAAqB,OAAO;AAAA,IAC/B,OAAO,OAAO,WAAW,cAAc,SAAS,WAAW;AAAA,EAC5D;AAAA,EACA,IAAI,qBAAqB,OAAO;AAAA,IAC/B,OAAO,OAAO,WAAW,iBAAiB,SAAS,WAAW;AAAA,EAC/D;AAAA,EACA,IAAI,qBAAqB,QAAQ;AAAA,IAChC,OAAO,OAAO,YAAY,cAAc,SAAS,YAAY;AAAA,EAC9D;AAAA,EACA,OAAO,OAAO,YAAY,cAAc,SAAS,YAAY;AAAA;AAG9D,SAAS,oBAAoB,CAAC,kBAA4C;AAAA,EACzE,QAAQ;AAAA,SACF;AAAA,MACJ,OAAO;AAAA,SACH;AAAA,MACJ,OAAO;AAAA,SACH;AAAA,MACJ,OAAO;AAAA;AAAA,MAEP,OAAO;AAAA;AAAA;AAIV,SAAS,gBAAgB,CAAC,KAAoB;AAAA,EAC7C,OAAO,IAAI,MACV,mDAAmD,6OACpD;AAAA;AAGD,SAAS,uBAAuB,CAAC,KAAa,qBAAgD;AAAA,EAC7F,MAAM,QAAQ,OAAO,uBAAuB,EAAE;AAAA,EAC9C,IAAI,MAAM,WAAW,MAAM;AAAA,IAAG,OAAO;AAAA,EACrC,IAAI,MAAM,WAAW,MAAM;AAAA,IAAG,OAAO;AAAA,EACrC,IAAI,MAAM,WAAW,OAAO;AAAA,IAAG,OAAO;AAAA,EACtC,IAAI,MAAM,WAAW,OAAO;AAAA,IAAG,OAAO;AAAA,EAEtC,IACC,IAAG,WAAW,MAAK,KAAK,KAAK,UAAU,CAAC,KACxC,IAAG,WAAW,MAAK,KAAK,KAAK,WAAW,CAAC,GACxC;AAAA,IACD,OAAO;AAAA,EACR;AAAA,EACA,IAAI,IAAG,WAAW,MAAK,KAAK,KAAK,gBAAgB,CAAC,GAAG;AAAA,IACpD,OAAO;AAAA,EACR;AAAA,EACA,IACC,IAAG,WAAW,MAAK,KAAK,KAAK,WAAW,CAAC,KACzC,IAAG,WAAW,MAAK,KAAK,KAAK,UAAU,CAAC,KACxC,IAAG,WAAW,MAAK,KAAK,KAAK,iBAAiB,CAAC,KAC/C,IAAG,WAAW,MAAK,KAAK,KAAK,aAAa,CAAC,GAC1C;AAAA,IACD,OAAO;AAAA,EACR;AAAA,EACA,IACC,IAAG,WAAW,MAAK,KAAK,KAAK,mBAAmB,CAAC,KACjD,IAAG,WAAW,MAAK,KAAK,KAAK,qBAAqB,CAAC,GAClD;AAAA,IACD,OAAO;AAAA,EACR;AAAA,EAEA,OAAO;AAAA;AAGR,SAAS,yBAAyB,CAAC,KAAiC;AAAA,EACnE,MAAM,kBAAkB,MAAK,KAAK,KAAK,cAAc;AAAA,EACrD,IAAI,CAAC,IAAG,WAAW,eAAe,GAAG;AAAA,IACpC,MAAM,iBAAiB,GAAG;AAAA,EAC3B;AAAA,EAEA,MAAM,cAAc,KAAK,MAAM,IAAG,aAAa,iBAAiB,MAAM,CAAC;AAAA,EAIvE,MAAM,UAAU,YAAY,WAAW,CAAC;AAAA,EACxC,MAAM,cAAc;AAAA,IACnB,MAAM,OAAO,QAAQ,SAAS,WAAW,QAAQ,OAAO;AAAA,IACxD,aACC,OAAO,QAAQ,iBAAiB,WAAW,QAAQ,eAAe;AAAA,IACnE,cACC,OAAO,QAAQ,kBAAkB,WAAW,QAAQ,gBAAgB;AAAA,EACtE;AAAA,EAEA,IAAI,CAAC,YAAY,QAAQ,CAAC,YAAY,eAAe;AAAA,IACpD,MAAM,IAAI,MACT,YAAY,uEACb;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,gBAAgB,wBAAwB,KAAK,YAAY,cAAc;AAAA,IACvE,SAAS;AAAA,EACV;AAAA;AAGD,SAAS,gCAAgC,CAAC,YAAmC;AAAA,EAC5E,IAAI,aAAa,MAAK,QAAQ,UAAU;AAAA,EAExC,OAAO,MAAM;AAAA,IACZ,IACC,qBAAqB,KAAK,CAAC,WAC1B,IAAG,WAAW,MAAK,KAAK,YAAY,MAAM,CAAC,CAC5C,GACC;AAAA,MACD,OAAO;AAAA,IACR;AAAA,IAEA,MAAM,YAAY,MAAK,QAAQ,UAAU;AAAA,IACzC,IAAI,cAAc,YAAY;AAAA,MAC7B,OAAO;AAAA,IACR;AAAA,IACA,aAAa;AAAA,EACd;AAAA;AAGD,SAAS,sCAAsC,CAAC,SAAsC;AAAA,EACrF,MAAM,mBAAmB,QAAQ,QAAQ,OACtC,CAAC,QAAQ,QAAQ,IAAI,IACrB,CAAC,QAAQ,QAAQ,eAAe,QAAQ,QAAQ,YAAY;AAAA,EAE/D,OAAO,iBAAiB,KACvB,CAAC,WACA,OAAO,WAAW,YAAY,wBAAwB,KAAK,MAAM,CACnE;AAAA;AAGD,SAAS,+BAA+B,CAAC,SAAmC;AAAA,EAC3E,IAAI,CAAC,uCAAuC,OAAO,GAAG;AAAA,IACrD;AAAA,EACD;AAAA,EACA,MAAM,YAAY,iCAAiC,QAAQ,GAAG;AAAA,EAC9D,IAAI,WAAW;AAAA,IACd;AAAA,EACD;AAAA,EAEA,MAAM,IAAI,MACT,2DAA2D,qBAAqB,QAAQ,cAAc,qHACvG;AAAA;AAGD,SAAS,8BAA8B,CACtC,gBACA,YACA,WACsC;AAAA,EACtC,QAAQ;AAAA,SACF;AAAA,MACJ,OAAO,EAAE,MAAM,CAAC,OAAO,YAAY,GAAG,SAAS,GAAG,SAAS,MAAM;AAAA,SAC7D;AAAA,MACJ,OAAO;AAAA,QACN,MAAM,CAAC,OAAO,YAAY,GAAI,UAAU,SAAS,IAAI,CAAC,MAAM,GAAG,SAAS,IAAI,CAAC,CAAE;AAAA,QAC/E,SAAS;AAAA,MACV;AAAA,SACI;AAAA,MACJ,OAAO,EAAE,MAAM,CAAC,OAAO,YAAY,GAAG,SAAS,GAAG,SAAS,OAAO;AAAA,SAC9D;AAAA,MACJ,OAAO,EAAE,MAAM,CAAC,OAAO,YAAY,GAAG,SAAS,GAAG,SAAS,OAAO;AAAA;AAAA;AAIrE,SAAS,gBAAgB,CACxB,SACA,YACA,WACO;AAAA,EACP,MAAM,SAAS,QAAQ,QAAQ;AAAA,EAC/B,IAAI,CAAC,QAAQ;AAAA,IACZ;AAAA,EACD;AAAA,EAEA,MAAM,aAAa,+BAClB,QAAQ,gBACR,YACA,SACD;AAAA,EAEA,MAAM,SAAS,UAAU,WAAW,SAAS,WAAW,MAAM;AAAA,IAC7D,KAAK,QAAQ;AAAA,IACb,OAAO,QAAQ,aAAa;AAAA,IAC5B,OAAO;AAAA,EACR,CAAC;AAAA,EAED,IAAI,OAAO,SAAS,OAAO,WAAW,GAAG;AAAA,IACxC,MAAM,IAAI,MACT,KAAK,gBAAgB,QAAQ,gBAAgB,YAAY,UAAU,KAAK,GAAG,CAAC,eAC5E;AAAA,MACC,OAAO,OAAO;AAAA,IACf,CACD;AAAA,EACD;AAAA;AASD,eAAsB,kBAAkB;AAAA,EACvC,QAAQ;AAAA,EACR;AAAA,GACqC;AAAA,EACrC,MAAM,UAAU,0BAA0B,GAAG;AAAA,EAC7C,gCAAgC,OAAO;AAAA,EACvC,MAAM,YAAY,QAAQ,CAAC,SAAS,IAAI,CAAC;AAAA,EAEzC,IAAI,QAAQ,QAAQ,MAAM;AAAA,IACzB,iBAAiB,SAAS,QAAQ,SAAS;AAAA,IAC3C;AAAA,EACD;AAAA,EAEA,iBAAiB,SAAS,cAAc,SAAS;AAAA,EAEjD,IAAI,QAAQ,QAAQ,cAAc;AAAA,IACjC,iBAAiB,SAAS,aAAa,SAAS;AAAA,EACjD;AAAA;;;AC9KD,IAAM,oBAAoB,MAAa;AACvC,IAAM,4BAA4B,MAAa;AAC/C,IAAM,uBAAuB,MAAa;AAC1C,IAAM,uBAAuB,MAAa;AAC1C,IAAM,yBAAyB,MAAa;AAC5C,IAAM,0BAA0B,MAAa;AAE7C,IAAM,wBAAwB,MAAa;AAE3C,eAAe,mBAAmB,CAAC,SAAuB,OAAgB;AAAA,EACzE,QAAQ,0BAA0B,MAAM,0BAA0B;AAAA,EAClE,OAAO,sBAAsB,EAAE,SAAS,MAAM,CAAC;AAAA;AAGhD,SAAS,yBAAyB,CAAC,SAGvB;AAAA,EACX,IAAI,QAAQ,eAAe,OAAO;AAAA,IACjC,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,QAAQ,YAAY;AAAA,IACvB,OAAO;AAAA,EACR;AAAA,EAEA,OAAO;AAAA;AAGR,SAAS,sBAAsB,CAC9B,OACA,MACqB;AAAA,EACrB,MAAM,QAAQ,MAAM;AAAA,EACpB,IAAI,UAAU,aAAa,UAAU,MAAM;AAAA,IAC1C;AAAA,EACD;AAAA,EACA,IAAI,OAAO,UAAU,YAAY,MAAM,KAAK,EAAE,WAAW,GAAG;AAAA,IAC3D,MAAM,IAAI,MAAM,OAAO,0BAA0B;AAAA,EAClD;AAAA,EACA,OAAO;AAAA;AAGR,SAAS,2BAA2B,CACnC,OACA,MACqB;AAAA,EACrB,MAAM,QAAQ,MAAM;AAAA,EACpB,IAAI,UAAU,aAAa,UAAU,MAAM;AAAA,IAC1C;AAAA,EACD;AAAA,EACA,IAAI,OAAO,UAAU,UAAU;AAAA,IAC9B,MAAM,IAAI,MAAM,OAAO,0BAA0B;AAAA,EAClD;AAAA,EACA,MAAM,UAAU,MAAM,KAAK;AAAA,EAC3B,OAAO,QAAQ,SAAS,IAAI,UAAU;AAAA;AAGvC,SAAS,QAAQ,CAAC,MAAgB,MAAc,OAAsB;AAAA,EACrE,IAAI,UAAU,aAAa,UAAU,QAAQ,UAAU,OAAO;AAAA,IAC7D;AAAA,EACD;AAAA,EACA,IAAI,UAAU,MAAM;AAAA,IACnB,KAAK,KAAK,KAAK,MAAM;AAAA,IACrB;AAAA,EACD;AAAA,EACA,KAAK,KAAK,KAAK,QAAQ,OAAO,KAAK,CAAC;AAAA;AAGrC,eAAe,qCAA8C,CAAC,SAUT;AAAA,EACpD,MAAM,YAAY,QAAQ,SACvB,MAAM,2BAA2B;AAAA,IACjC,KAAK,QAAQ;AAAA,IACb,SAAS,QAAQ;AAAA,EAClB,CAAC,IACA;AAAA,EACH,MAAM,SAAS,WAAW,UAAW,MAAM,QAAQ,QAAQ,QAAQ,GAAG;AAAA,EACtE,MAAM,aAAa,QAAQ,gBAAgB,MAAM;AAAA,EAEjD,IAAI,CAAC,QAAQ,QAAQ;AAAA,IACpB,OAAO,eAAe,YAAY;AAAA,MACjC,YAAY,QAAQ,cAAc;AAAA,MAClC,WAAW,QAAQ;AAAA,MACnB,UAAU,QAAQ;AAAA,IACnB,CAAC;AAAA,EACF;AAAA,EAEA,OAAO,eACN,sBAAsB;AAAA,IACrB;AAAA,IACA,gBAAgB,UAAW;AAAA,EAC5B,CAAC,GACD;AAAA,IACC,YAAY,QAAQ,cAAc;AAAA,IAClC,WAAW,QAAQ;AAAA,IACnB,UAAU,QAAQ;AAAA,EACnB,CACD;AAAA;AAGD,IAAM,iCAAiC;AAAA,EACtC,EAAE,OAAO,OAAO,OAAO,OAAO,MAAM,UAAU;AAAA,EAC9C,EAAE,OAAO,QAAQ,OAAO,QAAQ,MAAM,WAAW;AAAA,EACjD,EAAE,OAAO,QAAQ,OAAO,QAAQ,MAAM,WAAW;AAAA,EACjD,EAAE,OAAO,OAAO,OAAO,OAAO,MAAM,UAAU;AAC/C;AAEA,IAAM,8BAA8B;AAAA,EACnC,EAAE,OAAO,gBAAgB,OAAO,gBAAgB,MAAM,iCAAiC;AAAA,EACvF,EAAE,OAAO,aAAa,OAAO,aAAa,MAAM,4BAA4B;AAC7E;AAEA,IAAM,oCAAoC;AAAA,EACzC,EAAE,OAAO,iBAAiB,OAAO,iBAAiB,MAAM,6BAA6B;AAAA,EACrF,EAAE,OAAO,UAAU,OAAO,UAAU,MAAM,sBAAsB;AACjE;AAEA,IAAM,yBAAyB;AAAA,EAC9B,EAAE,OAAO,OAAO,OAAO,OAAO,MAAM,qBAAqB;AAAA,EACzD,EAAE,OAAO,MAAM,OAAO,MAAM,MAAM,kCAAkC;AACrE;AAEA,SAAS,cAAc,CACtB,SACA,SAKmC;AAAA,EACnC,IAAI,QAAQ,YAAY;AAAA,IACvB,uBAAuB,SAAS;AAAA,MAC/B,WAAW,QAAQ;AAAA,MACnB,UAAU,QAAQ;AAAA,IACnB,CAAC;AAAA,EACF;AAAA,EAEA,OAAO;AAAA;AAGR,eAAsB,oBAAoB;AAAA,EACzC;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY,QAAQ;AAAA,EACpB;AAAA,EACA,WAAW,QAAQ;AAAA,GACgD;AAAA,EACnE;AAAA,MACG;AAAA,MACA;AAAA,MACA;AAAA,MACC,MAAM,QAAQ,IAAI;AAAA,IACrB,qBAAqB;AAAA,IACrB,uBAAuB;AAAA,IACvB,wBAAwB;AAAA,EACzB,CAAC;AAAA,EACD,MAAM,eACL,gBAAgB,CAAC,QAAQ,MAAM,GAAG,KAAK,sBAAsB;AAAA,EAC9D,MAAM,eAAe,eAAgB,UAAU,qBAAqB,IAAK;AAAA,EACzE,MAAM,wCACL,QAAQ,YAAY,KAAK,iBAAiB;AAAA,EAC3C,MAAM,eAAe,QAAQ,MAAM,GAAG,KAAM,QAAQ,MAAM,UAAU,KAAK,CAAC,QAAQ,YAAY;AAAA,EAE9F,IAAI;AAAA,IACH,MAAM,OAAO,MAAM,gBAAgB;AAAA,MAClC,wBAAwB,4BACvB,OACA,0BACD;AAAA,MACA;AAAA,MACA,iBAAiB,4BAA4B,OAAO,cAAc;AAAA,MAClE,QAAQ,QAAQ,MAAM,UAAU;AAAA,MAChC,iBAAiB,4BAA4B,OAAO,mBAAmB;AAAA,MACvE,qBAAqB,4BAA4B,OAAO,uBAAuB;AAAA,MAC/E,mBAAmB,4BAA4B,OAAO,qBAAqB;AAAA,MAC3E,eAAe,QAAQ,YAAY;AAAA,MACnC,WAAW,4BAA4B,OAAO,WAAW;AAAA,MACzD,WAAW,QAAQ,MAAM,aAAa;AAAA,MACtC,gBAAgB,4BAA4B,OAAO,iBAAiB;AAAA,MACpE,mBAAmB,4BAA4B,OAAO,oBAAoB;AAAA,MAC1E,WAAW,4BAA4B,OAAO,YAAY;AAAA,MAC1D,cAAc;AAAA,MACd,YAAY,OAAO,aAAa;AAAA,QAC/B,MAAM,WAAU;AAAA,UACf,QAAQ,SAAS;AAAA,UACjB,OAAO,SAAS;AAAA,QACjB;AAAA,QACA,aAAa,QAAO;AAAA,QACpB,IAAI,YAAY;AAAA,UACf,UAAU,yBAAyB,QAAO,CAAC;AAAA,QAC5C;AAAA;AAAA,MAED,YAAY,eACT,CAAC,SAAS,cAAc,aAAa,aAAa,KAAK,SAAS,cAAc,QAAQ,IACtF;AAAA,MACH,eAAe,4BAA4B,OAAO,iBAAiB;AAAA,MACnE,mBAAmB,eAChB,MAAM,aAAa,OAAO,8BAA8B,CAAC,GAAG,2BAA2B,GAAG,CAAC,IAC3F;AAAA,MACH,uBAAuB,yCAAyC,eAC7D,CAAC,YACD,aAAa,OACZ,4BACA,6BAA6B,OAAO,GACpC,CACD,IACA;AAAA,MACH,sBAAsB,eACnB,MAAM,aAAa,OAAO,4BAA4B,CAAC,GAAG,8BAA8B,GAAG,CAAC,IAC5F;AAAA,MACH,yBAAyB,eACtB,MACA,aAAa,OACZ,+BACA,CAAC,GAAG,iCAAiC,GACrC,CACD,IACA;AAAA,MACH,gBAAgB,eACb,MAAM,aAAa,OAAO,qBAAqB,yBAAyB,GAAG,CAAC,IAC5E;AAAA,MACH,uBAAuB,eACpB,YACC,MAAM,aAAa,OAAO,gCAAgC,CAAC,GAAG,sBAAsB,GAAG,CAAC,MACzF,QACA;AAAA,MACH,sBAAsB,eACnB,YACC,MAAM,aAAa,OAAO,uCAAuC,CAAC,GAAG,sBAAsB,GAAG,CAAC,MAChG,QACA;AAAA,MACH,iBAAiB,eACd,YACC,MAAM,aAAa,OAAO,kCAAkC,CAAC,GAAG,sBAAsB,GAAG,CAAC,MAC3F,QACA;AAAA,MACH,YAAY,4BAA4B,OAAO,UAAU;AAAA,MACzD,YAAY,4BAA4B,OAAO,aAAa;AAAA,MAC5D,SAAS,4BAA4B,OAAO,SAAS;AAAA,MACrD,iBAAiB,MAAM;AAAA,MACvB,gBAAgB,MAAM;AAAA,MACtB,WAAW,MAAM;AAAA,MACjB,KAAK;AAAA,IACN,CAAC;AAAA,IAED,MAAM,UAAU,KAAK,UAAU,KAAK,OACjC,yBAAyB;AAAA,MACzB,gBAAgB,KAAK;AAAA,MACrB,MAAM,KAAK;AAAA,MACX,YAAY,KAAK;AAAA,MACjB,QAAQ,KAAK;AAAA,IACd,CAAC,IACA,6BAA6B,IAAI;AAAA,IACpC,OAAO,eAAe,SAAS,EAAE,YAAY,WAAW,SAAS,CAAC;AAAA,IACjE,OAAO,OAAO;AAAA,IACf,IAAI,CAAC,0BAA0B,EAAE,WAAW,CAAC,GAAG;AAAA,MAC/C,MAAM;AAAA,IACP;AAAA,IACA,MAAM,MAAM,oBAAoB,UAAU,KAAK;AAAA,YAC9C;AAAA,IACD,IAAI,gBAAgB,iBAAiB,QAAQ;AAAA,MAC5C,aAAa,MAAM;AAAA,IACpB;AAAA;AAAA;AAIF,eAAsB,iBAAiB;AAAA,EACtC;AAAA,EACA,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY,QAAQ;AAAA,EACpB;AAAA,EACA,WAAW,QAAQ;AAAA,GACoD;AAAA,EACvE,IAAI;AAAA,EACJ,MAAM,SAAS,QAAQ,MAAM,UAAU;AAAA,EAEvC,IAAI;AAAA,IACH,MAAM,aAAa,MAAM,kBAAkB;AAAA,IAE3C,IAAI,CAAC,MAAM;AAAA,MACV,UAAU,WAAW,kBAAkB,CAAC;AAAA,MACxC,MAAM,IAAI,MACT,2IACD;AAAA,IACD;AAAA,IAEA,IAAI,SAAS,aAAa;AAAA,MACzB,IAAI,CAAC,MAAM;AAAA,QACV,MAAM,IAAI,MACT,qGACD;AAAA,MACD;AAAA,MAEA,MAAM,YAAY,uBAAuB,OAAO,OAAO;AAAA,MACvD,IAAI,CAAC,WAAW;AAAA,QACf,MAAM,IAAI,MAAM,yDAAyD;AAAA,MAC1E;AAAA,MAEA,OAAO,sCAEL;AAAA,QACD,iBAAiB,CAAC,WACjB,0BAA0B;AAAA,UACzB,MAAM;AAAA,UACN,YAAY,OAAO;AAAA,UACnB,QAAQ;AAAA,YACP,WAAW,OAAO;AAAA,YAClB,eAAe,OAAO;AAAA,UACvB;AAAA,QACD,CAAC;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS,CAAC,cACT,WAAW,uBAAuB;AAAA,UACjC,WAAW;AAAA,UACX,KAAK;AAAA,UACL,eAAe;AAAA,QAChB,CAAC;AAAA,QACF;AAAA,MACD,CAAC;AAAA,IACF;AAAA,IAEA,IAAI,SAAS,WAAW;AAAA,MACvB,IAAI,CAAC,MAAM;AAAA,QACV,MAAM,IAAI,MACT,6EACD;AAAA,MACD;AAAA,MAEA,OAAO,sCAEL;AAAA,QACD,iBAAiB,CAAC,WACjB,0BAA0B;AAAA,UACzB,MAAM;AAAA,UACN,YAAY,OAAO;AAAA,UACnB,QAAQ;AAAA,YACP,aAAa,OAAO;AAAA,UACrB;AAAA,QACD,CAAC;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS,CAAC,cACT,WAAW,qBAAqB;AAAA,UAC/B,KAAK;AAAA,UACL,aAAa;AAAA,QACd,CAAC;AAAA,QACF;AAAA,MACD,CAAC;AAAA,IACF;AAAA,IAEA,IAAI,SAAS,kBAAkB;AAAA,MAC9B,IAAI,CAAC,MAAM;AAAA,QACV,MAAM,IAAI,MACT,2FACD;AAAA,MACD;AAAA,MAEA,OAAO,sCAEL;AAAA,QACD,iBAAiB,CAAC,WACjB,0BAA0B;AAAA,UACzB,MAAM;AAAA,UACN,YAAY,OAAO;AAAA,UACnB,QAAQ;AAAA,YACP,mBAAmB,OAAO;AAAA,UAC3B;AAAA,QACD,CAAC;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS,CAAC,cACT,WAAW,2BAA2B;AAAA,UACrC,mBAAmB;AAAA,UACnB,KAAK;AAAA,QACN,CAAC;AAAA,QACF;AAAA,MACD,CAAC;AAAA,IACF;AAAA,IAEA,IAAI,SAAS,iBAAiB;AAAA,MAC7B,IAAI,CAAC,MAAM;AAAA,QACV,MAAM,IAAI,MACT,kJACD;AAAA,MACD;AAAA,MAEA,MAAM,UAAU,uBAAuB,OAAO,SAAS;AAAA,MACvD,MAAM,YAAY,uBAAuB,OAAO,WAAW;AAAA,MAC3D,OAAO,sCAEL;AAAA,QACD,iBAAiB,CAAC,WACjB,0BAA0B;AAAA,UACzB,MAAM;AAAA,UACN,YAAY,OAAO;AAAA,UACnB,QAAQ;AAAA,YACP,SAAS,OAAO,QAAQ,KAAK,IAAI;AAAA,YACjC,WAAW,OAAO;AAAA,YAClB,kBAAkB,OAAO;AAAA,UAC1B;AAAA,QACD,CAAC;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS,CAAC,cACT,WAAW,0BAA0B;AAAA,UACpC,KAAK;AAAA,UACL;AAAA,UACA;AAAA,UACA,kBAAkB;AAAA,QACnB,CAAC;AAAA,QACF;AAAA,MACD,CAAC;AAAA,IACF;AAAA,IAEA,IAAI,SAAS,iBAAiB;AAAA,MAC7B,IAAI,CAAC,MAAM;AAAA,QACV,MAAM,IAAI,MACT,kHACD;AAAA,MACD;AAAA,MAEA,MAAM,OAAO,uBAAuB,OAAO,MAAM;AAAA,MACjD,OAAO,sCAEL;AAAA,QACD,iBAAiB,CAAC,WACjB,0BAA0B;AAAA,UACzB,MAAM;AAAA,UACN,YAAY,OAAO;AAAA,UACnB,QAAQ;AAAA,YACP,kBAAkB,OAAO;AAAA,YACzB,MAAM,OAAO;AAAA,UACd;AAAA,QACD,CAAC;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS,CAAC,cACT,WAAW,0BAA0B;AAAA,UACpC,KAAK;AAAA,UACL,kBAAkB;AAAA,UAClB;AAAA,QACD,CAAC;AAAA,QACF;AAAA,MACD,CAAC;AAAA,IACF;AAAA,IAEA,IAAI,SAAS,gBAAgB;AAAA,MAC5B,IAAI,CAAC,MAAM;AAAA,QACV,MAAM,IAAI,MACT,+KACD;AAAA,MACD;AAAA,MAEA,MAAM,kBAAkB,uBAAuB,OAAO,QAAQ;AAAA,MAC9D,IAAI,CAAC,iBAAiB;AAAA,QACrB,MAAM,IAAI,MAAM,oEAAoE;AAAA,MACrF;AAAA,MAEA,MAAM,WAAW,uBAAuB,OAAO,UAAU;AAAA,MACzD,IAAI,CAAC,UAAU;AAAA,QACd,MAAM,IAAI,MACT,sFACD;AAAA,MACD;AAAA,MAEA,OAAO,sCAEL;AAAA,QACD,iBAAiB,CAAC,WACjB,0BAA0B;AAAA,UACzB,MAAM;AAAA,UACN,YAAY,OAAO;AAAA,UACnB,QAAQ;AAAA,YACP,iBAAiB,OAAO;AAAA,YACxB,WAAW,OAAO;AAAA,YAClB,UAAU,OAAO;AAAA,UAClB;AAAA,QACD,CAAC;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS,CAAC,cACT,WAAW,yBAAyB;AAAA,UACnC;AAAA,UACA,WAAW;AAAA,UACX,KAAK;AAAA,UACL;AAAA,QACD,CAAC;AAAA,QACF;AAAA,MACD,CAAC;AAAA,IACF;AAAA,IAEA,IAAI,SAAS,SAAS;AAAA,MACrB,MAAM,IAAI,MACT,qBAAqB,gHACtB;AAAA,IACD;AAAA,IAEA,IAAI,CAAC,MAAM;AAAA,MACV,MAAM,IAAI,MACT,8HACD;AAAA,IACD;AAAA,IAEA,IAAI,CAAC,MAAM,UAAU;AAAA,MACpB,MAAM,IAAI,MACT,sFACD;AAAA,IACD;AAAA,IAEA,MAAM,kBAAkB,uBAAuB,OAAO,mBAAmB;AAAA,IACzE,MAAM,sBAAsB,uBAAuB,OAAO,uBAAuB;AAAA,IACjF,MAAM,gCACL,QAAQ,mBAAmB,KAC3B,CAAC,QAAQ,eAAe,MACvB,eAAe,sBAAsB;AAAA,IACvC,MAAM,gBAAgB,gCACnB,MAAM,qBAAqB,IAC3B;AAAA,IACH,eAAe,gCACX,UAAU,eAAe,qBAAqB,IAC/C;AAAA,IACH,MAAM,eAAe;AAAA,IAErB,MAAM,yBAAyB,uBAC9B,OACA,0BACD;AAAA,IACA,MAAM,kBAAkB,uBAAuB,OAAO,cAAc;AAAA,IACpE,MAAM,oBAAoB,uBAAuB,OAAO,qBAAqB;AAAA,IAC7E,MAAM,oBAAoB,uBAAuB,OAAO,oBAAoB;AAAA,IAC5E,MAAM,qBAAqB,uBAAuB,OAAO,UAAU;AAAA,IAMnE,OAAO,sCAEL;AAAA,MACD,iBAAiB,CAAC,WACjB,0BAA0B;AAAA,QACzB,MAAM;AAAA,QACN,YAAY,OAAO;AAAA,QACnB,QAAQ;AAAA,UACP,YAAY,OAAO,WAAW,KAAK,IAAI;AAAA,UACvC,YAAY,OAAO;AAAA,QACpB;AAAA,QACA,UAAU,OAAO;AAAA,MAClB,CAAC;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS,CAAC,cACT,WAAW,mBAAmB;AAAA,QAC7B;AAAA,QACA,WAAW;AAAA,QACX,KAAK;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,uBAAuB,eACpB,CAAC,YACD,aAAa,OACZ,4BACA,6BAA6B,OAAO,GACpC,CACD,IACA;AAAA,QACH,YAAY;AAAA,MACb,CAAC;AAAA,MACF;AAAA,MACA;AAAA,IACD,CAAC;AAAA,IACA,OAAO,OAAO;AAAA,IACf,IAAI,CAAC,0BAA0B,EAAE,WAAW,CAAC,GAAG;AAAA,MAC/C,MAAM;AAAA,IACP;AAAA,IACA,MAAM,MAAM,oBAAoB,OAAO,KAAK;AAAA,YAC3C;AAAA,IACD,IAAI,gBAAgB,iBAAiB,QAAQ;AAAA,MAC5C,aAAa,MAAM;AAAA,IACpB;AAAA;AAAA;AAIF,eAAsB,uBAAuB,GAC1C,SACF,YAAuB,QAAQ,KACf;AAAA,EAChB;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACG,MAAM,wBAAwB;AAAA,EAClC,MAAM,aAAa,MAAM,cAAc;AAAA,EAEvC,IAAI,eAAe,QAAQ;AAAA,IAC1B,WAAW,YAAY,cAAc,GAAG;AAAA,MACvC,WACC,CAAC,sBAAsB,QAAQ,GAAG,uBAAuB,QAAQ,CAAC,GAClE,SACD;AAAA,IACD;AAAA,IACA;AAAA,EACD;AAAA,EAEA,IAAI,eAAe,WAAW;AAAA,IAC7B,IAAI,CAAC,MAAM,IAAI;AAAA,MACd,MAAM,IAAI,MAAM,sDAAsD;AAAA,IACvE;AAAA,IACA,MAAM,WAAW,gBAAgB,MAAM,EAAE;AAAA,IACzC,IAAI,CAAC,UAAU;AAAA,MACd,MAAM,IAAI,MAAM,qBAAqB,MAAM,MAAM;AAAA,IAClD;AAAA,IACA,WACC;AAAA,MACC,sBAAsB,QAAQ;AAAA,MAC9B,uBAAuB,QAAQ;AAAA,MAC/B,sBAAsB,QAAQ;AAAA,IAC/B,GACA,SACD;AAAA,IACA;AAAA,EACD;AAAA,EAEA,MAAM,IAAI,MAAM,iCAAiC,wCAAwC;AAAA;AAG1F,eAAsB,oBAAoB,CAAC,KAA4B;AAAA,EACtE,IAAI;AAAA,IACH,QAAQ,cAAc,MAAM,qBAAqB;AAAA,IACjD,MAAM,UAAU,GAAG;AAAA,IAClB,OAAO,OAAO;AAAA,IACf,MAAM,MAAM,oBAAoB,UAAU,KAAK;AAAA;AAAA;AAejD,eAAsB,qBAAqB;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,GAC2E;AAAA,EAC3E,QAAQ,yBAAyB,oBAAoB,wBACpD,MAAM,sBAAsB;AAAA,EAC7B,IAAI,CAAC,SAAS;AAAA,IACb,QAAQ,IAAI,wBAAwB,CAAC;AAAA,IACrC;AAAA,EACD;AAAA,EAEA,IAAI;AAAA,IACH,MAAM,OAAO,CAAC,OAAO;AAAA,IACrB,SAAS,MAAM,OAAO,MAAM,GAAG;AAAA,IAC/B,SAAS,MAAM,SAAS,MAAM,KAAK;AAAA,IACnC,SACC,MACA,6BACA,4BAA4B,OAAO,2BAA2B,CAC/D;AAAA,IACA,SAAS,MAAM,qBAAqB,4BAA4B,OAAO,mBAAmB,CAAC;AAAA,IAC3F,SACC,MACA,0BACA,4BAA4B,OAAO,wBAAwB,CAC5D;AAAA,IACA,SACC,MACA,wBACA,4BAA4B,OAAO,sBAAsB,CAC1D;AAAA,IACA,SAAS,MAAM,cAAc,4BAA4B,OAAO,YAAY,CAAC;AAAA,IAC7E,SAAS,MAAM,QAAQ,4BAA4B,OAAO,MAAM,CAAC;AAAA,IAEjE,MAAM,SAAS,mBAAmB,IAAI;AAAA,IACtC,MAAM,QAAyB,aAAa,CAAC,IAAI;AAAA,IACjD,MAAM,cAAc,CAAC,SAAiB;AAAA,MACrC,OAAO,KAAK,IAAI;AAAA,MAChB,IAAI,YAAY;AAAA,QACf,WAAW,IAAI;AAAA,QACf;AAAA,MACD;AAAA,MACA,QAAQ,IAAI,IAAI;AAAA;AAAA,IAEjB,MAAM,SAAS,MAAM,oBAAoB,QAAQ,KAAK;AAAA,MACrD;AAAA,MACA,YAAY;AAAA,IACb,CAAC;AAAA,IACD,IAAI,YAAY;AAAA,MACf,OAAO,UAAU,OAAO,WAAW,YAAY,eAAe,UAAU,OAAO,cAAc,OACzF,YACA,gCAAgC;AAAA,QACjC,SAAS,OAAO,WAAW;AAAA,QAC3B,OAAO,SAAS,CAAC;AAAA,MAClB,CAAC;AAAA,IACJ;AAAA,IAEA,IAAI,UAAU,OAAO,WAAW,YAAY,eAAe,UAAU,OAAO,cAAc,MAAM;AAAA,MAC/F;AAAA,IACD;AAAA,IACC,OAAO,OAAO;AAAA,IACf,IAAI,CAAC,0BAA0B,EAAE,WAAW,CAAC,GAAG;AAAA,MAC/C,MAAM;AAAA,IACP;AAAA,IACA,MAAM,MAAM,oBAAoB,WAAW,KAAK;AAAA;AAAA;;;AC/yBlD;AAWO,IAAM,kCAAkC;AACxC,IAAM,kCAAkC;AACxC,IAAM,mCAAmC;AAMzC,IAAM,4CAA4C;AAAA,EACvD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAYA,IAAM,uBAAuB,yBAC3B,qBACA,wBACA,wBACA,yBACA,yBACF;AAEA,IAAM,iCAAiC;AAAA,EACrC,KAAK,IAAI,IAAI,yBAAyB,qBAAqB,QAAQ,CAAC;AAAA,EACpE,QAAQ,IAAI,IAAI,yBAAyB,wBAAwB,QAAQ,CAAC;AAAA,EAC1E,SAAS,IAAI,IAAI,yBAAyB,yBAAyB,QAAQ,CAAC;AAAA,EAC5E,WAAW,IAAI,IAAI,yBAAyB,2BAA2B,QAAQ,CAAC;AAClF;AAEA,IAAM,6BAA6B,IAAI,IACrC,yBAAyB,wBAAwB,QAAQ,CAC3D;AAEA,IAAM,iCAAiC,IAAI,IACzC,CAAC,GAAG,qBAAqB,aAAa,QAAQ,CAAC,EAC5C,OAAO,IAAI,YAAY,OAAO,SAAS,QAAQ,EAC/C,IAAI,EAAE,WAAW,KAAK,CAC3B;AAEA,SAAS,yBAAyB,CAAC,YAA6B;AAAA,EAC9D,IAAI,2BAA2B,IAAI,UAAU,GAAG;AAAA,IAC9C,OAAO;AAAA,EACT;AAAA,EAEA,OAAO,OAAO,OAAO,8BAA8B,EAAE,KAAK,CAAC,gBACzD,YAAY,IAAI,UAAmB,CACrC;AAAA;AAGF,SAAS,wBAAwB,CAAC,MAAwB;AAAA,EACxD,MAAM,oBAAoB,yBAAyB,IAAI;AAAA,EACvD,OAAO,kBAAkB,MAAM;AAAA;AAGjC,SAAS,wBAAwB,CAAC,MAA0B;AAAA,EAC1D,MAAM,oBAA8B,CAAC;AAAA,EAErC,SAAS,QAAQ,EAAG,QAAQ,KAAK,QAAQ,SAAS,GAAG;AAAA,IACnD,MAAM,MAAM,KAAK;AAAA,IACjB,IAAI,QAAQ,MAAM;AAAA,MAChB,SAAS,YAAY,QAAQ,EAAG,YAAY,KAAK,QAAQ,aAAa,GAAG;AAAA,QACvE,kBAAkB,KAAK,SAAS;AAAA,MAClC;AAAA,MACA;AAAA,IACF;AAAA,IACA,IAAI,CAAC,IAAI,WAAW,GAAG,KAAK,QAAQ,KAAK;AAAA,MACvC,kBAAkB,KAAK,KAAK;AAAA,MAC5B;AAAA,IACF;AAAA,IACA,IAAI,IAAI,WAAW,IAAI,GAAG;AAAA,MACxB,IAAI,IAAI,SAAS,GAAG,GAAG;AAAA,QACrB;AAAA,MACF;AAAA,MACA,IAAI,0BAA0B,IAAI,MAAM,CAAC,CAAC,GAAG;AAAA,QAC3C,SAAS;AAAA,MACX;AAAA,MACA;AAAA,IACF;AAAA,IACA,IAAI,IAAI,WAAW,KAAK,+BAA+B,IAAI,IAAI,MAAM,CAAC,CAAC,GAAG;AAAA,MACxE,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EAEA,OAAO;AAAA;AAGF,IAAM,+BAA+B;AAAA,EAC1C;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,aAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,aAAa,CAAC,QAAQ,SAAS;AAAA,EACjC;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,aAAa,CAAC,QAAQ,MAAM;AAAA,EAC9B;AACF;AAEO,SAAS,6BAA6B,CAAC,OAAwB;AAAA,EACpE,OAAO,0CAA0C,SAC/C,KACF;AAAA;AAGF,SAAS,wBAAwB,CAAC,MAAsB;AAAA,EACtD,MAAM,uBAAuB,yBAAyB,IAAI;AAAA,EAC1D,IAAI,yBAAyB,IAAI;AAAA,IAC/B;AAAA,EACF;AAAA,EAEA,MAAM,cAAc,KAClB;AAAA,EAEF,MAAM,oBAAoB,IAAI,IAAY,0BAA0B;AAAA,EACpE,WAAW,cAAc,+BAA+B,gBAAgB,CAAC,GAAG;AAAA,IAC1E,kBAAkB,IAAI,UAAU;AAAA,EAClC;AAAA,EAEA,SAAS,QAAQ,uBAAuB,EAAG,QAAQ,KAAK,QAAQ,SAAS,GAAG;AAAA,IAC1E,MAAM,MAAM,KAAK;AAAA,IACjB,IAAI,QAAQ,MAAM;AAAA,MAChB;AAAA,IACF;AAAA,IACA,IAAI,IAAI,WAAW,KAAK,IAAI,WAAW,GAAG,GAAG;AAAA,MAC3C,IAAI,+BAA+B,IAAI,IAAI,MAAM,CAAC,CAAC,GAAG;AAAA,QACpD,MAAM,QAAO,KAAK,QAAQ;AAAA,QAC1B,IAAI,CAAC,SAAQ,MAAK,WAAW,GAAG,GAAG;AAAA,UACjC,MAAM,IAAI,MAAM,KAAK,yBAAyB;AAAA,QAChD;AAAA,QACA,SAAS;AAAA,MACX;AAAA,MACA;AAAA,IACF;AAAA,IACA,IAAI,CAAC,IAAI,WAAW,IAAI,GAAG;AAAA,MACzB;AAAA,IACF;AAAA,IAEA,OAAO,SAAS,eAAe,IAAI,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC;AAAA,IACxD,IAAI,CAAC,kBAAkB,IAAI,OAAO,GAAG;AAAA,MACnC;AAAA,IACF;AAAA,IAEA,IAAI,IAAI,SAAS,GAAG,GAAG;AAAA,MACrB,IAAI,CAAC,aAAa;AAAA,QAChB,MAAM,IAAI,MAAM,OAAO,6BAA6B;AAAA,MACtD;AAAA,MACA;AAAA,IACF;AAAA,IAEA,MAAM,OAAO,KAAK,QAAQ;AAAA,IAC1B,IAAI,CAAC,QAAQ,KAAK,WAAW,GAAG,GAAG;AAAA,MACjC,MAAM,IAAI,MAAM,OAAO,6BAA6B;AAAA,IACtD;AAAA,IACA,SAAS;AAAA,EACX;AAAA;AAGF,SAAS,kBAAkB,CAAC,OAAwB;AAAA,EAClD,OAAO,sBAAsB,KAAK,KAAK;AAAA;AAGzC,SAAS,+BAA+B,CAAC,OAAwB;AAAA,EAC/D,IAAI,MAAM,SAAS,GAAG,GAAG;AAAA,IACvB,OAAO;AAAA,EACT;AAAA,EAEA,IAAI,CAAC,mBAAmB,KAAK,KAAK,6BAA6B,KAAK,KAAK,GAAG;AAAA,IAC1E,OAAO;AAAA,EACT;AAAA,EAEA,OAAO,MAAM,WAAW,GAAG,KAAK,MAAM,SAAS,GAAG;AAAA;AAGpD,SAAS,+BAA+B,CAAC,YAA0B;AAAA,EACjE,MAAM,uBACJ,MAAK,UAAU,UAAU,EAAE,QAAQ,YAAY,EAAE,KAAK,MAAK,UAAU,UAAU;AAAA,EACjF,IAAI,yBAAyB,OAAO,yBAAyB,MAAM;AAAA,IACjE,MAAM,IAAI,MACR,iDAAiD,uBAAuB,6EAC1E;AAAA,EACF;AAAA,EAEA,IAAI,gCAAgC,UAAU,GAAG;AAAA,IAC/C,MAAM,IAAI,MACR,kFAAkF,2CAA2C,eAC/H;AAAA,EACF;AAAA;AAGK,SAAS,oBAAoB,CAAC,MAA0B;AAAA,EAC7D,MAAM,oBAAoB,yBAAyB,IAAI;AAAA,EACvD,MAAM,uBAAuB,kBAAkB,MAAM;AAAA,EACrD,IAAI,yBAAyB,IAAI;AAAA,IAC/B,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,kBAAkB,KAAK;AAAA,EAC7B,IAAI,CAAC,iBAAiB;AAAA,IACpB,OAAO;AAAA,EACT;AAAA,EAEA,IAAI,oBAAoB,cAAc;AAAA,IACpC,MAAM,IAAI,MACR,gHACF;AAAA,EACF;AAAA,EAEA,IAAI,8BAA8B,eAAe,GAAG;AAAA,IAClD,yBAAyB,IAAI;AAAA,IAC7B,OAAO;AAAA,EACT;AAAA,EAEA,IAAI,kBAAkB,SAAS,GAAG;AAAA,IAChC,MAAM,mBAAmB,kBACtB,MAAM,CAAC,EACP,IAAI,CAAC,UAAU,KAAK,MAAM,EAC1B,OACC,CAAC,UACC,OAAO,UAAU,YAAY,MAAM,SAAS,CAChD;AAAA,IAEF,MAAM,IAAI,MACR,uEAAuE,sMAAsM,iBAAiB,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,KAAK,IAAI,IACxU;AAAA,EACF;AAAA,EAEA,gCAAgC,eAAe;AAAA,EAE/C,MAAM,iBAAiB;AAAA,IACrB,GAAG,KAAK,MAAM,GAAG,oBAAoB;AAAA,IACrC;AAAA,IACA,GAAG,KAAK,MAAM,oBAAoB;AAAA,EACpC;AAAA,EACA,yBAAyB,cAAc;AAAA,EACvC,OAAO;AAAA;;;AT9PT,IAAM,8BAA8B,yBACnC,wBACA,wBACA,qBACA,yBACA,yBACD;AACA,IAAM,qCAAqC,CAAC,SAAS,QAAQ,SAAS;AAEtE,IAAM,sCAAsC;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AACD;AAEA,SAAS,SAAS,CAAC,OAAO,IAAI;AAAA,EAC7B,QAAQ,IAAI,IAAI;AAAA;AAGjB,SAAS,WAAU,CAAC,OAAiB;AAAA,EACpC,WAAW,QAAQ,OAAO;AAAA,IACzB,UAAU,IAAI;AAAA,EACf;AAAA;AAGM,SAAS,uBAAuB,CAAC,MAAgB,MAAuB;AAAA,EAC9E,WAAW,OAAO,MAAM;AAAA,IACvB,IAAI,QAAQ,MAAM;AAAA,MACjB,OAAO;AAAA,IACR;AAAA,IACA,IAAI,QAAQ,MAAM;AAAA,MACjB,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EAEA,OAAO;AAAA;AAGD,SAAS,gBAAgB,CAAC,MAG/B;AAAA,EACD,MAAM,WAAqB,CAAC;AAAA,EAC5B,MAAM,QAAqB,CAAC;AAAA,EAE5B,SAAS,QAAQ,EAAG,QAAQ,KAAK,QAAQ,SAAS,GAAG;AAAA,IACpD,MAAM,MAAM,KAAK;AAAA,IACjB,IAAI,CAAC,KAAK;AAAA,MACT;AAAA,IACD;AAAA,IAEA,IAAI,QAAQ,MAAM;AAAA,MACjB,SAAS,KAAK,GAAG,KAAK,MAAM,KAAK,CAAC;AAAA,MAClC;AAAA,IACD;AAAA,IAEA,IAAI,QAAQ,cAAc,QAAQ,QAAQ;AAAA,MACzC,MAAM,OAAO,KAAK,QAAQ;AAAA,MAC1B,IAAI,CAAC,QAAQ,KAAK,WAAW,GAAG,GAAG;AAAA,QAClC,MAAM,IAAI,MAAM,KAAK,yBAAyB;AAAA,MAC/C;AAAA,MACA,IAAI,QAAQ,YAAY;AAAA,QACvB,MAAM,SAAS;AAAA,MAChB,EAAO;AAAA,QACN,MAAM,KAAK;AAAA;AAAA,MAEZ,SAAS;AAAA,MACT;AAAA,IACD;AAAA,IAEA,IAAI,IAAI,WAAW,WAAW,GAAG;AAAA,MAChC,MAAM,SAAS,IAAI,MAAM,YAAY,MAAM;AAAA,MAC3C;AAAA,IACD;AAAA,IAEA,IAAI,IAAI,WAAW,OAAO,GAAG;AAAA,MAC5B,MAAM,KAAK,IAAI,MAAM,QAAQ,MAAM;AAAA,MACnC;AAAA,IACD;AAAA,IAEA,SAAS,KAAK,GAAG;AAAA,EAClB;AAAA,EAEA,OAAO;AAAA,IACN,MAAM;AAAA,IACN;AAAA,EACD;AAAA;AAGD,eAAe,+BAA+B,CAC7C,SACA,YACA,OACA,oBACA,KACmC;AAAA,EACnC,IAAI,SAAS,MAAM,sBAAsB,GAAG;AAAA,EAC5C,IAAI,oBAAoB;AAAA,IACvB,MAAM,iBAAiB,MAAM,gCAAgC,KAAK,kBAAkB;AAAA,IACpF,SAAS,uBAAuB,QAAQ,cAAc;AAAA,EACvD;AAAA,EAEA,IAAI,YAAY,UAAU;AAAA,IACzB,OAAO,2BAA2B,wBAAwB;AAAA,MACzD,UAAU,kBAAkB,MAAM;AAAA,MAClC;AAAA,IACD,CAAC;AAAA,EACF;AAAA,EAEA,IAAI,YAAY,SAAS,eAAe,SAAS;AAAA,IAChD,OAAO,2BAA2B,qBAAqB;AAAA,MACtD,UAAU,oBAAoB,MAAM;AAAA,MACpC;AAAA,IACD,CAAC;AAAA,EACF;AAAA,EAEA,OAAO;AAAA;AAGR,SAAS,SAAS,CAAC,MAAgB;AAAA,EAClC,OAAO,6BAA6B,MAAM;AAAA,IACzC,yBAAyB;AAAA,IACzB,QAAQ;AAAA,EACT,CAAC;AAAA;AAGF,SAAS,iBAAiB,GAAG;AAAA,EAC5B,YAAW;AAAA,IACV,YAAY,gBAAY;AAAA,IACxB;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA,GAAG,6BAA6B,IAC/B,CAAC,YAAY,KAAK,QAAQ,SAAS,QAAQ,aAC5C;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,EACN,CAAC;AAAA;AAGF,SAAS,mBAAmB,GAAG;AAAA,EAC9B,YAAW;AAAA,IACV;AAAA,IACA;AAAA,IACA,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA,GAAG,6BAA6B,yBAAyB;AAAA,EAC1D,CAAC;AAAA;AAGF,SAAS,gBAAgB,GAAG;AAAA,EAC3B,YAAW;AAAA,IACV,UAAU;AAAA,IACV;AAAA,IACA,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA,GAAG,6BAA6B,sBAAsB;AAAA,EACvD,CAAC;AAAA;AAGF,SAAS,aAAa,GAAG;AAAA,EACxB,YAAW;AAAA,IACV;AAAA,IACA;AAAA,IACA,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA,GAAG,6BAA6B,mBAAmB;AAAA,EACpD,CAAC;AAAA;AAGF,SAAS,iBAAiB,GAAG;AAAA,EAC5B,YAAW;AAAA,IACV,UAAU;AAAA,IACV;AAAA,IACA,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA,GAAG,6BAA6B,uBAAuB;AAAA,EACxD,CAAC;AAAA;AAGF,SAAS,aAAa,CAAC,UAEnB,CAAC,GAAG;AAAA,EACP,IAAI,QAAQ,WAAW,QAAQ;AAAA,IAC9B,UACC,KAAK,UACJ;AAAA,MACC,IAAI;AAAA,MACJ,MAAM;AAAA,QACL,MAAM;AAAA,QACN,MAAM,gBAAY;AAAA,QAClB,SAAS,gBAAY;AAAA,MACtB;AAAA,IACD,GACA,MACA,CACD,CACD;AAAA,IACA;AAAA,EACD;AAAA,EAEA,UAAU,YAAY,gBAAY,SAAS;AAAA;AAG5C,SAAS,mBAAmB,CAAC,OAAoB,YAAoB;AAAA,EACpE,IAAI,eAAe,QAAQ;AAAA,IAC1B,UACC,KAAK,UACJ;AAAA,MACC,WAAW,cAAc;AAAA,IAC1B,GACA,MACA,CACD,CACD;AAAA,IACA;AAAA,EACD;AAAA,EAEA,MAAM,aAAa,MAAM;AAAA,EACzB,IAAI,CAAC,YAAY;AAAA,IAChB,MAAM,sBAAsB;AAAA,MAC3B,MAAM,qBAAqB;AAAA,MAC3B,SAAS;AAAA,MACT,aAAa,CAAC,sDAAsD;AAAA,IACrE,CAAC;AAAA,EACF;AAAA,EACA,MAAM,WAAW,gBAAgB,UAAU;AAAA,EAC3C,IAAI,CAAC,UAAU;AAAA,IACd,MAAM,sBAAsB;AAAA,MAC3B,MAAM,qBAAqB;AAAA,MAC3B,SAAS;AAAA,MACT,aAAa,CAAC,qBAAqB,cAAc;AAAA,IAClD,CAAC;AAAA,EACF;AAAA,EACA,UACC,KAAK,UACJ;AAAA,IACC;AAAA,EACD,GACA,MACA,CACD,CACD;AAAA;AAGD,SAAS,wBAAwB,CAAC,SAAiB;AAAA,EAClD,MAAM,sBAAsB;AAAA,IAC3B,MAAM,qBAAqB;AAAA,IAC3B;AAAA,IACA,aAAa;AAAA,MACZ;AAAA,QACC,oDAAoD;AAAA,QACpD;AAAA,QACA;AAAA,MACD,EAAE,KAAK,GAAG;AAAA,IACX;AAAA,IACA,SAAS;AAAA,EACV,CAAC;AAAA;AAGF,eAAe,gBAAgB,GAAkB;AAAA,EAChD,SAAS,qBAAqB,+CAAuB,iCACpD,MAAM,QAAQ,IAAI;AAAA,IACV;AAAA,IACA;AAAA,EACR,CAAC;AAAA,EACF,MAAM,SAAS,MAAM,gBAAgB,QAAQ,IAAI,CAAC;AAAA,EAClD,UACC,KAAK,UACJ;AAAA,IACC;AAAA,EACD,GACA,MACA,CACD,CACD;AAAA,EACA,IAAI,OAAO,KAAK,CAAC,UAAU,MAAM,WAAW,MAAM,GAAG;AAAA,IACpD,MAAM,uBAAsB;AAAA,MAC3B,SAAS;AAAA,MACT,aAAa,4BAA4B,MAAM;AAAA,MAC/C,SAAS;AAAA,IACV,CAAC;AAAA,EACF;AAAA;AAGD,eAAsB,UAAU,CAAC,OAAO,QAAQ,KAAK,MAAM,CAAC,GAAkB;AAAA,EAC7E,MAAM,iBAAiB,qBAAqB,IAAI;AAAA,EAChD;AAAA,IACC,MAAM;AAAA,IACN;AAAA,MACG,6BAA6B,cAAc;AAAA,EAC/C,QAAQ,MAAM,SAAS,UAAU,iBAAiB,yBAAyB;AAAA,EAC3E,QAAQ,OAAO,cAAc,gBAAgB,UAAU,OAAO;AAAA,EAC9D,MAAM,iBAA0C;AAAA,OAC5C;AAAA,OACA;AAAA,EACJ;AAAA,EACA,OAAO,SAAS,cAAc;AAAA,EAC9B,MAAM,gBACL,QAAQ,WAAW,KAAK,wBAAwB,SAAS,QAAQ,KAAK,YAAY;AAAA,EACnF,MAAM,mBACL,wBAAwB,SAAS,WAAW,KAAK,YAAY;AAAA,EAE9D,IAAI,eAAe;AAAA,IAClB,IAAI,YAAY,aAAa;AAAA,MAC5B,oBAAoB;AAAA,MACpB;AAAA,IACD;AAAA,IACA,IAAI,YAAY,UAAU;AAAA,MACzB,iBAAiB;AAAA,MACjB;AAAA,IACD;AAAA,IACA,IAAI,YAAY,OAAO;AAAA,MACtB,cAAc;AAAA,MACd;AAAA,IACD;AAAA,IACA,IAAI,YAAY,WAAW;AAAA,MAC1B,kBAAkB;AAAA,MAClB;AAAA,IACD;AAAA,IACA,kBAAkB;AAAA,IAClB;AAAA,EACD;AAAA,EAEA,IAAI,kBAAkB;AAAA,IACrB,cAAc;AAAA,MACb,QAAQ,OAAO,eAAe,WAAW,WAAW,eAAe,SAAS;AAAA,IAC7E,CAAC;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,cAAc,MAAM,gCACzB,SACA,YACA,gBACA,oBACA,QAAQ,IAAI,CACb;AAAA,EAEA,IAAI,YAAY,aAAa;AAAA,IAC5B,MAAM,aACL,OAAO,YAAY,OAAO,WACvB,YAAY,KACX,YAAY;AAAA,IACjB,MAAM,qBAAqB,aAAa,YAAY,cAAc;AAAA,IAClE,IAAI,uBAAuB,UAAU,uBAAuB,WAAW;AAAA,MACtE,MAAM,IAAI,MACT,iCAAiC,gDAClC;AAAA,IACD;AAAA,IACA,IAAI,YAAY,WAAW,QAAQ;AAAA,MAClC,oBACC;AAAA,QACC,QAAQ,YAAY;AAAA,QACpB,IAAI;AAAA,MACL,GACA,kBACD;AAAA,MACA;AAAA,IACD;AAAA,IACA,MAAM,wBAAwB;AAAA,MAC7B,OAAO;AAAA,QACN,IAAI;AAAA,QACJ,YAAY;AAAA,MACb;AAAA,IACD,CAAC;AAAA,IACD;AAAA,EACD;AAAA,EAEA,IAAI,YAAY,UAAU;AAAA,IACzB,MAAM,aAAa,YAAY;AAAA,IAC/B,IAAI,CAAC,YAAY;AAAA,MAChB,MAAM,sBAAsB;AAAA,QAC3B,SAAS;AAAA,QACT,aAAa;AAAA,UACZ;AAAA,UACA;AAAA,QACD;AAAA,MACD,CAAC;AAAA,IACF;AAAA,IACA,MAAM,qBAAqB;AAAA,MAC1B,KAAK,QAAQ,IAAI;AAAA,MACjB,OAAO;AAAA,MACP,aAAa;AAAA,MACb;AAAA,IACD,CAAC;AAAA,IACD;AAAA,EACD;AAAA,EAEA,IAAI,YAAY,OAAO;AAAA,IACtB,IAAI,CAAC,YAAY,IAAI;AAAA,MACpB,QAAQ,sBAAsB,MAAa;AAAA,MAC3C,UAAU,kBAAkB,CAAC;AAAA,MAC7B,MAAM,sBAAsB;AAAA,QAC3B,SAAS;AAAA,QACT,aAAa;AAAA,UACZ;AAAA,QACD;AAAA,MACD,CAAC;AAAA,IACF;AAAA,IACA,MAAM,kBAAkB;AAAA,MACvB,KAAK,QAAQ,IAAI;AAAA,MACjB,OAAO;AAAA,MACP,aAAa;AAAA,MACb,MAAM,YAAY;AAAA,MAClB,MAAM,YAAY;AAAA,IACnB,CAAC;AAAA,IACD;AAAA,EACD;AAAA,EAEA,IAAI,YAAY,WAAW;AAAA,IAC1B,MAAM,sBAAsB;AAAA,MAC3B,SAAS,YAAY;AAAA,MACrB,KAAK,QAAQ,IAAI;AAAA,MACjB,OAAO;AAAA,IACR,CAAC;AAAA,IACD;AAAA,EACD;AAAA,EAEA,IAAI,YAAY,UAAU;AAAA,IACzB,IAAI,YAAY,WAAW,QAAQ;AAAA,MAClC,MAAM,iBAAiB;AAAA,MACvB;AAAA,IACD;AAAA,IACA,MAAM,qBAAqB,QAAQ,IAAI,CAAC;AAAA,IACxC;AAAA,EACD;AAAA,EAEA,IAAI,YAAY,QAAQ;AAAA,IACvB,IAAI;AAAA,MACH,MAAM,mBAAmB;AAAA,QACxB,OAAO,QAAQ,YAAY,KAAK;AAAA,QAChC,KAAK,QAAQ,IAAI;AAAA,MAClB,CAAC;AAAA,MACA,OAAO,OAAO;AAAA,MACf,MAAM,sBAAsB;AAAA,QAC3B,SAAS;AAAA,QACT;AAAA,MACD,CAAC;AAAA;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,yBAAyB,WAAW,WAAW;AAAA;AAGhD,eAAsB,oBAAoB,CAAC,OAAO,QAAQ,KAAK,MAAM,CAAC,GAAkB;AAAA,EACvF,IAAI;AAAA,IACH,MAAM,WAAW,IAAI;AAAA,IACpB,OAAO,OAAO;AAAA,IACf,IAAI,+BAA+B;AAAA,IACnC,IAAI;AAAA,MACH,MAAM,iBAAiB,qBAAqB,IAAI;AAAA,MAChD,QAAQ,MAAM,8BACb,6BAA6B,cAAc;AAAA,MAC5C,QAAQ,UAAU,iBAAiB,yBAAyB;AAAA,MAC5D,+BAA+B,MAAM,WAAW;AAAA,MAC/C,MAAM;AAAA,IAER,IAAI,8BAA8B;AAAA,MACjC,QAAQ,MACP,KAAK,UACJ;AAAA,QACC,IAAI;AAAA,QACJ,OAAO,4BAA4B,KAAK;AAAA,MACzC,GACA,MACA,CACD,CACD;AAAA,MACA,QAAQ,WAAW;AAAA,MACnB;AAAA,IACD;AAAA,IACA,QAAQ,MAAM,UAAU,MAAM,yBAAyB,KAAK,GAAG;AAAA,IAC/D,QAAQ,WAAW;AAAA;AAAA;",
17
+ "debugId": "F7CDE5FD3282D0B964756E2164756E21",
17
18
  "names": []
18
19
  }