tailwind-styled-v4 5.0.0 → 5.0.1

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 (177) hide show
  1. package/CHANGELOG.md +398 -0
  2. package/LICENSE +21 -0
  3. package/README.md +532 -0
  4. package/dist/analyzer.d.mts +114 -0
  5. package/dist/analyzer.d.ts +114 -0
  6. package/dist/analyzer.js +1555 -0
  7. package/dist/analyzer.js.map +1 -0
  8. package/dist/analyzer.mjs +1544 -0
  9. package/dist/analyzer.mjs.map +1 -0
  10. package/dist/{animate.d.cts → animate.d.mts} +3 -30
  11. package/dist/animate.d.ts +3 -30
  12. package/dist/animate.js +149 -99
  13. package/dist/animate.js.map +1 -1
  14. package/dist/{animate.cjs → animate.mjs} +130 -119
  15. package/dist/animate.mjs.map +1 -0
  16. package/dist/atomic.d.mts +18 -0
  17. package/dist/atomic.d.ts +18 -0
  18. package/dist/atomic.js +191 -0
  19. package/dist/atomic.js.map +1 -0
  20. package/dist/atomic.mjs +185 -0
  21. package/dist/atomic.mjs.map +1 -0
  22. package/dist/cli.d.mts +1 -0
  23. package/dist/cli.d.ts +1 -0
  24. package/dist/cli.js +6063 -0
  25. package/dist/cli.js.map +1 -0
  26. package/dist/cli.mjs +6053 -0
  27. package/dist/cli.mjs.map +1 -0
  28. package/dist/compiler.d.mts +1009 -0
  29. package/dist/compiler.d.ts +1009 -0
  30. package/dist/compiler.js +4518 -0
  31. package/dist/compiler.js.map +1 -0
  32. package/dist/compiler.mjs +4443 -0
  33. package/dist/compiler.mjs.map +1 -0
  34. package/dist/dashboard.d.mts +272 -0
  35. package/dist/dashboard.d.ts +272 -0
  36. package/dist/dashboard.js +249 -0
  37. package/dist/dashboard.js.map +1 -0
  38. package/dist/dashboard.mjs +239 -0
  39. package/dist/dashboard.mjs.map +1 -0
  40. package/dist/devtools.js +170 -157
  41. package/dist/devtools.js.map +1 -1
  42. package/dist/{devtools.cjs → devtools.mjs} +165 -166
  43. package/dist/devtools.mjs.map +1 -0
  44. package/dist/engine.d.mts +84 -0
  45. package/dist/engine.d.ts +84 -0
  46. package/dist/engine.js +3014 -0
  47. package/dist/engine.js.map +1 -0
  48. package/dist/engine.mjs +3005 -0
  49. package/dist/engine.mjs.map +1 -0
  50. package/dist/{index.d.cts → index.d.mts} +2 -2
  51. package/dist/index.d.ts +2 -2
  52. package/dist/index.js +945 -36
  53. package/dist/index.js.map +1 -1
  54. package/dist/{index.cjs → index.mjs} +899 -90
  55. package/dist/index.mjs.map +1 -0
  56. package/dist/liveTokenEngine-DYN3Zale.d.mts +34 -0
  57. package/dist/liveTokenEngine-DYN3Zale.d.ts +34 -0
  58. package/dist/{next.d.cts → next.d.mts} +2 -1
  59. package/dist/next.d.ts +2 -1
  60. package/dist/next.js +6853 -35
  61. package/dist/next.js.map +1 -1
  62. package/dist/next.mjs +7050 -0
  63. package/dist/next.mjs.map +1 -0
  64. package/dist/plugin.d.mts +90 -0
  65. package/dist/plugin.d.ts +90 -0
  66. package/dist/plugin.js +185 -0
  67. package/dist/plugin.js.map +1 -0
  68. package/dist/plugin.mjs +174 -0
  69. package/dist/plugin.mjs.map +1 -0
  70. package/dist/pluginRegistry.d.mts +83 -0
  71. package/dist/pluginRegistry.d.ts +83 -0
  72. package/dist/pluginRegistry.js +303 -0
  73. package/dist/pluginRegistry.js.map +1 -0
  74. package/dist/pluginRegistry.mjs +298 -0
  75. package/dist/pluginRegistry.mjs.map +1 -0
  76. package/dist/preset.js +9 -4
  77. package/dist/preset.js.map +1 -1
  78. package/dist/{preset.cjs → preset.mjs} +5 -14
  79. package/dist/preset.mjs.map +1 -0
  80. package/dist/rspack.d.mts +33 -0
  81. package/dist/rspack.d.ts +33 -0
  82. package/dist/rspack.js +55 -0
  83. package/dist/rspack.js.map +1 -0
  84. package/dist/rspack.mjs +45 -0
  85. package/dist/rspack.mjs.map +1 -0
  86. package/dist/runtime.d.mts +62 -0
  87. package/dist/runtime.d.ts +62 -0
  88. package/dist/runtime.js +207 -0
  89. package/dist/runtime.js.map +1 -0
  90. package/dist/runtime.mjs +188 -0
  91. package/dist/runtime.mjs.map +1 -0
  92. package/dist/runtimeCss.d.mts +65 -0
  93. package/dist/runtimeCss.d.ts +65 -0
  94. package/dist/{css.cjs → runtimeCss.js} +71 -4
  95. package/dist/runtimeCss.js.map +1 -0
  96. package/dist/{css.js → runtimeCss.mjs} +66 -5
  97. package/dist/runtimeCss.mjs.map +1 -0
  98. package/dist/scanner.d.mts +25 -0
  99. package/dist/scanner.d.ts +25 -0
  100. package/dist/scanner.js +717 -0
  101. package/dist/scanner.js.map +1 -0
  102. package/dist/scanner.mjs +703 -0
  103. package/dist/scanner.mjs.map +1 -0
  104. package/dist/shared.d.mts +85 -0
  105. package/dist/shared.d.ts +85 -0
  106. package/dist/shared.js +255 -0
  107. package/dist/shared.js.map +1 -0
  108. package/dist/shared.mjs +233 -0
  109. package/dist/shared.mjs.map +1 -0
  110. package/dist/storybookAddon.d.mts +108 -0
  111. package/dist/storybookAddon.d.ts +108 -0
  112. package/dist/storybookAddon.js +95 -0
  113. package/dist/storybookAddon.js.map +1 -0
  114. package/dist/storybookAddon.mjs +88 -0
  115. package/dist/storybookAddon.mjs.map +1 -0
  116. package/dist/svelte.d.mts +114 -0
  117. package/dist/svelte.d.ts +114 -0
  118. package/dist/svelte.js +67 -0
  119. package/dist/svelte.js.map +1 -0
  120. package/dist/svelte.mjs +59 -0
  121. package/dist/svelte.mjs.map +1 -0
  122. package/dist/testing.d.mts +185 -0
  123. package/dist/testing.d.ts +185 -0
  124. package/dist/testing.js +173 -0
  125. package/dist/testing.js.map +1 -0
  126. package/dist/testing.mjs +158 -0
  127. package/dist/testing.mjs.map +1 -0
  128. package/dist/theme.d.mts +188 -0
  129. package/dist/theme.d.ts +188 -0
  130. package/dist/theme.js +334 -0
  131. package/dist/theme.js.map +1 -0
  132. package/dist/theme.mjs +311 -0
  133. package/dist/theme.mjs.map +1 -0
  134. package/dist/types-DXr2PmGP.d.mts +31 -0
  135. package/dist/types-DXr2PmGP.d.ts +31 -0
  136. package/dist/vite.js +4181 -16
  137. package/dist/vite.js.map +1 -1
  138. package/dist/vite.mjs +4281 -0
  139. package/dist/vite.mjs.map +1 -0
  140. package/dist/vue.d.mts +89 -0
  141. package/dist/vue.d.ts +89 -0
  142. package/dist/vue.js +104 -0
  143. package/dist/vue.js.map +1 -0
  144. package/dist/vue.mjs +96 -0
  145. package/dist/vue.mjs.map +1 -0
  146. package/package.json +168 -65
  147. package/dist/animate.cjs.map +0 -1
  148. package/dist/chunk-VZEJV27B.js +0 -11
  149. package/dist/chunk-VZEJV27B.js.map +0 -1
  150. package/dist/chunk-Y5D3E72P.cjs +0 -13
  151. package/dist/chunk-Y5D3E72P.cjs.map +0 -1
  152. package/dist/css.cjs.map +0 -1
  153. package/dist/css.d.cts +0 -30
  154. package/dist/css.d.ts +0 -30
  155. package/dist/css.js.map +0 -1
  156. package/dist/devtools.cjs.map +0 -1
  157. package/dist/index.cjs.map +0 -1
  158. package/dist/next.cjs +0 -248
  159. package/dist/next.cjs.map +0 -1
  160. package/dist/preset.cjs.map +0 -1
  161. package/dist/turbopackLoader.cjs +0 -37
  162. package/dist/turbopackLoader.cjs.map +0 -1
  163. package/dist/turbopackLoader.d.cts +0 -12
  164. package/dist/turbopackLoader.d.ts +0 -12
  165. package/dist/turbopackLoader.js +0 -35
  166. package/dist/turbopackLoader.js.map +0 -1
  167. package/dist/vite.cjs +0 -138
  168. package/dist/vite.cjs.map +0 -1
  169. package/dist/webpackLoader.cjs +0 -51
  170. package/dist/webpackLoader.cjs.map +0 -1
  171. package/dist/webpackLoader.d.cts +0 -17
  172. package/dist/webpackLoader.d.ts +0 -17
  173. package/dist/webpackLoader.js +0 -49
  174. package/dist/webpackLoader.js.map +0 -1
  175. /package/dist/{devtools.d.cts → devtools.d.mts} +0 -0
  176. /package/dist/{preset.d.cts → preset.d.mts} +0 -0
  177. /package/dist/{vite.d.cts → vite.d.mts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../node_modules/commander/index.js","../packages/cli/src/utils/errors.ts","../packages/shared/src/nativeBinding.ts","../packages/shared/src/logger.ts","../packages/shared/src/index.ts","../packages/compiler/src/nativeBridge.ts","../packages/compiler/src/twDetector.ts","../packages/compiler/src/classExtractor.ts","../packages/compiler/src/index.ts","../packages/scanner/src/native-bridge.ts","../packages/scanner/src/cache-native.ts","../packages/scanner/src/index.ts","../packages/analyzer/src/utils.ts","../packages/analyzer/src/binding.ts","../packages/analyzer/src/semantic.ts","../packages/analyzer/src/analyzeWorkspace.ts","../packages/analyzer/src/classToCss.ts","../packages/analyzer/src/index.ts","../packages/cli/src/utils/fs.ts","../node_modules/picocolors/picocolors.js","../packages/cli/src/utils/json.ts","../packages/cli/src/utils/output.ts","../packages/cli/src/utils/args.ts","../packages/cli/src/utils/paths.ts","../packages/cli/src/utils/runtime.ts","../packages/cli/src/createApp.ts","../packages/cli/src/commands/program.ts","../packages/cli/src/analyze.ts","../packages/cli/src/utils/analyzer.ts","../packages/cli/src/extract.ts","../packages/cli/src/init.ts","../packages/cli/src/migrateWizard.ts","../packages/cli/src/migrate.ts","../packages/cli/src/scan.ts","../packages/cli/src/commands/setup/prompt.ts","../packages/cli/src/commands/setup/patchers.ts","../packages/cli/src/commands/setup/workspace.ts","../packages/cli/src/utils/process.ts","../packages/cli/src/utils/logger.ts","../packages/cli/src/setup.ts","../packages/cli/src/stats.ts","../packages/cli/src/commands/create.ts","../packages/cli/src/commands/dashboard.ts","../packages/cli/src/commands/helpers.ts","../packages/cli/src/commands/deploy.ts","../packages/cli/src/commands/misc.ts","../packages/cli/src/commands/plugin.ts","../packages/cli/src/preflight.ts","../packages/cli/src/commands/preflight.ts","../packages/cli/src/commands/registry.ts","../packages/cli/src/commands/scriptCommands.ts","../packages/cli/src/commands/storybook.ts","../packages/cli/src/commands/studio.ts","../packages/cli/src/commands/sync.ts","../packages/cli/src/index.ts"],"names":["exports","module","spawn","path","fs","Command","log","createRequire","getNativeBridge","init_src","runtimeDir","errorMessage","fileURLToPath","scanWorkspaceNative","formatErrorMessage","pathExists","clackIsTTY","pc","clackNote","clackIntro","clackOutro","clackSpinner","parseNodeArgs","isCancel","select","pathToFileURL","import_commander","selected","cwd","logger","import_picocolors","writeLine","fsp","DEFAULT_TAILWIND_CSS","isDirectExecution","formatCommand","script","commandArgs","main"],"mappings":"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","file":"cli.mjs","sourcesContent":["/**\n * Module dependencies.\n */\n\nvar EventEmitter = require('events').EventEmitter;\nvar spawn = require('child_process').spawn;\nvar path = require('path');\nvar dirname = path.dirname;\nvar basename = path.basename;\nvar fs = require('fs');\n\n/**\n * Inherit `Command` from `EventEmitter.prototype`.\n */\n\nrequire('util').inherits(Command, EventEmitter);\n\n/**\n * Expose the root command.\n */\n\nexports = module.exports = new Command();\n\n/**\n * Expose `Command`.\n */\n\nexports.Command = Command;\n\n/**\n * Expose `Option`.\n */\n\nexports.Option = Option;\n\n/**\n * Initialize a new `Option` with the given `flags` and `description`.\n *\n * @param {String} flags\n * @param {String} description\n * @api public\n */\n\nfunction Option(flags, description) {\n this.flags = flags;\n this.required = flags.indexOf('<') >= 0; // A value must be supplied when the option is specified.\n this.optional = flags.indexOf('[') >= 0; // A value is optional when the option is specified.\n this.mandatory = false; // The option must have a value after parsing, which usually means it must be specified on command line.\n this.negate = flags.indexOf('-no-') !== -1;\n flags = flags.split(/[ ,|]+/);\n if (flags.length > 1 && !/^[[<]/.test(flags[1])) this.short = flags.shift();\n this.long = flags.shift();\n this.description = description || '';\n}\n\n/**\n * Return option name.\n *\n * @return {String}\n * @api private\n */\n\nOption.prototype.name = function() {\n return this.long.replace(/^--/, '');\n};\n\n/**\n * Return option name, in a camelcase format that can be used\n * as a object attribute key.\n *\n * @return {String}\n * @api private\n */\n\nOption.prototype.attributeName = function() {\n return camelcase(this.name().replace(/^no-/, ''));\n};\n\n/**\n * Check if `arg` matches the short or long flag.\n *\n * @param {String} arg\n * @return {Boolean}\n * @api private\n */\n\nOption.prototype.is = function(arg) {\n return this.short === arg || this.long === arg;\n};\n\n/**\n * CommanderError class\n * @class\n */\nclass CommanderError extends Error {\n /**\n * Constructs the CommanderError class\n * @param {Number} exitCode suggested exit code which could be used with process.exit\n * @param {String} code an id string representing the error\n * @param {String} message human-readable description of the error\n * @constructor\n */\n constructor(exitCode, code, message) {\n super(message);\n // properly capture stack trace in Node.js\n Error.captureStackTrace(this, this.constructor);\n this.name = this.constructor.name;\n this.code = code;\n this.exitCode = exitCode;\n }\n}\n\nexports.CommanderError = CommanderError;\n\n/**\n * Initialize a new `Command`.\n *\n * @param {String} [name]\n * @api public\n */\n\nfunction Command(name) {\n this.commands = [];\n this.options = [];\n this._execs = new Set();\n this._allowUnknownOption = false;\n this._args = [];\n this._name = name || '';\n this._optionValues = {};\n this._storeOptionsAsProperties = true; // backwards compatible by default\n this._passCommandToAction = true; // backwards compatible by default\n this._actionResults = [];\n\n this._helpFlags = '-h, --help';\n this._helpDescription = 'output usage information';\n this._helpShortFlag = '-h';\n this._helpLongFlag = '--help';\n}\n\n/**\n * Define a command.\n *\n * There are two styles of command: pay attention to where to put the description.\n *\n * Examples:\n *\n * // Command implemented using action handler (description is supplied separately to `.command`)\n * program\n * .command('clone <source> [destination]')\n * .description('clone a repository into a newly created directory')\n * .action((source, destination) => {\n * console.log('clone command called');\n * });\n *\n * // Command implemented using separate executable file (description is second parameter to `.command`)\n * program\n * .command('start <service>', 'start named service')\n * .command('stop [service]', 'stop named service, or all if no name supplied');\n *\n * @param {string} nameAndArgs - command name and arguments, args are `<required>` or `[optional]` and last may also be `variadic...`\n * @param {Object|string} [actionOptsOrExecDesc] - configuration options (for action), or description (for executable)\n * @param {Object} [execOpts] - configuration options (for executable)\n * @return {Command} returns new command for action handler, or top-level command for executable command\n * @api public\n */\n\nCommand.prototype.command = function(nameAndArgs, actionOptsOrExecDesc, execOpts) {\n var desc = actionOptsOrExecDesc;\n var opts = execOpts;\n if (typeof desc === 'object' && desc !== null) {\n opts = desc;\n desc = null;\n }\n opts = opts || {};\n var args = nameAndArgs.split(/ +/);\n var cmd = new Command(args.shift());\n\n if (desc) {\n cmd.description(desc);\n this.executables = true;\n this._execs.add(cmd._name);\n if (opts.isDefault) this.defaultExecutable = cmd._name;\n }\n cmd._noHelp = !!opts.noHelp;\n cmd._helpFlags = this._helpFlags;\n cmd._helpDescription = this._helpDescription;\n cmd._helpShortFlag = this._helpShortFlag;\n cmd._helpLongFlag = this._helpLongFlag;\n cmd._exitCallback = this._exitCallback;\n cmd._storeOptionsAsProperties = this._storeOptionsAsProperties;\n cmd._passCommandToAction = this._passCommandToAction;\n\n cmd._executableFile = opts.executableFile; // Custom name for executable file\n this.commands.push(cmd);\n cmd.parseExpectedArgs(args);\n cmd.parent = this;\n\n if (desc) return this;\n return cmd;\n};\n\n/**\n * Define argument syntax for the top-level command.\n *\n * @api public\n */\n\nCommand.prototype.arguments = function(desc) {\n return this.parseExpectedArgs(desc.split(/ +/));\n};\n\n/**\n * Add an implicit `help [cmd]` subcommand\n * which invokes `--help` for the given command.\n *\n * @api private\n */\n\nCommand.prototype.addImplicitHelpCommand = function() {\n this.command('help [cmd]', 'display help for [cmd]');\n};\n\n/**\n * Parse expected `args`.\n *\n * For example `[\"[type]\"]` becomes `[{ required: false, name: 'type' }]`.\n *\n * @param {Array} args\n * @return {Command} for chaining\n * @api public\n */\n\nCommand.prototype.parseExpectedArgs = function(args) {\n if (!args.length) return;\n var self = this;\n args.forEach(function(arg) {\n var argDetails = {\n required: false,\n name: '',\n variadic: false\n };\n\n switch (arg[0]) {\n case '<':\n argDetails.required = true;\n argDetails.name = arg.slice(1, -1);\n break;\n case '[':\n argDetails.name = arg.slice(1, -1);\n break;\n }\n\n if (argDetails.name.length > 3 && argDetails.name.slice(-3) === '...') {\n argDetails.variadic = true;\n argDetails.name = argDetails.name.slice(0, -3);\n }\n if (argDetails.name) {\n self._args.push(argDetails);\n }\n });\n return this;\n};\n\n/**\n * Register callback to use as replacement for calling process.exit.\n *\n * @param {Function} [fn] optional callback which will be passed a CommanderError, defaults to throwing\n * @return {Command} for chaining\n * @api public\n */\n\nCommand.prototype.exitOverride = function(fn) {\n if (fn) {\n this._exitCallback = fn;\n } else {\n this._exitCallback = function(err) {\n if (err.code !== 'commander.executeSubCommandAsync') {\n throw err;\n } else {\n // Async callback from spawn events, not useful to throw.\n }\n };\n }\n return this;\n};\n\n/**\n * Call process.exit, and _exitCallback if defined.\n *\n * @param {Number} exitCode exit code for using with process.exit\n * @param {String} code an id string representing the error\n * @param {String} message human-readable description of the error\n * @return never\n * @api private\n */\n\nCommand.prototype._exit = function(exitCode, code, message) {\n if (this._exitCallback) {\n this._exitCallback(new CommanderError(exitCode, code, message));\n // Expecting this line is not reached.\n }\n process.exit(exitCode);\n};\n\n/**\n * Register callback `fn` for the command.\n *\n * Examples:\n *\n * program\n * .command('help')\n * .description('display verbose help')\n * .action(function() {\n * // output help here\n * });\n *\n * @param {Function} fn\n * @return {Command} for chaining\n * @api public\n */\n\nCommand.prototype.action = function(fn) {\n var self = this;\n var listener = function(args, unknown) {\n // Parse any so-far unknown options\n args = args || [];\n unknown = unknown || [];\n\n var parsed = self.parseOptions(unknown);\n\n // Output help if necessary\n outputHelpIfRequested(self, parsed.unknown);\n self._checkForMissingMandatoryOptions();\n\n // If there are still any unknown options, then we simply\n // die, unless someone asked for help, in which case we give it\n // to them, and then we die.\n if (parsed.unknown.length > 0) {\n self.unknownOption(parsed.unknown[0]);\n }\n\n // Leftover arguments need to be pushed back. Fixes issue #56\n if (parsed.args.length) args = parsed.args.concat(args);\n\n self._args.forEach(function(arg, i) {\n if (arg.required && args[i] == null) {\n self.missingArgument(arg.name);\n } else if (arg.variadic) {\n if (i !== self._args.length - 1) {\n self.variadicArgNotLast(arg.name);\n }\n\n args[i] = args.splice(i);\n }\n });\n\n // The .action callback takes an extra parameter which is the command itself.\n var expectedArgsCount = self._args.length;\n var actionArgs = args.slice(0, expectedArgsCount);\n if (self._passCommandToAction) {\n actionArgs[expectedArgsCount] = self;\n } else {\n actionArgs[expectedArgsCount] = self.opts();\n }\n // Add the extra arguments so available too.\n if (args.length > expectedArgsCount) {\n actionArgs.push(args.slice(expectedArgsCount));\n }\n\n const actionResult = fn.apply(self, actionArgs);\n // Remember result in case it is async. Assume parseAsync getting called on root.\n let rootCommand = self;\n while (rootCommand.parent) {\n rootCommand = rootCommand.parent;\n }\n rootCommand._actionResults.push(actionResult);\n };\n var parent = this.parent || this;\n var name = parent === this ? '*' : this._name;\n parent.on('command:' + name, listener);\n if (this._alias) parent.on('command:' + this._alias, listener);\n return this;\n};\n\n/**\n * Internal implementation shared by .option() and .requiredOption()\n *\n * @param {Object} config\n * @param {String} flags\n * @param {String} description\n * @param {Function|*} [fn] - custom option processing function or default vaue\n * @param {*} [defaultValue]\n * @return {Command} for chaining\n * @api private\n */\n\nCommand.prototype._optionEx = function(config, flags, description, fn, defaultValue) {\n var self = this,\n option = new Option(flags, description),\n oname = option.name(),\n name = option.attributeName();\n option.mandatory = !!config.mandatory;\n\n // default as 3rd arg\n if (typeof fn !== 'function') {\n if (fn instanceof RegExp) {\n // This is a bit simplistic (especially no error messages), and probably better handled by caller using custom option processing.\n // No longer documented in README, but still present for backwards compatibility.\n var regex = fn;\n fn = function(val, def) {\n var m = regex.exec(val);\n return m ? m[0] : def;\n };\n } else {\n defaultValue = fn;\n fn = null;\n }\n }\n\n // preassign default value for --no-*, [optional], <required>, or plain flag if boolean value\n if (option.negate || option.optional || option.required || typeof defaultValue === 'boolean') {\n // when --no-foo we make sure default is true, unless a --foo option is already defined\n if (option.negate) {\n const positiveLongFlag = option.long.replace(/^--no-/, '--');\n defaultValue = self.optionFor(positiveLongFlag) ? self._getOptionValue(name) : true;\n }\n // preassign only if we have a default\n if (defaultValue !== undefined) {\n self._setOptionValue(name, defaultValue);\n option.defaultValue = defaultValue;\n }\n }\n\n // register the option\n this.options.push(option);\n\n // when it's passed assign the value\n // and conditionally invoke the callback\n this.on('option:' + oname, function(val) {\n // coercion\n if (val !== null && fn) {\n val = fn(val, self._getOptionValue(name) === undefined ? defaultValue : self._getOptionValue(name));\n }\n\n // unassigned or boolean value\n if (typeof self._getOptionValue(name) === 'boolean' || typeof self._getOptionValue(name) === 'undefined') {\n // if no value, negate false, and we have a default, then use it!\n if (val == null) {\n self._setOptionValue(name, option.negate\n ? false\n : defaultValue || true);\n } else {\n self._setOptionValue(name, val);\n }\n } else if (val !== null) {\n // reassign\n self._setOptionValue(name, option.negate ? false : val);\n }\n });\n\n return this;\n};\n\n/**\n * Define option with `flags`, `description` and optional\n * coercion `fn`.\n *\n * The `flags` string should contain both the short and long flags,\n * separated by comma, a pipe or space. The following are all valid\n * all will output this way when `--help` is used.\n *\n * \"-p, --pepper\"\n * \"-p|--pepper\"\n * \"-p --pepper\"\n *\n * Examples:\n *\n * // simple boolean defaulting to undefined\n * program.option('-p, --pepper', 'add pepper');\n *\n * program.pepper\n * // => undefined\n *\n * --pepper\n * program.pepper\n * // => true\n *\n * // simple boolean defaulting to true (unless non-negated option is also defined)\n * program.option('-C, --no-cheese', 'remove cheese');\n *\n * program.cheese\n * // => true\n *\n * --no-cheese\n * program.cheese\n * // => false\n *\n * // required argument\n * program.option('-C, --chdir <path>', 'change the working directory');\n *\n * --chdir /tmp\n * program.chdir\n * // => \"/tmp\"\n *\n * // optional argument\n * program.option('-c, --cheese [type]', 'add cheese [marble]');\n *\n * @param {String} flags\n * @param {String} description\n * @param {Function|*} [fn] - custom option processing function or default vaue\n * @param {*} [defaultValue]\n * @return {Command} for chaining\n * @api public\n */\n\nCommand.prototype.option = function(flags, description, fn, defaultValue) {\n return this._optionEx({}, flags, description, fn, defaultValue);\n};\n\n/*\n * Add a required option which must have a value after parsing. This usually means\n * the option must be specified on the command line. (Otherwise the same as .option().)\n *\n * The `flags` string should contain both the short and long flags, separated by comma, a pipe or space.\n *\n * @param {String} flags\n * @param {String} description\n * @param {Function|*} [fn] - custom option processing function or default vaue\n * @param {*} [defaultValue]\n * @return {Command} for chaining\n * @api public\n */\n\nCommand.prototype.requiredOption = function(flags, description, fn, defaultValue) {\n return this._optionEx({ mandatory: true }, flags, description, fn, defaultValue);\n};\n\n/**\n * Allow unknown options on the command line.\n *\n * @param {Boolean} arg if `true` or omitted, no error will be thrown\n * for unknown options.\n * @api public\n */\nCommand.prototype.allowUnknownOption = function(arg) {\n this._allowUnknownOption = arguments.length === 0 || arg;\n return this;\n};\n\n/**\n * Whether to store option values as properties on command object,\n * or store separately (specify false). In both cases the option values can be accessed using .opts().\n *\n * @param {boolean} value\n * @return {Command} Command for chaining\n * @api public\n */\n\nCommand.prototype.storeOptionsAsProperties = function(value) {\n this._storeOptionsAsProperties = (value === undefined) || value;\n if (this.options.length) {\n // This is for programmer, not end user.\n console.error('Commander usage error: call storeOptionsAsProperties before adding options');\n }\n return this;\n};\n\n/**\n * Whether to pass command to action handler,\n * or just the options (specify false).\n *\n * @param {boolean} value\n * @return {Command} Command for chaining\n * @api public\n */\n\nCommand.prototype.passCommandToAction = function(value) {\n this._passCommandToAction = (value === undefined) || value;\n return this;\n};\n\n/**\n * Store option value\n *\n * @param {String} key\n * @param {Object} value\n * @api private\n */\n\nCommand.prototype._setOptionValue = function(key, value) {\n if (this._storeOptionsAsProperties) {\n this[key] = value;\n } else {\n this._optionValues[key] = value;\n }\n};\n\n/**\n * Retrieve option value\n *\n * @param {String} key\n * @return {Object} value\n * @api private\n */\n\nCommand.prototype._getOptionValue = function(key) {\n if (this._storeOptionsAsProperties) {\n return this[key];\n }\n return this._optionValues[key];\n};\n\n/**\n * Parse `argv`, setting options and invoking commands when defined.\n *\n * @param {Array} argv\n * @return {Command} for chaining\n * @api public\n */\n\nCommand.prototype.parse = function(argv) {\n // implicit help\n if (this.executables) this.addImplicitHelpCommand();\n\n // store raw args\n this.rawArgs = argv;\n\n // guess name\n this._name = this._name || basename(argv[1], '.js');\n\n // github-style sub-commands with no sub-command\n if (this.executables && argv.length < 3 && !this.defaultExecutable) {\n // this user needs help\n argv.push(this._helpLongFlag);\n }\n\n // process argv\n var normalized = this.normalize(argv.slice(2));\n var parsed = this.parseOptions(normalized);\n var args = this.args = parsed.args;\n\n var result = this.parseArgs(this.args, parsed.unknown);\n\n if (args[0] === 'help' && args.length === 1) this.help();\n\n // Note for future: we could return early if we found an action handler in parseArgs, as none of following code needed?\n\n // <cmd> --help\n if (args[0] === 'help') {\n args[0] = args[1];\n args[1] = this._helpLongFlag;\n } else {\n // If calling through to executable subcommand we could check for help flags before failing,\n // but a somewhat unlikely case since program options not passed to executable subcommands.\n // Wait for reports to see if check needed and what usage pattern is.\n this._checkForMissingMandatoryOptions();\n }\n\n // executable sub-commands\n // (Debugging note for future: args[0] is not right if an action has been called)\n var name = result.args[0];\n var subCommand = null;\n\n // Look for subcommand\n if (name) {\n subCommand = this.commands.find(function(command) {\n return command._name === name;\n });\n }\n\n // Look for alias\n if (!subCommand && name) {\n subCommand = this.commands.find(function(command) {\n return command.alias() === name;\n });\n if (subCommand) {\n name = subCommand._name;\n args[0] = name;\n }\n }\n\n // Look for default subcommand\n if (!subCommand && this.defaultExecutable) {\n name = this.defaultExecutable;\n args.unshift(name);\n subCommand = this.commands.find(function(command) {\n return command._name === name;\n });\n }\n\n if (this._execs.has(name)) {\n return this.executeSubCommand(argv, args, parsed.unknown, subCommand ? subCommand._executableFile : undefined);\n }\n\n return result;\n};\n\n/**\n * Parse `argv`, setting options and invoking commands when defined.\n *\n * Use parseAsync instead of parse if any of your action handlers are async. Returns a Promise.\n *\n * @param {Array} argv\n * @return {Promise}\n * @api public\n */\nCommand.prototype.parseAsync = function(argv) {\n this.parse(argv);\n return Promise.all(this._actionResults);\n};\n\n/**\n * Execute a sub-command executable.\n *\n * @param {Array} argv\n * @param {Array} args\n * @param {Array} unknown\n * @param {String} executableFile\n * @api private\n */\n\nCommand.prototype.executeSubCommand = function(argv, args, unknown, executableFile) {\n args = args.concat(unknown);\n\n if (!args.length) this.help();\n\n var isExplicitJS = false; // Whether to use node to launch \"executable\"\n\n // executable\n var pm = argv[1];\n // name of the subcommand, like `pm-install`\n var bin = basename(pm, path.extname(pm)) + '-' + args[0];\n if (executableFile != null) {\n bin = executableFile;\n // Check for same extensions as we scan for below so get consistent launch behaviour.\n var executableExt = path.extname(executableFile);\n isExplicitJS = executableExt === '.js' || executableExt === '.ts' || executableExt === '.mjs';\n }\n\n // In case of globally installed, get the base dir where executable\n // subcommand file should be located at\n var baseDir;\n\n var resolvedLink = fs.realpathSync(pm);\n\n baseDir = dirname(resolvedLink);\n\n // prefer local `./<bin>` to bin in the $PATH\n var localBin = path.join(baseDir, bin);\n\n // whether bin file is a js script with explicit `.js` or `.ts` extension\n if (exists(localBin + '.js')) {\n bin = localBin + '.js';\n isExplicitJS = true;\n } else if (exists(localBin + '.ts')) {\n bin = localBin + '.ts';\n isExplicitJS = true;\n } else if (exists(localBin + '.mjs')) {\n bin = localBin + '.mjs';\n isExplicitJS = true;\n } else if (exists(localBin)) {\n bin = localBin;\n }\n\n args = args.slice(1);\n\n var proc;\n if (process.platform !== 'win32') {\n if (isExplicitJS) {\n args.unshift(bin);\n // add executable arguments to spawn\n args = incrementNodeInspectorPort(process.execArgv).concat(args);\n\n proc = spawn(process.argv[0], args, { stdio: 'inherit' });\n } else {\n proc = spawn(bin, args, { stdio: 'inherit' });\n }\n } else {\n args.unshift(bin);\n // add executable arguments to spawn\n args = incrementNodeInspectorPort(process.execArgv).concat(args);\n proc = spawn(process.execPath, args, { stdio: 'inherit' });\n }\n\n var signals = ['SIGUSR1', 'SIGUSR2', 'SIGTERM', 'SIGINT', 'SIGHUP'];\n signals.forEach(function(signal) {\n process.on(signal, function() {\n if (proc.killed === false && proc.exitCode === null) {\n proc.kill(signal);\n }\n });\n });\n\n // By default terminate process when spawned process terminates.\n // Suppressing the exit if exitCallback defined is a bit messy and of limited use, but does allow process to stay running!\n const exitCallback = this._exitCallback;\n if (!exitCallback) {\n proc.on('close', process.exit.bind(process));\n } else {\n proc.on('close', () => {\n exitCallback(new CommanderError(process.exitCode || 0, 'commander.executeSubCommandAsync', '(close)'));\n });\n }\n proc.on('error', function(err) {\n if (err.code === 'ENOENT') {\n console.error('error: %s(1) does not exist, try --help', bin);\n } else if (err.code === 'EACCES') {\n console.error('error: %s(1) not executable. try chmod or run with root', bin);\n }\n if (!exitCallback) {\n process.exit(1);\n } else {\n const wrappedError = new CommanderError(1, 'commander.executeSubCommandAsync', '(error)');\n wrappedError.nestedError = err;\n exitCallback(wrappedError);\n }\n });\n\n // Store the reference to the child process\n this.runningCommand = proc;\n};\n\n/**\n * Normalize `args`, splitting joined short flags. For example\n * the arg \"-abc\" is equivalent to \"-a -b -c\".\n * This also normalizes equal sign and splits \"--abc=def\" into \"--abc def\".\n *\n * @param {Array} args\n * @return {Array}\n * @api private\n */\n\nCommand.prototype.normalize = function(args) {\n var ret = [],\n arg,\n lastOpt,\n index,\n short,\n opt;\n\n for (var i = 0, len = args.length; i < len; ++i) {\n arg = args[i];\n if (i > 0) {\n lastOpt = this.optionFor(args[i - 1]);\n }\n\n if (arg === '--') {\n // Honor option terminator\n ret = ret.concat(args.slice(i));\n break;\n } else if (lastOpt && lastOpt.required) {\n ret.push(arg);\n } else if (arg.length > 2 && arg[0] === '-' && arg[1] !== '-') {\n short = arg.slice(0, 2);\n opt = this.optionFor(short);\n if (opt && (opt.required || opt.optional)) {\n ret.push(short);\n ret.push(arg.slice(2));\n } else {\n arg.slice(1).split('').forEach(function(c) {\n ret.push('-' + c);\n });\n }\n } else if (/^--/.test(arg) && ~(index = arg.indexOf('='))) {\n ret.push(arg.slice(0, index), arg.slice(index + 1));\n } else {\n ret.push(arg);\n }\n }\n\n return ret;\n};\n\n/**\n * Parse command `args`.\n *\n * When listener(s) are available those\n * callbacks are invoked, otherwise the \"*\"\n * event is emitted and those actions are invoked.\n *\n * @param {Array} args\n * @return {Command} for chaining\n * @api private\n */\n\nCommand.prototype.parseArgs = function(args, unknown) {\n var name;\n\n if (args.length) {\n name = args[0];\n if (this.listeners('command:' + name).length) {\n this.emit('command:' + args.shift(), args, unknown);\n } else {\n this.emit('command:*', args, unknown);\n }\n } else {\n outputHelpIfRequested(this, unknown);\n\n // If there were no args and we have unknown options,\n // then they are extraneous and we need to error.\n if (unknown.length > 0 && !this.defaultExecutable) {\n this.unknownOption(unknown[0]);\n }\n if (this.commands.length === 0 &&\n this._args.filter(function(a) { return a.required; }).length === 0) {\n this.emit('command:*');\n }\n }\n\n return this;\n};\n\n/**\n * Return an option matching `arg` if any.\n *\n * @param {String} arg\n * @return {Option}\n * @api private\n */\n\nCommand.prototype.optionFor = function(arg) {\n for (var i = 0, len = this.options.length; i < len; ++i) {\n if (this.options[i].is(arg)) {\n return this.options[i];\n }\n }\n};\n\n/**\n * Display an error message if a mandatory option does not have a value.\n *\n * @api private\n */\n\nCommand.prototype._checkForMissingMandatoryOptions = function() {\n // Walk up hierarchy so can call from action handler after checking for displaying help.\n for (var cmd = this; cmd; cmd = cmd.parent) {\n cmd.options.forEach((anOption) => {\n if (anOption.mandatory && (cmd._getOptionValue(anOption.attributeName()) === undefined)) {\n cmd.missingMandatoryOptionValue(anOption);\n }\n });\n }\n};\n\n/**\n * Parse options from `argv` returning `argv`\n * void of these options.\n *\n * @param {Array} argv\n * @return {{args: Array, unknown: Array}}\n * @api public\n */\n\nCommand.prototype.parseOptions = function(argv) {\n var args = [],\n len = argv.length,\n literal,\n option,\n arg;\n\n var unknownOptions = [];\n\n // parse options\n for (var i = 0; i < len; ++i) {\n arg = argv[i];\n\n // literal args after --\n if (literal) {\n args.push(arg);\n continue;\n }\n\n if (arg === '--') {\n literal = true;\n continue;\n }\n\n // find matching Option\n option = this.optionFor(arg);\n\n // option is defined\n if (option) {\n // requires arg\n if (option.required) {\n arg = argv[++i];\n if (arg == null) return this.optionMissingArgument(option);\n this.emit('option:' + option.name(), arg);\n // optional arg\n } else if (option.optional) {\n arg = argv[i + 1];\n if (arg == null || (arg[0] === '-' && arg !== '-')) {\n arg = null;\n } else {\n ++i;\n }\n this.emit('option:' + option.name(), arg);\n // flag\n } else {\n this.emit('option:' + option.name());\n }\n continue;\n }\n\n // looks like an option\n if (arg.length > 1 && arg[0] === '-') {\n unknownOptions.push(arg);\n\n // If the next argument looks like it might be\n // an argument for this option, we pass it on.\n // If it isn't, then it'll simply be ignored\n if ((i + 1) < argv.length && (argv[i + 1][0] !== '-' || argv[i + 1] === '-')) {\n unknownOptions.push(argv[++i]);\n }\n continue;\n }\n\n // arg\n args.push(arg);\n }\n\n return { args: args, unknown: unknownOptions };\n};\n\n/**\n * Return an object containing options as key-value pairs\n *\n * @return {Object}\n * @api public\n */\nCommand.prototype.opts = function() {\n if (this._storeOptionsAsProperties) {\n // Preserve original behaviour so backwards compatible when still using properties\n var result = {},\n len = this.options.length;\n\n for (var i = 0; i < len; i++) {\n var key = this.options[i].attributeName();\n result[key] = key === this._versionOptionName ? this._version : this[key];\n }\n return result;\n }\n\n return this._optionValues;\n};\n\n/**\n * Argument `name` is missing.\n *\n * @param {String} name\n * @api private\n */\n\nCommand.prototype.missingArgument = function(name) {\n const message = `error: missing required argument '${name}'`;\n console.error(message);\n this._exit(1, 'commander.missingArgument', message);\n};\n\n/**\n * `Option` is missing an argument, but received `flag` or nothing.\n *\n * @param {Option} option\n * @param {String} [flag]\n * @api private\n */\n\nCommand.prototype.optionMissingArgument = function(option, flag) {\n let message;\n if (flag) {\n message = `error: option '${option.flags}' argument missing, got '${flag}'`;\n } else {\n message = `error: option '${option.flags}' argument missing`;\n }\n console.error(message);\n this._exit(1, 'commander.optionMissingArgument', message);\n};\n\n/**\n * `Option` does not have a value, and is a mandatory option.\n *\n * @param {Option} option\n * @api private\n */\n\nCommand.prototype.missingMandatoryOptionValue = function(option) {\n const message = `error: required option '${option.flags}' not specified`;\n console.error(message);\n this._exit(1, 'commander.missingMandatoryOptionValue', message);\n};\n\n/**\n * Unknown option `flag`.\n *\n * @param {String} flag\n * @api private\n */\n\nCommand.prototype.unknownOption = function(flag) {\n if (this._allowUnknownOption) return;\n const message = `error: unknown option '${flag}'`;\n console.error(message);\n this._exit(1, 'commander.unknownOption', message);\n};\n\n/**\n * Variadic argument with `name` is not the last argument as required.\n *\n * @param {String} name\n * @api private\n */\n\nCommand.prototype.variadicArgNotLast = function(name) {\n const message = `error: variadic arguments must be last '${name}'`;\n console.error(message);\n this._exit(1, 'commander.variadicArgNotLast', message);\n};\n\n/**\n * Set the program version to `str`.\n *\n * This method auto-registers the \"-V, --version\" flag\n * which will print the version number when passed.\n *\n * You can optionally supply the flags and description to override the defaults.\n *\n * @param {String} str\n * @param {String} [flags]\n * @param {String} [description]\n * @return {Command} for chaining\n * @api public\n */\n\nCommand.prototype.version = function(str, flags, description) {\n if (arguments.length === 0) return this._version;\n this._version = str;\n flags = flags || '-V, --version';\n description = description || 'output the version number';\n var versionOption = new Option(flags, description);\n this._versionOptionName = versionOption.long.substr(2) || 'version';\n this.options.push(versionOption);\n var self = this;\n this.on('option:' + this._versionOptionName, function() {\n process.stdout.write(str + '\\n');\n self._exit(0, 'commander.version', str);\n });\n return this;\n};\n\n/**\n * Set the description to `str`.\n *\n * @param {String} str\n * @param {Object} [argsDescription]\n * @return {String|Command}\n * @api public\n */\n\nCommand.prototype.description = function(str, argsDescription) {\n if (arguments.length === 0) return this._description;\n this._description = str;\n this._argsDescription = argsDescription;\n return this;\n};\n\n/**\n * Set an alias for the command\n *\n * @param {String} alias\n * @return {String|Command}\n * @api public\n */\n\nCommand.prototype.alias = function(alias) {\n var command = this;\n if (this.commands.length !== 0) {\n command = this.commands[this.commands.length - 1];\n }\n\n if (arguments.length === 0) return command._alias;\n\n if (alias === command._name) throw new Error('Command alias can\\'t be the same as its name');\n\n command._alias = alias;\n return this;\n};\n\n/**\n * Set / get the command usage `str`.\n *\n * @param {String} [str]\n * @return {String|Command}\n * @api public\n */\n\nCommand.prototype.usage = function(str) {\n var args = this._args.map(function(arg) {\n return humanReadableArgName(arg);\n });\n\n var usage = '[options]' +\n (this.commands.length ? ' [command]' : '') +\n (this._args.length ? ' ' + args.join(' ') : '');\n\n if (arguments.length === 0) return this._usage || usage;\n this._usage = str;\n\n return this;\n};\n\n/**\n * Get or set the name of the command\n *\n * @param {String} [str]\n * @return {String|Command}\n * @api public\n */\n\nCommand.prototype.name = function(str) {\n if (arguments.length === 0) return this._name;\n this._name = str;\n return this;\n};\n\n/**\n * Return prepared commands.\n *\n * @return {Array}\n * @api private\n */\n\nCommand.prototype.prepareCommands = function() {\n return this.commands.filter(function(cmd) {\n return !cmd._noHelp;\n }).map(function(cmd) {\n var args = cmd._args.map(function(arg) {\n return humanReadableArgName(arg);\n }).join(' ');\n\n return [\n cmd._name +\n (cmd._alias ? '|' + cmd._alias : '') +\n (cmd.options.length ? ' [options]' : '') +\n (args ? ' ' + args : ''),\n cmd._description\n ];\n });\n};\n\n/**\n * Return the largest command length.\n *\n * @return {Number}\n * @api private\n */\n\nCommand.prototype.largestCommandLength = function() {\n var commands = this.prepareCommands();\n return commands.reduce(function(max, command) {\n return Math.max(max, command[0].length);\n }, 0);\n};\n\n/**\n * Return the largest option length.\n *\n * @return {Number}\n * @api private\n */\n\nCommand.prototype.largestOptionLength = function() {\n var options = [].slice.call(this.options);\n options.push({\n flags: this._helpFlags\n });\n\n return options.reduce(function(max, option) {\n return Math.max(max, option.flags.length);\n }, 0);\n};\n\n/**\n * Return the largest arg length.\n *\n * @return {Number}\n * @api private\n */\n\nCommand.prototype.largestArgLength = function() {\n return this._args.reduce(function(max, arg) {\n return Math.max(max, arg.name.length);\n }, 0);\n};\n\n/**\n * Return the pad width.\n *\n * @return {Number}\n * @api private\n */\n\nCommand.prototype.padWidth = function() {\n var width = this.largestOptionLength();\n if (this._argsDescription && this._args.length) {\n if (this.largestArgLength() > width) {\n width = this.largestArgLength();\n }\n }\n\n if (this.commands && this.commands.length) {\n if (this.largestCommandLength() > width) {\n width = this.largestCommandLength();\n }\n }\n\n return width;\n};\n\n/**\n * Return help for options.\n *\n * @return {String}\n * @api private\n */\n\nCommand.prototype.optionHelp = function() {\n var width = this.padWidth();\n\n var columns = process.stdout.columns || 80;\n var descriptionWidth = columns - width - 4;\n\n // Append the help information\n return this.options.map(function(option) {\n const fullDesc = option.description +\n ((!option.negate && option.defaultValue !== undefined) ? ' (default: ' + JSON.stringify(option.defaultValue) + ')' : '');\n return pad(option.flags, width) + ' ' + optionalWrap(fullDesc, descriptionWidth, width + 2);\n }).concat([pad(this._helpFlags, width) + ' ' + optionalWrap(this._helpDescription, descriptionWidth, width + 2)])\n .join('\\n');\n};\n\n/**\n * Return command help documentation.\n *\n * @return {String}\n * @api private\n */\n\nCommand.prototype.commandHelp = function() {\n if (!this.commands.length) return '';\n\n var commands = this.prepareCommands();\n var width = this.padWidth();\n\n var columns = process.stdout.columns || 80;\n var descriptionWidth = columns - width - 4;\n\n return [\n 'Commands:',\n commands.map(function(cmd) {\n var desc = cmd[1] ? ' ' + cmd[1] : '';\n return (desc ? pad(cmd[0], width) : cmd[0]) + optionalWrap(desc, descriptionWidth, width + 2);\n }).join('\\n').replace(/^/gm, ' '),\n ''\n ].join('\\n');\n};\n\n/**\n * Return program help documentation.\n *\n * @return {String}\n * @api private\n */\n\nCommand.prototype.helpInformation = function() {\n var desc = [];\n if (this._description) {\n desc = [\n this._description,\n ''\n ];\n\n var argsDescription = this._argsDescription;\n if (argsDescription && this._args.length) {\n var width = this.padWidth();\n var columns = process.stdout.columns || 80;\n var descriptionWidth = columns - width - 5;\n desc.push('Arguments:');\n desc.push('');\n this._args.forEach(function(arg) {\n desc.push(' ' + pad(arg.name, width) + ' ' + wrap(argsDescription[arg.name], descriptionWidth, width + 4));\n });\n desc.push('');\n }\n }\n\n var cmdName = this._name;\n if (this._alias) {\n cmdName = cmdName + '|' + this._alias;\n }\n var parentCmdNames = '';\n for (var parentCmd = this.parent; parentCmd; parentCmd = parentCmd.parent) {\n parentCmdNames = parentCmd.name() + ' ' + parentCmdNames;\n }\n var usage = [\n 'Usage: ' + parentCmdNames + cmdName + ' ' + this.usage(),\n ''\n ];\n\n var cmds = [];\n var commandHelp = this.commandHelp();\n if (commandHelp) cmds = [commandHelp];\n\n var options = [\n 'Options:',\n '' + this.optionHelp().replace(/^/gm, ' '),\n ''\n ];\n\n return usage\n .concat(desc)\n .concat(options)\n .concat(cmds)\n .join('\\n');\n};\n\n/**\n * Output help information for this command.\n *\n * When listener(s) are available for the helpLongFlag\n * those callbacks are invoked.\n *\n * @api public\n */\n\nCommand.prototype.outputHelp = function(cb) {\n if (!cb) {\n cb = function(passthru) {\n return passthru;\n };\n }\n const cbOutput = cb(this.helpInformation());\n if (typeof cbOutput !== 'string' && !Buffer.isBuffer(cbOutput)) {\n throw new Error('outputHelp callback must return a string or a Buffer');\n }\n process.stdout.write(cbOutput);\n this.emit(this._helpLongFlag);\n};\n\n/**\n * You can pass in flags and a description to override the help\n * flags and help description for your command.\n *\n * @param {String} [flags]\n * @param {String} [description]\n * @return {Command}\n * @api public\n */\n\nCommand.prototype.helpOption = function(flags, description) {\n this._helpFlags = flags || this._helpFlags;\n this._helpDescription = description || this._helpDescription;\n\n var splitFlags = this._helpFlags.split(/[ ,|]+/);\n\n if (splitFlags.length > 1) this._helpShortFlag = splitFlags.shift();\n\n this._helpLongFlag = splitFlags.shift();\n\n return this;\n};\n\n/**\n * Output help information and exit.\n *\n * @param {Function} [cb]\n * @api public\n */\n\nCommand.prototype.help = function(cb) {\n this.outputHelp(cb);\n // exitCode: preserving original behaviour which was calling process.exit()\n // message: do not have all displayed text available so only passing placeholder.\n this._exit(process.exitCode || 0, 'commander.help', '(outputHelp)');\n};\n\n/**\n * Camel-case the given `flag`\n *\n * @param {String} flag\n * @return {String}\n * @api private\n */\n\nfunction camelcase(flag) {\n return flag.split('-').reduce(function(str, word) {\n return str + word[0].toUpperCase() + word.slice(1);\n });\n}\n\n/**\n * Pad `str` to `width`.\n *\n * @param {String} str\n * @param {Number} width\n * @return {String}\n * @api private\n */\n\nfunction pad(str, width) {\n var len = Math.max(0, width - str.length);\n return str + Array(len + 1).join(' ');\n}\n\n/**\n * Wraps the given string with line breaks at the specified width while breaking\n * words and indenting every but the first line on the left.\n *\n * @param {String} str\n * @param {Number} width\n * @param {Number} indent\n * @return {String}\n * @api private\n */\nfunction wrap(str, width, indent) {\n var regex = new RegExp('.{1,' + (width - 1) + '}([\\\\s\\u200B]|$)|[^\\\\s\\u200B]+?([\\\\s\\u200B]|$)', 'g');\n var lines = str.match(regex) || [];\n return lines.map(function(line, i) {\n if (line.slice(-1) === '\\n') {\n line = line.slice(0, line.length - 1);\n }\n return ((i > 0 && indent) ? Array(indent + 1).join(' ') : '') + line.trimRight();\n }).join('\\n');\n}\n\n/**\n * Optionally wrap the given str to a max width of width characters per line\n * while indenting with indent spaces. Do not wrap if insufficient width or\n * string is manually formatted.\n *\n * @param {String} str\n * @param {Number} width\n * @param {Number} indent\n * @return {String}\n * @api private\n */\nfunction optionalWrap(str, width, indent) {\n // Detect manually wrapped and indented strings by searching for line breaks\n // followed by multiple spaces/tabs.\n if (str.match(/[\\n]\\s+/)) return str;\n // Do not wrap to narrow columns (or can end up with a word per line).\n const minWidth = 40;\n if (width < minWidth) return str;\n\n return wrap(str, width, indent);\n}\n\n/**\n * Output help information if help flags specified\n *\n * @param {Command} cmd - command to output help for\n * @param {Array} options - array of options to search for -h or --help\n * @api private\n */\n\nfunction outputHelpIfRequested(cmd, options) {\n options = options || [];\n\n for (var i = 0; i < options.length; i++) {\n if (options[i] === cmd._helpLongFlag || options[i] === cmd._helpShortFlag) {\n cmd.outputHelp();\n // (Do not have all displayed text available so only passing placeholder.)\n cmd._exit(0, 'commander.helpDisplayed', '(outputHelp)');\n }\n }\n}\n\n/**\n * Takes an argument and returns its human readable equivalent for help usage.\n *\n * @param {Object} arg\n * @return {String}\n * @api private\n */\n\nfunction humanReadableArgName(arg) {\n var nameOutput = arg.name + (arg.variadic === true ? '...' : '');\n\n return arg.required\n ? '<' + nameOutput + '>'\n : '[' + nameOutput + ']';\n}\n\n// for versions before node v0.8 when there weren't `fs.existsSync`\nfunction exists(file) {\n try {\n if (fs.statSync(file).isFile()) {\n return true;\n }\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Scan arguments and increment port number for inspect calls (to avoid conflicts when spawning new command).\n *\n * @param {string[]} args - array of arguments from node.execArgv\n * @returns {string[]}\n * @api private\n */\n\nfunction incrementNodeInspectorPort(args) {\n // Testing for these options:\n // --inspect[=[host:]port]\n // --inspect-brk[=[host:]port]\n // --inspect-port=[host:]port\n return args.map((arg) => {\n var result = arg;\n if (arg.indexOf('--inspect') === 0) {\n var debugOption;\n var debugHost = '127.0.0.1';\n var debugPort = '9229';\n var match;\n if ((match = arg.match(/^(--inspect(-brk)?)$/)) !== null) {\n // e.g. --inspect\n debugOption = match[1];\n } else if ((match = arg.match(/^(--inspect(-brk|-port)?)=([^:]+)$/)) !== null) {\n debugOption = match[1];\n if (/^\\d+$/.test(match[3])) {\n // e.g. --inspect=1234\n debugPort = match[3];\n } else {\n // e.g. --inspect=localhost\n debugHost = match[3];\n }\n } else if ((match = arg.match(/^(--inspect(-brk|-port)?)=([^:]+):(\\d+)$/)) !== null) {\n // e.g. --inspect=localhost:1234\n debugOption = match[1];\n debugHost = match[3];\n debugPort = match[4];\n }\n\n if (debugOption && debugPort !== '0') {\n result = `${debugOption}=${debugHost}:${parseInt(debugPort) + 1}`;\n }\n }\n return result;\n });\n}\n","export class CliError extends Error {\n readonly exitCode: number\n readonly code: string\n\n constructor(\n message: string,\n options: {\n exitCode?: number\n code?: string\n cause?: unknown\n } = {}\n ) {\n super(message, options.cause ? { cause: options.cause } : undefined)\n this.name = \"CliError\"\n this.exitCode = options.exitCode ?? 1\n this.code = options.code ?? \"CLI_ERROR\"\n }\n}\n\nexport class CliUsageError extends CliError {\n constructor(message: string, options: { cause?: unknown } = {}) {\n super(message, { ...options, exitCode: 2, code: \"CLI_USAGE_ERROR\" })\n this.name = \"CliUsageError\"\n }\n}\n\nexport function errorMessage(error: unknown): string {\n return error instanceof Error ? error.message : String(error)\n}\n\nexport function errorToJson(error: unknown, debug = false, command?: string): string {\n const payload: Record<string, unknown> = {\n ok: false,\n error: true,\n message: errorMessage(error),\n code: error instanceof CliError ? error.code : \"CLI_ERROR\",\n exitCode: error instanceof CliError ? error.exitCode : 1,\n command: command ?? null,\n generatedAt: new Date().toISOString(),\n }\n\n if (debug && error instanceof Error && error.stack) {\n payload.stack = error.stack\n }\n\n return JSON.stringify(payload, null, 2)\n}\n\nexport function errorExitCode(error: unknown): number {\n return error instanceof CliError ? error.exitCode : 1\n}\n","import fs from \"node:fs\"\nimport { createRequire } from \"node:module\"\nimport os from \"node:os\"\nimport path from \"node:path\"\nimport { fileURLToPath } from \"node:url\"\n\nexport type PlatformExtension = \".node\" | \".dll\" | \".dylib\" | \".so\"\n\nexport function getPlatformExtension(): PlatformExtension {\n const platform = os.platform()\n switch (platform) {\n case \"win32\":\n return \".node\"\n case \"darwin\":\n return \".dylib\"\n case \"linux\":\n return \".so\"\n default:\n return \".node\"\n }\n}\n\nexport function checkNativeDisabled(): { disabled: boolean; reason: string | null } {\n if (process.env.TWS_NO_NATIVE === \"1\" || process.env.TWS_NO_NATIVE === \"true\") {\n return {\n disabled: true,\n reason: \"Native bindings disabled via TWS_NO_NATIVE=1\",\n }\n }\n if (process.env.TWS_NO_RUST === \"1\" || process.env.TWS_NO_RUST === \"true\") {\n return {\n disabled: true,\n reason: \"Native bindings disabled via TWS_NO_RUST=1\",\n }\n }\n return { disabled: false, reason: null }\n}\n\nexport interface NativeBindingLoadError {\n path: string\n message: string\n}\n\nexport interface ResolveNativeBindingCandidatesOptions {\n runtimeDir: string\n envVarNames?: string[]\n enforceNodeExtensionForEnvPath?: boolean\n includeDefaultCandidates?: boolean\n platformExtension?: PlatformExtension\n}\n\nexport interface LoadNativeBindingOptions<T> {\n runtimeDir: string\n candidates: string[]\n isValid: (module: unknown) => module is T\n invalidExportMessage: string\n}\n\nexport interface LoadNativeBindingResult<T> {\n binding: T | null\n loadedPath: string | null\n loadErrors: NativeBindingLoadError[]\n}\n\nexport function formatErrorMessage(error: unknown): string {\n return error instanceof Error ? error.message : String(error)\n}\n\nexport function resolveRuntimeDir(\n dirnameValue: string | undefined,\n moduleImportUrl: string\n): string {\n if (typeof dirnameValue === \"string\" && dirnameValue.length > 0) return dirnameValue\n return path.dirname(fileURLToPath(moduleImportUrl))\n}\n\nexport function resolveNativeBindingCandidates(\n options: ResolveNativeBindingCandidatesOptions\n): string[] {\n const out: string[] = []\n const envVarNames = options.envVarNames ?? [\"TWS_NATIVE_PATH\"]\n\n for (const envVarName of envVarNames) {\n const raw = process.env[envVarName]?.trim()\n if (!raw) continue\n const resolved = path.resolve(raw)\n\n if (options.enforceNodeExtensionForEnvPath) {\n if (path.extname(resolved).toLowerCase() !== \".node\") {\n throw new Error(\n `Invalid native binding path from ${envVarName}=\"${raw}\". Expected a .node file.`\n )\n }\n }\n\n out.push(resolved)\n }\n\n if (options.includeDefaultCandidates !== false) {\n const ext = options.platformExtension ?? getPlatformExtension()\n const defaultBindingName = `tailwind_styled_parser${ext}`\n\n out.push(path.resolve(process.cwd(), \"native\", defaultBindingName))\n out.push(path.resolve(options.runtimeDir, \"..\", \"..\", \"..\", \"native\", defaultBindingName))\n }\n\n return Array.from(new Set(out))\n}\n\nfunction parseDebugToken(namespace: string, token: string): boolean {\n if (token === \"*\" || token === namespace || token === \"tailwind-styled:*\") return true\n return token.endsWith(\"*\") && namespace.startsWith(token.slice(0, -1))\n}\n\nexport function isDebugNamespaceEnabled(namespace: string): boolean {\n if (process.env.TWS_DEBUG === \"1\" || process.env.TAILWIND_STYLED_DEBUG === \"1\") return true\n const raw = process.env.DEBUG\n if (!raw) return false\n\n return raw\n .split(\",\")\n .map((token) => token.trim())\n .some((token) => parseDebugToken(namespace, token))\n}\n\nexport function createDebugLogger(namespace: string, label = namespace): (message: string) => void {\n const debugEnabled = isDebugNamespaceEnabled(namespace)\n return (message: string) => {\n if (!debugEnabled) return\n console.debug(`[${label}] ${message}`)\n }\n}\n\nexport function loadNativeBinding<T>(\n options: LoadNativeBindingOptions<T>\n): LoadNativeBindingResult<T> {\n const req = createRequire(path.join(options.runtimeDir, \"noop.cjs\"))\n const loadErrors: NativeBindingLoadError[] = []\n\n for (const candidate of options.candidates) {\n if (!fs.existsSync(candidate)) continue\n try {\n const mod = req(candidate)\n if (options.isValid(mod)) {\n return {\n binding: mod,\n loadedPath: candidate,\n loadErrors,\n }\n }\n loadErrors.push({\n path: candidate,\n message: options.invalidExportMessage,\n })\n } catch (error) {\n loadErrors.push({\n path: candidate,\n message: formatErrorMessage(error),\n })\n }\n }\n\n return {\n binding: null,\n loadedPath: null,\n loadErrors,\n }\n}\n\nexport function loadNativeBindingOrThrow<T>(\n options: LoadNativeBindingOptions<T> & { bindingName: string }\n): T {\n const disabledCheck = checkNativeDisabled()\n if (disabledCheck.disabled) {\n throw new Error(\n `Native binding '${options.bindingName}' cannot be loaded.\\n${disabledCheck.reason}`\n )\n }\n\n const { bindingName, ...loadOptions } = options\n const { binding, loadErrors } = loadNativeBinding<T>(loadOptions)\n\n if (binding) {\n return binding\n }\n\n const lines = [\n `FATAL: Native binding '${bindingName}' not found.`,\n \"\",\n \"This package requires native Rust bindings.\",\n \"The binding was not found in any of these paths:\",\n ...loadOptions.candidates.map((p) => ` - ${p}`),\n \"\",\n ]\n\n if (loadErrors.length > 0) {\n lines.push(\"Load errors:\")\n for (const error of loadErrors) {\n lines.push(` - ${error.path}: ${error.message}`)\n }\n lines.push(\"\")\n }\n\n lines.push(\n \"Resolution steps:\",\n \"\",\n \"1. Build the native Rust module:\",\n \" npm run build:rust\",\n \"\",\n \"2. Or install pre-built binaries:\",\n \" npm install\",\n \"\",\n \"3. Override with environment variable:\",\n \" TWS_NATIVE_PATH=/path/to/tailwind_styled_parser.node\",\n \"\",\n \"4. Disable native bindings (use JS fallback):\",\n \" TWS_NO_NATIVE=1\",\n \"\",\n \"For CI/CD environments, ensure Rust toolchain is installed and\",\n \"'npm run build:rust' is executed before running tests or building.\"\n )\n\n throw new Error(lines.join(\"\\n\"))\n}\n","/**\n * Centralized logger — replaces scattered console.log/warn/error calls\n * across packages.\n */\nexport type LogLevel = \"silent\" | \"error\" | \"warn\" | \"info\" | \"debug\"\n\nconst LEVELS: Record<LogLevel, number> = { silent: 0, error: 1, warn: 2, info: 3, debug: 4 }\n\nfunction getEnvLevel(): LogLevel {\n const env = process.env.TWS_LOG_LEVEL?.toLowerCase()\n if (env && env in LEVELS) return env as LogLevel\n return process.env.TWS_DEBUG_SCANNER === \"1\" ? \"debug\" : \"info\"\n}\n\nexport interface Logger {\n error(...args: unknown[]): void\n warn(...args: unknown[]): void\n info(...args: unknown[]): void\n debug(...args: unknown[]): void\n setLevel(level: LogLevel): void\n}\n\nexport function createLogger(prefix: string, level?: LogLevel): Logger {\n let currentLevel = level ?? getEnvLevel()\n\n const log = (msgLevel: LogLevel, stream: \"stdout\" | \"stderr\", args: unknown[]) => {\n if (LEVELS[msgLevel] > LEVELS[currentLevel]) return\n const line = `[${prefix}] ${args.map(String).join(\" \")}\\n`\n process[stream].write(line)\n }\n\n return {\n error: (...a) => log(\"error\", \"stderr\", a),\n warn: (...a) => log(\"warn\", \"stderr\", a),\n info: (...a) => log(\"info\", \"stdout\", a),\n debug: (...a) => log(\"debug\", \"stderr\", a),\n setLevel: (l) => {\n currentLevel = l\n },\n }\n}\n\nexport const logger = createLogger(\"tailwind-styled\")\n","/**\n * @tailwind-styled/shared - Centralized utilities.\n */\n\nexport { LRUCache } from \"./cache\"\nexport {\n createDebugLogger,\n formatErrorMessage,\n isDebugNamespaceEnabled,\n loadNativeBinding,\n resolveNativeBindingCandidates,\n resolveRuntimeDir,\n type LoadNativeBindingOptions,\n type LoadNativeBindingResult,\n type NativeBindingLoadError,\n type ResolveNativeBindingCandidatesOptions,\n} from \"./nativeBinding\"\nexport { logger, createLogger, type LogLevel } from \"./logger\"\nexport { hashContent, hashFile } from \"./hash\"\nexport { debounce, throttle } from \"./timing\"\nexport { parseVersion, satisfiesMinVersion } from \"./version\"\n","/**\n * tailwind-styled-v4 — NativeBridge\n *\n * Loads the native Rust engine (.node binding via index.mjs) and exposes\n * its functions to the JS compiler pipeline.\n *\n * The bridge is loaded lazily and cached. If the .node binary is not\n * present (e.g. the user hasn't built the Rust crate yet), every function\n * returns null and the pipeline falls through to the JS implementation.\n *\n * Environment flags:\n * TWS_NO_NATIVE=1 — disable native bridge entirely\n * TWS_NO_RUST=1 — alias for TWS_NO_NATIVE\n */\n\nimport { createRequire } from \"node:module\"\nimport path from \"node:path\"\n\nimport { createLogger } from \"@tailwind-styled/shared\"\nimport type { TransformResult } from \"./astTransform\"\n\n// ── Types returned by the Rust engine ────────────────────────────────────────\n\n/** Raw shape returned by Rust transform_source — napi auto-converts snake_case → camelCase */\nexport interface NativeTransformResult {\n code: string\n classes: string[]\n changed: boolean\n /** JSON string: { isServer: boolean, needsClientDirective: boolean } */\n rscJson?: string | null\n /** JSON string: ComponentMetadata[] */\n metadataJson?: string | null\n}\n\n/** Parsed from rscJson */\nexport interface NativeRscResult {\n isServer: boolean\n needsClientDirective: boolean\n}\n\n/** Metadata for one compound component, produced by Rust and consumed by @tailwind-styled/runtime */\nexport interface ComponentMetadata {\n component: string\n tag: string\n baseClass: string\n subComponents: Record<string, { tag: string; class: string }>\n}\n\n/** Full bridge interface — all members optional so feature detection is easy */\nexport interface NativeBridge {\n /** Parse individual class tokens. Throws if binding is unavailable. */\n parseClassesNative?: (input: string) => Array<{\n raw: string\n base: string\n variants: string[]\n modifierType?: string | null\n modifierValue?: string | null\n }>\n /** Fast pre-check — returns null if binding unavailable. */\n hasTwUsageNative?: (source: string) => boolean | null\n /** Idempotency guard — returns null if binding unavailable. */\n isAlreadyTransformedNative?: (source: string) => boolean | null\n /** RSC analysis — returns null if binding unavailable. */\n analyzeRscNative?: (\n source: string,\n filename?: string\n ) => { isServer: boolean; needsClientDirective: boolean; clientReasons: string[] } | null\n /** Full transform — returns null if binding unavailable (JS pipeline takes over). */\n transformSourceNative?: (\n source: string,\n opts: Record<string, unknown>\n ) => NativeTransformResult | null\n /** AST-based class extraction (Oxc+regex hybrid) */\n astExtractClassesNative?: (\n source: string,\n filename?: string\n ) => { classes: string[]; engine: string } | null\n /** Rust-based class extraction via regex */\n extractClassesFromSourceNative?: (source: string) => string[] | null\n /** Analyze class frequency - used for DSE */\n analyzeClassesNative?: (\n filesJson: string,\n root: string,\n topN: number\n ) => {\n root: string\n totalFiles: number\n uniqueClassCount: number\n totalClassOccurrences: number\n topClasses: Array<{ name: string; count: number }>\n duplicateCandidates: Array<{ name: string; count: number }>\n safelist: string[]\n } | null\n}\n\n// ── Bridge loader ─────────────────────────────────────────────────────────────\n\nconst runtimeDir = typeof __dirname === \"string\" && __dirname.length > 0 ? __dirname : process.cwd()\nconst requireFromRuntime =\n typeof module !== \"undefined\" && typeof module.require === \"function\"\n ? module.require.bind(module)\n : createRequire(path.join(runtimeDir, \"noop.cjs\"))\n\nlet cachedBridge: NativeBridge | null | undefined\nconst log = createLogger(\"compiler:native\")\n\nfunction tryRequire(id: string): NativeBridge | null {\n try {\n const mod = requireFromRuntime(id) as NativeBridge\n return mod ?? null\n } catch (error) {\n log.debug(\n `native bridge load miss ${id}: ${error instanceof Error ? error.message : String(error)}`\n )\n return null\n }\n}\n\n/**\n * Get the native bridge - THROWS if unavailable.\n *\n * v5 CHANGE: Previously returned null and fell back to JS pipeline.\n * Now throws an error to ensure native binding is always used.\n *\n * @throws Error if native binding is not available\n */\nexport function getNativeBridge(): NativeBridge {\n if (cachedBridge !== undefined) {\n if (cachedBridge === null) {\n throw new Error(\n `[tailwind-styled/compiler v5] Native binding is required but not available.\\n` +\n `Please ensure:\\n` +\n ` 1. The native module is properly installed\\n` +\n ` 2. You have run: npm run build:native (or use prebuilt binary)\\n` +\n ` 3. TWS_NO_NATIVE environment variable is not set\\n` +\n `\\n` +\n `For help, see: https://tailwind-styled.dev/docs/install`\n )\n }\n return cachedBridge\n }\n\n if (process.env.TWS_NO_NATIVE === \"1\" || process.env.TWS_NO_RUST === \"1\") {\n cachedBridge = null\n throw new Error(\n `[tailwind-styled/compiler v5] Native binding is required.\\n` +\n `The TWS_NO_NATIVE or TWS_NO_RUST environment variable is set, which disables native binding.\\n` +\n `Please unset this environment variable to use the native compiler.`\n )\n }\n\n const candidates = [\n \"@tailwind-styled/native\",\n path.resolve(process.cwd(), \"native\", \"index.mjs\"),\n path.resolve(runtimeDir, \"..\", \"..\", \"native\", \"index.mjs\"),\n path.resolve(runtimeDir, \"..\", \"..\", \"..\", \"native\", \"index.mjs\"),\n path.resolve(process.cwd(), \"native\", \"index.node\"),\n path.resolve(runtimeDir, \"..\", \"..\", \"native\", \"index.node\"),\n path.resolve(runtimeDir, \"..\", \"..\", \"..\", \"native\", \"index.node\"),\n ]\n\n for (const candidate of candidates) {\n const bridge = tryRequire(candidate)\n if (bridge) {\n log.debug(`native bridge loaded from ${candidate}`)\n cachedBridge = bridge\n return cachedBridge\n }\n }\n\n // v5: Throw error instead of returning null\n cachedBridge = null\n throw new Error(\n `[tailwind-styled/compiler v5] Native binding not found.\\n` +\n `Tried loading from:\\n` +\n candidates.map((c) => ` - ${c}`).join(\"\\n\") +\n `\\n` +\n `\\n` +\n `Please build the native module:\\n` +\n ` npm run build:native\\n` +\n `\\n` +\n `Or install a prebuilt binary for your platform.`\n )\n}\n\nexport function resetNativeBridgeCache(): void {\n cachedBridge = undefined\n}\n\n// ── Result adapter ────────────────────────────────────────────────────────────\n// Converts the raw Rust NativeTransformResult into the canonical TransformResult\n// shape the rest of the JS pipeline expects, parsing JSON fields as needed.\n\nexport function adaptNativeResult(raw: NativeTransformResult): TransformResult & {\n metadata?: ComponentMetadata[]\n} {\n // Parse rscJson → rsc object\n let rsc: TransformResult[\"rsc\"] | undefined\n if (raw.rscJson) {\n try {\n const parsed = JSON.parse(raw.rscJson) as NativeRscResult\n rsc = {\n isServer: parsed.isServer,\n needsClientDirective: parsed.needsClientDirective,\n clientReasons: [],\n }\n } catch {\n // ignore malformed JSON\n }\n }\n\n // Parse metadataJson → ComponentMetadata[]\n let metadata: ComponentMetadata[] | undefined\n if (raw.metadataJson) {\n try {\n metadata = JSON.parse(raw.metadataJson) as ComponentMetadata[]\n } catch {\n // ignore malformed JSON\n }\n }\n\n return {\n code: raw.code,\n classes: raw.classes,\n changed: raw.changed,\n rsc,\n metadata,\n }\n}\n","/**\n * tailwind-styled-v4 — twDetector\n *\n * Regex-based detector untuk semua syntax tw yang valid.\n * Dipakai sebelum transform — jika tidak ada tw usage, skip file.\n *\n * FIXED: trailing space bug di TEMPLATE_RE (#02)\n */\n\nimport { getNativeBridge } from \"./nativeBridge\"\n\n/** tw.div`...` — FIX: removed trailing space before /g */\nexport const TEMPLATE_RE = /\\btw\\.(server\\.)?(\\w+)`((?:[^`\\\\]|\\\\.)*)`/g\n\n/** tw.div({ base: \"...\", variants: {...} }) */\nexport const OBJECT_RE = /\\btw\\.(server\\.)?(\\w+)\\(\\s*(\\{[\\s\\S]*?\\})\\s*\\)/g\n\n/** tw(Component)`...` */\nexport const WRAP_RE = /\\btw\\((\\w+)\\)`((?:[^`\\\\]|\\\\.)*)`/g\n\n/** Card.extend`...` */\nexport const EXTEND_RE = /(\\w+)\\.extend`((?:[^`\\\\]|\\\\.)*)`/g\n\n/** import { tw } from \"tailwind-styled-v4\" */\nexport const IMPORT_RE = /from\\s*[\"']tailwind-styled-v4[\"']/\n\n/** Transform already-applied marker — idempotency guard (#08) */\nexport const TRANSFORM_MARKER = \"/* @tw-transformed */\"\n\nexport function hasTwUsage(source: string): boolean {\n // Rust fast-path — single regex scan di native\n const native = getNativeBridge()\n if (native?.hasTwUsageNative) {\n const result = native.hasTwUsageNative(source)\n if (result !== null && result !== undefined) return result\n }\n // JS fallback\n return IMPORT_RE.test(source) || source.includes(\"tw.\")\n}\n\n/** Check if file was already transformed — prevents double processing (#08) */\nexport function isAlreadyTransformed(source: string): boolean {\n // Rust fast-path\n const native = getNativeBridge()\n if (native?.isAlreadyTransformedNative) {\n const result = native.isAlreadyTransformedNative(source)\n if (result !== null && result !== undefined) return result\n }\n // JS fallback\n return source.includes(TRANSFORM_MARKER)\n}\n\nexport function isTwTemplateLiteral(source: string, index: number): boolean {\n const before = source.slice(Math.max(0, index - 20), index)\n return /\\btw\\.\\w+$/.test(before) || /\\btw\\(\\w+\\)$/.test(before)\n}\n\nexport function isDynamic(content: string): boolean {\n return content.includes(\"${\")\n}\n\nexport function isServerComponent(source: string): boolean {\n return !source.includes('\"use client\"') && !source.includes(\"'use client'\")\n}\n\nexport function hasInteractiveFeatures(content: string): boolean {\n return /\\b(hover:|focus:|active:|group-hover:|peer-|on[A-Z]|useState|useEffect|useRef)\\b/.test(\n content\n )\n}\n","/**\n * tailwind-styled-v4 — classExtractor\n *\n * FIX #02: Remove .slice(0, -1) workaround for broken TEMPLATE_RE.\n * TEMPLATE_RE trailing space is now fixed in twDetector.ts.\n *\n * Ekstrak semua Tailwind class dari source untuk safelist generation.\n */\n\nimport { parseComponentConfig } from \"./astParser\"\nimport { EXTEND_RE, OBJECT_RE, TEMPLATE_RE } from \"./twDetector\"\n\nconst VALID_CLASS_RE = /^[-a-z0-9:/[\\]!.()+%]+$/\nconst TEMPLATE_SCAN_RE = new RegExp(TEMPLATE_RE.source, \"g\")\nconst OBJECT_SCAN_RE = new RegExp(OBJECT_RE.source, \"g\")\nconst EXTEND_SCAN_RE = new RegExp(EXTEND_RE.source, \"g\")\nconst CLASS_NAME_RE = /className\\s*=\\s*[\"']([^\"']+)[\"']/g\n\nfunction resetRegex(regex: RegExp): void {\n regex.lastIndex = 0\n}\n\nfunction parseClasses(raw: string): string[] {\n const parsed: string[] = []\n\n for (const token of raw.split(/[\\n\\s]+/)) {\n if (!token) continue\n const normalized = token.trim()\n if (!normalized || !VALID_CLASS_RE.test(normalized)) continue\n parsed.push(normalized)\n }\n\n return parsed\n}\n\n/**\n * Extract all Tailwind classes from source code.\n *\n * v5 CHANGE: Now THROWS if native binding is unavailable.\n * Previously fell back to JS implementation.\n *\n * @param source - Source code to extract classes from\n * @returns Array of unique class names (sorted)\n * @throws Error if native binding is not available\n */\nexport function extractAllClasses(source: string): string[] {\n // v5: Use native bridge - throws if unavailable\n const { getNativeBridge } = require(\"./nativeBridge\") as typeof import(\"./nativeBridge\")\n const native = getNativeBridge() // throws if binding unavailable\n\n // v5: Native is required - throw if method not available\n if (!native?.extractClassesFromSourceNative) {\n throw new Error(\n `[tailwind-styled/compiler v5] extractClassesFromSourceNative is required but not available.\\n` +\n `Please ensure the native module is properly built.`\n )\n }\n\n const result = native.extractClassesFromSourceNative(source)\n if (!result || result.length < 0) {\n throw new Error(\n `[tailwind-styled/compiler v5] extractClassesFromSourceNative returned invalid result.`\n )\n }\n\n return result.sort()\n}\n\nexport { parseClasses }\n// Re-export for backward compat — now use parseComponentConfig from astParser\nexport function extractBaseFromObject(objectStr: string): string {\n return parseComponentConfig(objectStr).base\n}\nexport function extractVariantsFromObject(\n objectStr: string\n): Record<string, Record<string, string>> {\n return parseComponentConfig(objectStr).variants\n}\n","/**\n * @tailwind-styled/compiler v5 — Public API\n *\n * This is the public API for end users.\n * For internal functions, import from \"@tailwind-styled/compiler/internal\"\n *\n * v5 Changes:\n * - Native binding is now REQUIRED (throws if unavailable)\n * - Mode option removed (zero-runtime only)\n * - API streamlined: only essential functions exported\n * - Dead Style Elimination (DSE) now available as public API\n */\n\n// ── CORE TRANSFORM ─────────────────────────────────────────────────────────\n\nexport type { TransformOptions, TransformResult } from \"./astTransform\"\nexport { transformSource } from \"./astTransform\"\n\n// ── CSS COMPILATION ────────────────────────────────────────────────────────\n\nexport type { CssCompileResult } from \"./cssCompiler\"\nexport { buildStyleTag, compileCssFromClasses } from \"./cssCompiler\"\n\n// ── CLASS EXTRACTION ───────────────────────────────────────────────────────\n\nexport { extractAllClasses } from \"./classExtractor\"\n\n// ── DEAD STYLE ELIMINATOR ─────────────────────────────────────────────────\n\nexport type { EliminationReport, VariantUsage } from \"./deadStyleEliminator\"\nexport {\n eliminateDeadCss,\n extractComponentUsage,\n findDeadVariants,\n optimizeCss,\n runElimination,\n scanProjectUsage,\n} from \"./deadStyleEliminator\"\n\n// ── INCREMENTAL COMPILATION ───────────────────────────────────────────────\n\nexport type { IncrementalEngineOptions, IncrementalStats } from \"./incrementalEngine\"\nexport {\n getIncrementalEngine,\n IncrementalEngine,\n resetIncrementalEngine,\n} from \"./incrementalEngine\"\n\n// ── RSC ANALYSIS ──────────────────────────────────────────────────────────\n\nexport type { RscAnalysis } from \"./rscAnalyzer\"\nexport { analyzeFile } from \"./rscAnalyzer\"\n\n// ── STYLE BUCKET SYSTEM ───────────────────────────────────────────────────\n\nexport type { BucketStats, StyleBucket } from \"./styleBucketSystem\"\nexport { BucketEngine, getBucketEngine, resetBucketEngine } from \"./styleBucketSystem\"\n\n////////////////////////////////////////////////////////////////////////////////\n// DEPRECATED EXPORTS - Will be removed in v6\n// Use @tailwind-styled/compiler/internal instead\n////////////////////////////////////////////////////////////////////////////////\n\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport { shouldProcess } from \"./astTransform\"\n\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport type { AtomicRule } from \"./atomicCss\"\n\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport {\n clearAtomicRegistry,\n generateAtomicCss,\n getAtomicRegistry,\n parseAtomicClass,\n toAtomicClasses,\n} from \"./atomicCss\"\n\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport { mergeClassesStatic, normalizeClasses } from \"./classMerger\"\n\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport type { HoistResult } from \"./componentHoister\"\n\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport { hoistComponents } from \"./componentHoister\"\n\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport type { CompileEngine, CompileInput } from \"./context\"\n\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport { CompileContext } from \"./context\"\n\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport type { CoreCompileOptions, CoreCompileResult } from \"./coreCompiler\"\n\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport { compileWithCore, resetCompileCache } from \"./coreCompiler\"\n\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport type { CssDiff, FileDependencyGraph, ProcessResult, StyleNode } from \"./incrementalEngine\"\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport { parseClassesToNodes } from \"./incrementalEngine\"\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport type { LoaderContext, LoaderOptions, LoaderOutput } from \"./loaderCore\"\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport { runLoaderTransform, shouldSkipFile } from \"./loaderCore\"\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport {\n bootstrapZeroConfig,\n getContentPaths,\n invalidateConfigCache,\n isZeroConfig,\n loadTailwindConfig,\n} from \"./loadTailwindConfig\"\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport type { ComponentMetadata, NativeBridge, NativeTransformResult } from \"./nativeBridge\"\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport { adaptNativeResult, getNativeBridge, resetNativeBridgeCache } from \"./nativeBridge\"\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport { Pipeline } from \"./pipeline\"\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport type { RouteClassMap } from \"./routeCssCollector\"\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport {\n fileToRoute,\n getAllRoutes,\n getCollector,\n getCollectorSummary,\n getRouteClasses,\n registerFileClasses,\n registerGlobalClasses,\n resetCollector,\n} from \"./routeCssCollector\"\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport type { ComponentEnv, StaticVariantUsage } from \"./rscAnalyzer\"\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport {\n analyzeVariantUsage,\n injectClientDirective,\n injectServerOnlyComment,\n resolveServerVariant,\n} from \"./rscAnalyzer\"\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport type { AstExtractResult } from \"./rustCssCompiler\"\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport { astExtractClassesNative, compileCssNative } from \"./rustCssCompiler\"\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport { generateSafelist, generateSafelistCss, loadSafelist } from \"./safelistGenerator\"\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport type { ConflictWarning } from \"./styleBucketSystem\"\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport { bucketSort, classifyNode, detectConflicts } from \"./styleBucketSystem\"\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport type { CssGenerateResult, TailwindEngineOptions } from \"./tailwindEngine\"\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport { generateAllRouteCss, generateCssForClasses } from \"./tailwindEngine\"\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport {\n hasInteractiveFeatures,\n hasTwUsage,\n isDynamic,\n isServerComponent,\n} from \"./twDetector\"\n/** @deprecated Import from @tailwind-styled/compiler/internal */\nexport { compileVariants } from \"./variantCompiler\"\n","/**\n * Scanner — Rust native bridge\n *\n * Wraps the Rust scan_workspace and extract_classes_from_source functions.\n * This module REQUIRES native Rust bindings and will FAIL LOUDLY if they are not available.\n * NO JavaScript fallback is provided.\n */\nimport { createRequire } from \"node:module\"\nimport path from \"node:path\"\n\ninterface NativeScannerBinding {\n scanWorkspace?: (\n root: string,\n extensions: string[] | null\n ) => {\n files: Array<{ file: string; classes: string[]; hash: string }>\n totalFiles: number\n uniqueClasses: string[] | null\n } | null\n extractClassesFromSource?: (source: string) => string[] | null\n hashFileContent?: (content: string) => string | null\n cacheRead?: (cachePath: string) => {\n entries: Array<{\n file: string\n classes: string[]\n hash: string\n mtimeMs: number\n size: number\n hitCount: number\n }>\n version: number\n } | null\n cacheWrite?: (\n cachePath: string,\n entries: Array<{\n file: string\n classes: string[]\n hash: string\n mtimeMs: number\n size: number\n hitCount: number\n }>\n ) => boolean\n cachePriority?: (\n mtimeMs: number,\n size: number,\n cachedMtimeMs: number,\n cachedSize: number,\n cachedHitCount: number,\n cachedLastSeenMs: number,\n nowMs: number\n ) => number\n}\n\nlet _binding: NativeScannerBinding | null | undefined = undefined\nlet _loadError: string | null = null\nlet _candidatePaths: string[] = []\n\nfunction getBinding(): NativeScannerBinding {\n if (_binding !== undefined) {\n if (_binding === null) {\n throwNativeBindingError()\n }\n return _binding\n }\n\n if (process.env.TWS_NO_NATIVE === \"1\" || process.env.TWS_NO_RUST === \"1\") {\n _loadError = \"Native loading is disabled by TWS_NO_NATIVE or TWS_NO_RUST environment variable.\"\n _binding = null\n _candidatePaths = []\n throwNativeBindingError()\n }\n\n const runtimeDir = typeof __dirname === \"string\" ? __dirname : process.cwd()\n _candidatePaths = [\n path.resolve(process.cwd(), \"native\", \"tailwind_styled_parser.node\"),\n path.resolve(runtimeDir, \"..\", \"..\", \"..\", \"native\", \"tailwind_styled_parser.node\"),\n ]\n\n const req =\n typeof require === \"function\" ? require : createRequire(path.join(runtimeDir, \"noop.cjs\"))\n\n for (const c of _candidatePaths) {\n try {\n const mod = req(c) as NativeScannerBinding\n if (\n mod?.scanWorkspace ||\n mod?.extractClassesFromSource ||\n mod?.hashFileContent ||\n mod?.cacheRead ||\n mod?.cacheWrite\n ) {\n _binding = mod\n return _binding\n }\n } catch (error) {\n _loadError = error instanceof Error ? error.message : String(error)\n }\n }\n\n // No fallback - fail loudly\n _binding = null\n throwNativeBindingError()\n}\n\nfunction throwNativeBindingError(): never {\n const lines = [\n \"FATAL: Native scanner binding not found.\",\n \"\",\n \"This package requires the Rust native binding 'tailwind_styled_parser.node'.\",\n \"The binding was not found in any of these paths:\",\n ..._candidatePaths.map((p) => ` - ${p}`),\n \"\",\n ]\n\n if (_loadError) {\n lines.push(\"Load error:\", ` ${_loadError}`, \"\")\n }\n\n lines.push(\n \"To fix this, run:\",\n \" npm run build:rust\",\n \"\",\n \"This will build the native Rust module from the 'native/' directory.\",\n \"If you're using this package in a CI/CD environment, ensure Rust toolchain is installed\",\n \"and 'npm run build:rust' is executed before running tests or building.\"\n )\n\n throw new Error(lines.join(\"\\n\"))\n}\n\nexport function scanWorkspaceNative(\n root: string,\n extensions?: string[]\n): ReturnType<NonNullable<NativeScannerBinding[\"scanWorkspace\"]>> {\n return getBinding().scanWorkspace!(root, extensions ?? null)\n}\n\nexport function extractClassesNative(source: string): string[] {\n const result = getBinding().extractClassesFromSource?.(source)\n if (result === null || result === undefined) {\n throw new Error(\"Native extractClassesFromSource returned null/undefined\")\n }\n return result\n}\n\nexport function hashContentNative(content: string): string {\n const result = getBinding().hashFileContent?.(content)\n if (result === null || result === undefined) {\n throw new Error(\"Native hashFileContent returned null/undefined\")\n }\n return result\n}\n\nexport function isRustCacheAvailable(): boolean {\n return true // We always require native binding now\n}\n\nexport function hasNativeScannerBinding(): boolean {\n try {\n getBinding()\n return true\n } catch {\n return false\n }\n}\n\nexport function cacheReadNative(\n cachePath: string\n): ReturnType<NonNullable<NativeScannerBinding[\"cacheRead\"]>> {\n const result = getBinding().cacheRead?.(cachePath)\n if (result === null || result === undefined) {\n throw new Error(\"Native cacheRead returned null/undefined\")\n }\n return result\n}\n\nexport function cacheWriteNative(\n cachePath: string,\n entries: Parameters<NonNullable<NativeScannerBinding[\"cacheWrite\"]>>[1]\n): boolean {\n const result = getBinding().cacheWrite?.(cachePath, entries)\n if (result === null || result === undefined) {\n throw new Error(\"Native cacheWrite returned null/undefined\")\n }\n return result\n}\n\nexport function cachePriorityNative(\n mtimeMs: number,\n size: number,\n cachedMtimeMs: number,\n cachedSize: number,\n cachedHitCount: number,\n cachedLastSeenMs: number,\n nowMs = Date.now()\n): number {\n const result = getBinding().cachePriority?.(\n mtimeMs,\n size,\n cachedMtimeMs,\n cachedSize,\n cachedHitCount,\n cachedLastSeenMs,\n nowMs\n )\n if (result === null || result === undefined) {\n throw new Error(\"Native cachePriority returned null/undefined\")\n }\n return result\n}\n","/**\n * tailwind-styled-v4 — Scanner Cache (Rust-backed)\n *\n * This module REQUIRES native Rust bindings and will FAIL LOUDLY if they are not available.\n * NO JavaScript fallback is provided.\n */\n\nimport path from \"node:path\"\nimport { cachePriorityNative, cacheReadNative, cacheWriteNative } from \"./native-bridge\"\n\nfunction defaultCachePath(rootDir: string, cacheDir?: string): string {\n const dir = cacheDir\n ? path.resolve(rootDir, cacheDir)\n : path.join(process.cwd(), \".cache\", \"tailwind-styled\")\n return path.join(dir, \"scanner-cache.json\")\n}\n\n// ── Public API ────────────────────────────────────────────────────────────────\n\nexport interface NativeCacheEntry {\n file: string\n classes: string[]\n hash: string\n mtimeMs: number\n size: number\n hitCount: number\n}\n\n/**\n * Read scanner cache from disk using Rust parser.\n * REQUIRES native binding - throws if unavailable.\n */\nexport function readCache(rootDir: string, cacheDir?: string): NativeCacheEntry[] {\n const cachePath = defaultCachePath(rootDir, cacheDir)\n\n const result = cacheReadNative(cachePath)\n return result.entries.map((e) => ({\n file: e.file,\n classes: e.classes,\n hash: e.hash,\n mtimeMs: e.mtimeMs,\n size: e.size,\n hitCount: e.hitCount,\n }))\n}\n\n/**\n * Write scanner cache to disk using Rust serialiser.\n * REQUIRES native binding - throws if unavailable.\n */\nexport function writeCache(rootDir: string, entries: NativeCacheEntry[], cacheDir?: string): void {\n const cachePath = defaultCachePath(rootDir, cacheDir)\n\n const success = cacheWriteNative(cachePath, entries)\n if (!success) {\n throw new Error(\n \"Native cacheWrite failed. Run 'npm run build:rust' to rebuild native bindings.\"\n )\n }\n}\n\n/**\n * Compute priority score for a file using the Rust SmartCache algorithm.\n * Higher = process first.\n * REQUIRES native binding - throws if unavailable.\n */\nexport function filePriority(\n mtimeMs: number,\n size: number,\n cached: { mtimeMs: number; size: number; hitCount: number; lastSeenMs?: number } | undefined,\n nowMs = Date.now()\n): number {\n return cachePriorityNative(\n mtimeMs,\n size,\n cached?.mtimeMs ?? 0,\n cached?.size ?? 0,\n cached?.hitCount ?? 0,\n cached?.lastSeenMs ?? 0,\n nowMs\n )\n}\n","import fs from \"node:fs\"\nimport path from \"node:path\"\nimport { fileURLToPath } from \"node:url\"\nimport { Worker } from \"node:worker_threads\"\n\nimport { extractAllClasses } from \"@tailwind-styled/compiler\"\nimport { createLogger } from \"@tailwind-styled/shared\"\nimport { filePriority, type NativeCacheEntry, readCache, writeCache } from \"./cache-native\"\nimport { hashContentNative, isRustCacheAvailable } from \"./native-bridge\"\n\nconst log = createLogger(\"scanner\")\n\nconst SCAN_WORKER_TIMEOUT_MS = 120_000\nconst SCAN_WORKER_BOOTSTRAP = `\nconst { parentPort, workerData } = require(\"node:worker_threads\")\ntry {\n const scanner = require(workerData.modulePath)\n const result = scanner.scanWorkspace(workerData.rootDir, workerData.options ?? {})\n parentPort.postMessage({ ok: true, result })\n} catch (error) {\n parentPort.postMessage({\n ok: false,\n error: error instanceof Error ? error.message : String(error),\n })\n}\n`\n\ntype NativeParsedClass = { raw?: string }\ntype NativeParserBinding = { parse_classes?: (input: string) => NativeParsedClass[] }\n\nlet nativeParserBinding: NativeParserBinding | null | undefined\nlet nativeParserInitError: string | null = null\n\nfunction canUseCjsRequire(): boolean {\n return typeof require === \"function\"\n}\n\nfunction debugNative(message: string): void {\n log.debug(`[native] ${message}`)\n}\n\nfunction loadNativeParserBinding(): NativeParserBinding | null {\n if (nativeParserBinding !== undefined) return nativeParserBinding\n\n if (!canUseCjsRequire()) {\n nativeParserBinding = null\n nativeParserInitError = \"require is unavailable in current module format\"\n debugNative(`fallback to JS: ${nativeParserInitError}`)\n return nativeParserBinding\n }\n\n const candidates = [\n path.resolve(process.cwd(), \"native/tailwind_styled_parser.node\"),\n path.resolve(process.cwd(), \"native/build/Release/tailwind_styled_parser.node\"),\n ]\n\n for (const fullPath of candidates) {\n if (!fs.existsSync(fullPath)) continue\n try {\n const required = require(fullPath) as NativeParserBinding\n if (required && typeof required.parse_classes === \"function\") {\n nativeParserBinding = required\n debugNative(`using native parser from ${fullPath}`)\n return nativeParserBinding\n }\n } catch (error) {\n nativeParserInitError = error instanceof Error ? error.message : String(error)\n }\n }\n\n nativeParserBinding = null\n if (!nativeParserInitError) {\n nativeParserInitError = \"native .node binding not found\"\n }\n debugNative(`fallback to JS: ${nativeParserInitError}`)\n return nativeParserBinding\n}\n\nfunction normalizeWithNativeParser(tokens: string[]): string[] {\n const binding = loadNativeParserBinding()\n if (!binding || typeof binding.parse_classes !== \"function\") {\n throw new Error(\n \"Native parser binding is required but not available. Run 'npm run build:rust' to build it.\"\n )\n }\n\n try {\n const parsed = binding.parse_classes(tokens.join(\" \"))\n const normalized = parsed.map((item) => item.raw?.trim() ?? \"\").filter(Boolean)\n return Array.from(new Set(normalized))\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error)\n throw new Error(`Native parser failed: ${errorMessage}. Run 'npm run build:rust' to rebuild.`)\n }\n}\n\nexport interface ScanWorkspaceOptions {\n includeExtensions?: string[]\n ignoreDirectories?: string[]\n useCache?: boolean\n cacheDir?: string\n smartInvalidation?: boolean\n}\n\nexport interface ScanFileResult {\n file: string\n classes: string[]\n}\n\nexport interface ScanWorkspaceResult {\n files: ScanFileResult[]\n totalFiles: number\n uniqueClasses: string[]\n}\n\nexport const DEFAULT_EXTENSIONS = [\".js\", \".jsx\", \".ts\", \".tsx\", \".mjs\", \".cjs\"]\nexport const DEFAULT_IGNORES = [\"node_modules\", \".git\", \".next\", \"dist\", \"out\", \".turbo\", \".cache\"]\n\nfunction resolveScannerWorkerModulePath(): string | null {\n const runtimeDir =\n typeof __dirname === \"string\" && __dirname.length > 0\n ? __dirname\n : path.dirname(fileURLToPath(import.meta.url))\n\n const candidates = [\n path.resolve(runtimeDir, \"index.cjs\"),\n path.resolve(runtimeDir, \"index.js\"),\n path.resolve(runtimeDir, \"index.ts\"),\n ]\n\n for (const candidate of candidates) {\n if (fs.existsSync(candidate)) return candidate\n }\n\n return null\n}\n\nfunction scanWorkspaceInWorker(\n rootDir: string,\n options: ScanWorkspaceOptions\n): Promise<ScanWorkspaceResult> {\n const modulePath = resolveScannerWorkerModulePath()\n if (!modulePath) {\n return Promise.reject(new Error(\"scanner worker module path could not be resolved\"))\n }\n\n return new Promise((resolve, reject) => {\n let settled = false\n\n const worker = new Worker(SCAN_WORKER_BOOTSTRAP, {\n eval: true,\n workerData: { modulePath, rootDir, options },\n })\n\n const timeout = setTimeout(() => {\n if (settled) return\n settled = true\n void worker.terminate()\n reject(new Error(`scanner worker timed out after ${SCAN_WORKER_TIMEOUT_MS}ms`))\n }, SCAN_WORKER_TIMEOUT_MS)\n\n const finish = (callback: () => void) => {\n if (settled) return\n settled = true\n clearTimeout(timeout)\n callback()\n }\n\n worker.once(\"message\", (payload: unknown) => {\n const message = payload as\n | { ok: true; result: ScanWorkspaceResult }\n | { ok: false; error?: string }\n finish(() => {\n if (message?.ok) {\n resolve(message.result)\n return\n }\n reject(new Error(message?.error ?? \"scanner worker failed without an error message\"))\n })\n })\n\n worker.once(\"error\", (error) => {\n finish(() => reject(error))\n })\n\n worker.once(\"exit\", (code) => {\n if (code !== 0) {\n finish(() => reject(new Error(`scanner worker exited with code ${code}`)))\n }\n })\n })\n}\n\nfunction buildExtensionSet(includeExtensions: string[]): Set<string> {\n return new Set(includeExtensions)\n}\n\nfunction collectCandidates(\n rootDir: string,\n ignoreDirectories: Set<string>,\n extensionSet: Set<string>\n): string[] {\n const candidates: string[] = []\n const directories = [rootDir]\n\n while (directories.length > 0) {\n const currentDir = directories.pop()\n if (!currentDir) continue\n\n let entries: fs.Dirent[] = []\n try {\n entries = fs.readdirSync(currentDir, { withFileTypes: true })\n } catch {\n continue\n }\n\n for (const entry of entries) {\n const fullPath = path.join(currentDir, entry.name)\n\n if (entry.isDirectory()) {\n if (!ignoreDirectories.has(entry.name)) directories.push(fullPath)\n continue\n }\n\n if (!entry.isFile()) continue\n if (!extensionSet.has(path.extname(entry.name))) continue\n candidates.push(fullPath)\n }\n }\n\n return candidates\n}\n\nfunction toCacheSize(size: number): number {\n if (!Number.isFinite(size)) return 0\n const normalized = Math.max(0, Math.trunc(size))\n return Math.min(normalized, 0xffffffff)\n}\n\nfunction extractClassesJs(source: string): string[] {\n return extractAllClasses(source)\n}\n\nexport function scanSource(source: string): string[] {\n const nativeBinding = loadNativeParserBinding()\n if (nativeBinding && typeof nativeBinding.parse_classes === \"function\") {\n try {\n const baseClasses = extractClassesJs(source)\n const nativeNormalized = normalizeWithNativeParser(baseClasses)\n return nativeNormalized\n } catch (error) {\n throw error\n }\n }\n\n throw new Error(\n \"Native parser binding is required but not available. Run 'npm run build:rust' to build it.\"\n )\n}\n\nexport function isScannableFile(filePath: string, includeExtensions = DEFAULT_EXTENSIONS): boolean {\n return includeExtensions.includes(path.extname(filePath))\n}\n\nexport function scanFile(filePath: string): ScanFileResult {\n const source = fs.readFileSync(filePath, \"utf8\")\n const hash = hashContentNative(source) ?? undefined\n return {\n file: filePath,\n classes: scanSource(source),\n ...(hash ? { hash } : {}),\n }\n}\n\nexport function scanWorkspace(\n rootDir: string,\n options: ScanWorkspaceOptions = {}\n): ScanWorkspaceResult {\n const includeExtensions = options.includeExtensions ?? DEFAULT_EXTENSIONS\n const extensionSet = buildExtensionSet(includeExtensions)\n const ignoreDirectories = new Set(options.ignoreDirectories ?? DEFAULT_IGNORES)\n const useCache = options.useCache ?? true\n const smartInvalidation = options.smartInvalidation ?? true\n\n const files: ScanFileResult[] = []\n const unique = new Set<string>()\n const candidates = collectCandidates(rootDir, ignoreDirectories, extensionSet)\n\n const processResult = (result: ScanFileResult) => {\n files.push(result)\n for (const cls of result.classes) unique.add(cls)\n }\n\n const { scanWorkspaceNative } = require(\"./native-bridge\")\n\n if (!options.cacheDir && !useCache) {\n const nativeResult = scanWorkspaceNative(rootDir, includeExtensions)\n if (nativeResult) {\n return {\n files: nativeResult.files.map((f: { file: string; classes: string[] }) => ({\n file: f.file,\n classes: f.classes,\n })),\n totalFiles: nativeResult.totalFiles,\n uniqueClasses: nativeResult.uniqueClasses,\n }\n }\n }\n\n if (useCache && isRustCacheAvailable()) {\n let cacheEntries: NativeCacheEntry[] = []\n try {\n cacheEntries = readCache(rootDir, options.cacheDir)\n } catch (error) {\n cacheEntries = []\n log.debug(\n `cache read failed, continuing without persisted cache: ${\n error instanceof Error ? error.message : String(error)\n }`\n )\n }\n\n const cacheMap = new Map(cacheEntries.map((entry) => [entry.file, entry]))\n const nowMs = Date.now()\n const ranked: Array<{\n filePath: string\n stat: fs.Stats\n size: number\n cached?: NativeCacheEntry\n priority: number\n }> = []\n\n for (const filePath of candidates) {\n let stat: fs.Stats\n try {\n stat = fs.statSync(filePath)\n } catch {\n continue\n }\n\n const size = toCacheSize(stat.size)\n const cached = cacheMap.get(filePath)\n const priority = filePriority(\n stat.mtimeMs,\n size,\n cached\n ? {\n mtimeMs: cached.mtimeMs,\n size: cached.size,\n hitCount: cached.hitCount,\n lastSeenMs: 0,\n }\n : undefined,\n nowMs\n )\n\n ranked.push({ filePath, stat, size, cached, priority })\n }\n\n ranked.sort((a, b) => b.priority - a.priority)\n\n const updatedEntries: NativeCacheEntry[] = []\n\n for (const { filePath, stat, size, cached } of ranked) {\n let content: string\n try {\n content = fs.readFileSync(filePath, \"utf8\")\n } catch {\n continue\n }\n\n const hash = hashContentNative(content)\n if (\n cached &&\n cached.hash === hash &&\n cached.mtimeMs === stat.mtimeMs &&\n cached.size === size\n ) {\n log.debug(`cache HIT ${filePath}`)\n processResult({ file: filePath, classes: cached.classes })\n updatedEntries.push({\n file: filePath,\n classes: cached.classes,\n hash: cached.hash,\n mtimeMs: stat.mtimeMs,\n size,\n hitCount: (cached.hitCount ?? 0) + 1,\n })\n continue\n }\n\n log.debug(`cache MISS ${filePath}`)\n const classes = scanSource(content)\n processResult({ file: filePath, classes })\n updatedEntries.push({\n file: filePath,\n classes,\n hash,\n mtimeMs: stat.mtimeMs,\n size,\n hitCount: 1,\n })\n }\n\n try {\n writeCache(rootDir, updatedEntries, options.cacheDir)\n } catch (error) {\n log.debug(`cache write failed: ${error instanceof Error ? error.message : String(error)}`)\n }\n\n return {\n files,\n totalFiles: files.length,\n uniqueClasses: Array.from(unique).sort(),\n }\n }\n\n for (const filePath of candidates) {\n processResult(scanFile(filePath))\n }\n\n return {\n files,\n totalFiles: files.length,\n uniqueClasses: Array.from(unique).sort(),\n }\n}\n\nexport async function scanWorkspaceAsync(\n rootDir: string,\n options: ScanWorkspaceOptions = {}\n): Promise<ScanWorkspaceResult> {\n if (process.env.TWS_DISABLE_SCANNER_WORKER === \"1\") {\n return scanWorkspace(rootDir, options)\n }\n\n try {\n return await scanWorkspaceInWorker(rootDir, options)\n } catch (error) {\n log.debug(\n `worker scan failed, falling back to sync scanner: ${\n error instanceof Error ? error.message : String(error)\n }`\n )\n return scanWorkspace(rootDir, options)\n }\n}\n","import fs from \"node:fs\"\nimport { createDebugLogger } from \"@tailwind-styled/shared\"\n\nexport const DEFAULT_TOP_LIMIT = 10\nexport const DEFAULT_FREQUENT_THRESHOLD = 2\nexport const DEBUG_NAMESPACE = \"tailwind-styled:analyzer\"\n\nexport function formatErrorMessage(error: unknown): string {\n return error instanceof Error ? error.message : String(error)\n}\n\nexport function isRecord(value: unknown): value is Record<string, unknown> {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return false\n const proto = Object.getPrototypeOf(value)\n return proto === Object.prototype || proto === null\n}\n\nexport async function pathExists(filePath: string): Promise<boolean> {\n try {\n await fs.promises.access(filePath, fs.constants.F_OK)\n return true\n } catch {\n return false\n }\n}\n\nexport const debugLog = createDebugLogger(DEBUG_NAMESPACE, \"tailwind-styled/analyzer\")\n\nexport function sanitizeTopLimit(value: number | undefined): number {\n if (!Number.isFinite(value)) return DEFAULT_TOP_LIMIT\n return Math.max(1, Math.trunc(value as number))\n}\n\nexport function sanitizeFrequentThreshold(value: number | undefined): number {\n if (!Number.isFinite(value)) return DEFAULT_FREQUENT_THRESHOLD\n return Math.max(1, Math.trunc(value as number))\n}\n","import {\n loadNativeBinding,\n resolveNativeBindingCandidates,\n resolveRuntimeDir,\n} from \"@tailwind-styled/shared\"\n\nimport type { NativeAnalyzerBinding, NativeCssCompilerBinding } from \"./types\"\nimport { debugLog } from \"./utils\"\n\nlet bindingCache: NativeAnalyzerBinding | null | undefined\nlet bindingCandidateCache: string[] = []\nlet bindingLoadErrorsCache: Array<{ path: string; message: string }> = []\nlet loadedBindingPathCache: string | null = null\n\nfunction isAnalyzerModule(module: unknown): module is NativeAnalyzerBinding {\n const candidate = module as Partial<NativeAnalyzerBinding> | null | undefined\n return typeof candidate?.analyzeClasses === \"function\"\n}\n\nexport function getNativeBinding(): NativeAnalyzerBinding | null {\n if (bindingCache !== undefined) return bindingCache\n if (process.env.TWS_NO_NATIVE === \"1\" || process.env.TWS_NO_RUST === \"1\") {\n bindingCandidateCache = []\n bindingLoadErrorsCache = []\n loadedBindingPathCache = null\n debugLog(\"native binding disabled by TWS_NO_NATIVE/TWS_NO_RUST\")\n bindingCache = null\n return bindingCache\n }\n\n const runtimeDir = resolveRuntimeDir(\n typeof __dirname === \"string\" ? __dirname : undefined,\n import.meta.url\n )\n const candidates = resolveNativeBindingCandidates({\n runtimeDir,\n envVarNames: [\"TWS_NATIVE_PATH\"],\n })\n\n const { binding, loadErrors, loadedPath } = loadNativeBinding<NativeAnalyzerBinding>({\n runtimeDir,\n candidates,\n isValid: isAnalyzerModule,\n invalidExportMessage: \"Module loaded but missing `analyzeClasses` export.\",\n })\n\n bindingCandidateCache = candidates\n bindingLoadErrorsCache = loadErrors\n loadedBindingPathCache = loadedPath\n\n if (binding) {\n debugLog(`native binding loaded from: ${loadedPath}`)\n bindingCache = binding\n return bindingCache\n }\n\n if (bindingLoadErrorsCache.length > 0) {\n debugLog(\n `native binding load failed for ${bindingLoadErrorsCache.length} candidate(s): ${bindingLoadErrorsCache\n .map((entry) => `${entry.path} (${entry.message})`)\n .join(\"; \")}`\n )\n } else {\n debugLog(\"native binding not found in any candidate path\")\n }\n\n bindingCache = null\n return bindingCache\n}\n\nexport function requireNativeBinding(): NativeAnalyzerBinding {\n const binding = getNativeBinding()\n if (binding?.analyzeClasses) return binding\n\n const lines = [\n \"Native analyzer binding not found. Ensure `tailwind_styled_parser.node` is built.\",\n ]\n\n if (process.env.TWS_NO_NATIVE === \"1\" || process.env.TWS_NO_RUST === \"1\") {\n lines.push(\"Native loading is disabled by TWS_NO_NATIVE/TWS_NO_RUST.\")\n } else {\n lines.push(\"Checked paths:\")\n for (const candidate of bindingCandidateCache) lines.push(`- ${candidate}`)\n if (bindingLoadErrorsCache.length > 0) {\n lines.push(\"Load errors:\")\n for (const failure of bindingLoadErrorsCache) {\n lines.push(`- ${failure.path}: ${failure.message}`)\n }\n }\n }\n\n throw new Error(lines.join(\"\\n\"))\n}\n\nexport function requireNativeCssCompiler(): NativeCssCompilerBinding {\n const binding = requireNativeBinding() as NativeCssCompilerBinding\n if (typeof binding.compileCss === \"function\") return binding\n\n const loadedPathText = loadedBindingPathCache ? ` (${loadedBindingPathCache})` : \"\"\n throw new Error(`Native analyzer compileCss binding is missing in v5${loadedPathText}.`)\n}\n","import fs from \"node:fs\"\nimport path from \"node:path\"\nimport { pathToFileURL } from \"node:url\"\n\nimport type {\n AnalyzerSemanticReport,\n ClassConflict,\n ClassUsage,\n LoadedTailwindConfig,\n TailwindConfigCacheEntry,\n} from \"./types\"\nimport { debugLog, formatErrorMessage, isRecord, pathExists } from \"./utils\"\n\nconst SUPPORTED_TAILWIND_CONFIG_EXTENSIONS = new Set([\".ts\", \".js\", \".cjs\", \".mjs\"])\nconst KNOWN_UTILITY_PREFIXES = new Set([\n \"absolute\",\n \"align\",\n \"animate\",\n \"arbitrary\",\n \"aspect\",\n \"backdrop\",\n \"basis\",\n \"bg\",\n \"block\",\n \"border\",\n \"bottom\",\n \"col\",\n \"container\",\n \"contents\",\n \"cursor\",\n \"dark\",\n \"display\",\n \"divide\",\n \"fill\",\n \"fixed\",\n \"flex\",\n \"float\",\n \"font\",\n \"from\",\n \"gap\",\n \"grid\",\n \"grow\",\n \"h\",\n \"hidden\",\n \"inset\",\n \"inline\",\n \"isolate\",\n \"items\",\n \"justify\",\n \"left\",\n \"leading\",\n \"line\",\n \"list\",\n \"m\",\n \"max-h\",\n \"max-w\",\n \"mb\",\n \"min-h\",\n \"min-w\",\n \"ml\",\n \"mr\",\n \"mt\",\n \"mx\",\n \"my\",\n \"object\",\n \"opacity\",\n \"order\",\n \"origin\",\n \"outline\",\n \"overflow\",\n \"overscroll\",\n \"p\",\n \"pb\",\n \"pe\",\n \"perspective\",\n \"place\",\n \"pl\",\n \"pointer\",\n \"position\",\n \"pr\",\n \"ps\",\n \"pt\",\n \"px\",\n \"py\",\n \"relative\",\n \"right\",\n \"ring\",\n \"rotate\",\n \"rounded\",\n \"row\",\n \"scale\",\n \"shadow\",\n \"shrink\",\n \"size\",\n \"skew\",\n \"snap\",\n \"space-x\",\n \"space-y\",\n \"sr\",\n \"start\",\n \"static\",\n \"sticky\",\n \"stroke\",\n \"table\",\n \"text\",\n \"to\",\n \"top\",\n \"touch\",\n \"tracking\",\n \"transform\",\n \"transition\",\n \"translate\",\n \"truncate\",\n \"underline\",\n \"via\",\n \"visible\",\n \"w\",\n \"whitespace\",\n \"z\",\n])\n\nconst tailwindConfigCache = new Map<string, TailwindConfigCacheEntry>()\n\nexport function splitVariantAndBase(className: string): { variantKey: string; base: string } {\n const parts = className.split(\":\")\n if (parts.length <= 1) return { variantKey: \"\", base: className }\n const base = parts.pop() ?? className\n return { variantKey: parts.join(\":\"), base }\n}\n\nfunction isArbitraryUtility(baseClass: string): boolean {\n return baseClass.includes(\"[\") && baseClass.includes(\"]\")\n}\n\nexport function resolveConflictGroup(base: string): string | null {\n if (isArbitraryUtility(base)) return null\n if ([\"block\", \"inline\", \"inline-block\", \"inline-flex\", \"flex\", \"grid\", \"hidden\"].includes(base))\n return \"display\"\n if (base.startsWith(\"bg-\")) return \"bg\"\n if (base.startsWith(\"text-\")) return \"text\"\n if (base.startsWith(\"font-\")) return \"font\"\n if (base.startsWith(\"rounded\")) return \"rounded\"\n if (base.startsWith(\"shadow\")) return \"shadow\"\n if (base.startsWith(\"border-\")) return \"border\"\n if (base.startsWith(\"opacity-\")) return \"opacity\"\n if (base.startsWith(\"w-\") || base.startsWith(\"min-w-\") || base.startsWith(\"max-w-\"))\n return \"width\"\n if (base.startsWith(\"h-\") || base.startsWith(\"min-h-\") || base.startsWith(\"max-h-\"))\n return \"height\"\n if (base.startsWith(\"p-\") || base.startsWith(\"px-\") || base.startsWith(\"py-\")) return \"padding\"\n if (base.startsWith(\"m-\") || base.startsWith(\"mx-\") || base.startsWith(\"my-\")) return \"margin\"\n return null\n}\n\nfunction detectConflicts(usages: ClassUsage[]): {\n conflicts: ClassConflict[]\n conflictedClassNames: Set<string>\n} {\n const buckets = new Map<string, { variantKey: string; group: string; classes: Set<string> }>()\n\n for (const usage of usages) {\n const { variantKey, base } = splitVariantAndBase(usage.name)\n const group = resolveConflictGroup(base)\n if (!group) continue\n\n const key = `${variantKey}::${group}`\n const bucket = buckets.get(key) ?? {\n variantKey,\n group,\n classes: new Set<string>(),\n }\n bucket.classes.add(usage.name)\n buckets.set(key, bucket)\n }\n\n const conflicts: ClassConflict[] = []\n const conflictedClassNames = new Set<string>()\n\n for (const bucket of buckets.values()) {\n if (bucket.classes.size <= 1) continue\n const classes = Array.from(bucket.classes).sort()\n for (const className of classes) conflictedClassNames.add(className)\n\n const variantLabel = bucket.variantKey.length > 0 ? bucket.variantKey : \"base\"\n conflicts.push({\n className: bucket.group,\n variants: bucket.variantKey.length > 0 ? bucket.variantKey.split(\":\") : [],\n classes,\n message: `Multiple ${bucket.group} utilities detected for \"${variantLabel}\".`,\n })\n }\n\n conflicts.sort((left, right) => {\n if (right.classes.length !== left.classes.length)\n return right.classes.length - left.classes.length\n return left.className.localeCompare(right.className)\n })\n\n return { conflicts, conflictedClassNames }\n}\n\nfunction isSupportedTailwindConfigPath(configPath: string): boolean {\n return SUPPORTED_TAILWIND_CONFIG_EXTENSIONS.has(path.extname(configPath).toLowerCase())\n}\n\nasync function resolveTailwindConfigPath(\n root: string,\n explicitPath?: string\n): Promise<string | null> {\n if (explicitPath) {\n const resolved = path.resolve(root, explicitPath)\n if (!(await pathExists(resolved))) return null\n return resolved\n }\n\n const candidates = [\n \"tailwind.config.ts\",\n \"tailwind.config.js\",\n \"tailwind.config.cjs\",\n \"tailwind.config.mjs\",\n ]\n\n for (const candidate of candidates) {\n const fullPath = path.resolve(root, candidate)\n if (await pathExists(fullPath)) return fullPath\n }\n\n return null\n}\n\nfunction collectSafelistFromConfig(config: Record<string, unknown>): string[] {\n const raw = config.safelist\n if (!Array.isArray(raw)) return []\n\n const out = new Set<string>()\n for (const entry of raw) {\n if (typeof entry === \"string\" && entry.length > 0) {\n out.add(entry)\n continue\n }\n if (!entry || typeof entry !== \"object\") continue\n const pattern = (entry as Record<string, unknown>).pattern\n if (typeof pattern === \"string\" && pattern.length > 0) {\n out.add(pattern)\n }\n }\n\n return Array.from(out)\n}\n\nfunction collectCustomUtilities(config: Record<string, unknown>): Set<string> {\n const out = new Set<string>()\n const theme = config.theme\n if (!theme || typeof theme !== \"object\") return out\n\n const extend = (theme as Record<string, unknown>).extend\n if (!extend || typeof extend !== \"object\") return out\n\n for (const [section, value] of Object.entries(extend as Record<string, unknown>)) {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) continue\n for (const key of Object.keys(value as Record<string, unknown>)) {\n out.add(`${section}-${key}`)\n if (section === \"colors\") {\n out.add(`bg-${key}`)\n out.add(`text-${key}`)\n out.add(`border-${key}`)\n } else if (section === \"spacing\") {\n out.add(`p-${key}`)\n out.add(`m-${key}`)\n out.add(`gap-${key}`)\n out.add(`w-${key}`)\n out.add(`h-${key}`)\n } else if (section === \"fontSize\") {\n out.add(`text-${key}`)\n } else if (section === \"borderRadius\") {\n out.add(`rounded-${key}`)\n } else if (section === \"boxShadow\") {\n out.add(`shadow-${key}`)\n }\n }\n }\n\n return out\n}\n\nasync function collectSafelistFromSource(configPath: string): Promise<string[]> {\n const source = await fs.promises.readFile(configPath, \"utf8\")\n const safelistBlock = source.match(/safelist\\s*:\\s*\\[([\\s\\S]*?)\\]/m)?.[1]\n if (!safelistBlock) return []\n\n const out = new Set<string>()\n const tokenRegex = /[\"'`]([^\"'`]+)[\"'`]/g\n let token = tokenRegex.exec(safelistBlock)\n while (token) {\n const value = token[1].trim()\n if (value.length > 0) out.add(value)\n token = tokenRegex.exec(safelistBlock)\n }\n return Array.from(out)\n}\n\nasync function loadTailwindConfig(\n root: string,\n semanticOption?: { tailwindConfigPath?: string }\n): Promise<LoadedTailwindConfig | null> {\n const startMs = Date.now()\n const configPath = await resolveTailwindConfigPath(root, semanticOption?.tailwindConfigPath)\n if (!configPath) return null\n\n if (!isSupportedTailwindConfigPath(configPath)) {\n return {\n path: configPath,\n loaded: false,\n warning: `Unsupported Tailwind config extension at \"${configPath}\". Supported extensions: .ts, .js, .cjs, .mjs.`,\n safelist: new Set<string>(),\n customUtilities: new Set<string>(),\n }\n }\n\n const configStat = await fs.promises.stat(configPath).catch(() => null)\n if (configStat) {\n const cached = tailwindConfigCache.get(configPath)\n if (cached && cached.mtimeMs === configStat.mtimeMs && cached.size === configStat.size) {\n debugLog(\n `tailwind config cache hit: ${configPath} (${cached.config.safelist.size} safelist entries)`\n )\n return cached.config\n }\n }\n\n let config: Record<string, unknown> | null = null\n let warning: string | undefined\n\n try {\n const cacheBustToken = Math.trunc(configStat?.mtimeMs ?? Date.now())\n const imported = await import(`${pathToFileURL(configPath).href}?tws_mtime=${cacheBustToken}`)\n const candidate = (imported.default ?? imported) as unknown\n if (isRecord(candidate)) {\n config = candidate\n } else if (typeof candidate === \"function\") {\n const evaluated = candidate()\n if (isRecord(evaluated)) {\n config = evaluated\n } else {\n warning = \"Tailwind config export function must return an object.\"\n }\n } else {\n warning = \"Tailwind config export must be an object or a function returning an object.\"\n }\n } catch (error) {\n warning = formatErrorMessage(error)\n }\n\n const safelist = new Set<string>()\n const customUtilities = new Set<string>()\n\n if (config) {\n for (const item of collectSafelistFromConfig(config)) safelist.add(item)\n for (const item of collectCustomUtilities(config)) customUtilities.add(item)\n }\n\n if (safelist.size === 0) {\n try {\n for (const item of await collectSafelistFromSource(configPath)) safelist.add(item)\n } catch (error) {\n debugLog(\n `failed to parse safelist from source at \"${configPath}\": ${formatErrorMessage(error)}`\n )\n // keep empty if source parsing fails\n }\n }\n\n const loaded = {\n path: configPath,\n loaded: config !== null,\n warning,\n safelist,\n customUtilities,\n }\n\n if (configStat) {\n tailwindConfigCache.set(configPath, {\n mtimeMs: configStat.mtimeMs,\n size: configStat.size,\n config: loaded,\n })\n }\n\n debugLog(\n `tailwind config loaded from \"${configPath}\" in ${Date.now() - startMs}ms ` +\n `(loaded=${loaded.loaded}, safelist=${loaded.safelist.size}, custom=${loaded.customUtilities.size})`\n )\n\n return loaded\n}\n\nexport function utilityPrefix(baseClass: string): string {\n const normalized = baseClass.startsWith(\"-\") ? baseClass.slice(1) : baseClass\n if (normalized.includes(\"[\") && normalized.includes(\"]\")) return \"arbitrary\"\n if (normalized.startsWith(\"min-w-\")) return \"min-w\"\n if (normalized.startsWith(\"max-w-\")) return \"max-w\"\n if (normalized.startsWith(\"min-h-\")) return \"min-h\"\n if (normalized.startsWith(\"max-h-\")) return \"max-h\"\n if (normalized.startsWith(\"space-x-\")) return \"space-x\"\n if (normalized.startsWith(\"space-y-\")) return \"space-y\"\n if (normalized.startsWith(\"inline-\")) return \"inline\"\n if (normalized.startsWith(\"border-\")) return \"border\"\n if (normalized.startsWith(\"text-\")) return \"text\"\n if (normalized.startsWith(\"bg-\")) return \"bg\"\n if (normalized.startsWith(\"rounded\")) return \"rounded\"\n if (normalized.startsWith(\"shadow\")) return \"shadow\"\n const hyphen = normalized.indexOf(\"-\")\n if (hyphen < 0) return normalized\n return normalized.slice(0, hyphen)\n}\n\nfunction isKnownTailwindClass(\n className: string,\n safelist: Set<string>,\n customUtilities: Set<string>\n): boolean {\n if (safelist.has(className) || customUtilities.has(className)) return true\n const { base } = splitVariantAndBase(className)\n if (customUtilities.has(base)) return true\n const prefix = utilityPrefix(base)\n return KNOWN_UTILITY_PREFIXES.has(prefix)\n}\n\nexport async function buildSemanticReport(\n usages: ClassUsage[],\n root: string,\n semanticOption?: { tailwindConfigPath?: string }\n): Promise<AnalyzerSemanticReport> {\n const loadedConfig = await loadTailwindConfig(root, semanticOption)\n const safelist = loadedConfig?.safelist ?? new Set<string>()\n const customUtilities = loadedConfig?.customUtilities ?? new Set<string>()\n const usageNames = new Set(usages.map((usage) => usage.name))\n\n const unusedClasses: ClassUsage[] = Array.from(safelist)\n .filter((className) => !usageNames.has(className))\n .sort()\n .map((className) => ({ name: className, count: 0, isUnused: true }))\n\n const unknownClasses: ClassUsage[] = usages\n .filter((usage) => !isKnownTailwindClass(usage.name, safelist, customUtilities))\n .map((usage) => ({ ...usage, isUnused: true }))\n\n const { conflicts } = detectConflicts(usages)\n\n return {\n unusedClasses,\n unknownClasses,\n conflicts,\n ...(loadedConfig\n ? {\n tailwindConfig: {\n path: loadedConfig.path,\n loaded: loadedConfig.loaded,\n safelistCount: loadedConfig.safelist.size,\n customUtilityCount: loadedConfig.customUtilities.size,\n ...(loadedConfig.warning ? { warning: loadedConfig.warning } : {}),\n },\n }\n : {}),\n }\n}\n","import path from \"node:path\"\n\nimport type { ScanWorkspaceResult } from \"@tailwind-styled/scanner\"\nimport { scanWorkspaceAsync } from \"@tailwind-styled/scanner\"\n\nimport { requireNativeBinding } from \"./binding\"\nimport { buildSemanticReport } from \"./semantic\"\nimport type {\n AnalyzerOptions,\n AnalyzerReport,\n AnalyzerSemanticReport,\n ClassUsage,\n NativeReport,\n} from \"./types\"\nimport { debugLog, formatErrorMessage, sanitizeFrequentThreshold, sanitizeTopLimit } from \"./utils\"\n\nfunction normalizeScan(\n scan: ScanWorkspaceResult,\n includeClass?: (className: string) => boolean\n): ScanWorkspaceResult {\n if (!includeClass) return scan\n\n const filteredFiles = scan.files.map((file) => ({\n file: file.file,\n classes: file.classes.filter((className) => includeClass(className)),\n }))\n const unique = new Set<string>()\n for (const file of filteredFiles) {\n for (const className of file.classes) unique.add(className)\n }\n\n return {\n files: filteredFiles,\n totalFiles: scan.totalFiles,\n uniqueClasses: Array.from(unique).sort(),\n }\n}\n\nexport function collectClassCounts(scan: ScanWorkspaceResult): Map<string, number> {\n const counts = new Map<string, number>()\n for (const file of scan.files) {\n for (const className of file.classes) {\n counts.set(className, (counts.get(className) ?? 0) + 1)\n }\n }\n return counts\n}\n\nfunction buildClassUsage(counts: Map<string, number>): ClassUsage[] {\n return Array.from(counts.entries())\n .map(([name, count]) => ({ name, count }))\n .sort((left, right) => {\n if (right.count !== left.count) return right.count - left.count\n return left.name.localeCompare(right.name)\n })\n}\n\nexport function buildDistribution(usages: ClassUsage[]): Record<string, number> {\n const distribution = {\n \"1\": 0,\n \"2-3\": 0,\n \"4-7\": 0,\n \"8+\": 0,\n }\n\n for (const usage of usages) {\n if (usage.count === 1) {\n distribution[\"1\"] += 1\n continue\n }\n if (usage.count <= 3) {\n distribution[\"2-3\"] += 1\n continue\n }\n if (usage.count <= 7) {\n distribution[\"4-7\"] += 1\n continue\n }\n distribution[\"8+\"] += 1\n }\n\n return distribution\n}\n\n/**\n * Analyze Tailwind class usage in a workspace and return usage statistics.\n * Set `semantic.tailwindConfigPath` to override Tailwind config lookup.\n * @example\n * const report = await analyzeWorkspace(\"./src\", {\n * classStats: { top: 20, frequentThreshold: 2 },\n * semantic: { tailwindConfigPath: \"tailwind.config.js\" },\n * })\n */\nexport async function analyzeWorkspace(\n root: string,\n options: AnalyzerOptions = {}\n): Promise<AnalyzerReport> {\n const startedAtMs = Date.now()\n const resolvedRoot = path.resolve(root)\n\n const scanStartedAtMs = Date.now()\n let scan: ScanWorkspaceResult\n try {\n scan = await scanWorkspaceAsync(resolvedRoot, options.scanner)\n } catch (error) {\n throw new Error(`Failed to scan workspace at \"${resolvedRoot}\": ${formatErrorMessage(error)}`, {\n cause: error,\n })\n }\n debugLog(\n `scanWorkspaceAsync processed ${scan.totalFiles} files in ${Date.now() - scanStartedAtMs}ms`\n )\n\n const normalizedScan = normalizeScan(scan, options.includeClass)\n const topLimit = sanitizeTopLimit(options.classStats?.top)\n const frequentThreshold = sanitizeFrequentThreshold(options.classStats?.frequentThreshold)\n\n const binding = requireNativeBinding()\n const filesJson = JSON.stringify(\n normalizedScan.files.map((file) => ({ file: file.file, classes: file.classes }))\n )\n\n let nativeReport: NativeReport | null = null\n try {\n nativeReport = binding.analyzeClasses(filesJson, resolvedRoot, topLimit)\n } catch (error) {\n throw new Error(`Native analyzer failed for \"${resolvedRoot}\": ${formatErrorMessage(error)}`, {\n cause: error,\n })\n }\n if (!nativeReport) {\n throw new Error(`Native analyzer returned no report for \"${resolvedRoot}\".`)\n }\n\n const counts = collectClassCounts(normalizedScan)\n let all = buildClassUsage(counts)\n let semanticReport: AnalyzerSemanticReport | undefined\n\n if (options.semantic) {\n const semanticOption = typeof options.semantic === \"object\" ? options.semantic : undefined\n const semanticStartedAtMs = Date.now()\n try {\n semanticReport = await buildSemanticReport(all, resolvedRoot, semanticOption)\n } catch (error) {\n throw new Error(\n `Failed to build semantic report for \"${resolvedRoot}\": ${formatErrorMessage(error)}`,\n { cause: error }\n )\n }\n debugLog(`semantic report built in ${Date.now() - semanticStartedAtMs}ms`)\n\n if (semanticReport.conflicts.length > 0) {\n const conflicted = new Set(semanticReport.conflicts.flatMap((conflict) => conflict.classes))\n all = all.map((usage) =>\n conflicted.has(usage.name) ? { ...usage, isConflict: true } : usage\n )\n }\n }\n\n const top = all.slice(0, topLimit)\n const frequent = all.filter((usage) => usage.count >= frequentThreshold).slice(0, topLimit)\n const unique = all.filter((usage) => usage.count === 1)\n const totalClassOccurrences = all.reduce((sum, usage) => sum + usage.count, 0)\n\n debugLog(\n `analyzeWorkspace completed in ${Date.now() - startedAtMs}ms ` +\n `(files=${normalizedScan.totalFiles}, uniqueClasses=${all.length})`\n )\n\n return {\n root: nativeReport.root || resolvedRoot,\n totalFiles: nativeReport.totalFiles,\n uniqueClassCount: all.length,\n totalClassOccurrences,\n classStats: {\n all,\n top,\n frequent,\n unique,\n distribution: buildDistribution(all),\n },\n safelist: all.map((usage) => usage.name),\n ...(semanticReport ? { semantic: semanticReport } : {}),\n }\n}\n","import { requireNativeCssCompiler } from \"./binding\"\nimport type { ClassToCssOptions, ClassToCssResult, NativeCssCompileResult } from \"./types\"\nimport { formatErrorMessage } from \"./utils\"\n\nexport function normalizeClassInput(input: string | string[]): string[] {\n if (typeof input === \"string\") {\n return input\n .split(/\\s+/)\n .map((item) => item.trim())\n .filter((item) => item.length > 0)\n }\n\n if (!Array.isArray(input)) {\n throw new TypeError(\"classToCss input must be a string or an array of strings.\")\n }\n\n const out: string[] = []\n for (const item of input) {\n if (typeof item !== \"string\") {\n throw new TypeError(\"classToCss input array must contain only strings.\")\n }\n const value = item.trim()\n if (value.length > 0) out.push(value)\n }\n return out\n}\n\nfunction normalizeClassToCssOptions(options: ClassToCssOptions): {\n prefix: string | null\n strict: boolean\n} {\n if (!options || typeof options !== \"object\" || Array.isArray(options)) {\n throw new TypeError(\"classToCss options must be an object.\")\n }\n\n const strict = options.strict ?? false\n if (typeof strict !== \"boolean\") {\n throw new TypeError(\"classToCss options.strict must be a boolean when provided.\")\n }\n\n const prefix = options.prefix ?? null\n if (prefix !== null && typeof prefix !== \"string\") {\n throw new TypeError(\"classToCss options.prefix must be a string or null when provided.\")\n }\n\n return { prefix, strict }\n}\n\nfunction mergeDeclarationMap(target: Map<string, string>, css: string): void {\n const ruleRegex = /\\{([^}]*)\\}/g\n let ruleMatch = ruleRegex.exec(css)\n while (ruleMatch) {\n const body = ruleMatch[1]\n for (const raw of body.split(\";\")) {\n const declaration = raw.trim()\n if (declaration.length === 0) continue\n const colonIndex = declaration.indexOf(\":\")\n if (colonIndex <= 0) continue\n const property = declaration.slice(0, colonIndex).trim()\n const value = declaration.slice(colonIndex + 1).trim()\n if (property.length === 0 || value.length === 0) continue\n if (target.has(property)) target.delete(property)\n target.set(property, value)\n }\n ruleMatch = ruleRegex.exec(css)\n }\n}\n\nfunction declarationMapToString(declarationMap: Map<string, string>): string {\n return Array.from(declarationMap.entries())\n .map(([property, value]) => `${property}: ${value}`)\n .join(\"; \")\n}\n\n/**\n * Convert Tailwind class input into atomic CSS output via native binding.\n * @example\n * const css = await classToCss(\"opacity-0 translate-y-2\", { strict: true })\n */\nexport async function classToCss(\n input: string | string[],\n options: ClassToCssOptions = {}\n): Promise<ClassToCssResult> {\n const inputClasses = normalizeClassInput(input)\n const normalizedOptions = normalizeClassToCssOptions(options)\n if (inputClasses.length === 0) {\n return {\n inputClasses: [],\n css: \"\",\n declarations: \"\",\n resolvedClasses: [],\n unknownClasses: [],\n sizeBytes: 0,\n }\n }\n\n const binding = requireNativeCssCompiler()\n const prefix = normalizedOptions.prefix\n const cssChunks: string[] = []\n const resolvedClasses: string[] = []\n const unknownClasses: string[] = []\n let sizeBytes = 0\n const declarationMap = new Map<string, string>()\n\n for (const className of inputClasses) {\n let compiled: NativeCssCompileResult | null = null\n try {\n compiled = binding.compileCss([className], prefix)\n } catch (error) {\n throw new Error(\n `Native analyzer failed while compiling class \"${className}\": ${formatErrorMessage(error)}`,\n { cause: error }\n )\n }\n\n if (!compiled) {\n throw new Error(`Native analyzer returned no result for class \"${className}\".`)\n }\n\n cssChunks.push(compiled.css)\n resolvedClasses.push(...compiled.resolvedClasses)\n unknownClasses.push(...compiled.unknownClasses)\n sizeBytes += compiled.sizeBytes\n mergeDeclarationMap(declarationMap, compiled.css)\n }\n\n const uniqueUnknown = Array.from(new Set(unknownClasses))\n if (normalizedOptions.strict && uniqueUnknown.length > 0) {\n throw new Error(`Unknown Tailwind classes: ${uniqueUnknown.join(\", \")}`)\n }\n\n return {\n inputClasses,\n css: cssChunks.filter((chunk) => chunk.length > 0).join(\"\\n\"),\n declarations: declarationMapToString(declarationMap),\n resolvedClasses: Array.from(new Set(resolvedClasses)),\n unknownClasses: uniqueUnknown,\n sizeBytes,\n }\n}\n","/**\n * @tailwind-styled/analyzer v5\n *\n * Native-first async analyzer with semantic reporting.\n */\n\nimport { analyzeWorkspace, buildDistribution, collectClassCounts } from \"./analyzeWorkspace\"\nimport { classToCss, normalizeClassInput } from \"./classToCss\"\nimport { resolveConflictGroup, splitVariantAndBase, utilityPrefix } from \"./semantic\"\n\nexport type {\n AnalyzerOptions,\n AnalyzerReport,\n AnalyzerSemanticReport,\n ClassConflict,\n ClassToCssOptions,\n ClassToCssResult,\n ClassUsage,\n} from \"./types\"\n\nexport { analyzeWorkspace, classToCss }\n\nexport const __internal = {\n normalizeClassInput,\n splitVariantAndBase,\n resolveConflictGroup,\n collectClassCounts,\n buildDistribution,\n utilityPrefix,\n}\n","import fs from \"node:fs/promises\"\nimport path from \"node:path\"\n\nexport async function pathExists(filePath: string): Promise<boolean> {\n try {\n await fs.access(filePath)\n return true\n } catch {\n return false\n }\n}\n\nexport async function readFileSafe(filePath: string): Promise<string | null> {\n try {\n return await fs.readFile(filePath, \"utf8\")\n } catch {\n return null\n }\n}\n\nexport async function readJsonSafe<T>(filePath: string): Promise<T | null> {\n const raw = await readFileSafe(filePath)\n if (!raw) return null\n try {\n return JSON.parse(raw) as T\n } catch {\n return null\n }\n}\n\nexport async function writeFileSafe(\n filePath: string,\n content: string,\n options: { dryRun?: boolean; onDryRun?: (message: string) => void } = {}\n): Promise<void> {\n if (options.dryRun) {\n options.onDryRun?.(`write ${filePath}`)\n return\n }\n await fs.mkdir(path.dirname(filePath), { recursive: true })\n await fs.writeFile(filePath, content, \"utf8\")\n}\n\nexport async function ensureFileSafe(\n filePath: string,\n content: string,\n options: { dryRun?: boolean; onDryRun?: (message: string) => void } = {}\n): Promise<\"created\" | \"skipped\"> {\n if (await pathExists(filePath)) return \"skipped\"\n await writeFileSafe(filePath, content, options)\n return \"created\"\n}\n","let p = process || {}, argv = p.argv || [], env = p.env || {}\nlet isColorSupported =\n\t!(!!env.NO_COLOR || argv.includes(\"--no-color\")) &&\n\t(!!env.FORCE_COLOR || argv.includes(\"--color\") || p.platform === \"win32\" || ((p.stdout || {}).isTTY && env.TERM !== \"dumb\") || !!env.CI)\n\nlet formatter = (open, close, replace = open) =>\n\tinput => {\n\t\tlet string = \"\" + input, index = string.indexOf(close, open.length)\n\t\treturn ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close\n\t}\n\nlet replaceClose = (string, close, replace, index) => {\n\tlet result = \"\", cursor = 0\n\tdo {\n\t\tresult += string.substring(cursor, index) + replace\n\t\tcursor = index + close.length\n\t\tindex = string.indexOf(close, cursor)\n\t} while (~index)\n\treturn result + string.substring(cursor)\n}\n\nlet createColors = (enabled = isColorSupported) => {\n\tlet f = enabled ? formatter : () => String\n\treturn {\n\t\tisColorSupported: enabled,\n\t\treset: f(\"\\x1b[0m\", \"\\x1b[0m\"),\n\t\tbold: f(\"\\x1b[1m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[1m\"),\n\t\tdim: f(\"\\x1b[2m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[2m\"),\n\t\titalic: f(\"\\x1b[3m\", \"\\x1b[23m\"),\n\t\tunderline: f(\"\\x1b[4m\", \"\\x1b[24m\"),\n\t\tinverse: f(\"\\x1b[7m\", \"\\x1b[27m\"),\n\t\thidden: f(\"\\x1b[8m\", \"\\x1b[28m\"),\n\t\tstrikethrough: f(\"\\x1b[9m\", \"\\x1b[29m\"),\n\n\t\tblack: f(\"\\x1b[30m\", \"\\x1b[39m\"),\n\t\tred: f(\"\\x1b[31m\", \"\\x1b[39m\"),\n\t\tgreen: f(\"\\x1b[32m\", \"\\x1b[39m\"),\n\t\tyellow: f(\"\\x1b[33m\", \"\\x1b[39m\"),\n\t\tblue: f(\"\\x1b[34m\", \"\\x1b[39m\"),\n\t\tmagenta: f(\"\\x1b[35m\", \"\\x1b[39m\"),\n\t\tcyan: f(\"\\x1b[36m\", \"\\x1b[39m\"),\n\t\twhite: f(\"\\x1b[37m\", \"\\x1b[39m\"),\n\t\tgray: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\n\t\tbgBlack: f(\"\\x1b[40m\", \"\\x1b[49m\"),\n\t\tbgRed: f(\"\\x1b[41m\", \"\\x1b[49m\"),\n\t\tbgGreen: f(\"\\x1b[42m\", \"\\x1b[49m\"),\n\t\tbgYellow: f(\"\\x1b[43m\", \"\\x1b[49m\"),\n\t\tbgBlue: f(\"\\x1b[44m\", \"\\x1b[49m\"),\n\t\tbgMagenta: f(\"\\x1b[45m\", \"\\x1b[49m\"),\n\t\tbgCyan: f(\"\\x1b[46m\", \"\\x1b[49m\"),\n\t\tbgWhite: f(\"\\x1b[47m\", \"\\x1b[49m\"),\n\n\t\tblackBright: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\t\tredBright: f(\"\\x1b[91m\", \"\\x1b[39m\"),\n\t\tgreenBright: f(\"\\x1b[92m\", \"\\x1b[39m\"),\n\t\tyellowBright: f(\"\\x1b[93m\", \"\\x1b[39m\"),\n\t\tblueBright: f(\"\\x1b[94m\", \"\\x1b[39m\"),\n\t\tmagentaBright: f(\"\\x1b[95m\", \"\\x1b[39m\"),\n\t\tcyanBright: f(\"\\x1b[96m\", \"\\x1b[39m\"),\n\t\twhiteBright: f(\"\\x1b[97m\", \"\\x1b[39m\"),\n\n\t\tbgBlackBright: f(\"\\x1b[100m\", \"\\x1b[49m\"),\n\t\tbgRedBright: f(\"\\x1b[101m\", \"\\x1b[49m\"),\n\t\tbgGreenBright: f(\"\\x1b[102m\", \"\\x1b[49m\"),\n\t\tbgYellowBright: f(\"\\x1b[103m\", \"\\x1b[49m\"),\n\t\tbgBlueBright: f(\"\\x1b[104m\", \"\\x1b[49m\"),\n\t\tbgMagentaBright: f(\"\\x1b[105m\", \"\\x1b[49m\"),\n\t\tbgCyanBright: f(\"\\x1b[106m\", \"\\x1b[49m\"),\n\t\tbgWhiteBright: f(\"\\x1b[107m\", \"\\x1b[49m\"),\n\t}\n}\n\nmodule.exports = createColors()\nmodule.exports.createColors = createColors\n","export interface CliJsonSuccess<T = unknown> {\n ok: true\n error: false\n command: string\n generatedAt: string\n data: T\n}\n\nexport function toJsonSuccess<T>(command: string, data: T): string {\n const payload: CliJsonSuccess<T> = {\n ok: true,\n error: false,\n command,\n generatedAt: new Date().toISOString(),\n data,\n }\n return JSON.stringify(payload, null, 2)\n}\n\nexport function writeJsonSuccess<T>(command: string, data: T): void {\n process.stdout.write(`${toJsonSuccess(command, data)}\\n`)\n}\n","import {\n intro as clackIntro,\n isTTY as clackIsTTY,\n note as clackNote,\n outro as clackOutro,\n spinner as clackSpinner,\n} from \"@clack/prompts\"\nimport pc from \"picocolors\"\nimport type { Writable } from \"node:stream\"\n\nimport { errorToJson } from \"./errors\"\nimport { toJsonSuccess } from \"./json\"\n\nexport interface CliOutputOptions {\n json?: boolean\n debug?: boolean\n verbose?: boolean\n stdout?: Writable\n stderr?: Writable\n}\n\nexport interface CliSpinner {\n start: (message?: string) => void\n stop: (message?: string) => void\n error: (message?: string) => void\n cancel: (message?: string) => void\n message: (message?: string) => void\n clear: () => void\n}\n\nexport interface CliOutput {\n readonly json: boolean\n readonly debug: boolean\n readonly verboseEnabled: boolean\n readonly interactive: boolean\n writeText: (message?: string, options?: { stderr?: boolean }) => void\n info: (message: string) => void\n success: (message: string) => void\n warn: (message: string) => void\n error: (message: string) => void\n step: (message: string) => void\n note: (message: string, title?: string) => void\n intro: (message: string) => void\n outro: (message: string) => void\n table: (rows: unknown) => void\n spinner: () => CliSpinner\n verbose: (message: string) => void\n jsonSuccess: <T>(command: string, data: T) => void\n jsonError: (error: unknown, command?: string) => void\n}\n\nfunction writeLine(stream: Writable, message = \"\"): void {\n stream.write(`${message}\\n`)\n}\n\nfunction createNoopSpinner(): CliSpinner {\n return {\n start() {},\n stop() {},\n error() {},\n cancel() {},\n message() {},\n clear() {},\n }\n}\n\nfunction formatLabel(colorize: (value: string) => string, label: string, message: string): string {\n return `${colorize(label)} ${message}`\n}\n\nexport function createCliOutput(options: CliOutputOptions = {}): CliOutput {\n const stdout = options.stdout ?? process.stdout\n const stderr = options.stderr ?? process.stderr\n const json = Boolean(options.json)\n const debug = Boolean(options.debug)\n const verboseEnabled = Boolean(options.verbose)\n const interactive = !json && Boolean(process.stdin.isTTY) && clackIsTTY(stdout)\n\n function writeText(message = \"\", writeOptions: { stderr?: boolean } = {}): void {\n writeLine(writeOptions.stderr || json ? stderr : stdout, message)\n }\n\n function showClackMessage(fn: (message?: string) => void, fallback: string): void {\n if (interactive) {\n fn(fallback)\n return\n }\n writeText(fallback)\n }\n\n return {\n json,\n debug,\n verboseEnabled,\n interactive,\n writeText,\n info(message: string) {\n writeText(formatLabel(pc.cyan, \"info\", message))\n },\n success(message: string) {\n writeText(formatLabel(pc.green, \"ok\", message))\n },\n warn(message: string) {\n writeText(formatLabel(pc.yellow, \"warn\", message), { stderr: true })\n },\n error(message: string) {\n writeText(formatLabel(pc.red, \"error\", message), { stderr: true })\n },\n step(message: string) {\n writeText(formatLabel(pc.blue, \"step\", message))\n },\n note(message: string, title?: string) {\n if (interactive) {\n clackNote(message, title)\n return\n }\n if (title) {\n writeText(`${title}\\n${message}`)\n return\n }\n writeText(message)\n },\n intro(message: string) {\n showClackMessage(clackIntro, message)\n },\n outro(message: string) {\n showClackMessage(clackOutro, message)\n },\n table(rows: unknown) {\n writeText(JSON.stringify(rows, null, 2))\n },\n spinner() {\n if (!interactive) return createNoopSpinner()\n const instance = clackSpinner({ output: stdout })\n return {\n start(message?: string) {\n instance.start(message)\n },\n stop(message?: string) {\n instance.stop(message)\n },\n error(message?: string) {\n instance.error(message)\n },\n cancel(message?: string) {\n instance.cancel(message)\n },\n message(message?: string) {\n instance.message(message)\n },\n clear() {\n instance.clear()\n },\n }\n },\n verbose(message: string) {\n if (!verboseEnabled) return\n writeText(pc.dim(message), { stderr: true })\n },\n jsonSuccess<T>(command: string, data: T) {\n writeLine(stdout, toJsonSuccess(command, data))\n },\n jsonError(error: unknown, command?: string) {\n writeLine(stdout, errorToJson(error, debug, command))\n },\n }\n}\n","import { parseArgs as parseNodeArgs } from \"node:util\"\n\nexport interface ParsedCliInput {\n argv: string[]\n command: string | undefined\n restArgs: string[]\n json: boolean\n debug: boolean\n verbose: boolean\n help: boolean\n helpCommand: string | undefined\n}\n\nexport function readFlag(name: string, argv: string[]): string | null {\n const withValuePrefix = `--${name}=`\n\n for (let index = 0; index < argv.length; index++) {\n const arg = argv[index]\n if (arg.startsWith(withValuePrefix)) {\n return arg.slice(withValuePrefix.length)\n }\n if (arg === `--${name}`) {\n const next = argv[index + 1]\n if (next && !next.startsWith(\"-\")) {\n return next\n }\n }\n }\n\n return null\n}\n\nexport function hasFlag(name: string, argv: string[]): boolean {\n return argv.includes(`--${name}`)\n}\n\nexport function ensureFlag(name: string, argv: string[]): string[] {\n return hasFlag(name, argv) ? argv : [...argv, `--${name}`]\n}\n\nexport function firstPositional(argv: string[]): string | undefined {\n return argv.find((arg) => !arg.startsWith(\"-\"))\n}\n\nexport function parseCliInput(argv: string[]): ParsedCliInput {\n const parsed = parseNodeArgs({\n args: argv,\n allowPositionals: true,\n strict: false,\n options: {\n json: { type: \"boolean\", default: false },\n debug: { type: \"boolean\", default: false },\n verbose: { type: \"boolean\", default: false },\n help: { type: \"boolean\", short: \"h\", default: false },\n },\n })\n\n const commandIndex = argv.findIndex((arg) => !arg.startsWith(\"-\"))\n const command = commandIndex >= 0 ? argv[commandIndex] : undefined\n const restArgs = commandIndex >= 0 ? argv.slice(commandIndex + 1) : []\n const firstPositionalArg = parsed.positionals[0]\n const helpCommand =\n firstPositionalArg === \"help\"\n ? parsed.positionals[1]\n : parsed.values.help\n ? firstPositionalArg\n : undefined\n\n return {\n argv,\n command,\n restArgs,\n json: Boolean(parsed.values.json),\n debug:\n Boolean(parsed.values.debug) || process.env.TWS_DEBUG === \"1\" || process.env.DEBUG === \"1\",\n verbose:\n Boolean(parsed.values.verbose) ||\n process.env.TWS_VERBOSE === \"1\" ||\n process.env.VERBOSE === \"1\",\n help:\n Boolean(parsed.values.help) ||\n firstPositionalArg === \"help\" ||\n command === undefined ||\n command === \"--help\" ||\n command === \"-h\",\n helpCommand,\n }\n}\n","import path from \"node:path\"\nimport { fileURLToPath } from \"node:url\"\n\nimport { CliUsageError } from \"./errors\"\nimport { pathExists } from \"./fs\"\n\nexport function runtimeDirFromImportMeta(importMetaUrl: string): string {\n const filename = fileURLToPath(importMetaUrl)\n return path.dirname(filename)\n}\n\nexport async function resolveMonorepoPath(\n runtimeDir: string,\n relativeToRepoRoot: string\n): Promise<string> {\n const fromRuntime = path.resolve(runtimeDir, \"..\", \"..\", \"..\", relativeToRepoRoot)\n const fromCwd = path.resolve(process.cwd(), relativeToRepoRoot)\n return (await pathExists(fromRuntime)) ? fromRuntime : fromCwd\n}\n\nexport async function ensureScriptPath(\n runtimeDir: string,\n relativeToRepoRoot: string,\n label = relativeToRepoRoot\n): Promise<string> {\n const resolved = await resolveMonorepoPath(runtimeDir, relativeToRepoRoot)\n if (!(await pathExists(resolved))) {\n throw new CliUsageError(`Required script not found: ${label}`)\n }\n return resolved\n}\n\nexport async function firstExistingPath(paths: string[]): Promise<string | null> {\n for (const candidate of paths) {\n if (await pathExists(candidate)) return candidate\n }\n return null\n}\n","import type { Command as CommanderCommand } from \"commander\"\n\nimport { parseCliInput } from \"./args\"\nimport { CliUsageError, errorExitCode } from \"./errors\"\nimport { createCliOutput } from \"./output\"\nimport { runtimeDirFromImportMeta } from \"./paths\"\nimport type { CommandContext } from \"../commands/types\"\n\ninterface CommanderLikeError extends Error {\n code?: string\n exitCode?: number\n}\n\nexport interface CliMainOptions {\n argv?: string[]\n importMetaUrl: string\n commandHint?: string\n buildProgram: (context: CommandContext) => CommanderCommand\n}\n\nfunction isCommanderLikeError(error: unknown): error is CommanderLikeError {\n return error instanceof Error && typeof (error as CommanderLikeError).code === \"string\"\n}\n\nfunction isHelpExit(error: unknown): boolean {\n return isCommanderLikeError(error) && error.code === \"commander.helpDisplayed\"\n}\n\nfunction normalizeCliError(error: unknown): unknown {\n if (!isCommanderLikeError(error)) return error\n if (!error.code?.startsWith(\"commander.\")) return error\n return new CliUsageError(error.message, { cause: error })\n}\n\nfunction findCommandByPath(program: CommanderCommand, pathParts: string[]): CommanderCommand {\n let current = program\n\n for (const part of pathParts) {\n const next = ((current.commands ?? []) as CommanderCommand[]).find((candidate) => {\n const alias = typeof candidate.alias === \"function\" ? candidate.alias() : undefined\n return candidate.name() === part || alias === part\n })\n\n if (!next) {\n throw new CliUsageError(`Unknown help topic: ${pathParts.join(\" \")}`)\n }\n current = next\n }\n\n return current\n}\n\nexport function resolveCommandHelp(program: CommanderCommand, pathParts: string[]): string {\n return findCommandByPath(program, pathParts).helpInformation()\n}\n\nfunction resolveHelpPath(argv: string[]): string[] | null {\n const positional = argv.filter((arg) => !arg.startsWith(\"-\"))\n\n if (argv.length === 0) return []\n if (positional.length === 0) return []\n if (positional[0] === \"help\") return positional.slice(1)\n if (argv.includes(\"--help\") || argv.includes(\"-h\")) return positional\n\n return null\n}\n\nfunction walkCommands(program: CommanderCommand, visit: (command: CommanderCommand) => void): void {\n visit(program)\n for (const command of (program.commands ?? []) as CommanderCommand[]) {\n walkCommands(command, visit)\n }\n}\n\nexport async function runCliMain(options: CliMainOptions): Promise<void> {\n const argv = options.argv ?? process.argv\n const input = parseCliInput(argv.slice(2))\n\n if (input.verbose) process.env.TWS_VERBOSE = \"1\"\n if (input.debug) process.env.TWS_DEBUG = \"1\"\n\n const output = createCliOutput({\n json: input.json,\n debug: input.debug,\n verbose: input.verbose,\n })\n\n const context: CommandContext = {\n runtimeDir: runtimeDirFromImportMeta(options.importMetaUrl),\n json: input.json,\n debug: input.debug,\n verbose: input.verbose,\n output,\n }\n\n const program = options.buildProgram(context)\n walkCommands(program, (command) => {\n if (input.json) {\n command.configureOutput({\n writeOut() {},\n writeErr() {},\n outputError() {},\n })\n }\n command.exitOverride()\n })\n\n try {\n const helpPath = resolveHelpPath(argv.slice(2))\n if (input.json && helpPath) {\n output.jsonSuccess(\"help\", {\n command: helpPath.length > 0 ? helpPath.join(\" \") : null,\n text: resolveCommandHelp(program, helpPath).trim(),\n })\n return\n }\n\n await program.parseAsync(argv)\n } catch (error) {\n if (isHelpExit(error)) return\n\n const normalized = normalizeCliError(error)\n if (input.json) {\n output.jsonError(normalized, options.commandHint ?? input.command)\n } else if (input.debug && normalized instanceof Error && normalized.stack) {\n output.writeText(normalized.stack, { stderr: true })\n } else if (normalized instanceof Error) {\n output.writeText(normalized.message, { stderr: true })\n } else {\n output.writeText(String(normalized), { stderr: true })\n }\n\n process.exitCode = errorExitCode(normalized)\n }\n}\n","#!/usr/bin/env node\n\nimport { isCancel, select, text } from \"@clack/prompts\"\nimport { Command } from \"commander\"\nimport path from \"node:path\"\nimport { pathToFileURL } from \"node:url\"\n\nimport type { CommandContext } from \"./commands/types\"\nimport { CliUsageError } from \"./utils/errors\"\nimport { pathExists, writeFileSafe } from \"./utils/fs\"\nimport { runCliMain } from \"./utils/runtime\"\n\nconst TEMPLATE_NAMES = [\"next-app\", \"vite-react\", \"vite-vue\", \"vite-svelte\", \"simple\"] as const\n\ntype TemplateName = (typeof TEMPLATE_NAMES)[number]\n\ninterface CreateCliOptions {\n name?: string\n template?: string\n yes: boolean\n dryRun: boolean\n}\n\ninterface CreateContext {\n projectDir: string\n name: string\n dryRun: boolean\n writtenFiles: string[]\n}\n\ninterface CreateReport {\n name: string\n template: TemplateName\n projectDir: string\n dryRun: boolean\n filesCreated: number\n files: string[]\n}\n\ntype TemplateHandler = (context: CreateContext) => Promise<void>\n\nconst TEMPLATES: Record<TemplateName, TemplateHandler> = {\n \"next-app\": createNextApp,\n \"vite-react\": createViteReactApp,\n \"vite-vue\": createViteVueApp,\n \"vite-svelte\": createViteSvelteApp,\n simple: createSimpleApp,\n}\n\nfunction isTemplateName(value: string): value is TemplateName {\n return TEMPLATE_NAMES.includes(value as TemplateName)\n}\n\nfunction isInteractiveSession(): boolean {\n return Boolean(process.stdin.isTTY && process.stdout.isTTY)\n}\n\nasync function resolveCreateInput(options: CreateCliOptions): Promise<{\n name: string\n template: TemplateName\n}> {\n const interactive = isInteractiveSession()\n const resolvedName = options.name\n ? options.name\n : options.yes || !interactive\n ? \"my-app\"\n : await text({\n message: \"Project name\",\n defaultValue: \"my-app\",\n placeholder: \"my-app\",\n })\n\n if (isCancel(resolvedName)) {\n throw new CliUsageError(\"Create prompt dibatalkan oleh pengguna\")\n }\n\n const pickedTemplate = options.template\n ? options.template\n : options.yes || !interactive\n ? \"next-app\"\n : await select<TemplateName>({\n message: \"Template\",\n initialValue: \"next-app\",\n options: TEMPLATE_NAMES.map((template) => ({\n value: template,\n label: template,\n })),\n })\n\n if (isCancel(pickedTemplate)) {\n throw new CliUsageError(\"Create prompt dibatalkan oleh pengguna\")\n }\n\n const templateValue = pickedTemplate\n\n if (!isTemplateName(templateValue)) {\n throw new CliUsageError(\n `Unknown template: ${templateValue}. Valid templates: ${TEMPLATE_NAMES.join(\", \")}`\n )\n }\n\n return { name: resolvedName, template: templateValue }\n}\n\nasync function writeProjectFile(\n context: CreateContext,\n relativePath: string,\n content: string\n): Promise<void> {\n const filePath = path.join(context.projectDir, relativePath)\n await writeFileSafe(filePath, content, { dryRun: context.dryRun })\n context.writtenFiles.push(relativePath.replaceAll(\"\\\\\", \"/\"))\n}\n\nasync function createNextApp(context: CreateContext): Promise<void> {\n await writeProjectFile(\n context,\n \"package.json\",\n JSON.stringify(\n {\n name: context.name,\n version: \"0.1.0\",\n private: true,\n scripts: { dev: \"next dev --turbopack\", build: \"next build\", start: \"next start\" },\n dependencies: {\n next: \"^15\",\n react: \"^19\",\n \"react-dom\": \"^19\",\n \"tailwind-styled-v4\": \"^5.0.0\",\n \"@tailwind-styled/next\": \"^5.0.0\",\n },\n devDependencies: {\n tailwindcss: \"^4\",\n typescript: \"^5\",\n \"@types/react\": \"^19\",\n \"@types/node\": \"^20\",\n },\n },\n null,\n 2\n ) + \"\\n\"\n )\n\n await writeProjectFile(\n context,\n \"next.config.ts\",\n `import type { NextConfig } from \"next\"\nimport { withTailwindStyled } from \"@tailwind-styled/next\"\n\nconst nextConfig: NextConfig = {}\nexport default withTailwindStyled()(nextConfig)\n`\n )\n\n await writeProjectFile(context, \"src/app/globals.css\", '@import \"tailwindcss\";\\n')\n await writeProjectFile(\n context,\n \"src/app/layout.tsx\",\n `import \"./globals.css\"\n\nexport default function RootLayout({ children }: { children: React.ReactNode }) {\n return <html lang=\"en\"><body>{children}</body></html>\n}\n`\n )\n\n await writeProjectFile(\n context,\n \"src/app/page.tsx\",\n `import { tw } from \"tailwind-styled-v4\"\n\nconst Page = tw.main\\`min-h-screen grid place-items-center bg-zinc-950 text-white\\`\n\nexport default function HomePage() {\n return <Page>${context.name}</Page>\n}\n`\n )\n}\n\nasync function createViteReactApp(context: CreateContext): Promise<void> {\n await writeProjectFile(\n context,\n \"package.json\",\n JSON.stringify(\n {\n name: context.name,\n private: true,\n type: \"module\",\n scripts: { dev: \"vite\", build: \"vite build\", preview: \"vite preview\" },\n dependencies: { react: \"^19\", \"react-dom\": \"^19\", \"tailwind-styled-v4\": \"^5.0.0\" },\n devDependencies: {\n \"@tailwind-styled/vite\": \"^5.0.0\",\n vite: \"^6\",\n \"@vitejs/plugin-react\": \"^4\",\n tailwindcss: \"^4\",\n typescript: \"^5\",\n },\n },\n null,\n 2\n ) + \"\\n\"\n )\n\n await writeProjectFile(\n context,\n \"vite.config.ts\",\n `import { defineConfig } from \"vite\"\nimport react from \"@vitejs/plugin-react\"\nimport { tailwindStyledPlugin } from \"@tailwind-styled/vite\"\n\nexport default defineConfig({ plugins: [react(), tailwindStyledPlugin()] })\n`\n )\n\n await writeProjectFile(\n context,\n \"src/main.tsx\",\n `console.log(\"${context.name} - vite react template\")\n`\n )\n}\n\nasync function createViteVueApp(context: CreateContext): Promise<void> {\n await writeProjectFile(\n context,\n \"package.json\",\n JSON.stringify(\n {\n name: context.name,\n private: true,\n type: \"module\",\n scripts: { dev: \"vite\", build: \"vite build\", preview: \"vite preview\" },\n dependencies: {\n vue: \"^3.4.0\",\n \"tailwind-merge\": \"^3.5.0\",\n \"@tailwind-styled/vue\": \"^5.0.0\",\n },\n devDependencies: {\n vite: \"^5.0.0\",\n \"@vitejs/plugin-vue\": \"^5.0.0\",\n typescript: \"^5.0.0\",\n tailwindcss: \"^4.0.0\",\n \"@tailwindcss/vite\": \"^4.0.0\",\n },\n },\n null,\n 2\n ) + \"\\n\"\n )\n\n await writeProjectFile(\n context,\n \"vite.config.ts\",\n `import { defineConfig } from \"vite\"\nimport vue from \"@vitejs/plugin-vue\"\nimport tailwindcss from \"@tailwindcss/vite\"\n\nexport default defineConfig({\n plugins: [vue(), tailwindcss()],\n})\n`\n )\n\n await writeProjectFile(\n context,\n \"src/main.ts\",\n `import { createApp } from \"vue\"\nimport { TailwindStyledPlugin } from \"@tailwind-styled/vue\"\nimport App from \"./App.vue\"\nimport \"./style.css\"\n\ncreateApp(App).use(TailwindStyledPlugin).mount(\"#app\")\n`\n )\n\n await writeProjectFile(\n context,\n \"src/App.vue\",\n `<script setup lang=\"ts\">\nimport { ref } from \"vue\"\nimport { tw } from \"@tailwind-styled/vue\"\n\nconst Button = tw(\"button\", {\n base: \"px-4 py-2 rounded-lg font-medium transition-colors focus:outline-none focus:ring-2\",\n variants: {\n intent: {\n primary: \"bg-blue-500 text-white hover:bg-blue-600 focus:ring-blue-500\",\n ghost: \"bg-transparent border border-gray-200 hover:bg-gray-50 focus:ring-gray-200\",\n },\n },\n defaultVariants: { intent: \"primary\" },\n})\n\nconst count = ref(0)\n</script>\n\n<template>\n <div class=\"min-h-screen flex flex-col items-center justify-center gap-6 bg-gray-50\">\n <h1 class=\"text-3xl font-bold text-gray-900\">tailwind-styled + Vue 3</h1>\n <Button @click=\"count++\">Count: {{ count }}</Button>\n <Button intent=\"ghost\" @click=\"count = 0\">Reset</Button>\n </div>\n</template>\n`\n )\n\n await writeProjectFile(\n context,\n \"src/style.css\",\n `@import \"tailwindcss\";\n`\n )\n\n await writeProjectFile(\n context,\n \"index.html\",\n `<!doctype html>\n<html lang=\"en\">\n <head><meta charset=\"UTF-8\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/>\n <title>${context.name}</title></head>\n <body><div id=\"app\"></div><script type=\"module\" src=\"/src/main.ts\"></script></body>\n</html>\n`\n )\n}\n\nasync function createViteSvelteApp(context: CreateContext): Promise<void> {\n await writeProjectFile(\n context,\n \"package.json\",\n JSON.stringify(\n {\n name: context.name,\n private: true,\n type: \"module\",\n scripts: { dev: \"vite\", build: \"vite build\", preview: \"vite preview\" },\n dependencies: { \"tailwind-merge\": \"^3.5.0\", \"@tailwind-styled/svelte\": \"^5.0.0\" },\n devDependencies: {\n svelte: \"^5.0.0\",\n \"@sveltejs/vite-plugin-svelte\": \"^3.0.0\",\n vite: \"^5.0.0\",\n typescript: \"^5.0.0\",\n tailwindcss: \"^4.0.0\",\n \"@tailwindcss/vite\": \"^4.0.0\",\n },\n },\n null,\n 2\n ) + \"\\n\"\n )\n\n await writeProjectFile(\n context,\n \"vite.config.ts\",\n `import { defineConfig } from \"vite\"\nimport { svelte } from \"@sveltejs/vite-plugin-svelte\"\nimport tailwindcss from \"@tailwindcss/vite\"\n\nexport default defineConfig({\n plugins: [svelte(), tailwindcss()],\n})\n`\n )\n\n await writeProjectFile(\n context,\n \"src/main.ts\",\n `import App from \"./App.svelte\"\nimport \"./app.css\"\n\nconst app = new App({ target: document.getElementById(\"app\")! })\nexport default app\n`\n )\n\n await writeProjectFile(\n context,\n \"src/App.svelte\",\n `<script lang=\"ts\">\n import { cv } from \"@tailwind-styled/svelte\"\n\n const button = cv({\n base: \"px-4 py-2 rounded-lg font-medium transition-colors focus:outline-none\",\n variants: {\n intent: {\n primary: \"bg-blue-500 text-white hover:bg-blue-600\",\n ghost: \"bg-transparent border border-gray-200 hover:bg-gray-50\",\n },\n },\n defaultVariants: { intent: \"primary\" },\n })\n\n let count = 0\n</script>\n\n<div class=\"min-h-screen flex flex-col items-center justify-center gap-6 bg-gray-50\">\n <h1 class=\"text-3xl font-bold text-gray-900\">tailwind-styled + Svelte 5</h1>\n <button class={button({ intent: \"primary\" })} on:click={() => count++}>Count: {count}</button>\n <button class={button({ intent: \"ghost\" })} on:click={() => (count = 0)}>Reset</button>\n</div>\n`\n )\n\n await writeProjectFile(\n context,\n \"src/app.css\",\n `@import \"tailwindcss\";\n`\n )\n\n await writeProjectFile(\n context,\n \"index.html\",\n `<!doctype html>\n<html lang=\"en\">\n <head><meta charset=\"UTF-8\"/><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/>\n <title>${context.name}</title></head>\n <body><div id=\"app\"></div><script type=\"module\" src=\"/src/main.ts\"></script></body>\n</html>\n`\n )\n}\n\nasync function createSimpleApp(context: CreateContext): Promise<void> {\n await writeProjectFile(\n context,\n \"package.json\",\n JSON.stringify(\n { name: context.name, private: true, scripts: { dev: \"node index.js\" } },\n null,\n 2\n ) + \"\\n\"\n )\n await writeProjectFile(\n context,\n \"index.js\",\n \"console.log('tailwind-styled simple template ready')\\n\"\n )\n}\n\nasync function createProject(\n options: CreateCliOptions,\n output: CommandContext[\"output\"]\n): Promise<void> {\n const { name, template } = await resolveCreateInput(options)\n const projectDir = path.resolve(process.cwd(), name)\n\n if (await pathExists(projectDir)) {\n throw new CliUsageError(`Directory ${name} already exists.`)\n }\n\n const context: CreateContext = {\n projectDir,\n name,\n dryRun: options.dryRun,\n writtenFiles: [],\n }\n\n await TEMPLATES[template](context)\n\n const report: CreateReport = {\n name,\n template,\n projectDir,\n dryRun: context.dryRun,\n filesCreated: context.writtenFiles.length,\n files: context.writtenFiles,\n }\n\n if (output.json) {\n output.jsonSuccess(\"create\", report)\n return\n }\n\n output.intro(\"tailwind-styled-v4 Project Generator\")\n output.writeText(`Creating ${template} in ./${name}${context.dryRun ? \" (dry-run)\" : \"\"}`)\n output.writeText(`Files ${context.dryRun ? \"planned\" : \"created\"}: ${report.filesCreated}`)\n output.note(`cd ${name}\\nnpm install\\nnpm run dev`, \"Next steps\")\n output.outro(\"Project scaffold ready\")\n}\n\nexport function buildCreateProgram(context: CommandContext): Command {\n const program = new Command(\"create-tailwind-styled\")\n program\n .name(\"create-tailwind-styled\")\n .description(\"CLI scaffolding tool\")\n .option(\"--json\", \"Output strict JSON envelope\")\n .option(\"--debug\", \"Include stack traces for errors\")\n .option(\"--verbose\", \"Verbose runtime logs\")\n .arguments(\"[name]\")\n .option(\"-y, --yes\", \"Skip prompts\")\n .option(\"--template <template>\", \"Template name\")\n .option(\"--dry-run\", \"Preview generated files\")\n .action(async (name: string | undefined, options: Record<string, unknown>) => {\n await createProject(\n {\n name,\n template: typeof options.template === \"string\" ? options.template : undefined,\n yes: Boolean(options.yes),\n dryRun: Boolean(options.dryRun),\n },\n context.output\n )\n })\n\n return program\n}\n\nexport async function main(rawArgs: string[] = process.argv.slice(2)): Promise<void> {\n await runCliMain({\n argv: [process.execPath, \"create-tailwind-styled\", ...rawArgs],\n importMetaUrl: import.meta.url,\n commandHint: \"create\",\n buildProgram: buildCreateProgram,\n })\n}\n\nfunction isDirectExecution(): boolean {\n const scriptPath = process.argv[1]\n if (!scriptPath) return false\n return import.meta.url === pathToFileURL(scriptPath).href\n}\n\nif (isDirectExecution()) {\n await main()\n}\n","import { Command } from \"commander\"\n\nimport { runAnalyzeCli } from \"../analyze\"\nimport { runExtractCli } from \"../extract\"\nimport { runInitCli } from \"../init\"\nimport { runMigrateCli } from \"../migrate\"\nimport { runScanCli } from \"../scan\"\nimport { runSetupCli } from \"../setup\"\nimport { runStatsCli } from \"../stats\"\nimport { CliUsageError } from \"../utils/errors\"\nimport { resolveCommandHelp } from \"../utils/runtime\"\nimport { createCommand } from \"./create\"\nimport { dashboardCommand } from \"./dashboard\"\nimport { deployCommand } from \"./deploy\"\nimport { loadRegistry, resolveScript, validatePackageName } from \"./helpers\"\nimport { miscCommands } from \"./misc\"\nimport { pluginCommand } from \"./plugin\"\nimport { preflightCommand } from \"./preflight\"\nimport { installRegistryCommand, registryCommand } from \"./registry\"\nimport { scriptCommands } from \"./scriptCommands\"\nimport { storybookCommand } from \"./storybook\"\nimport { studioCommand } from \"./studio\"\nimport { syncCommand } from \"./sync\"\nimport type { CommandContext, CommandDefinition } from \"./types\"\n\nfunction contextArgs(args: string[], context: CommandContext): string[] {\n return context.json ? [...args, \"--json\"] : args\n}\n\nfunction leaf(commands: CommandDefinition[], name: string): CommandDefinition {\n const found = commands.find((command) => command.name === name)\n if (!found) {\n throw new Error(`Command definition not found: ${name}`)\n }\n return found\n}\n\nfunction actionCommand(args: unknown[]): Command {\n return args[args.length - 1] as Command\n}\n\nfunction toVariadic(value: string | string[] | undefined): string[] {\n if (!value) return []\n return Array.isArray(value) ? value : [value]\n}\n\nexport function buildMainProgram(context: CommandContext): Command {\n const miscByName = new Map(miscCommands.map((command) => [command.name, command]))\n const scriptByName = new Map(scriptCommands.map((command) => [command.name, command]))\n\n const program = new Command(\"tw\")\n program\n .name(\"tw\")\n .description(\"tailwind-styled-v4 CLI\")\n .option(\"--json\", \"Output strict JSON envelope\")\n .option(\"--debug\", \"Include stack traces for errors\")\n .option(\"--verbose\", \"Verbose runtime logs\")\n\n program\n .command(\"setup\")\n .description(\"Auto-setup project\")\n .option(\"--yes\", \"Skip prompts\")\n .option(\"--next\", \"Force Next.js\")\n .option(\"--vite\", \"Force Vite\")\n .option(\"--rspack\", \"Force Rspack\")\n .option(\"--react\", \"Force React\")\n .option(\"--dry-run\", \"Preview changes\")\n .option(\"--skip-install\", \"Skip package install\")\n .action(async (...actionArgs) => {\n const options = actionCommand(actionArgs).opts()\n const args: string[] = []\n if (options.yes) args.push(\"--yes\")\n if (options.next) args.push(\"--next\")\n if (options.vite) args.push(\"--vite\")\n if (options.rspack) args.push(\"--rspack\")\n if (options.react) args.push(\"--react\")\n if (options.dryRun) args.push(\"--dry-run\")\n if (options.skipInstall) args.push(\"--skip-install\")\n await runSetupCli(contextArgs(args, context))\n }),\n program\n .command(\"create [name]\")\n .description(\"Create project from template\")\n .option(\"-y, --yes\", \"Skip prompts\")\n .option(\"--template <template>\", \"Template name\")\n .option(\"--dry-run\", \"Preview generated files\")\n .action(async (name: string | undefined, ...actionArgs) => {\n const options = actionCommand(actionArgs).opts()\n const args: string[] = []\n if (name) args.push(name)\n if (options.template) args.push(`--template=${options.template}`)\n if (options.yes) args.push(\"--yes\")\n if (options.dryRun) args.push(\"--dry-run\")\n await createCommand.run(contextArgs(args, context), context)\n })\n\n program\n .command(\"init [target]\")\n .description(\"Initialize tailwind-styled config files\")\n .action(async (target?: string) => {\n await runInitCli(contextArgs(target ? [target] : [], context))\n })\n\n program\n .command(\"scan [target]\")\n .description(\"Scan classes in workspace\")\n .action(async (target?: string) => {\n await runScanCli(contextArgs(target ? [target] : [], context))\n })\n\n program\n .command(\"migrate [target]\")\n .description(\"Migrate project patterns to v4\")\n .option(\"--dry-run\", \"Preview changes\")\n .option(\"--wizard\", \"Use interactive wizard\")\n .action(async (target: string | undefined, ...actionArgs) => {\n const options = actionCommand(actionArgs).opts()\n const args: string[] = []\n if (target) args.push(target)\n if (options.dryRun) args.push(\"--dry-run\")\n if (options.wizard) args.push(\"--wizard\")\n await runMigrateCli(contextArgs(args, context))\n })\n\n program\n .command(\"analyze [target]\")\n .description(\"Analyze class usage and patterns\")\n .action(async (target?: string) => {\n await runAnalyzeCli(contextArgs(target ? [target] : [], context))\n })\n\n program\n .command(\"stats [target]\")\n .description(\"Compute estimated CSS bundle stats\")\n .action(async (target?: string) => {\n await runStatsCli(contextArgs(target ? [target] : [], context))\n })\n\n program\n .command(\"extract [target]\")\n .description(\"Suggest extraction candidates\")\n .option(\"--min <count>\", \"Minimum repeat count\")\n .action(async (target: string | undefined, ...actionArgs) => {\n const options = actionCommand(actionArgs).opts()\n const args: string[] = []\n if (target) args.push(target)\n if (options.min) args.push(`--min=${options.min}`)\n await runExtractCli(contextArgs(args, context))\n })\n\n program\n .command(\"preflight\")\n .description(\"Environment preflight checks\")\n .option(\"--fix\", \"Apply simple fixes\")\n .option(\"--allow-fail\", \"Do not set non-zero exit code on failing checks\")\n .action(async (...actionArgs) => {\n const options = actionCommand(actionArgs).opts()\n const args: string[] = []\n if (options.fix) args.push(\"--fix\")\n if (options.allowFail) args.push(\"--allow-fail\")\n await preflightCommand.run(contextArgs(args, context), context)\n })\n\n program\n .command(\"dashboard\")\n .description(\"Start dashboard server\")\n .option(\"--port <port>\", \"Dashboard port\")\n .action(async (...actionArgs) => {\n const options = actionCommand(actionArgs).opts()\n const args: string[] = []\n if (options.port) args.push(`--port=${options.port}`)\n await dashboardCommand.run(args, context)\n })\n\n program\n .command(\"storybook\")\n .description(\"Storybook helpers and variant matrix\")\n .option(\"--variants <json>\", \"Variant matrix JSON\")\n .option(\"--port <port>\", \"Storybook port\")\n .option(\"--no-open\", \"Disable browser open\")\n .action(async (...actionArgs) => {\n const options = actionCommand(actionArgs).opts()\n const args: string[] = []\n if (options.variants) args.push(`--variants=${options.variants}`)\n if (options.port) args.push(`--port=${options.port}`)\n if (options.open === false) args.push(\"--no-open\")\n await storybookCommand.run(contextArgs(args, context), context)\n })\n\n program\n .command(\"studio\")\n .description(\"Open studio mode\")\n .option(\"--project <project>\", \"Project path\")\n .option(\"--port <port>\", \"Studio port\")\n .option(\"--mode <mode>\", \"Studio mode\")\n .action(async (...actionArgs) => {\n const options = actionCommand(actionArgs).opts()\n const args: string[] = []\n if (options.project) args.push(`--project=${options.project}`)\n if (options.port) args.push(`--port=${options.port}`)\n if (options.mode) args.push(`--mode=${options.mode}`)\n await studioCommand.run(args, context)\n })\n\n program\n .command(\"deploy [name]\")\n .description(\"Publish package metadata to registry\")\n .option(\"--version <version>\", \"Package version\")\n .option(\"--tag <tag>\", \"Publish tag\")\n .option(\"--registry <url>\", \"Target registry URL\")\n .option(\"--dry-run\", \"Preview manifest\")\n .action(async (name: string | undefined, ...actionArgs) => {\n const options = actionCommand(actionArgs).opts()\n const args: string[] = []\n if (name) args.push(name)\n if (options.version) args.push(`--version=${options.version}`)\n if (options.tag) args.push(`--tag=${options.tag}`)\n if (options.registry) args.push(`--registry=${options.registry}`)\n if (options.dryRun) args.push(\"--dry-run\")\n await deployCommand.run(contextArgs(args, context), context)\n })\n\n const plugin = program.command(\"plugin\").description(\"Plugin discovery and install\")\n plugin\n .command(\"search [query...]\")\n .description(\"Search plugins\")\n .action(async (query: string[] | undefined) => {\n await pluginCommand.run([\"search\", ...toVariadic(query)], context)\n })\n plugin\n .command(\"list\")\n .description(\"List available plugins\")\n .action(async () => {\n await pluginCommand.run([\"list\"], context)\n })\n plugin\n .command(\"install <name>\")\n .description(\"Install plugin package\")\n .action(async (name: string) => {\n await pluginCommand.run([\"install\", name], context)\n })\n plugin\n .command(\"verify <packageName>\")\n .description(\"Verify plugin package\")\n .action(async (packageName: string) => {\n await pluginCommand.run(contextArgs([\"verify\", packageName], context), context)\n })\n plugin\n .command(\"update-check\")\n .description(\"Check plugin updates\")\n .action(async () => {\n await pluginCommand.run(contextArgs([\"update-check\"], context), context)\n })\n plugin\n .command(\"marketplace [args...]\")\n .description(\"Marketplace helper\")\n .allowUnknownOption(true)\n .action(async (args: string[] | undefined) => {\n await pluginCommand.run(contextArgs([\"marketplace\", ...toVariadic(args)], context), context)\n })\n plugin\n .command(\"publish [args...]\")\n .description(\"Publish plugin to marketplace\")\n .allowUnknownOption(true)\n .action(async (args: string[] | undefined) => {\n await pluginCommand.run(contextArgs([\"publish\", ...toVariadic(args)], context), context)\n })\n\n const registry = program.command(\"registry\").description(\"Registry server utilities\")\n ;[\"serve\", \"list\", \"info\", \"publish\", \"install\", \"versions\"].forEach((subcommand) => {\n registry\n .command(`${subcommand} [args...]`)\n .description(`Registry ${subcommand}`)\n .allowUnknownOption(true)\n .action(async (args: string[] | undefined) => {\n await registryCommand.run(contextArgs([subcommand, ...toVariadic(args)], context), context)\n })\n })\n\n program\n .command(\"install [args...]\")\n .description(\"Registry tarball install helper\")\n .allowUnknownOption(true)\n .action(async (args: string[] | undefined) => {\n await installRegistryCommand.run(contextArgs(toVariadic(args), context), context)\n })\n\n const sync = program.command(\"sync\").description(\"Design token sync commands\")\n ;[\"init\", \"pull\", \"push\", \"diff\"].forEach((subcommand) => {\n sync\n .command(`${subcommand} [args...]`)\n .description(`Sync ${subcommand}`)\n .allowUnknownOption(true)\n .action(async (args: string[] | undefined) => {\n await syncCommand.run(contextArgs([subcommand, ...toVariadic(args)], context), context)\n })\n })\n\n const figma = sync.command(\"figma\").description(\"Figma sync helpers\")\n ;[\"pull\", \"push\", \"diff\", \"modes\"].forEach((subcommand) => {\n figma\n .command(`${subcommand} [args...]`)\n .description(`Figma ${subcommand}`)\n .allowUnknownOption(true)\n .action(async (args: string[] | undefined) => {\n await syncCommand.run(\n contextArgs([\"figma\", subcommand, ...toVariadic(args)], context),\n context\n )\n })\n })\n\n program\n .command(\"test\")\n .description(\"Test shortcut wrapper\")\n .option(\"--watch\", \"Watch mode\")\n .action(async (...actionArgs) => {\n const options = actionCommand(actionArgs).opts()\n const args: string[] = []\n if (options.watch) args.push(\"--watch\")\n await leaf(miscCommands, \"test\").run(args, context)\n })\n\n program\n .command(\"ai <prompt...>\")\n .description(\"AI script shortcut\")\n .action(async (prompt: string[]) => {\n await leaf(miscCommands, \"ai\").run(prompt, context)\n })\n\n program\n .command(\"share [name]\")\n .description(\"Generate share payload template\")\n .action(async (name?: string) => {\n await leaf(miscCommands, \"share\").run(contextArgs(name ? [name] : [], context), context)\n })\n\n program\n .command(\"code\")\n .description(\"VS Code extension helper\")\n .option(\"--docs\", \"Show docs URL\")\n .option(\"--install\", \"Install extension\")\n .action(async (...actionArgs) => {\n const options = actionCommand(actionArgs).opts()\n const args: string[] = []\n if (options.docs) args.push(\"--docs\")\n if (options.install) args.push(\"--install\")\n await leaf(miscCommands, \"code\").run(contextArgs(args, context), context)\n })\n\n program\n .command(\"version\")\n .alias(\"v\")\n .description(\"Show CLI version\")\n .option(\"--check\", \"Check latest npm version\")\n .action(async (...actionArgs) => {\n const options = actionCommand(actionArgs).opts()\n const args: string[] = []\n if (options.check) args.push(\"--check\")\n await leaf(miscCommands, \"version\").run(contextArgs(args, context), context)\n })\n\n program\n .command(\"upgrade\")\n .alias(\"update\")\n .description(\"Check or upgrade CLI version\")\n .option(\"--install\", \"Install latest version globally\")\n .action(async (...actionArgs) => {\n const options = actionCommand(actionArgs).opts()\n const args: string[] = []\n if (options.install) args.push(\"--install\")\n await leaf(miscCommands, \"upgrade\").run(contextArgs(args, context), context)\n })\n\n program\n .command(\"parse <file>\")\n .description(\"Parse file (prototype)\")\n .action(async (file: string) => {\n await scriptByName.get(\"parse\")!.run(contextArgs([file], context), context)\n })\n\n program\n .command(\"transform <file> [out]\")\n .description(\"Transform file (prototype)\")\n .option(\"--output <out>\", \"Output file\")\n .action(async (file: string, out: string | undefined, ...actionArgs) => {\n const options = actionCommand(actionArgs).opts()\n const args: string[] = [file]\n if (out) args.push(out)\n if (options.output) args.push(`--output=${options.output}`)\n await scriptByName.get(\"transform\")!.run(contextArgs(args, context), context)\n })\n\n program\n .command(\"minify <file>\")\n .description(\"Minify file (prototype)\")\n .action(async (file: string) => {\n await scriptByName.get(\"minify\")!.run(contextArgs([file], context), context)\n })\n\n program\n .command(\"shake <cssFile>\")\n .description(\"Shake CSS rules (prototype)\")\n .action(async (cssFile: string) => {\n await scriptByName.get(\"shake\")!.run(contextArgs([cssFile], context), context)\n })\n\n program\n .command(\"lint [dir] [workers]\")\n .description(\"Parallel lint helper (prototype)\")\n .action(async (dir?: string, workers?: string) => {\n const args = [dir ?? \".\", workers ?? \"0\"]\n await scriptByName.get(\"lint\")!.run(contextArgs(args, context), context)\n })\n\n program\n .command(\"format <file>\")\n .description(\"Format helper (prototype)\")\n .option(\"--write\", \"Write file changes\")\n .action(async (file: string, ...actionArgs) => {\n const options = actionCommand(actionArgs).opts()\n const args: string[] = [file]\n if (options.write) args.push(\"--write\")\n await scriptByName.get(\"format\")!.run(contextArgs(args, context), context)\n })\n\n program\n .command(\"lsp [args...]\")\n .description(\"Language server protocol helper\")\n .allowUnknownOption(true)\n .action(async (args: string[] | undefined) => {\n await scriptByName.get(\"lsp\")!.run(contextArgs(toVariadic(args), context), context)\n })\n\n program\n .command(\"benchmark [args...]\")\n .description(\"Write benchmark snapshot\")\n .allowUnknownOption(true)\n .action(async (args: string[] | undefined) => {\n await scriptByName.get(\"benchmark\")!.run(contextArgs(toVariadic(args), context), context)\n })\n\n program\n .command(\"optimize <file> [args...]\")\n .description(\"Compile-time optimize helper\")\n .allowUnknownOption(true)\n .action(async (file: string, args: string[] | undefined) => {\n await scriptByName\n .get(\"optimize\")!\n .run(contextArgs([file, ...toVariadic(args)], context), context)\n })\n\n program\n .command(\"split [root] [outDir]\")\n .description(\"Route-based CSS split helper\")\n .option(\"--output <outDir>\", \"Output directory\")\n .action(async (root: string | undefined, outDir: string | undefined, ...actionArgs) => {\n const options = actionCommand(actionArgs).opts()\n const args: string[] = []\n if (root) args.push(root)\n if (outDir) args.push(outDir)\n if (options.output) args.push(`--output=${options.output}`)\n await scriptByName.get(\"split\")!.run(contextArgs(args, context), context)\n })\n\n program\n .command(\"critical <html> <css>\")\n .description(\"Critical CSS extraction helper\")\n .action(async (html: string, css: string) => {\n await scriptByName.get(\"critical\")!.run(contextArgs([html, css], context), context)\n })\n\n ;[\"cache\", \"cluster\", \"cluster-server\", \"adopt\", \"metrics\", \"audit\"].forEach((name) => {\n const signature =\n name === \"metrics\"\n ? \"metrics [port]\"\n : name === \"adopt\"\n ? \"adopt [feature] [project]\"\n : `${name} [args...]`\n\n program\n .command(signature)\n .description(`${name} helper`)\n .allowUnknownOption(true)\n .action(async (...actionArgs) => {\n const positionalArgs = actionArgs\n .slice(0, -1)\n .flatMap((value) => (Array.isArray(value) ? value : value ? [String(value)] : []))\n await scriptByName.get(name)!.run(contextArgs(positionalArgs, context), context)\n })\n })\n\n program\n .command(\"help [topic...]\")\n .description(\"Show help\")\n .action(async (topic: string[] | undefined) => {\n context.output.writeText(resolveCommandHelp(program, toVariadic(topic)).trim())\n })\n\n return program\n}\n","/**\n * tailwind-styled-v4 CLI analyzer output.\n */\nimport path from \"node:path\"\nimport { parseArgs as parseNodeArgs } from \"node:util\"\n\nimport { CliUsageError } from \"./utils/errors\"\nimport { loadAnalyzerModule } from \"./utils/analyzer\"\nimport { pathExists } from \"./utils/fs\"\nimport { createCliOutput, type CliOutput } from \"./utils/output\"\n\nimport type { AnalyzerReport } from \"@tailwind-styled/analyzer\"\nexport type { AnalyzerReport as AnalysisReport } from \"@tailwind-styled/analyzer\"\n\n// Keep ComponentDef for extract.ts and stats.ts compatibility.\nexport interface ComponentDef {\n name: string\n file: string\n base: string\n variants: Record<string, string[]>\n classes: string[]\n}\n\nexport async function analyzeProject(dir: string): Promise<AnalyzerReport> {\n const analyzer = await loadAnalyzerModule()\n return analyzer.analyzeWorkspace(dir, { classStats: { top: 20, frequentThreshold: 2 } })\n}\n\nexport function printAnalysisReport(report: AnalyzerReport, output: CliOutput): void {\n const bar = \"-\".repeat(55)\n output.writeText(`\\n+${bar}+`)\n output.writeText(`| tailwind-styled-v4 - CSS Analyzer${\" \".repeat(21)}|`)\n output.writeText(`+${bar}+`)\n output.writeText(`| Files scanned: ${String(report.totalFiles).padEnd(34)}|`)\n output.writeText(`| Unique classes: ${String(report.uniqueClassCount).padEnd(34)}|`)\n output.writeText(`| Total occurrences: ${String(report.totalClassOccurrences).padEnd(34)}|`)\n output.writeText(`| Frequent classes: ${String(report.classStats.frequent.length).padEnd(34)}|`)\n output.writeText(`+${bar}+`)\n\n if (report.classStats.frequent.length > 0) {\n output.writeText(\"\\n MOST FREQUENT (top 10)\")\n output.writeText(` ${\"-\".repeat(52)}`)\n for (const usage of report.classStats.frequent.slice(0, 10)) {\n const chart = \"#\".repeat(Math.min(usage.count * 2, 20))\n output.writeText(` ${usage.name.padEnd(32)} ${chart} ${usage.count}`)\n }\n }\n\n if (report.classStats.top.length > 0) {\n output.writeText(\"\\n TOP CLASSES\")\n output.writeText(` ${\"-\".repeat(52)}`)\n for (const usage of report.classStats.top.slice(0, 10)) {\n const chart = \"#\".repeat(Math.min(usage.count * 2, 20))\n output.writeText(` ${usage.name.padEnd(32)} ${chart} ${usage.count}`)\n }\n }\n\n output.writeText(\"\")\n}\n\nexport async function runAnalyzeCli(args: string[]): Promise<void> {\n const parsed = parseNodeArgs({\n args,\n allowPositionals: true,\n strict: false,\n options: {\n json: { type: \"boolean\", default: false },\n },\n })\n const jsonFlag = Boolean(parsed.values.json)\n const output = createCliOutput({\n json: jsonFlag,\n debug: process.env.TWS_DEBUG === \"1\" || process.env.DEBUG === \"1\",\n verbose: process.env.TWS_VERBOSE === \"1\" || process.env.VERBOSE === \"1\",\n })\n const dirArg = parsed.positionals[0] ?? \".\"\n const dir = path.resolve(process.cwd(), dirArg)\n\n if (!(await pathExists(dir))) {\n throw new CliUsageError(`Directory not found: ${dir}`)\n }\n\n const analyzer = await loadAnalyzerModule()\n const spinner = output.spinner()\n spinner.start(`Analyzing ${dir}`)\n const report = await analyzer.analyzeWorkspace(dir, {\n classStats: { top: 20, frequentThreshold: 2 },\n })\n spinner.stop(`Analysis complete: ${report.totalFiles} file(s)`)\n if (jsonFlag) {\n output.jsonSuccess(\"analyze\", report)\n return\n }\n printAnalysisReport(report, output)\n}\n","import type { AnalyzerReport } from \"@tailwind-styled/analyzer\"\n\nimport { CliError } from \"./errors\"\n\nexport interface AnalyzerModule {\n analyzeWorkspace: (\n dir: string,\n options?: {\n classStats?: {\n top?: number\n frequentThreshold?: number\n }\n }\n ) => Promise<AnalyzerReport>\n}\n\nexport async function loadAnalyzerModule(): Promise<AnalyzerModule> {\n try {\n const mod = await import(\"@tailwind-styled/analyzer\")\n if (typeof mod.analyzeWorkspace !== \"function\") {\n throw new Error(\"analyzeWorkspace export not found\")\n }\n return {\n analyzeWorkspace: mod.analyzeWorkspace as AnalyzerModule[\"analyzeWorkspace\"],\n }\n } catch (error) {\n throw new CliError(\n \"Native analyzer binding is unavailable. Reinstall dependencies or run `npm rebuild @tailwind-styled/analyzer`.\",\n {\n code: \"ANALYZER_BINDING_UNAVAILABLE\",\n cause: error,\n }\n )\n }\n}\n","/**\n * tailwind-styled-v4 style extraction suggestions.\n */\nimport path from \"node:path\"\nimport { parseArgs as parseNodeArgs } from \"node:util\"\n\nimport { loadAnalyzerModule } from \"./utils/analyzer\"\nimport { CliUsageError } from \"./utils/errors\"\nimport { pathExists } from \"./utils/fs\"\nimport { createCliOutput } from \"./utils/output\"\n\ninterface ExtractCandidate {\n pattern: string\n count: number\n suggestedName: string\n suggestedTag: string\n suggestedCode: string\n savings: number\n}\n\nfunction guessSuggestedName(pattern: string): string {\n if (pattern.includes(\"flex\") && pattern.includes(\"items-center\")) return \"HStack\"\n if (pattern.includes(\"flex\") && pattern.includes(\"flex-col\")) return \"VStack\"\n if (pattern.includes(\"rounded\") && pattern.includes(\"shadow\")) return \"Card\"\n if (\n pattern.includes(\"btn\") ||\n (pattern.includes(\"px-\") && pattern.includes(\"py-\") && pattern.includes(\"rounded\"))\n ) {\n return \"Button\"\n }\n if (pattern.includes(\"text-sm\") || pattern.includes(\"text-xs\")) return \"Caption\"\n const first = pattern.split(\" \")[0]\n return first.replace(/[^a-zA-Z]/g, \"\").replace(/^(.)/, (char) => char.toUpperCase()) + \"Base\"\n}\n\nfunction guessSuggestedTag(pattern: string): string {\n if (pattern.includes(\"text-\") && !pattern.includes(\"bg-\")) return \"span\"\n if (pattern.includes(\"btn\") || pattern.includes(\"cursor-pointer\")) return \"button\"\n return \"div\"\n}\n\nexport async function runExtractCli(args: string[]): Promise<void> {\n const parsed = parseNodeArgs({\n args,\n allowPositionals: true,\n strict: false,\n options: {\n json: { type: \"boolean\", default: false },\n min: { type: \"string\" },\n },\n })\n const jsonFlag = Boolean(parsed.values.json)\n const output = createCliOutput({\n json: jsonFlag,\n debug: process.env.TWS_DEBUG === \"1\" || process.env.DEBUG === \"1\",\n verbose: process.env.TWS_VERBOSE === \"1\" || process.env.VERBOSE === \"1\",\n })\n const minRaw = typeof parsed.values.min === \"string\" ? parsed.values.min : \"2\"\n const parsedMin = parseInt(minRaw, 10)\n const minCount = Number.isFinite(parsedMin) && parsedMin > 0 ? parsedMin : 2\n const dirArg = parsed.positionals[0] ?? \".\"\n const dir = path.resolve(process.cwd(), dirArg)\n\n if (!(await pathExists(dir))) {\n throw new CliUsageError(`Directory not found: ${dir}`)\n }\n\n const analyzer = await loadAnalyzerModule()\n const spinner = output.spinner()\n spinner.start(`Scanning extraction candidates in ${dir}`)\n const report = await analyzer.analyzeWorkspace(dir, {\n classStats: { top: 50, frequentThreshold: 2 },\n })\n spinner.stop(`Extraction scan complete: ${report.totalFiles} file(s)`)\n\n const candidates: ExtractCandidate[] = report.classStats.frequent\n .filter((usage) => usage.count >= minCount)\n .map((usage) => {\n const suggestedName = guessSuggestedName(usage.name)\n const suggestedTag = guessSuggestedTag(usage.name)\n const suggestedCode = `export const ${suggestedName} = tw.${suggestedTag}\\`${usage.name}\\``\n const savings = (usage.count - 1) * usage.name.length\n return {\n pattern: usage.name,\n count: usage.count,\n suggestedName,\n suggestedTag,\n suggestedCode,\n savings,\n }\n })\n .sort((left, right) => right.savings - left.savings)\n\n if (jsonFlag) {\n output.jsonSuccess(\"extract\", {\n root: dir,\n totalFiles: report.totalFiles,\n candidates,\n })\n return\n }\n\n const bar = \"-\".repeat(55)\n output.writeText(`\\n+${bar}+`)\n output.writeText(`| tailwind-styled-v4 - Extract Suggestions${\" \".repeat(13)}|`)\n output.writeText(`+${bar}+`)\n output.writeText(`| Files scanned: ${String(report.totalFiles).padEnd(34)}|`)\n output.writeText(`| Candidates found: ${String(candidates.length).padEnd(34)}|`)\n output.writeText(`+${bar}+`)\n\n if (candidates.length === 0) {\n output.writeText(\"\\n No extraction candidates found (all classes are unique).\\n\")\n return\n }\n\n for (const candidate of candidates.slice(0, 15)) {\n output.writeText(`\\n PATTERN: \"${candidate.pattern}\"`)\n output.writeText(` Found ${candidate.count} times - ~${candidate.savings} chars saved`)\n output.writeText(` -> ${candidate.suggestedCode}`)\n }\n\n output.writeText(\"\")\n}\n","import path from \"node:path\"\n\nimport { ensureFileSafe } from \"./utils/fs\"\nimport { createCliOutput } from \"./utils/output\"\n\nexport interface InitReport {\n created: string[]\n skipped: string[]\n}\n\nasync function ensureFile(filePath: string, content: string, report: InitReport): Promise<void> {\n const status = await ensureFileSafe(filePath, content)\n if (status === \"created\") {\n report.created.push(filePath)\n } else {\n report.skipped.push(filePath)\n }\n}\n\nexport async function runInitCli(rawArgs: string[]): Promise<void> {\n const asJson = rawArgs.includes(\"--json\")\n const output = createCliOutput({\n json: asJson,\n debug: process.env.TWS_DEBUG === \"1\" || process.env.DEBUG === \"1\",\n verbose: process.env.TWS_VERBOSE === \"1\" || process.env.VERBOSE === \"1\",\n })\n const target = rawArgs.find((arg) => !arg.startsWith(\"-\")) ?? \".\"\n const root = path.resolve(process.cwd(), target)\n const report: InitReport = { created: [], skipped: [] }\n\n await ensureFile(\n path.join(root, \"src\", \"tailwind.css\"),\n '@import \"tailwindcss\";\\n\\n@theme {\\n --color-primary: #3b82f6;\\n --spacing-section: 3rem;\\n}\\n',\n report\n )\n\n await ensureFile(\n path.join(root, \"tailwind-styled.config.json\"),\n JSON.stringify(\n {\n version: 1,\n cssEntry: \"src/tailwind.css\",\n },\n null,\n 2\n ) + \"\\n\",\n report\n )\n\n if (asJson) {\n output.jsonSuccess(\"init\", report)\n return\n }\n\n output.writeText(\"\\nInit complete\")\n output.writeText(`Created: ${report.created.length}`)\n for (const filePath of report.created) {\n output.writeText(` + ${path.relative(root, filePath)}`)\n }\n if (report.skipped.length > 0) {\n output.writeText(`Skipped: ${report.skipped.length}`)\n for (const filePath of report.skipped) {\n output.writeText(` - ${path.relative(root, filePath)} (exists)`)\n }\n }\n}\n","import { confirm, intro, isCancel } from \"@clack/prompts\"\n\nimport { CliUsageError } from \"./utils/errors\"\n\nexport interface MigrateWizardOptions {\n dryRun: boolean\n includeConfig: boolean\n includeClasses: boolean\n includeImports: boolean\n}\n\nexport async function runMigrationWizard(): Promise<MigrateWizardOptions> {\n if (!process.stdin.isTTY || !process.stdout.isTTY) {\n return {\n dryRun: true,\n includeConfig: true,\n includeClasses: true,\n includeImports: true,\n }\n }\n\n intro(\"Tailwind Styled v4 Migration Wizard\")\n\n const dryRun = await confirm({\n message: \"Gunakan dry-run?\",\n initialValue: true,\n })\n const includeConfig = await confirm({\n message: \"Migrasi file config dasar?\",\n initialValue: true,\n })\n const includeClasses = await confirm({\n message: \"Migrasi class lama (flex-grow/shrink)?\",\n initialValue: true,\n })\n const includeImports = await confirm({\n message: \"Migrasi import tailwind-styled-components -> tailwind-styled-v4?\",\n initialValue: true,\n })\n\n if ([dryRun, includeConfig, includeClasses, includeImports].some((value) => isCancel(value))) {\n throw new CliUsageError(\"Migration wizard dibatalkan oleh pengguna\")\n }\n\n return {\n dryRun: dryRun as boolean,\n includeConfig: includeConfig as boolean,\n includeClasses: includeClasses as boolean,\n includeImports: includeImports as boolean,\n }\n}\n","import fs from \"node:fs/promises\"\nimport path from \"node:path\"\n\nimport { runMigrationWizard } from \"./migrateWizard\"\nimport { firstPositional, hasFlag } from \"./utils/args\"\nimport { pathExists, writeFileSafe } from \"./utils/fs\"\nimport { createCliOutput } from \"./utils/output\"\n\ninterface MigrateOptions {\n includeImports: boolean\n includeClasses: boolean\n}\n\nexport interface MigrateReport {\n scannedFiles: number\n updatedFiles: number\n classRenames: number\n importRenames: number\n configWrites: number\n dryRun: boolean\n}\n\nconst SOURCE_EXTENSIONS = new Set([\".js\", \".jsx\", \".ts\", \".tsx\", \".mjs\", \".cjs\"])\nconst IGNORED_DIRS = new Set([\"node_modules\", \".git\", \"dist\", \".next\", \"out\", \".turbo\"])\nconst DEFAULT_TAILWIND_CSS = `@import \"tailwindcss\";\n\n@theme {\n --color-primary: #3b82f6;\n --spacing-section: 3rem;\n}\n`\n\nasync function findSourceFiles(dir: string): Promise<string[]> {\n const out: string[] = []\n\n async function walk(currentDir: string): Promise<void> {\n if (!(await pathExists(currentDir))) return\n const entries = await fs.readdir(currentDir, { withFileTypes: true })\n for (const entry of entries) {\n const fullPath = path.join(currentDir, entry.name)\n if (entry.isDirectory()) {\n if (IGNORED_DIRS.has(entry.name)) continue\n await walk(fullPath)\n continue\n }\n if (SOURCE_EXTENSIONS.has(path.extname(entry.name))) {\n out.push(fullPath)\n }\n }\n }\n\n await walk(dir)\n return out\n}\n\nfunction migrateSource(source: string, options: MigrateOptions) {\n let output = source\n let classRenames = 0\n let importRenames = 0\n\n if (options.includeImports) {\n output = output.replace(/tailwind-styled-components/g, () => {\n importRenames++\n return \"tailwind-styled-v4\"\n })\n }\n\n if (options.includeClasses) {\n output = output.replace(/\\bflex-grow\\b/g, () => {\n classRenames++\n return \"grow\"\n })\n output = output.replace(/\\bflex-shrink\\b/g, () => {\n classRenames++\n return \"shrink\"\n })\n }\n\n return { output, classRenames, importRenames }\n}\n\nasync function migrateConfig(root: string, dryRun: boolean): Promise<number> {\n const cssPath = path.join(root, \"src\", \"tailwind.css\")\n if (await pathExists(cssPath)) return 0\n await writeFileSafe(cssPath, DEFAULT_TAILWIND_CSS, { dryRun })\n return 1\n}\n\nexport async function runMigrateCli(rawArgs: string[]): Promise<void> {\n const asJson = hasFlag(\"json\", rawArgs)\n const output = createCliOutput({\n json: asJson,\n debug: process.env.TWS_DEBUG === \"1\" || process.env.DEBUG === \"1\",\n verbose: process.env.TWS_VERBOSE === \"1\" || process.env.VERBOSE === \"1\",\n })\n const target = firstPositional(rawArgs) ?? \".\"\n const root = path.resolve(process.cwd(), target)\n\n let dryRun = hasFlag(\"dry-run\", rawArgs)\n let includeConfig = true\n let includeClasses = true\n let includeImports = true\n\n if (hasFlag(\"wizard\", rawArgs)) {\n const picked = await runMigrationWizard()\n dryRun = picked.dryRun\n includeConfig = picked.includeConfig\n includeClasses = picked.includeClasses\n includeImports = picked.includeImports\n }\n\n const spinner = output.spinner()\n spinner.start(`Scanning source files in ${root}`)\n const files = await findSourceFiles(root)\n const report: MigrateReport = {\n scannedFiles: files.length,\n updatedFiles: 0,\n classRenames: 0,\n importRenames: 0,\n configWrites: 0,\n dryRun,\n }\n\n if (includeConfig) {\n report.configWrites += await migrateConfig(root, dryRun)\n }\n\n for (const filePath of files) {\n const source = await fs.readFile(filePath, \"utf8\")\n const migrated = migrateSource(source, { includeImports, includeClasses })\n if (migrated.output !== source) {\n report.updatedFiles++\n if (!dryRun) {\n await fs.writeFile(filePath, migrated.output, \"utf8\")\n }\n }\n report.classRenames += migrated.classRenames\n report.importRenames += migrated.importRenames\n }\n spinner.stop(`Migration scan complete: ${report.scannedFiles} file(s)`)\n\n if (asJson) {\n output.jsonSuccess(\"migrate\", report)\n return\n }\n\n output.writeText(\"\\nMigration report\")\n output.writeText(`Scanned files : ${report.scannedFiles}`)\n output.writeText(`Updated files : ${report.updatedFiles}${dryRun ? \" (dry-run)\" : \"\"}`)\n output.writeText(`Class renames : ${report.classRenames}`)\n output.writeText(`Import renames: ${report.importRenames}`)\n output.writeText(`Config writes : ${report.configWrites}${dryRun ? \" (dry-run)\" : \"\"}`)\n}\n","import path from \"node:path\"\n\nimport { scanWorkspaceAsync } from \"@tailwind-styled/scanner\"\nimport { createCliOutput } from \"./utils/output\"\n\nexport interface ScanCliResult {\n root: string\n totalFiles: number\n uniqueClassCount: number\n topClasses: Array<{ name: string; count: number }>\n}\n\nfunction buildTopClasses(\n files: Array<{ classes: string[] }>\n): Array<{ name: string; count: number }> {\n const counts = new Map<string, number>()\n for (const file of files) {\n for (const className of file.classes) {\n counts.set(className, (counts.get(className) ?? 0) + 1)\n }\n }\n\n return Array.from(counts.entries())\n .sort((left, right) => right[1] - left[1])\n .slice(0, 20)\n .map(([name, count]) => ({ name, count }))\n}\n\nexport async function runScanCli(rawArgs: string[]): Promise<void> {\n const target = rawArgs.find((arg) => !arg.startsWith(\"-\")) ?? \".\"\n const asJson = rawArgs.includes(\"--json\")\n const output = createCliOutput({\n json: asJson,\n debug: process.env.TWS_DEBUG === \"1\" || process.env.DEBUG === \"1\",\n verbose: process.env.TWS_VERBOSE === \"1\" || process.env.VERBOSE === \"1\",\n })\n\n const root = path.resolve(process.cwd(), target)\n const spinner = output.spinner()\n spinner.start(`Scanning ${root}`)\n const scanned = await scanWorkspaceAsync(root)\n spinner.stop(`Scan complete: ${scanned.totalFiles} file(s)`)\n\n const result: ScanCliResult = {\n root,\n totalFiles: scanned.totalFiles,\n uniqueClassCount: scanned.uniqueClasses.length,\n topClasses: buildTopClasses(scanned.files),\n }\n\n if (asJson) {\n output.jsonSuccess(\"scan\", result)\n return\n }\n\n output.writeText(`\\nScan root : ${result.root}`)\n output.writeText(`Total files : ${result.totalFiles}`)\n output.writeText(`Unique classes : ${result.uniqueClassCount}`)\n output.writeText(\"\\nTop classes:\")\n for (const item of result.topClasses.slice(0, 10)) {\n output.writeText(` - ${item.name}: ${item.count}`)\n }\n}\n","import { isCancel, select } from \"@clack/prompts\"\n\nimport { CliUsageError } from \"../../utils/errors\"\nimport type { ProjectType, SetupFlags, SetupProjectOption } from \"./workspace\"\n\ninterface PromptOptions {\n output?: NodeJS.WritableStream\n log?: (message: string) => void\n}\n\nexport async function pickProjectTypeInteractive(\n detected: ProjectType | null,\n flags: SetupFlags,\n projectOptions: SetupProjectOption[],\n options: PromptOptions = {}\n): Promise<ProjectType> {\n const log = options.log ?? console.log\n\n if (flags.explicitProjectType) {\n const label =\n projectOptions.find((option) => option.value === flags.explicitProjectType)?.label ??\n flags.explicitProjectType\n log(` Project type dipaksa via flag: ${label}\\n`)\n return flags.explicitProjectType\n }\n\n if (flags.isYes) {\n const selected = detected ?? \"next\"\n const label = projectOptions.find((option) => option.value === selected)?.label ?? selected\n log(` --yes aktif, pilih default: ${label}\\n`)\n return selected\n }\n\n if (!process.stdin.isTTY || !process.stdout.isTTY) {\n const selected = detected ?? \"next\"\n const label = projectOptions.find((option) => option.value === selected)?.label ?? selected\n log(` Non-interactive shell terdeteksi, pilih default: ${label}\\n`)\n return selected\n }\n\n log(\" Pilih project type:\\n\")\n projectOptions.forEach((option, index) => {\n const mark = detected === option.value ? \" <- terdeteksi\" : \"\"\n log(` ${index + 1}. ${option.label}${mark}`)\n })\n log(\"\")\n\n const defaultIdx = detected ? projectOptions.findIndex((option) => option.value === detected) : 0\n const selected = await select<ProjectType>({\n message: \"Project type\",\n initialValue: projectOptions[defaultIdx].value,\n options: projectOptions.map((option) => ({\n value: option.value,\n label: option.label,\n hint: detected === option.value ? \"terdeteksi\" : undefined,\n })),\n output: options.output,\n })\n\n if (isCancel(selected)) {\n throw new CliUsageError(\"Prompt dibatalkan oleh pengguna\")\n }\n\n const selectedLabel =\n projectOptions.find((option) => option.value === selected)?.label ?? selected\n log(`\\n -> ${selectedLabel} dipilih.\\n`)\n return selected\n}\n","export function patchNextConfigImpl(src: string): string | null {\n if (src.includes(\"withTailwindStyled\")) return null\n const hasExport = src.includes(\"export default\")\n const hasCjs = src.includes(\"module.exports\")\n\n if (hasExport) {\n const withImport = `import { withTailwindStyled } from \"@tailwind-styled/next\"\\n${src}`\n return withImport\n .replace(\n /export default\\s+([\\w]+);?\\s*$/m,\n (_match, expr) => `export default withTailwindStyled()(${expr})`\n )\n .replace(\n /export default\\s+(defineConfig\\([\\s\\S]*?\\));?\\s*$/m,\n (_match, expr) => `export default withTailwindStyled()(${expr})`\n )\n .replace(\n /export default\\s+(\\{[\\s\\S]*?\\});?\\s*$/m,\n (_match, expr) => `export default withTailwindStyled()(${expr})`\n )\n }\n\n if (hasCjs) {\n return (\n `const { withTailwindStyled } = require(\"@tailwind-styled/next\")\\n` +\n src.replace(\n /module\\.exports\\s*=\\s*(.+)/s,\n (_match, expr) => `module.exports = withTailwindStyled()(${expr.trim()})`\n )\n )\n }\n\n return null\n}\n\nexport function patchViteConfigImpl(src: string): string | null {\n const hasLegacyImport = src.includes(\"tailwind-styled-v4/vite\")\n let patched = src\n\n if (hasLegacyImport) {\n patched = patched.replace(\n /from\\s+['\"]tailwind-styled-v4\\/vite['\"]/g,\n 'from \"@tailwind-styled/vite\"'\n )\n }\n\n patched = patched.replace(/\\btailwindStyled\\(/g, \"tailwindStyledPlugin(\")\n\n const alreadyConfigured =\n patched.includes(\"@tailwind-styled/vite\") && patched.includes(\"tailwindStyledPlugin(\")\n if (alreadyConfigured) return patched === src ? null : patched\n\n const viteImportMatch = patched.match(/(import .+ from ['\"]vite['\"][^\\n]*\\n)/)\n const reactImportMatch = patched.match(/(import .+ from ['\"]@vitejs\\/plugin-react['\"][^\\n]*\\n)/)\n const insertAfter = (reactImportMatch ?? viteImportMatch)?.[1]\n\n if (!patched.includes(\"@tailwind-styled/vite\") && insertAfter) {\n patched = patched.replace(\n insertAfter,\n `${insertAfter}import { tailwindStyledPlugin } from \"@tailwind-styled/vite\"\\n`\n )\n } else if (!patched.includes(\"@tailwind-styled/vite\")) {\n patched = `import { tailwindStyledPlugin } from \"@tailwind-styled/vite\"\\n${patched}`\n }\n\n if (!patched.includes(\"tailwindStyledPlugin(\")) {\n const withPluginArray = patched.replace(\n /plugins:\\s*\\[([^\\]]*)\\]/s,\n (_match, inner) => `plugins: [${inner.trimEnd()}\\n tailwindStyledPlugin(),\\n ]`\n )\n if (withPluginArray !== patched) {\n patched = withPluginArray\n } else {\n patched = patched.replace(\n /(export default defineConfig\\(\\{[\\s\\S]*?)(\\}\\))/,\n (_match, body, close) => `${body} plugins: [tailwindStyledPlugin()],\\n${close}`\n )\n }\n }\n\n return patched === src ? null : patched\n}\n\nexport function patchRspackConfigImpl(src: string): string | null {\n const hasModernImport = src.includes(\"@tailwind-styled/rspack\")\n const hasLegacyImport = src.includes(\"tailwind-styled-v4/rspack\")\n let patched = src\n\n if (hasLegacyImport) {\n patched = patched.replace(\n /from\\s+['\"]tailwind-styled-v4\\/rspack['\"]/g,\n 'from \"@tailwind-styled/rspack\"'\n )\n }\n\n patched = patched.replace(/\\btailwindStyled\\(/g, \"tailwindStyledRspackPlugin(\")\n\n const alreadyConfigured =\n patched.includes(\"@tailwind-styled/rspack\") && patched.includes(\"tailwindStyledRspackPlugin(\")\n if (alreadyConfigured) return patched === src ? null : patched\n\n if (!patched.includes(\"@tailwind-styled/rspack\") && !hasModernImport) {\n const lines = patched.split(\"\\n\")\n let lastImportIdx = 0\n lines.forEach((line, index) => {\n if (line.trimStart().startsWith(\"import \")) lastImportIdx = index\n })\n lines.splice(\n lastImportIdx + 1,\n 0,\n 'import { tailwindStyledRspackPlugin } from \"@tailwind-styled/rspack\"'\n )\n patched = lines.join(\"\\n\")\n }\n\n if (!patched.includes(\"tailwindStyledRspackPlugin(\")) {\n if (patched.includes(\"plugins:\")) {\n patched = patched.replace(\n /plugins:\\s*\\[([^\\]]*)\\]/s,\n (_match, inner) => `plugins: [${inner.trimEnd()}\\n tailwindStyledRspackPlugin(),\\n ]`\n )\n } else {\n patched = patched.replace(\n /(export default defineConfig\\(\\{[\\s\\S]*?)(\\}\\))/,\n (_match, body, close) => `${body} plugins: [tailwindStyledRspackPlugin()],\\n${close}`\n )\n }\n }\n\n return patched === src ? null : patched\n}\n\nexport function patchTailwindCssImpl(src: string): string | null {\n if (src.includes('@import \"tailwindcss\"') || src.includes(\"@import 'tailwindcss'\")) return null\n return `@import \"tailwindcss\";\\n\\n${src}`\n}\n\nexport function patchTsConfigImpl(src: string): string | null {\n try {\n const json = JSON.parse(src) as { compilerOptions?: Record<string, unknown> }\n const compilerOptions = (json.compilerOptions ?? {}) as Record<string, unknown>\n let changed = false\n\n if (!compilerOptions.paths) {\n compilerOptions.paths = {}\n changed = true\n }\n if (compilerOptions.strict === undefined) {\n compilerOptions.strict = true\n changed = true\n }\n if (\n compilerOptions.moduleResolution !== \"bundler\" &&\n compilerOptions.moduleResolution !== \"node16\"\n ) {\n compilerOptions.moduleResolution = \"bundler\"\n changed = true\n }\n if (!compilerOptions.jsx) {\n compilerOptions.jsx = \"react-jsx\"\n changed = true\n }\n\n if (!changed) return null\n json.compilerOptions = compilerOptions\n return `${JSON.stringify(json, null, 2)}\\n`\n } catch {\n return null\n }\n}\n","import path from \"node:path\"\n\nimport { readFileSafe, readJsonSafe, pathExists, writeFileSafe } from \"../../utils/fs\"\nimport type { CliLogger } from \"../../utils/logger\"\nimport { runCommand } from \"../../utils/process\"\n\nexport type ProjectType = \"next\" | \"vite\" | \"react\" | \"rspack\"\nexport type PackageManager = \"npm\" | \"pnpm\" | \"yarn\" | \"bun\"\n\nexport interface SetupFlags {\n isDryRun: boolean\n skipInstall: boolean\n isYes: boolean\n isJson: boolean\n explicitProjectType: ProjectType | null\n}\n\nexport interface SetupProjectOption {\n label: string\n value: ProjectType\n adapter: string\n}\n\ninterface PackageJsonLike {\n dependencies?: Record<string, string>\n devDependencies?: Record<string, string>\n}\n\nexport function resolveExplicitProjectType(rawFlags: Set<string>): ProjectType | null {\n if (rawFlags.has(\"--next\")) return \"next\"\n if (rawFlags.has(\"--vite\")) return \"vite\"\n if (rawFlags.has(\"--rspack\")) return \"rspack\"\n if (rawFlags.has(\"--react\")) return \"react\"\n return null\n}\n\nexport function configureSetupFlags(rawArgs: string[]): SetupFlags {\n const rawFlags = new Set(rawArgs.filter((arg) => arg.startsWith(\"--\")))\n return {\n isDryRun: rawFlags.has(\"--dry-run\"),\n skipInstall: rawFlags.has(\"--skip-install\"),\n isYes: rawFlags.has(\"--yes\"),\n isJson: rawFlags.has(\"--json\"),\n explicitProjectType: resolveExplicitProjectType(rawFlags),\n }\n}\n\nasync function readPackageJson(cwd: string): Promise<PackageJsonLike | null> {\n return readJsonSafe<PackageJsonLike>(path.join(cwd, \"package.json\"))\n}\n\nexport async function detectPm(cwd: string): Promise<PackageManager> {\n if (await pathExists(path.join(cwd, \"bun.lockb\"))) return \"bun\"\n if (await pathExists(path.join(cwd, \"pnpm-lock.yaml\"))) return \"pnpm\"\n if (await pathExists(path.join(cwd, \"yarn.lock\"))) return \"yarn\"\n return \"npm\"\n}\n\nexport async function detectBundler(cwd: string): Promise<ProjectType | null> {\n const pkg = await readPackageJson(cwd)\n if (!pkg) return null\n\n const deps = { ...(pkg.dependencies ?? {}), ...(pkg.devDependencies ?? {}) }\n if (deps.next) return \"next\"\n if (deps.vite || deps[\"@vitejs/plugin-react\"]) return \"vite\"\n if (deps[\"@rspack/core\"] || deps.rspack) return \"rspack\"\n if (deps.react) return \"react\"\n return null\n}\n\nexport async function alreadyInstalled(cwd: string, pkgName: string): Promise<boolean> {\n const pkg = await readPackageJson(cwd)\n if (!pkg) return false\n const deps = { ...(pkg.dependencies ?? {}), ...(pkg.devDependencies ?? {}) }\n return pkgName in deps\n}\n\nexport async function findExisting(cwd: string, names: string[]): Promise<string | null> {\n for (const name of names) {\n const resolved = path.join(cwd, name)\n if (await pathExists(resolved)) return resolved\n }\n return null\n}\n\nexport async function writeFileWithDryRun(\n cwd: string,\n filePath: string,\n content: string,\n label: string,\n flags: SetupFlags,\n logger: CliLogger\n): Promise<void> {\n if (flags.isDryRun) {\n logger.dry(`create ${label}`)\n return\n }\n await writeFileSafe(filePath, content)\n logger.ok(path.relative(cwd, filePath) || label)\n}\n\nexport async function patchFileWithDryRun(\n filePath: string,\n patcher: (source: string) => string | null,\n label: string,\n flags: SetupFlags,\n logger: CliLogger\n): Promise<boolean> {\n const source = await readFileSafe(filePath)\n if (!source) return false\n\n const patched = patcher(source)\n if (!patched) {\n logger.skip(`${label} sudah terkonfigurasi`)\n return false\n }\n\n if (flags.isDryRun) {\n logger.dry(`patch ${label}`)\n return true\n }\n\n await writeFileSafe(filePath, patched)\n logger.ok(`${label} dipatch`)\n return true\n}\n\nexport async function installPackages(\n cwd: string,\n pm: PackageManager,\n pkgs: string[],\n dev: boolean,\n flags: SetupFlags,\n logger: CliLogger\n): Promise<void> {\n if (flags.skipInstall) {\n logger.skip(\"npm install (--skip-install)\")\n return\n }\n if (flags.isDryRun) {\n logger.dry(`${pm} install ${pkgs.join(\" \")}`)\n return\n }\n\n const flag = dev ? (pm === \"yarn\" || pm === \"bun\" ? \"-D\" : \"--save-dev\") : \"--save\"\n const cmd =\n pm === \"yarn\"\n ? [\"add\", flag, ...pkgs]\n : pm === \"bun\"\n ? [\"add\", flag, ...pkgs]\n : [\"install\", flag, ...pkgs]\n\n logger.info(`$ ${pm} ${cmd.join(\" \")}`)\n try {\n const exitCode = await runCommand(pm, cmd, {\n cwd,\n allowNonZeroExit: true,\n stdio: flags.isJson ? \"pipe\" : \"inherit\",\n })\n if (exitCode !== 0) {\n logger.warn(`install gagal - jalankan manual: ${pm} ${cmd.join(\" \")}`)\n }\n } catch {\n logger.warn(`install gagal - jalankan manual: ${pm} ${cmd.join(\" \")}`)\n }\n}\n","import { spawn } from \"node:child_process\"\n\nimport { CliError } from \"./errors\"\nimport { writeJsonSuccess } from \"./json\"\n\nexport interface RunCommandOptions {\n cwd?: string\n env?: NodeJS.ProcessEnv\n stdio?: \"inherit\" | \"pipe\"\n allowNonZeroExit?: boolean\n verbose?: boolean\n}\n\nexport interface RunCommandCaptureOptions {\n cwd?: string\n env?: NodeJS.ProcessEnv\n allowNonZeroExit?: boolean\n verbose?: boolean\n}\n\nexport interface RunCommandCaptureResult {\n exitCode: number\n stdout: string\n stderr: string\n}\n\nexport type CommandOutputFormat = \"json\" | \"text\" | \"empty\"\n\nexport interface ParsedCommandOutput {\n outputFormat: CommandOutputFormat\n output: unknown | string | null\n}\n\nexport function npmCommandName(): string {\n return process.platform === \"win32\" ? \"npm.cmd\" : \"npm\"\n}\n\nexport function npxCommandName(): string {\n return process.platform === \"win32\" ? \"npx.cmd\" : \"npx\"\n}\n\nexport function codeCommandName(): string {\n return process.platform === \"win32\" ? \"code.cmd\" : \"code\"\n}\n\nfunction shellQuote(value: string): string {\n if (value.length === 0) return '\"\"'\n if (!/[^\\w./:=@-]/.test(value)) return value\n return JSON.stringify(value)\n}\n\nfunction formatCommand(binary: string, args: string[]): string {\n return [binary, ...args].map(shellQuote).join(\" \")\n}\n\nfunction isVerboseEnabled(options: { verbose?: boolean; env?: NodeJS.ProcessEnv }): boolean {\n if (options.verbose) return true\n if (options.env?.TWS_VERBOSE === \"1\") return true\n return process.env.TWS_VERBOSE === \"1\"\n}\n\nfunction writeVerboseLine(binary: string, args: string[]): void {\n console.error(` [verbose] $ ${formatCommand(binary, args)}`)\n}\n\nexport async function runCommand(\n binary: string,\n args: string[],\n options: RunCommandOptions = {}\n): Promise<number> {\n return new Promise<number>((resolve, reject) => {\n if (isVerboseEnabled(options)) {\n writeVerboseLine(binary, args)\n }\n\n const child = spawn(binary, args, {\n stdio: options.stdio ?? \"inherit\",\n cwd: options.cwd ?? process.cwd(),\n env: options.env ?? process.env,\n })\n\n child.on(\"error\", (error) => {\n reject(\n new CliError(`Failed to run command: ${binary} ${args.join(\" \")}`, {\n cause: error,\n })\n )\n })\n\n child.on(\"exit\", (code) => {\n const exitCode = code ?? 0\n if (exitCode !== 0 && !options.allowNonZeroExit) {\n reject(\n new CliError(`Command exited with code ${exitCode}: ${binary} ${args.join(\" \")}`, {\n exitCode,\n code: \"COMMAND_EXIT_NON_ZERO\",\n })\n )\n return\n }\n resolve(exitCode)\n })\n })\n}\n\nfunction parseCommandOutput(stdout: string): ParsedCommandOutput {\n const trimmed = stdout.trim()\n if (!trimmed) {\n return { outputFormat: \"empty\", output: null }\n }\n\n try {\n return {\n outputFormat: \"json\",\n output: JSON.parse(trimmed) as unknown,\n }\n } catch {\n return {\n outputFormat: \"text\",\n output: stdout.trimEnd(),\n }\n }\n}\n\nfunction formatCommandFailureOutput(stdout: string, stderr: string): string {\n const errorText = stderr.trim()\n if (errorText) return errorText\n const outputText = stdout.trim()\n if (outputText) return outputText\n return \"Command failed with no output.\"\n}\n\nexport async function runCommandCapture(\n binary: string,\n args: string[],\n options: RunCommandCaptureOptions = {}\n): Promise<RunCommandCaptureResult> {\n return new Promise<RunCommandCaptureResult>((resolve, reject) => {\n if (isVerboseEnabled(options)) {\n writeVerboseLine(binary, args)\n }\n\n const child = spawn(binary, args, {\n stdio: \"pipe\",\n cwd: options.cwd ?? process.cwd(),\n env: options.env ?? process.env,\n })\n\n let stdout = \"\"\n let stderr = \"\"\n\n child.stdout?.on(\"data\", (chunk: Buffer | string) => {\n stdout += chunk.toString()\n })\n\n child.stderr?.on(\"data\", (chunk: Buffer | string) => {\n stderr += chunk.toString()\n })\n\n child.on(\"error\", (error) => {\n reject(\n new CliError(`Failed to run command: ${binary} ${args.join(\" \")}`, {\n cause: error,\n })\n )\n })\n\n child.on(\"exit\", (code) => {\n const exitCode = code ?? 0\n if (exitCode !== 0 && !options.allowNonZeroExit) {\n reject(\n new CliError(\n `Command exited with code ${exitCode}: ${binary} ${args.join(\" \")}\\n${formatCommandFailureOutput(stdout, stderr)}`,\n {\n exitCode,\n code: \"COMMAND_EXIT_NON_ZERO\",\n }\n )\n )\n return\n }\n\n resolve({\n exitCode,\n stdout,\n stderr,\n })\n })\n })\n}\n\nexport async function runCommandAsJson(\n command: string,\n binary: string,\n args: string[],\n options: RunCommandCaptureOptions = {}\n): Promise<void> {\n const captured = await runCommandCapture(binary, args, options)\n const parsed = parseCommandOutput(captured.stdout)\n\n writeJsonSuccess(command, {\n exitCode: captured.exitCode,\n outputFormat: parsed.outputFormat,\n output: parsed.output,\n stderr: captured.stderr.trim() || null,\n })\n}\n","import pc from \"picocolors\"\n\nimport type { CliOutput } from \"./output\"\n\nexport interface CliLogger {\n ok: (message: string) => void\n skip: (message: string) => void\n warn: (message: string) => void\n info: (message: string) => void\n dry: (message: string) => void\n}\n\nexport type CliLogLevel = \"ok\" | \"skip\" | \"warn\" | \"info\" | \"dry\"\n\nexport interface CliLogEvent {\n level: CliLogLevel\n message: string\n}\n\nexport interface CreateCliLoggerOptions {\n silent?: boolean\n useStderr?: boolean\n onEvent?: (event: CliLogEvent) => void\n output?: CliOutput\n}\n\nexport function createCliLogger(options: CreateCliLoggerOptions = {}): CliLogger {\n function emit(level: CliLogLevel, prefix: string, message: string): void {\n options.onEvent?.({ level, message })\n if (options.silent) return\n\n const colorizedPrefix =\n level === \"ok\"\n ? pc.green(prefix)\n : level === \"warn\"\n ? pc.yellow(prefix)\n : level === \"dry\"\n ? pc.cyan(prefix)\n : level === \"skip\"\n ? pc.dim(prefix)\n : pc.blue(prefix)\n\n if (options.output) {\n options.output.writeText(`${colorizedPrefix}${message}`, {\n stderr: options.useStderr,\n })\n return\n }\n\n const writeLine = options.useStderr ? console.error : console.log\n writeLine(`${prefix}${message}`)\n }\n\n return {\n ok(message: string) {\n emit(\"ok\", \" [ok] \", message)\n },\n skip(message: string) {\n emit(\"skip\", \" [skip] \", message)\n },\n warn(message: string) {\n emit(\"warn\", \" [warn] \", message)\n },\n info(message: string) {\n emit(\"info\", \" \", message)\n },\n dry(message: string) {\n emit(\"dry\", \" [dry-run] \", message)\n },\n }\n}\n","/**\n * tw setup - inject required config into an existing project.\n *\n * Usage:\n * npx tw setup\n * npx tw setup --dry-run\n * npx tw setup --skip-install\n * npx tw setup --yes --next|--vite|--rspack|--react\n */\n\nimport path from \"node:path\"\n\nimport { pickProjectTypeInteractive } from \"./commands/setup/prompt\"\nimport {\n patchNextConfigImpl,\n patchRspackConfigImpl,\n patchTailwindCssImpl,\n patchTsConfigImpl,\n patchViteConfigImpl,\n} from \"./commands/setup/patchers\"\nimport {\n alreadyInstalled,\n configureSetupFlags,\n detectBundler,\n detectPm,\n findExisting,\n installPackages,\n patchFileWithDryRun,\n writeFileWithDryRun,\n type ProjectType,\n type SetupFlags,\n type SetupProjectOption,\n} from \"./commands/setup/workspace\"\nimport { createCliLogger, type CliLogEvent } from \"./utils/logger\"\nimport { createCliOutput } from \"./utils/output\"\n\nconst cwd = process.cwd()\nlet setupFlags: SetupFlags = {\n isDryRun: false,\n skipInstall: false,\n isYes: false,\n isJson: false,\n explicitProjectType: null,\n}\n\ninterface SetupReport {\n generatedAt: string\n cwd: string\n detected: ProjectType | null\n selected: ProjectType\n packageManager: string\n dryRun: boolean\n skipInstall: boolean\n events: CliLogEvent[]\n warnings: number\n}\n\n// Keep these literals in this file for test compatibility:\n// \"--dry-run\", \"--skip-install\", \"--yes\", \"--next\", \"--vite\", \"--rspack\", \"--react\"\nconst PROJECT_OPTIONS: SetupProjectOption[] = [\n { label: \"Next.js\", value: \"next\", adapter: \"@tailwind-styled/next\" },\n { label: \"Vite\", value: \"vite\", adapter: \"@tailwind-styled/vite\" },\n { label: \"Rspack\", value: \"rspack\", adapter: \"@tailwind-styled/rspack\" },\n { label: \"React (other)\", value: \"react\", adapter: \"tailwind-styled-v4\" },\n]\n\nfunction configureFlags(rawArgs: string[]): void {\n setupFlags = configureSetupFlags(rawArgs)\n}\n\nasync function pickProjectType(detected: ProjectType | null): Promise<ProjectType> {\n const log = setupFlags.isJson ? console.error : console.log\n return pickProjectTypeInteractive(detected, setupFlags, PROJECT_OPTIONS, {\n log,\n output: setupFlags.isJson ? process.stderr : process.stdout,\n })\n}\n\n// Keep function names in this file for source-verification tests.\n// Keep \"withTailwindStyled()(\" reference in this file.\nfunction patchNextConfig(src: string): string | null {\n return patchNextConfigImpl(src)\n}\n\n// Keep \"tailwind-styled-v4/vite\" and \"tailwindStyledPlugin\" references in this file.\nfunction patchViteConfig(src: string): string | null {\n return patchViteConfigImpl(src)\n}\n\n// Keep \"tailwind-styled-v4/rspack\" and \"tailwindStyledRspackPlugin\" references in this file.\nfunction patchRspackConfig(src: string): string | null {\n return patchRspackConfigImpl(src)\n}\n\nfunction patchTailwindCss(src: string): string | null {\n return patchTailwindCssImpl(src)\n}\n\nfunction patchTsConfig(src: string): string | null {\n return patchTsConfigImpl(src)\n}\n\nexport async function runSetupCli(rawArgs: string[]): Promise<void> {\n configureFlags(rawArgs)\n const output = createCliOutput({\n json: setupFlags.isJson,\n debug: process.env.TWS_DEBUG === \"1\" || process.env.DEBUG === \"1\",\n verbose: process.env.TWS_VERBOSE === \"1\" || process.env.VERBOSE === \"1\",\n })\n const events: CliLogEvent[] = []\n const logger = createCliLogger({\n useStderr: setupFlags.isJson,\n output,\n onEvent(event) {\n events.push(event)\n },\n })\n\n output.writeText(\"\\n+-----------------------------------------+\")\n output.writeText(\"| tailwind-styled-v4 -> tw setup |\")\n output.writeText(\"+-----------------------------------------+\\n\")\n\n const bootSpinner = output.spinner()\n bootSpinner.start(\"Inspecting workspace\")\n const [detected, pm] = await Promise.all([detectBundler(cwd), detectPm(cwd)])\n bootSpinner.stop(\"Workspace inspected\")\n\n if (detected) {\n const label = PROJECT_OPTIONS.find((option) => option.value === detected)?.label ?? detected\n output.writeText(` Terdeteksi: ${label}`)\n } else {\n output.writeText(\" Project type tidak terdeteksi dari package.json.\")\n }\n output.writeText(\"\")\n\n const bundler = await pickProjectType(detected)\n\n output.writeText(` PM : ${pm}`)\n if (setupFlags.isDryRun) output.writeText(\" Mode : dry-run\")\n output.writeText(\"\")\n\n output.writeText(\">> [1/5] Install packages\")\n const adapterPkg =\n PROJECT_OPTIONS.find((option) => option.value === bundler)?.adapter ?? \"tailwind-styled-v4\"\n const [hasCorePkg, hasMergePkg, hasAdapterPkg] = await Promise.all([\n alreadyInstalled(cwd, \"tailwind-styled-v4\"),\n alreadyInstalled(cwd, \"tailwind-merge\"),\n alreadyInstalled(cwd, adapterPkg),\n ])\n const toInstall = [!hasCorePkg && \"tailwind-styled-v4\", !hasMergePkg && \"tailwind-merge\"].filter(\n Boolean\n ) as string[]\n const toInstallDev = [!hasAdapterPkg && adapterPkg].filter(Boolean) as string[]\n\n if (toInstall.length > 0) await installPackages(cwd, pm, toInstall, false, setupFlags, logger)\n else logger.skip(\"tailwind-styled-v4 + tailwind-merge sudah terpasang\")\n\n if (toInstallDev.length > 0)\n await installPackages(cwd, pm, toInstallDev, true, setupFlags, logger)\n else logger.skip(`${adapterPkg} sudah terpasang`)\n\n output.writeText(\"\\n>> [2/5] Patch bundler config\")\n if (bundler === \"next\") {\n const cfg = await findExisting(cwd, [\"next.config.ts\", \"next.config.mjs\", \"next.config.js\"])\n if (cfg) await patchFileWithDryRun(cfg, patchNextConfig, path.basename(cfg), setupFlags, logger)\n else\n logger.warn(\"next.config.ts tidak ditemukan - jalankan npx create-next-app terlebih dahulu\")\n } else if (bundler === \"vite\") {\n const cfg = await findExisting(cwd, [\"vite.config.ts\", \"vite.config.mjs\", \"vite.config.js\"])\n if (cfg) await patchFileWithDryRun(cfg, patchViteConfig, path.basename(cfg), setupFlags, logger)\n else logger.warn(\"vite.config.ts tidak ditemukan - jalankan npm create vite terlebih dahulu\")\n } else if (bundler === \"rspack\") {\n const cfg = await findExisting(cwd, [\n \"rspack.config.ts\",\n \"rspack.config.mjs\",\n \"rspack.config.js\",\n ])\n if (cfg)\n await patchFileWithDryRun(cfg, patchRspackConfig, path.basename(cfg), setupFlags, logger)\n else logger.warn(\"rspack.config.ts tidak ditemukan - tambahkan manual\")\n } else {\n logger.skip(\"React tanpa bundler - tidak ada bundler config yang di-patch\")\n logger.info(\"Tambahkan tailwind-styled-v4 langsung ke komponen React kamu\")\n }\n\n output.writeText(\"\\n>> [3/5] tailwind-styled.config.json\")\n const twsCfgPath = path.join(cwd, \"tailwind-styled.config.json\")\n if (await findExisting(cwd, [\"tailwind-styled.config.json\"])) {\n logger.skip(\"tailwind-styled.config.json sudah ada\")\n } else {\n await writeFileWithDryRun(\n cwd,\n twsCfgPath,\n `${JSON.stringify(\n {\n version: 1,\n compiler: { engine: \"rust\" },\n css: { entry: \"src/tailwind.css\" },\n },\n null,\n 2\n )}\\n`,\n \"tailwind-styled.config.json\",\n setupFlags,\n logger\n )\n }\n\n output.writeText(\"\\n>> [4/5] Tailwind CSS (@import)\")\n const cssFile = await findExisting(cwd, [\n \"src/app/globals.css\",\n \"src/globals.css\",\n \"src/styles/globals.css\",\n \"src/tailwind.css\",\n \"src/index.css\",\n \"styles/globals.css\",\n ])\n\n if (cssFile) {\n await patchFileWithDryRun(\n cssFile,\n patchTailwindCss,\n path.relative(cwd, cssFile),\n setupFlags,\n logger\n )\n } else {\n await writeFileWithDryRun(\n cwd,\n path.join(cwd, \"src/tailwind.css\"),\n '@import \"tailwindcss\";\\n',\n \"src/tailwind.css\",\n setupFlags,\n logger\n )\n logger.info(\"Import ke entry file: import './tailwind.css'\")\n }\n\n output.writeText(\"\\n>> [5/5] tsconfig.json\")\n const tsCfg = path.join(cwd, \"tsconfig.json\")\n if (await findExisting(cwd, [\"tsconfig.json\"])) {\n await patchFileWithDryRun(tsCfg, patchTsConfig, \"tsconfig.json\", setupFlags, logger)\n } else {\n await writeFileWithDryRun(\n cwd,\n tsCfg,\n `${JSON.stringify(\n {\n compilerOptions: {\n target: \"ES2020\",\n lib: [\"DOM\", \"DOM.Iterable\", \"ESNext\"],\n module: \"ESNext\",\n moduleResolution: \"bundler\",\n strict: true,\n jsx: \"react-jsx\",\n esModuleInterop: true,\n skipLibCheck: true,\n },\n include: [\"src\"],\n exclude: [\"node_modules\", \"dist\"],\n },\n null,\n 2\n )}\\n`,\n \"tsconfig.json\",\n setupFlags,\n logger\n )\n }\n\n output.writeText(\"\\n+-----------------------------------------+\")\n output.writeText(\"| Setup selesai! |\")\n output.writeText(\"+-----------------------------------------+\\n\")\n output.writeText(\" Langkah selanjutnya:\")\n output.writeText(\" npx tw preflight <- verifikasi semua config benar\")\n output.writeText(\" npm run dev <- mulai development\\n\")\n\n if (setupFlags.isJson) {\n const report: SetupReport = {\n generatedAt: new Date().toISOString(),\n cwd,\n detected,\n selected: bundler,\n packageManager: pm,\n dryRun: setupFlags.isDryRun,\n skipInstall: setupFlags.skipInstall,\n events,\n warnings: events.filter((event) => event.level === \"warn\").length,\n }\n output.jsonSuccess(\"setup\", report)\n }\n}\n","/**\n * tailwind-styled-v4 bundle stats visualizer.\n */\nimport path from \"node:path\"\nimport { parseArgs as parseNodeArgs } from \"node:util\"\n\nimport { loadAnalyzerModule } from \"./utils/analyzer\"\nimport { CliUsageError } from \"./utils/errors\"\nimport { pathExists } from \"./utils/fs\"\nimport { createCliOutput } from \"./utils/output\"\n\nfunction estimateClassBytes(className: string): number {\n const base = 20\n if (className.startsWith(\"bg-\")) return base + 28\n if (className.startsWith(\"text-\")) return base + 22\n if (className.startsWith(\"border-\")) return base + 20\n if (className.startsWith(\"p-\") || className.startsWith(\"px-\") || className.startsWith(\"py-\"))\n return base + 18\n if (className.startsWith(\"m-\") || className.startsWith(\"mx-\") || className.startsWith(\"my-\"))\n return base + 18\n if (className.startsWith(\"w-\") || className.startsWith(\"h-\")) return base + 12\n if (className.startsWith(\"flex\")) return base + 16\n if (className.startsWith(\"grid\")) return base + 20\n if (className.startsWith(\"rounded\")) return base + 18\n if (className.startsWith(\"shadow\")) return base + 24\n if (className.startsWith(\"hover:\") || className.startsWith(\"focus:\")) return base + 35\n return base + 15\n}\n\nexport async function runStatsCli(args: string[]): Promise<void> {\n const parsed = parseNodeArgs({\n args,\n allowPositionals: true,\n strict: false,\n options: {\n json: { type: \"boolean\", default: false },\n },\n })\n const jsonFlag = Boolean(parsed.values.json)\n const output = createCliOutput({\n json: jsonFlag,\n debug: process.env.TWS_DEBUG === \"1\" || process.env.DEBUG === \"1\",\n verbose: process.env.TWS_VERBOSE === \"1\" || process.env.VERBOSE === \"1\",\n })\n const dirArg = parsed.positionals[0] ?? \".\"\n const dir = path.resolve(process.cwd(), dirArg)\n\n if (!(await pathExists(dir))) {\n throw new CliUsageError(`Directory not found: ${dir}`)\n }\n\n const analyzer = await loadAnalyzerModule()\n const spinner = output.spinner()\n spinner.start(`Computing stats for ${dir}`)\n const report = await analyzer.analyzeWorkspace(dir, {\n classStats: { top: 30, frequentThreshold: 2 },\n })\n spinner.stop(`Stats complete: ${report.totalFiles} file(s)`)\n const totalBytes = report.safelist.reduce(\n (sum, className) => sum + estimateClassBytes(className),\n 0\n )\n const duplicateBytes = report.classStats.frequent.reduce(\n (sum, usage) => sum + estimateClassBytes(usage.name) * Math.max(usage.count - 1, 0),\n 0\n )\n\n if (jsonFlag) {\n output.jsonSuccess(\"stats\", { ...report, estimatedCssBytes: totalBytes, duplicateBytes })\n return\n }\n\n const bar = \"-\".repeat(55)\n output.writeText(`\\n+${bar}+`)\n output.writeText(`| tailwind-styled-v4 - Bundle Stats${\" \".repeat(20)}|`)\n output.writeText(`+${bar}+`)\n output.writeText(`| Files scanned: ${String(report.totalFiles).padEnd(34)}|`)\n output.writeText(`| Unique classes: ${String(report.uniqueClassCount).padEnd(34)}|`)\n output.writeText(\n `| Est. CSS size: ${String((totalBytes / 1024).toFixed(1) + \" kB\").padEnd(34)}|`\n )\n output.writeText(\n `| Duplicate waste: ${String((duplicateBytes / 1024).toFixed(1) + \" kB\").padEnd(34)}|`\n )\n output.writeText(`+${bar}+`)\n\n if (report.classStats.top.length > 0) {\n output.writeText(\"\\n TOP CLASSES BY CSS WEIGHT\")\n output.writeText(` ${\"-\".repeat(52)}`)\n const sorted = [...report.classStats.top]\n .map((usage) => ({ ...usage, bytes: estimateClassBytes(usage.name) * usage.count }))\n .sort((left, right) => right.bytes - left.bytes)\n\n for (const usage of sorted.slice(0, 10)) {\n output.writeText(\n ` ${usage.name.padEnd(32)} ${String(usage.count + \"x\").padEnd(6)} ~${(\n usage.bytes / 1024\n ).toFixed(1)}kB`\n )\n }\n }\n\n output.writeText(\"\")\n}\n","import type { CommandDefinition } from \"./types\"\nimport { ensureFlag } from \"../utils/args\"\n\nexport const createCommand: CommandDefinition = {\n name: \"create\",\n async run(args, context) {\n const createMod = await import(\"../createApp\")\n const commandArgs = context.json ? ensureFlag(\"json\", args) : args\n await createMod.main(commandArgs)\n },\n}\n","import { parseArgs as parseNodeArgs } from \"node:util\"\n\nimport { CliUsageError } from \"../utils/errors\"\nimport { pathExists } from \"../utils/fs\"\nimport { npmCommandName, runCommand } from \"../utils/process\"\nimport type { CommandDefinition } from \"./types\"\nimport { resolveScript } from \"./helpers\"\n\nexport const dashboardCommand: CommandDefinition = {\n name: \"dashboard\",\n async run(args, context) {\n if (context.json) {\n throw new CliUsageError(\n \"[tw dashboard] --json is not supported for long-running dashboard output\"\n )\n }\n\n const parsed = parseNodeArgs({\n args,\n allowPositionals: true,\n strict: false,\n options: {\n port: { type: \"string\" },\n },\n })\n const port =\n typeof parsed.values.port === \"string\" ? parsed.values.port : (process.env.PORT ?? \"3000\")\n const serverScript = await resolveScript(context, \"packages/dashboard/src/server.mjs\")\n\n if (await pathExists(serverScript)) {\n context.output.writeText(`[tw dashboard] Starting on http://localhost:${port}`)\n await runCommand(process.execPath, [serverScript], {\n env: { ...process.env, PORT: port },\n })\n return\n }\n\n await runCommand(npmCommandName(), [\"run\", \"dev\", \"-w\", \"@tailwind-styled/dashboard\"], {\n env: { ...process.env, PORT: port },\n })\n },\n}\n","import fs from \"node:fs/promises\"\nimport path from \"node:path\"\n\nimport { CliUsageError } from \"../utils/errors\"\nimport { firstExistingPath, resolveMonorepoPath } from \"../utils/paths\"\nimport type { CommandContext } from \"./types\"\n\nexport type PluginInfo = {\n name: string\n description: string\n version: string\n tags: string[]\n official?: boolean\n}\n\nexport function enumerateVariantProps(matrix: Record<string, Array<string | number | boolean>>) {\n const keys = Object.keys(matrix)\n if (keys.length === 0) return [{}]\n const result: Array<Record<string, string | number | boolean>> = []\n\n function walk(index: number, current: Record<string, string | number | boolean>) {\n if (index >= keys.length) {\n result.push({ ...current })\n return\n }\n const key = keys[index]\n const values = matrix[key] ?? []\n for (const value of values) {\n current[key] = value\n walk(index + 1, current)\n }\n }\n\n walk(0, {})\n return result\n}\n\nexport async function resolveScript(\n context: CommandContext,\n relativeToRepoRoot: string\n): Promise<string> {\n const fromRuntime = await resolveMonorepoPath(context.runtimeDir, relativeToRepoRoot)\n const fromCwd = path.resolve(process.cwd(), relativeToRepoRoot)\n const resolved = await firstExistingPath([fromRuntime, fromCwd])\n if (!resolved) {\n throw new CliUsageError(`Required script not found: ${relativeToRepoRoot}`)\n }\n return resolved\n}\n\nexport async function loadRegistry(context: CommandContext): Promise<PluginInfo[]> {\n const runtimeRegistryPath = await resolveMonorepoPath(\n context.runtimeDir,\n \"packages/plugin-registry/registry.json\"\n )\n const candidates: string[] = [\n runtimeRegistryPath,\n path.resolve(process.cwd(), \"packages/plugin-registry/registry.json\"),\n ]\n\n const registryPath = await firstExistingPath(candidates)\n if (!registryPath) {\n throw new CliUsageError(\"Plugin registry file not found.\")\n }\n\n const raw = await fs.readFile(registryPath, \"utf8\")\n const data = JSON.parse(raw) as { official: PluginInfo[]; community: PluginInfo[] }\n return [\n ...data.official.map((item) => ({ ...item, official: true })),\n ...data.community.map((item) => ({ ...item, official: false })),\n ]\n}\n\nexport function validatePackageName(value: string): boolean {\n return /^(?:@[a-z0-9._-]+\\/)?[a-z0-9][a-z0-9._-]*$/i.test(value)\n}\n","import fsp from \"node:fs/promises\"\nimport path from \"node:path\"\nimport { parseArgs as parseNodeArgs } from \"node:util\"\n\nimport { CliError, CliUsageError, errorMessage } from \"../utils/errors\"\nimport { pathExists, readJsonSafe } from \"../utils/fs\"\nimport { writeJsonSuccess } from \"../utils/json\"\nimport type { CommandDefinition } from \"./types\"\n\ninterface DeployManifest {\n name: string\n version: string\n tag: string\n description: string\n keywords: string[]\n publishedAt: string\n source: string\n registry: string\n}\n\ninterface DeployResponse {\n status: number | undefined\n body: unknown\n}\n\nasync function postJson(\n url: URL,\n body: string,\n token: string | undefined\n): Promise<DeployResponse> {\n const { default: https } = await import(\"node:https\")\n const { default: http } = await import(\"node:http\")\n\n return new Promise<DeployResponse>((resolve, reject) => {\n const client = url.protocol === \"https:\" ? https : http\n const req = client.request(\n url,\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n \"content-length\": Buffer.byteLength(body),\n ...(token ? { authorization: `Bearer ${token}` } : {}),\n },\n },\n (res) => {\n let raw = \"\"\n res.on(\"data\", (chunk: Buffer) => {\n raw += chunk.toString(\"utf8\")\n })\n res.on(\"end\", () => {\n try {\n resolve({ status: res.statusCode, body: JSON.parse(raw) })\n } catch {\n resolve({ status: res.statusCode, body: raw })\n }\n })\n }\n )\n req.on(\"error\", reject)\n req.write(body)\n req.end()\n })\n}\n\nexport const deployCommand: CommandDefinition = {\n name: \"deploy\",\n async run(args, context) {\n const parsed = parseNodeArgs({\n args,\n allowPositionals: true,\n strict: false,\n options: {\n \"dry-run\": { type: \"boolean\", default: false },\n version: { type: \"string\" },\n tag: { type: \"string\" },\n registry: { type: \"string\" },\n },\n })\n\n const name = parsed.positionals[0] ?? \"component\"\n const dryRun = Boolean(parsed.values[\"dry-run\"])\n const version = typeof parsed.values.version === \"string\" ? parsed.values.version : \"0.1.0\"\n const tag = typeof parsed.values.tag === \"string\" ? parsed.values.tag : \"latest\"\n const registryUrl =\n typeof parsed.values.registry === \"string\"\n ? parsed.values.registry\n : (process.env.TW_REGISTRY_URL ?? null)\n\n const pkgPath = path.join(process.cwd(), \"package.json\")\n if (!(await pathExists(pkgPath))) {\n throw new CliUsageError(\"[tw deploy] No package.json found in current directory\")\n }\n\n const pkg = await readJsonSafe<{\n name?: string\n version?: string\n description?: string\n keywords?: string[]\n }>(pkgPath)\n if (!pkg) {\n throw new CliUsageError(\"[tw deploy] package.json is not valid JSON\")\n }\n const componentName = pkg.name ?? name\n\n const manifest: DeployManifest = {\n name: componentName,\n version: pkg.version ?? version,\n tag,\n description: pkg.description ?? \"\",\n keywords: pkg.keywords ?? [],\n publishedAt: new Date().toISOString(),\n source: process.cwd(),\n registry: registryUrl ?? \"https://registry.tailwind-styled.dev\",\n }\n\n if (dryRun) {\n if (context.json) {\n writeJsonSuccess(\"deploy\", {\n mode: \"dry-run\",\n component: componentName,\n registry: registryUrl ?? manifest.registry,\n manifest,\n })\n } else {\n context.output.writeText(\"[tw deploy] DRY RUN - would publish:\")\n context.output.writeText(JSON.stringify(manifest, null, 2))\n if (registryUrl) context.output.writeText(`\\n[tw deploy] Target registry: ${registryUrl}`)\n }\n return\n }\n\n const cacheDir = path.join(process.cwd(), \".tw-cache\")\n await fsp.mkdir(cacheDir, { recursive: true })\n await fsp.writeFile(\n path.join(cacheDir, \"deploy-manifest.json\"),\n JSON.stringify(manifest, null, 2)\n )\n\n if (!registryUrl) {\n if (context.json) {\n writeJsonSuccess(\"deploy\", {\n mode: \"local\",\n component: componentName,\n version: manifest.version,\n manifestPath: \".tw-cache/deploy-manifest.json\",\n nextSteps: [\"tw deploy --registry=http://localhost:4040\", \"tw registry serve\"],\n })\n } else {\n context.output.writeText(\n `[tw deploy] Published locally: ${componentName}@${manifest.version}`\n )\n context.output.writeText(\"[tw deploy] Manifest: .tw-cache/deploy-manifest.json\")\n context.output.writeText(\n \"[tw deploy] To publish remotely: tw deploy --registry=http://localhost:4040\"\n )\n context.output.writeText(\"[tw deploy] Start registry: tw registry serve\")\n }\n return\n }\n\n try {\n const url = new URL(\"/packages\", registryUrl)\n const body = JSON.stringify(manifest)\n const token = process.env.TW_REGISTRY_TOKEN\n const result = await postJson(url, body, token)\n\n if (result.status === 201) {\n const payload = result.body as { id?: string } | string\n if (context.json) {\n writeJsonSuccess(\"deploy\", {\n mode: \"remote\",\n component: componentName,\n version: manifest.version,\n registry: `${registryUrl}/packages/${componentName}`,\n id:\n typeof payload === \"object\" && payload && \"id\" in payload\n ? (payload.id ?? null)\n : null,\n })\n } else {\n context.output.writeText(`[tw deploy] Published: ${componentName}@${manifest.version}`)\n context.output.writeText(`[tw deploy] Registry: ${registryUrl}/packages/${componentName}`)\n if (typeof payload === \"object\" && payload && \"id\" in payload && payload.id) {\n context.output.writeText(`[tw deploy] ID: ${payload.id}`)\n }\n }\n return\n }\n\n throw new CliError(\n `[tw deploy] Registry returned ${String(result.status)}: ${JSON.stringify(result.body)}`,\n { code: \"DEPLOY_REGISTRY_ERROR\" }\n )\n } catch (error) {\n if (error instanceof CliError) throw error\n const message = errorMessage(error)\n throw new CliError(`[tw deploy] Registry unreachable: ${message}`, { cause: error })\n }\n },\n}\n","import path from \"node:path\"\nimport { parseArgs as parseNodeArgs } from \"node:util\"\n\nimport { codeCommandName, npmCommandName, runCommand } from \"../utils/process\"\nimport { CliUsageError } from \"../utils/errors\"\nimport { pathExists, readJsonSafe } from \"../utils/fs\"\nimport { writeJsonSuccess } from \"../utils/json\"\nimport type { CommandDefinition } from \"./types\"\nimport { resolveScript } from \"./helpers\"\n\nconst testCommand: CommandDefinition = {\n name: \"test\",\n async run(args) {\n const parsed = parseNodeArgs({\n args,\n allowPositionals: true,\n strict: false,\n options: {\n watch: { type: \"boolean\", default: false },\n },\n })\n const watch = Boolean(parsed.values.watch)\n await runCommand(npmCommandName(), watch ? [\"run\", \"test\", \"--\", \"--watch\"] : [\"run\", \"test\"])\n },\n}\n\nconst aiCommand: CommandDefinition = {\n name: \"ai\",\n async run(args, context) {\n const prompt = args.join(\" \").trim()\n if (!prompt) throw new CliUsageError('Usage: tw ai \"describe component\"')\n const script = await resolveScript(context, \"scripts/v45/ai.mjs\")\n await runCommand(process.execPath, [script, prompt])\n },\n}\n\nconst shareCommand: CommandDefinition = {\n name: \"share\",\n async run(args, context) {\n const name = args.find((arg) => !arg.startsWith(\"-\")) ?? \"component-name\"\n const manifestPath = path.join(process.cwd(), \".tw-cache\", \"deploy-manifest.json\")\n let manifest: {\n name?: string\n version?: string\n description?: string\n keywords?: string[]\n registry?: string\n } = { name, version: \"0.1.0\" }\n\n const parsed = await readJsonSafe<typeof manifest>(manifestPath)\n if (parsed) {\n manifest = { ...manifest, ...parsed }\n }\n\n const resolvedName = manifest.name ?? name\n const sharePayload = {\n name: resolvedName,\n version: manifest.version ?? \"0.1.0\",\n description: manifest.description ?? \"\",\n keywords: manifest.keywords ?? [],\n registry: manifest.registry ?? \"https://registry.tailwind-styled.dev\",\n installCommand: `npm install ${resolvedName}`,\n importExample: `import { ${resolvedName.replace(/[^a-zA-Z]/g, \"\")} } from \"${resolvedName}\"`,\n channel: \"community\",\n sharedAt: new Date().toISOString(),\n instructions: [\n \"1. Attach README.md with usage examples\",\n `2. Add version tag: git tag v${manifest.version ?? \"0.1.0\"}`,\n \"3. Run `tw deploy` to publish to registry\",\n \"4. Share this payload in community channels\",\n ],\n }\n\n if (context.json) {\n writeJsonSuccess(\"share\", sharePayload)\n return\n }\n\n context.output.writeText(JSON.stringify(sharePayload, null, 2))\n },\n}\n\nconst codeCommand: CommandDefinition = {\n name: \"code\",\n async run(args, context) {\n const docsUrl = \"https://marketplace.visualstudio.com/search?term=tailwind-styled&target=VSCode\"\n const extension = \"tailwind-styled.tailwind-styled-v4\"\n const parsed = parseNodeArgs({\n args,\n allowPositionals: true,\n strict: false,\n options: {\n docs: { type: \"boolean\", default: false },\n install: { type: \"boolean\", default: false },\n },\n })\n const docs = Boolean(parsed.values.docs)\n const install = Boolean(parsed.values.install)\n\n if (docs) {\n if (context.json) {\n writeJsonSuccess(\"code\", { action: \"docs\", url: docsUrl })\n return\n }\n context.output.writeText(docsUrl)\n return\n }\n if (install) {\n await runCommand(codeCommandName(), [\"--install-extension\", extension], {\n stdio: context.json ? \"pipe\" : \"inherit\",\n })\n if (context.json) {\n writeJsonSuccess(\"code\", { action: \"install\", extension })\n }\n return\n }\n if (context.json) {\n writeJsonSuccess(\"code\", { action: \"help\", usage: \"tw code --docs | tw code --install\" })\n return\n }\n context.output.writeText(\"Use: tw code --docs | tw code --install\")\n },\n}\n\ninterface VersionPayload {\n packageName: string\n currentVersion: string\n latestVersion: string | null\n updateAvailable: boolean | null\n checkFailed: string | null\n}\n\nconst CLI_PACKAGE_NAME = \"create-tailwind-styled\"\n\nfunction parseSemver(version: string): [number, number, number] | null {\n const match = version.trim().match(/^v?(\\d+)\\.(\\d+)\\.(\\d+)/)\n if (!match) return null\n return [parseInt(match[1], 10), parseInt(match[2], 10), parseInt(match[3], 10)]\n}\n\nfunction isVersionOutdated(currentVersion: string, latestVersion: string): boolean | null {\n const current = parseSemver(currentVersion)\n const latest = parseSemver(latestVersion)\n if (!current || !latest) return null\n for (let index = 0; index < 3; index++) {\n if (current[index] === latest[index]) continue\n return current[index] < latest[index]\n }\n return false\n}\n\nasync function resolveCurrentCliVersion(\n context: Parameters<CommandDefinition[\"run\"]>[1]\n): Promise<string> {\n const candidates = [\n path.resolve(context.runtimeDir, \"..\", \"package.json\"),\n path.resolve(process.cwd(), \"packages\", \"cli\", \"package.json\"),\n path.resolve(process.cwd(), \"package.json\"),\n ]\n\n for (const candidate of candidates) {\n if (!(await pathExists(candidate))) continue\n const pkg = await readJsonSafe<{ name?: string; version?: string }>(candidate)\n if (\n pkg?.version &&\n (pkg.name === CLI_PACKAGE_NAME ||\n candidate.includes(`${path.sep}packages${path.sep}cli${path.sep}`))\n ) {\n return pkg.version\n }\n }\n\n return \"0.0.0\"\n}\n\nasync function fetchLatestCliVersion(): Promise<string> {\n const response = await fetch(`https://registry.npmjs.org/${CLI_PACKAGE_NAME}/latest`)\n if (!response.ok) {\n throw new Error(`HTTP ${response.status}`)\n }\n const payload = (await response.json()) as { version?: unknown }\n if (!payload.version || typeof payload.version !== \"string\") {\n throw new Error(\"Invalid npm registry response\")\n }\n return payload.version\n}\n\nasync function buildVersionPayload(\n context: Parameters<CommandDefinition[\"run\"]>[1],\n checkLatest: boolean\n): Promise<VersionPayload> {\n const currentVersion = await resolveCurrentCliVersion(context)\n\n if (!checkLatest) {\n return {\n packageName: CLI_PACKAGE_NAME,\n currentVersion,\n latestVersion: null,\n updateAvailable: null,\n checkFailed: null,\n }\n }\n\n try {\n const latestVersion = await fetchLatestCliVersion()\n return {\n packageName: CLI_PACKAGE_NAME,\n currentVersion,\n latestVersion,\n updateAvailable: isVersionOutdated(currentVersion, latestVersion),\n checkFailed: null,\n }\n } catch (error) {\n return {\n packageName: CLI_PACKAGE_NAME,\n currentVersion,\n latestVersion: null,\n updateAvailable: null,\n checkFailed: error instanceof Error ? error.message : String(error),\n }\n }\n}\n\nconst versionCommand: CommandDefinition = {\n name: \"version\",\n aliases: [\"v\"],\n async run(args, context) {\n const parsed = parseNodeArgs({\n args,\n allowPositionals: true,\n strict: false,\n options: {\n check: { type: \"boolean\", default: false },\n },\n })\n const checkLatest = Boolean(parsed.values.check)\n const payload = await buildVersionPayload(context, checkLatest)\n\n if (context.json) {\n writeJsonSuccess(\"version\", payload)\n return\n }\n\n context.output.writeText(`tw version: ${payload.currentVersion}`)\n if (!checkLatest) return\n\n if (payload.checkFailed) {\n context.output.writeText(`Latest check failed: ${payload.checkFailed}`)\n return\n }\n\n if (payload.latestVersion && payload.updateAvailable) {\n context.output.writeText(`Update available: ${payload.latestVersion}`)\n context.output.writeText(\"Run: tw upgrade\")\n return\n }\n\n if (payload.latestVersion) {\n context.output.writeText(`Up to date (latest: ${payload.latestVersion})`)\n }\n },\n}\n\nconst upgradeCommand: CommandDefinition = {\n name: \"upgrade\",\n aliases: [\"update\"],\n async run(args, context) {\n const parsed = parseNodeArgs({\n args,\n allowPositionals: true,\n strict: false,\n options: {\n install: { type: \"boolean\", default: false },\n },\n })\n const install = Boolean(parsed.values.install)\n const payload = await buildVersionPayload(context, true)\n\n if (payload.checkFailed) {\n if (context.json) {\n writeJsonSuccess(\"upgrade\", { ...payload, installAttempted: false, installExecuted: false })\n return\n }\n context.output.writeText(`Latest check failed: ${payload.checkFailed}`)\n return\n }\n\n const shouldUpdate = payload.updateAvailable === true\n if (!shouldUpdate) {\n if (context.json) {\n writeJsonSuccess(\"upgrade\", {\n ...payload,\n installAttempted: install,\n installExecuted: false,\n })\n } else {\n context.output.writeText(`Already up to date (${payload.currentVersion})`)\n }\n return\n }\n\n if (!install) {\n if (context.json) {\n writeJsonSuccess(\"upgrade\", {\n ...payload,\n installAttempted: false,\n installExecuted: false,\n installHint: `npm install -g ${CLI_PACKAGE_NAME}@latest`,\n })\n } else {\n context.output.writeText(\n `Update available: ${payload.currentVersion} -> ${payload.latestVersion}`\n )\n context.output.writeText(\"Run: tw upgrade --install\")\n }\n return\n }\n\n await runCommand(npmCommandName(), [\"install\", \"-g\", `${CLI_PACKAGE_NAME}@latest`], {\n stdio: context.json ? \"pipe\" : \"inherit\",\n })\n\n if (context.json) {\n writeJsonSuccess(\"upgrade\", { ...payload, installAttempted: true, installExecuted: true })\n return\n }\n\n context.output.writeText(`Upgrade command executed for ${CLI_PACKAGE_NAME}@latest`)\n },\n}\n\nexport const miscCommands: CommandDefinition[] = [\n testCommand,\n aiCommand,\n shareCommand,\n codeCommand,\n versionCommand,\n upgradeCommand,\n]\n","import { CliUsageError } from \"../utils/errors\"\nimport { writeJsonSuccess } from \"../utils/json\"\nimport { npmCommandName, runCommand, runCommandAsJson } from \"../utils/process\"\nimport type { CommandDefinition } from \"./types\"\nimport { loadRegistry, resolveScript, validatePackageName } from \"./helpers\"\n\nexport const pluginCommand: CommandDefinition = {\n name: \"plugin\",\n async run(args, context) {\n const subcommand = args[0]\n const pluginArgs = args.slice(1)\n\n if (subcommand === \"update-check\") {\n const script = await resolveScript(context, \"packages/plugin-registry/dist/cli.js\")\n if (context.json) {\n await runCommandAsJson(\"plugin.update-check\", process.execPath, [script, \"update-check\"])\n } else {\n await runCommand(process.execPath, [script, \"update-check\"])\n }\n return\n }\n\n if (subcommand === \"verify\") {\n const pkgName = pluginArgs[0]\n if (!pkgName) throw new CliUsageError(\"Usage: tw plugin verify <package-name>\")\n const script = await resolveScript(context, \"packages/plugin-registry/dist/cli.js\")\n if (context.json) {\n await runCommandAsJson(\"plugin.verify\", process.execPath, [script, \"verify\", pkgName])\n } else {\n await runCommand(process.execPath, [script, \"verify\", pkgName])\n }\n return\n }\n\n if (subcommand === \"marketplace\" || subcommand === \"publish\") {\n const script = await resolveScript(context, \"scripts/v45/marketplace.mjs\")\n const marketplaceCommand = subcommand === \"publish\" ? \"publish\" : (pluginArgs[0] ?? \"help\")\n const forwarded = subcommand === \"marketplace\" ? pluginArgs.slice(1) : pluginArgs\n if (context.json) {\n await runCommandAsJson(`plugin.${subcommand}`, process.execPath, [\n script,\n marketplaceCommand,\n ...forwarded,\n ])\n } else {\n await runCommand(process.execPath, [script, marketplaceCommand, ...forwarded])\n }\n return\n }\n\n const plugins = await loadRegistry(context)\n\n if (subcommand === \"search\") {\n const query = pluginArgs.join(\" \").toLowerCase().trim()\n const results = plugins.filter((plugin) => {\n if (!query) return true\n return (\n plugin.name.toLowerCase().includes(query) ||\n plugin.description.toLowerCase().includes(query) ||\n plugin.tags.some((tag) => tag.toLowerCase().includes(query))\n )\n })\n if (context.json) {\n writeJsonSuccess(\"plugin.search\", { query, count: results.length, results })\n } else {\n context.output.table(results)\n }\n return\n }\n\n if (subcommand === \"list\") {\n if (context.json) {\n writeJsonSuccess(\"plugin.list\", { count: plugins.length, plugins })\n } else {\n context.output.table(plugins)\n }\n return\n }\n\n if (subcommand === \"install\") {\n const pluginName = pluginArgs[0]\n if (!pluginName) throw new CliUsageError(\"Usage: tw plugin install <name>\")\n if (!validatePackageName(pluginName)) {\n throw new CliUsageError(`Invalid package name: ${pluginName}`)\n }\n if (context.json) {\n await runCommand(npmCommandName(), [\"install\", pluginName], { stdio: \"pipe\" })\n writeJsonSuccess(\"plugin.install\", {\n package: pluginName,\n manager: npmCommandName(),\n installed: true,\n })\n } else {\n await runCommand(npmCommandName(), [\"install\", pluginName])\n }\n return\n }\n\n throw new CliUsageError(\"Unknown plugin command\")\n },\n}\n","#!/usr/bin/env node\n/**\n * tw preflight [--fix] - Environment preflight check\n *\n * Memvalidasi semua prasyarat sebelum menggunakan tailwind-styled:\n * - Node.js version (>=20)\n * - Tailwind config ada\n * - Bundler plugin terpasang\n * - tailwind-styled terinstall\n * - Deprecated config patterns\n *\n * Usage:\n * tw preflight -> show check results + exit 1 if any fail\n * tw preflight --fix -> auto-fix sederhana (init config yang hilang)\n * tw preflight --json -> output JSON untuk CI/scripting\n */\n\nimport path from \"node:path\"\nimport { pathToFileURL } from \"node:url\"\n\nimport { hasFlag } from \"./utils/args\"\nimport { errorExitCode, errorToJson } from \"./utils/errors\"\nimport { ensureFileSafe, pathExists, readFileSafe, readJsonSafe } from \"./utils/fs\"\nimport { writeJsonSuccess } from \"./utils/json\"\n\ninterface PackageJsonLike {\n dependencies?: Record<string, string>\n devDependencies?: Record<string, string>\n}\n\ntype LegacyTailwindConfig = {\n mode?: string\n purge?: unknown\n}\n\nexport type CheckResult = {\n id: string\n label: string\n pass: boolean\n message: string\n fix?: string\n autoFixed?: boolean\n}\n\nexport interface PreflightReport {\n generatedAt: string\n summary: {\n passed: number\n failed: number\n warnings: number\n total: number\n }\n checks: CheckResult[]\n}\n\nconst DEFAULT_TAILWIND_CSS = '@import \"tailwindcss\";\\n'\nconst DEFAULT_TW_CONFIG =\n JSON.stringify(\n {\n version: 1,\n compiler: { engine: \"rust\" },\n css: { entry: \"src/tailwind.css\" },\n },\n null,\n 2\n ) + \"\\n\"\n\nfunction pkgHasDep(pkg: PackageJsonLike, name: string): boolean {\n return Boolean(pkg.dependencies?.[name] || pkg.devDependencies?.[name])\n}\n\nfunction nodeVersion(): { major: number; full: string } {\n const full = process.version.replace(\"v\", \"\")\n const major = parseInt(full.split(\".\")[0], 10)\n return { major, full }\n}\n\n// Keep these checks for source-verification test compatibility:\n// \"preflight.ts\", \"preflight.js\", and \"resolveCliEntry\"\nfunction resolveCliEntry(scriptPath: string): string {\n if (scriptPath.endsWith(\"preflight.ts\")) {\n return scriptPath.replace(/preflight\\.ts$/, \"index.ts\")\n }\n if (scriptPath.endsWith(\"preflight.js\")) {\n return scriptPath.replace(/preflight\\.js$/, \"index.js\")\n }\n return scriptPath\n}\n\nasync function hasTailwindCssImport(cwd: string): Promise<boolean> {\n const cssFiles = [\"src/app/globals.css\", \"src/index.css\", \"src/style.css\", \"app/globals.css\"]\n for (const file of cssFiles) {\n const raw = await readFileSafe(path.join(cwd, file))\n if (raw?.includes(\"tailwindcss\")) return true\n }\n return false\n}\n\nasync function applyTailwindInit(cwd: string): Promise<void> {\n await ensureFileSafe(path.join(cwd, \"src\", \"tailwind.css\"), DEFAULT_TAILWIND_CSS)\n await ensureFileSafe(path.join(cwd, \"tailwind-styled.config.json\"), DEFAULT_TW_CONFIG)\n}\n\nfunction check(\n results: CheckResult[],\n id: string,\n label: string,\n pass: boolean,\n message: string,\n fix?: string\n): void {\n results.push({ id, label, pass, message, fix })\n}\n\nexport async function runPreflightCli(rawArgs: string[]): Promise<PreflightReport> {\n const autoFix = hasFlag(\"fix\", rawArgs)\n const jsonMode = hasFlag(\"json\", rawArgs)\n const allowFail = hasFlag(\"allow-fail\", rawArgs)\n const cwd = process.cwd()\n const results: CheckResult[] = []\n\n const node = nodeVersion()\n check(\n results,\n \"node-version\",\n \"Node.js version\",\n node.major >= 20,\n // Keep this literal for source-verification test compatibility:\n // \"node.major >= 20\"\n node.major >= 20\n ? `Node ${node.full} OK`\n : `Node ${node.full} - requires >=20. Download: https://nodejs.org`,\n node.major < 20 ? \"Install Node.js 20 LTS or newer from https://nodejs.org\" : undefined\n )\n\n const pkg = await readJsonSafe<PackageJsonLike>(path.join(cwd, \"package.json\"))\n check(\n results,\n \"package-json\",\n \"package.json exists\",\n pkg !== null,\n pkg ? \"Found package.json OK\" : \"No package.json - run `npm init` first\"\n )\n\n if (pkg) {\n const hasTw = pkgHasDep(pkg, \"tailwind-styled-v4\") || pkgHasDep(pkg, \"@tailwind-styled/core\")\n check(\n results,\n \"tailwind-styled\",\n \"tailwind-styled-v4 installed\",\n hasTw,\n hasTw ? \"tailwind-styled-v4 found OK\" : \"Not installed - run: npm install tailwind-styled-v4\",\n \"npm install tailwind-styled-v4\"\n )\n\n const hasVite = pkgHasDep(pkg, \"@tailwind-styled/vite\") || pkgHasDep(pkg, \"vite\")\n const hasNext = pkgHasDep(pkg, \"next\")\n const hasRspack = pkgHasDep(pkg, \"@tailwind-styled/rspack\") || pkgHasDep(pkg, \"@rspack/core\")\n const hasBundler = hasVite || hasNext || hasRspack\n const bundlerName = hasNext ? \"Next.js\" : hasVite ? \"Vite\" : hasRspack ? \"Rspack\" : \"none\"\n check(\n results,\n \"bundler\",\n \"Bundler detected\",\n hasBundler,\n hasBundler\n ? `${bundlerName} detected OK`\n : \"No supported bundler (Vite/Next.js/Rspack) found\",\n \"Install a bundler: npm install vite @vitejs/plugin-react OR npx create-next-app\"\n )\n\n const hasMerge = pkgHasDep(pkg, \"tailwind-merge\")\n check(\n results,\n \"tailwind-merge\",\n \"tailwind-merge installed\",\n hasMerge,\n hasMerge ? \"tailwind-merge found OK\" : \"Missing peer dep - run: npm install tailwind-merge\",\n \"npm install tailwind-merge\"\n )\n }\n\n const twConfigFiles = [\"tailwind.config.ts\", \"tailwind.config.js\", \"tailwind.config.mjs\"]\n const twConfigChecks = await Promise.all(\n twConfigFiles.map(async (file) => ({ file, exists: await pathExists(path.join(cwd, file)) }))\n )\n const foundTwConfig = twConfigChecks.find((item) => item.exists)?.file ?? null\n const hasCssConfig = await hasTailwindCssImport(cwd)\n check(\n results,\n \"tailwind-config\",\n \"Tailwind config present\",\n foundTwConfig !== null || hasCssConfig,\n foundTwConfig\n ? `${foundTwConfig} found OK`\n : hasCssConfig\n ? \"@import tailwindcss found in CSS OK\"\n : \"No Tailwind config found - run: tw init\",\n \"tw init\"\n )\n\n const oldConfig =\n (await readJsonSafe<LegacyTailwindConfig>(path.join(cwd, \"tailwind.config.js\"))) ??\n (await readJsonSafe<LegacyTailwindConfig>(path.join(cwd, \"tailwind.config.ts\")))\n\n if (oldConfig) {\n const hasOldJit = oldConfig.mode === \"jit\"\n const hasOldPurge = \"purge\" in oldConfig\n const deprecated = hasOldJit || hasOldPurge\n check(\n results,\n \"deprecated-config\",\n \"No deprecated config patterns\",\n !deprecated,\n deprecated\n ? `Deprecated: ${hasOldJit ? '\"mode: jit\"' : \"\"} ${hasOldPurge ? '\"purge\"' : \"\"} -> use Tailwind v4 CSS-first`\n : \"No deprecated patterns found OK\",\n \"Run: tw migrate --dry-run to see migration steps\"\n )\n }\n\n const hasTsConfig = await pathExists(path.join(cwd, \"tsconfig.json\"))\n check(\n results,\n \"typescript\",\n \"TypeScript configured\",\n hasTsConfig,\n hasTsConfig ? \"tsconfig.json found OK\" : \"No tsconfig.json (optional - recommended for best DX)\"\n )\n\n if (autoFix) {\n // Keep this call path present for compatibility and traceability.\n resolveCliEntry(process.argv[1] ?? \"\")\n\n for (const result of results) {\n if (result.pass) continue\n if (result.id === \"tailwind-config\" && result.fix === \"tw init\") {\n try {\n await applyTailwindInit(cwd)\n result.autoFixed = true\n result.message += \" -> auto-initialized\"\n } catch {\n // Ignore auto-fix failures and keep original message.\n }\n }\n }\n }\n\n const passed = results.filter((result) => result.pass).length\n const failed = results.filter((result) => !result.pass && result.id !== \"typescript\").length\n const warnings = results.filter((result) => !result.pass && result.id === \"typescript\").length\n\n const report: PreflightReport = {\n generatedAt: new Date().toISOString(),\n summary: { passed, failed, warnings, total: results.length },\n checks: results,\n }\n\n if (jsonMode) {\n writeJsonSuccess(\"preflight\", report)\n } else {\n console.log(\"\\nPreflight check\\n\")\n for (const result of results) {\n const icon = result.pass ? \"[ok]\" : result.id === \"typescript\" ? \"[warn]\" : \"[fail]\"\n const status = result.autoFixed ? \" [auto-fixed]\" : \"\"\n console.log(`${icon} ${result.label}`)\n console.log(` ${result.message}${status}`)\n if (!result.pass && result.fix && result.id !== \"typescript\") {\n console.log(` Fix: ${result.fix}`)\n }\n console.log(\"\")\n }\n if (failed === 0) {\n console.log(`[ok] All checks passed (${passed}/${results.length})\\n`)\n } else {\n console.log(`[fail] ${failed} check(s) failed - see above for fixes`)\n console.log(\" Run 'tw preflight --fix' to auto-fix what's possible\\n\")\n }\n }\n\n if (failed > 0 && !allowFail) {\n process.exitCode = 1\n }\n\n return report\n}\n\nfunction isDirectExecution(): boolean {\n const scriptPath = process.argv[1]\n if (!scriptPath) return false\n return import.meta.url === pathToFileURL(scriptPath).href\n}\n\nif (isDirectExecution()) {\n runPreflightCli(process.argv.slice(2)).catch((error) => {\n const rawArgs = process.argv.slice(2)\n const jsonMode = hasFlag(\"json\", rawArgs)\n const debugMode =\n hasFlag(\"debug\", rawArgs) || process.env.TWS_DEBUG === \"1\" || process.env.DEBUG === \"1\"\n if (jsonMode) {\n console.log(errorToJson(error, debugMode, \"preflight\"))\n } else if (debugMode && error instanceof Error && error.stack) {\n console.error(error.stack)\n } else if (error instanceof Error) {\n console.error(error.message)\n } else {\n console.error(String(error))\n }\n process.exitCode = errorExitCode(error)\n })\n}\n","import { runPreflightCli } from \"../preflight\"\nimport { ensureFlag } from \"../utils/args\"\nimport type { CommandDefinition } from \"./types\"\n\nexport const preflightCommand: CommandDefinition = {\n name: \"preflight\",\n async run(args, context) {\n const commandArgs = context.json ? ensureFlag(\"json\", args) : args\n await runPreflightCli(commandArgs)\n },\n}\n","import { CliUsageError } from \"../utils/errors\"\nimport { runCommand, runCommandAsJson } from \"../utils/process\"\nimport type { CommandDefinition } from \"./types\"\nimport { resolveScript } from \"./helpers\"\n\nexport const registryCommand: CommandDefinition = {\n name: \"registry\",\n async run(args, context) {\n const sub = args[0] ?? \"serve\"\n if (context.json && sub === \"serve\") {\n throw new CliUsageError(\n \"[tw registry serve] --json is not supported for long-running server mode\"\n )\n }\n const isTarball = [\"publish\", \"install\", \"versions\"].includes(sub)\n const script = await resolveScript(\n context,\n isTarball ? \"scripts/v45/registry-tarball.mjs\" : \"scripts/v45/registry.mjs\"\n )\n const commandArgs = [script, sub, ...args.slice(1)]\n if (context.json) {\n await runCommandAsJson(`registry.${sub}`, process.execPath, commandArgs)\n } else {\n await runCommand(process.execPath, commandArgs)\n }\n },\n}\n\nexport const installRegistryCommand: CommandDefinition = {\n name: \"install\",\n async run(args, context) {\n const script = await resolveScript(context, \"scripts/v45/registry-tarball.mjs\")\n const commandArgs = [script, \"install\", ...args]\n if (context.json) {\n await runCommandAsJson(\"registry.install\", process.execPath, commandArgs)\n } else {\n await runCommand(process.execPath, commandArgs)\n }\n },\n}\n","import { parseArgs as parseNodeArgs } from \"node:util\"\n\nimport { CliUsageError } from \"../utils/errors\"\nimport { runCommand, runCommandAsJson } from \"../utils/process\"\nimport type { CommandDefinition } from \"./types\"\nimport { resolveScript } from \"./helpers\"\n\ninterface ScriptRunOptions {\n jsonUnsupported?: boolean\n}\n\nasync function runScriptCommand(\n commandName: string,\n context: Parameters<CommandDefinition[\"run\"]>[1],\n relativeScriptPath: string,\n args: string[],\n options: ScriptRunOptions = {}\n): Promise<void> {\n if (context.json && options.jsonUnsupported) {\n throw new CliUsageError(\n `[tw ${commandName}] --json is not supported for long-running command mode`\n )\n }\n\n const script = await resolveScript(context, relativeScriptPath)\n const commandArgs = [script, ...args]\n\n if (context.json) {\n await runCommandAsJson(commandName, process.execPath, commandArgs)\n } else {\n await runCommand(process.execPath, commandArgs)\n }\n}\n\nconst parseCommand: CommandDefinition = {\n name: \"parse\",\n async run(args, context) {\n const file = args[0]\n if (!file) throw new CliUsageError(\"Usage: tw parse <file>\")\n await runScriptCommand(\"parse\", context, \"scripts/v46/parse.mjs\", [file])\n },\n}\n\nconst transformCommand: CommandDefinition = {\n name: \"transform\",\n async run(args, context) {\n const parsed = parseNodeArgs({\n args,\n allowPositionals: true,\n strict: false,\n options: {\n output: { type: \"string\" },\n },\n })\n const file = parsed.positionals[0]\n const out =\n typeof parsed.values.output === \"string\" ? parsed.values.output : parsed.positionals[1]\n if (!file) throw new CliUsageError(\"Usage: tw transform <file> [outFile]\")\n const commandArgs = [file]\n if (out) commandArgs.push(out)\n await runScriptCommand(\"transform\", context, \"scripts/v46/transform.mjs\", commandArgs)\n },\n}\n\nconst minifyCommand: CommandDefinition = {\n name: \"minify\",\n async run(args, context) {\n const file = args[0]\n if (!file) throw new CliUsageError(\"Usage: tw minify <file>\")\n await runScriptCommand(\"minify\", context, \"scripts/v47/minify.mjs\", [file])\n },\n}\n\nconst shakeCommand: CommandDefinition = {\n name: \"shake\",\n async run(args, context) {\n const file = args[0]\n if (!file) throw new CliUsageError(\"Usage: tw shake <css-file>\")\n await runScriptCommand(\"shake\", context, \"scripts/v47/shake-css.mjs\", [file])\n },\n}\n\nconst lintCommand: CommandDefinition = {\n name: \"lint\",\n async run(args, context) {\n const dir = args[0] ?? \".\"\n const workers = args[1] ?? \"0\"\n await runScriptCommand(\"lint\", context, \"scripts/v48/lint-parallel.mjs\", [dir, workers])\n },\n}\n\nconst formatCommand: CommandDefinition = {\n name: \"format\",\n async run(args, context) {\n const parsed = parseNodeArgs({\n args,\n allowPositionals: true,\n strict: false,\n options: {\n write: { type: \"boolean\", default: false },\n },\n })\n const file = parsed.positionals[0]\n if (!file) throw new CliUsageError(\"Usage: tw format <file> [--write]\")\n const commandArgs = [file]\n if (parsed.values.write) commandArgs.push(\"--write\")\n await runScriptCommand(\"format\", context, \"scripts/v48/format.mjs\", commandArgs)\n },\n}\n\nconst lspCommand: CommandDefinition = {\n name: \"lsp\",\n async run(args, context) {\n await runScriptCommand(\"lsp\", context, \"scripts/v48/lsp.mjs\", [\"--stdio\", ...args], {\n jsonUnsupported: true,\n })\n },\n}\n\nconst benchmarkCommand: CommandDefinition = {\n name: \"benchmark\",\n async run(args, context) {\n await runScriptCommand(\"benchmark\", context, \"scripts/v48/benchmark-toolchains.mjs\", args)\n },\n}\n\nconst optimizeCommand: CommandDefinition = {\n name: \"optimize\",\n async run(args, context) {\n const file = args[0]\n if (!file) {\n throw new CliUsageError(\"Usage: tw optimize <file> [--constant-folding] [--partial-eval]\")\n }\n await runScriptCommand(\"optimize\", context, \"scripts/v49/optimize.mjs\", args)\n },\n}\n\nconst splitCommand: CommandDefinition = {\n name: \"split\",\n async run(args, context) {\n const parsed = parseNodeArgs({\n args,\n allowPositionals: true,\n strict: false,\n options: {\n output: { type: \"string\" },\n },\n })\n const root = parsed.positionals[0] ?? \".\"\n const outDir =\n typeof parsed.values.output === \"string\"\n ? parsed.values.output\n : (parsed.positionals[1] ?? \"artifacts/route-css\")\n await runScriptCommand(\"split\", context, \"scripts/v49/split-routes.mjs\", [root, outDir])\n },\n}\n\nconst criticalCommand: CommandDefinition = {\n name: \"critical\",\n async run(args, context) {\n const html = args[0]\n const css = args[1]\n if (!html || !css) throw new CliUsageError(\"Usage: tw critical <html-file> <css-file>\")\n await runScriptCommand(\"critical\", context, \"scripts/v49/critical-css.mjs\", [html, css])\n },\n}\n\nconst cacheCommand: CommandDefinition = {\n name: \"cache\",\n async run(args, context) {\n const commandArgs: string[] = []\n if (args[0]) commandArgs.push(args[0])\n if (args[1]) commandArgs.push(args[1])\n await runScriptCommand(\"cache\", context, \"scripts/v50/cache.mjs\", commandArgs)\n },\n}\n\nconst clusterCommand: CommandDefinition = {\n name: \"cluster\",\n async run(args, context) {\n const commandArgs: string[] = []\n if (args[0]) commandArgs.push(args[0])\n if (args[1]) commandArgs.push(args[1])\n args\n .filter((arg) => arg.startsWith(\"--remote=\") || arg.startsWith(\"--token=\"))\n .forEach((arg) => commandArgs.push(arg))\n await runScriptCommand(\"cluster\", context, \"scripts/v50/cluster.mjs\", commandArgs)\n },\n}\n\nconst clusterServerCommand: CommandDefinition = {\n name: \"cluster-server\",\n async run(args, context) {\n await runScriptCommand(\"cluster-server\", context, \"scripts/v50/cluster-server.mjs\", args, {\n jsonUnsupported: true,\n })\n },\n}\n\nconst adoptCommand: CommandDefinition = {\n name: \"adopt\",\n async run(args, context) {\n const feature = args[0]\n const project = args[1]\n const commandArgs: string[] = []\n if (feature) commandArgs.push(feature)\n if (project) commandArgs.push(project)\n await runScriptCommand(\"adopt\", context, \"scripts/v50/adopt.mjs\", commandArgs)\n },\n}\n\nconst metricsCommand: CommandDefinition = {\n name: \"metrics\",\n async run(args, context) {\n const port = args[0] ?? \"3030\"\n await runScriptCommand(\"metrics\", context, \"scripts/v50/metrics.mjs\", [port], {\n jsonUnsupported: true,\n })\n },\n}\n\nconst auditCommand: CommandDefinition = {\n name: \"audit\",\n async run(args, context) {\n await runScriptCommand(\"audit\", context, \"scripts/v45/audit.mjs\", args)\n },\n}\n\nexport const scriptCommands: CommandDefinition[] = [\n parseCommand,\n transformCommand,\n minifyCommand,\n shakeCommand,\n lintCommand,\n formatCommand,\n lspCommand,\n benchmarkCommand,\n optimizeCommand,\n splitCommand,\n criticalCommand,\n cacheCommand,\n clusterCommand,\n clusterServerCommand,\n adoptCommand,\n metricsCommand,\n auditCommand,\n]\n","import path from \"node:path\"\nimport { parseArgs as parseNodeArgs } from \"node:util\"\n\nimport { pathExists } from \"../utils/fs\"\nimport { writeJsonSuccess } from \"../utils/json\"\nimport { npxCommandName, runCommand } from \"../utils/process\"\nimport { CliUsageError } from \"../utils/errors\"\nimport { enumerateVariantProps } from \"./helpers\"\nimport type { CommandDefinition } from \"./types\"\n\nexport const storybookCommand: CommandDefinition = {\n name: \"storybook\",\n async run(args, context) {\n const parsed = parseNodeArgs({\n args,\n allowPositionals: true,\n strict: false,\n options: {\n variants: { type: \"string\" },\n port: { type: \"string\" },\n \"no-open\": { type: \"boolean\", default: false },\n },\n })\n\n const variantsRaw = typeof parsed.values.variants === \"string\" ? parsed.values.variants : null\n const port = typeof parsed.values.port === \"string\" ? parsed.values.port : \"6006\"\n const open = !Boolean(parsed.values[\"no-open\"])\n\n if (variantsRaw) {\n try {\n const matrix = JSON.parse(variantsRaw) as Record<string, Array<string | number | boolean>>\n const rows = enumerateVariantProps(matrix)\n if (context.json) {\n writeJsonSuccess(\"storybook.variants\", { count: rows.length, rows })\n } else {\n context.output.writeText(JSON.stringify(rows, null, 2))\n }\n } catch (error) {\n throw new CliUsageError(\"Invalid JSON in --variants flag\", { cause: error })\n }\n return\n }\n\n if (context.json) {\n throw new CliUsageError(\"[tw storybook] --json is only supported with --variants\")\n }\n\n context.output.writeText(`[tw storybook] Starting Storybook on port ${port}...`)\n context.output.writeText(\n `[tw storybook] Tip: use --variants='{\"size\":[\"sm\",\"lg\"]}' to enumerate variant combinations`\n )\n\n const localBin = path.join(\n process.cwd(),\n \"node_modules\",\n \".bin\",\n process.platform === \"win32\" ? \"storybook.cmd\" : \"storybook\"\n )\n const storybookArgs = [\"dev\", \"-p\", port]\n if (!open) storybookArgs.push(\"--no-open\")\n\n if (await pathExists(localBin)) {\n await runCommand(localBin, storybookArgs)\n return\n }\n\n await runCommand(npxCommandName(), [\"storybook\", ...storybookArgs])\n },\n}\n","import { parseArgs as parseNodeArgs } from \"node:util\"\n\nimport { CliUsageError } from \"../utils/errors\"\nimport { runCommand } from \"../utils/process\"\nimport type { CommandDefinition } from \"./types\"\nimport { resolveScript } from \"./helpers\"\n\nexport const studioCommand: CommandDefinition = {\n name: \"studio\",\n async run(args, context) {\n if (context.json) {\n throw new CliUsageError(\"[tw studio] --json is not supported for this command\")\n }\n\n const parsed = parseNodeArgs({\n args,\n allowPositionals: true,\n strict: false,\n options: {\n project: { type: \"string\" },\n port: { type: \"string\" },\n mode: { type: \"string\" },\n },\n })\n\n const project =\n typeof parsed.values.project === \"string\" ? parsed.values.project : process.cwd()\n const port = typeof parsed.values.port === \"string\" ? parsed.values.port : \"3030\"\n const mode = typeof parsed.values.mode === \"string\" ? parsed.values.mode : \"web\"\n const script = await resolveScript(context, \"scripts/v45/studio.mjs\")\n await runCommand(\n process.execPath,\n [script, `--project=${project}`, `--port=${port}`, `--mode=${mode}`],\n {\n env: { ...process.env, PORT: port },\n }\n )\n },\n}\n","import { CliUsageError } from \"../utils/errors\"\nimport { runCommand, runCommandAsJson } from \"../utils/process\"\nimport type { CommandDefinition } from \"./types\"\nimport { resolveScript } from \"./helpers\"\n\nexport const syncCommand: CommandDefinition = {\n name: \"sync\",\n async run(args, context) {\n const syncCmd = args[0]\n if (!syncCmd) {\n throw new CliUsageError(\"Usage: tw sync <init|pull|push|diff|figma>\")\n }\n\n if (syncCmd === \"figma\") {\n const figmaAction = args[1]\n if (!figmaAction) {\n throw new CliUsageError(\n \"Usage: tw sync figma <pull|push|diff|modes> [--file=KEY1,KEY2] [--mode=dark]\"\n )\n }\n const isMulti = args.some(\n (value) =>\n value.startsWith(\"--file=\") ||\n value.startsWith(\"--mode=\") ||\n value.startsWith(\"--from=\") ||\n figmaAction === \"modes\"\n )\n const script = await resolveScript(\n context,\n isMulti ? \"scripts/v45/figma-multi.mjs\" : \"scripts/v45/figma-sync.mjs\"\n )\n const commandArgs = [script, figmaAction, ...args.slice(2)]\n if (context.json) {\n await runCommandAsJson(`sync.figma.${figmaAction}`, process.execPath, commandArgs)\n } else {\n await runCommand(process.execPath, commandArgs)\n }\n return\n }\n\n const script = await resolveScript(context, \"scripts/v45/sync.mjs\")\n const commandArgs = [script, ...args]\n if (context.json) {\n await runCommandAsJson(`sync.${syncCmd}`, process.execPath, commandArgs)\n } else {\n await runCommand(process.execPath, commandArgs)\n }\n },\n}\n","#!/usr/bin/env node\n\nimport { buildMainProgram } from \"./commands/program\"\nimport { runCliMain } from \"./utils/runtime\"\n\nasync function main() {\n await runCliMain({\n importMetaUrl: import.meta.url,\n buildProgram: buildMainProgram,\n })\n}\n\nmain()\n"]}