@platforma-sdk/bootstrap 5.2.51 → 5.2.52

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 (176) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +29 -0
  2. package/dist/block.cjs +106 -146
  3. package/dist/block.cjs.map +1 -1
  4. package/dist/block.js +100 -125
  5. package/dist/block.js.map +1 -1
  6. package/dist/cmd-opts.cjs +87 -177
  7. package/dist/cmd-opts.cjs.map +1 -1
  8. package/dist/cmd-opts.js +87 -172
  9. package/dist/cmd-opts.js.map +1 -1
  10. package/dist/commands/create-block.cjs +19 -20
  11. package/dist/commands/create-block.cjs.map +1 -1
  12. package/dist/commands/create-block.d.ts +12 -7
  13. package/dist/commands/create-block.js +17 -17
  14. package/dist/commands/create-block.js.map +1 -1
  15. package/dist/commands/reset.cjs +18 -21
  16. package/dist/commands/reset.cjs.map +1 -1
  17. package/dist/commands/reset.d.ts +12 -7
  18. package/dist/commands/reset.js +16 -18
  19. package/dist/commands/reset.js.map +1 -1
  20. package/dist/commands/start/docker/s3.cjs +64 -67
  21. package/dist/commands/start/docker/s3.cjs.map +1 -1
  22. package/dist/commands/start/docker/s3.d.ts +32 -27
  23. package/dist/commands/start/docker/s3.js +61 -64
  24. package/dist/commands/start/docker/s3.js.map +1 -1
  25. package/dist/commands/start/docker.cjs +64 -67
  26. package/dist/commands/start/docker.cjs.map +1 -1
  27. package/dist/commands/start/docker.d.ts +32 -27
  28. package/dist/commands/start/docker.js +61 -64
  29. package/dist/commands/start/docker.js.map +1 -1
  30. package/dist/commands/start/local/s3.cjs +101 -135
  31. package/dist/commands/start/local/s3.cjs.map +1 -1
  32. package/dist/commands/start/local/s3.d.ts +36 -31
  33. package/dist/commands/start/local/s3.js +97 -113
  34. package/dist/commands/start/local/s3.js.map +1 -1
  35. package/dist/commands/start/local.cjs +95 -122
  36. package/dist/commands/start/local.cjs.map +1 -1
  37. package/dist/commands/start/local.d.ts +34 -29
  38. package/dist/commands/start/local.js +91 -100
  39. package/dist/commands/start/local.js.map +1 -1
  40. package/dist/commands/start.cjs +18 -21
  41. package/dist/commands/start.cjs.map +1 -1
  42. package/dist/commands/start.d.ts +12 -7
  43. package/dist/commands/start.js +16 -18
  44. package/dist/commands/start.js.map +1 -1
  45. package/dist/commands/stop.cjs +22 -27
  46. package/dist/commands/stop.cjs.map +1 -1
  47. package/dist/commands/stop.d.ts +12 -7
  48. package/dist/commands/stop.js +20 -24
  49. package/dist/commands/stop.js.map +1 -1
  50. package/dist/commands/svc/create/arg-parser.cjs +102 -172
  51. package/dist/commands/svc/create/arg-parser.cjs.map +1 -1
  52. package/dist/commands/svc/create/arg-parser.js +102 -171
  53. package/dist/commands/svc/create/arg-parser.js.map +1 -1
  54. package/dist/commands/svc/create/docker/s3.cjs +78 -96
  55. package/dist/commands/svc/create/docker/s3.cjs.map +1 -1
  56. package/dist/commands/svc/create/docker/s3.d.ts +35 -30
  57. package/dist/commands/svc/create/docker/s3.js +75 -93
  58. package/dist/commands/svc/create/docker/s3.js.map +1 -1
  59. package/dist/commands/svc/create/docker.cjs +82 -103
  60. package/dist/commands/svc/create/docker.cjs.map +1 -1
  61. package/dist/commands/svc/create/docker.d.ts +35 -30
  62. package/dist/commands/svc/create/docker.js +79 -100
  63. package/dist/commands/svc/create/docker.js.map +1 -1
  64. package/dist/commands/svc/create/local/s3.cjs +107 -139
  65. package/dist/commands/svc/create/local/s3.cjs.map +1 -1
  66. package/dist/commands/svc/create/local/s3.d.ts +39 -34
  67. package/dist/commands/svc/create/local/s3.js +103 -117
  68. package/dist/commands/svc/create/local/s3.js.map +1 -1
  69. package/dist/commands/svc/create/local.cjs +101 -138
  70. package/dist/commands/svc/create/local.cjs.map +1 -1
  71. package/dist/commands/svc/create/local.d.ts +37 -32
  72. package/dist/commands/svc/create/local.js +97 -116
  73. package/dist/commands/svc/create/local.js.map +1 -1
  74. package/dist/commands/svc/delete.cjs +36 -38
  75. package/dist/commands/svc/delete.cjs.map +1 -1
  76. package/dist/commands/svc/delete.d.ts +16 -11
  77. package/dist/commands/svc/delete.js +34 -35
  78. package/dist/commands/svc/delete.js.map +1 -1
  79. package/dist/commands/svc/down.cjs +27 -30
  80. package/dist/commands/svc/down.cjs.map +1 -1
  81. package/dist/commands/svc/down.d.ts +15 -10
  82. package/dist/commands/svc/down.js +25 -27
  83. package/dist/commands/svc/down.js.map +1 -1
  84. package/dist/commands/svc/list.cjs +25 -29
  85. package/dist/commands/svc/list.cjs.map +1 -1
  86. package/dist/commands/svc/list.d.ts +9 -5
  87. package/dist/commands/svc/list.js +23 -26
  88. package/dist/commands/svc/list.js.map +1 -1
  89. package/dist/commands/svc/up.cjs +33 -49
  90. package/dist/commands/svc/up.cjs.map +1 -1
  91. package/dist/commands/svc/up.d.ts +15 -10
  92. package/dist/commands/svc/up.js +31 -46
  93. package/dist/commands/svc/up.js.map +1 -1
  94. package/dist/core.cjs +712 -881
  95. package/dist/core.cjs.map +1 -1
  96. package/dist/core.js +709 -877
  97. package/dist/core.js.map +1 -1
  98. package/dist/index.cjs +36 -36
  99. package/dist/index.cjs.map +1 -1
  100. package/dist/index.d.ts +37 -33
  101. package/dist/index.js +35 -34
  102. package/dist/index.js.map +1 -1
  103. package/dist/package.cjs +15 -36
  104. package/dist/package.cjs.map +1 -1
  105. package/dist/package.js +14 -14
  106. package/dist/package.js.map +1 -1
  107. package/dist/platforma.cjs +119 -148
  108. package/dist/platforma.cjs.map +1 -1
  109. package/dist/platforma.js +114 -122
  110. package/dist/platforma.js.map +1 -1
  111. package/dist/run.cjs +55 -58
  112. package/dist/run.cjs.map +1 -1
  113. package/dist/run.js +56 -56
  114. package/dist/run.js.map +1 -1
  115. package/dist/state.cjs +114 -141
  116. package/dist/state.cjs.map +1 -1
  117. package/dist/state.js +110 -139
  118. package/dist/state.js.map +1 -1
  119. package/dist/templates/compose.cjs +38 -65
  120. package/dist/templates/compose.cjs.map +1 -1
  121. package/dist/templates/compose.js +35 -63
  122. package/dist/templates/compose.js.map +1 -1
  123. package/dist/templates/pl-config.cjs +163 -165
  124. package/dist/templates/pl-config.cjs.map +1 -1
  125. package/dist/templates/pl-config.js +161 -163
  126. package/dist/templates/pl-config.js.map +1 -1
  127. package/dist/templates/types.cjs +24 -23
  128. package/dist/templates/types.cjs.map +1 -1
  129. package/dist/templates/types.js +24 -22
  130. package/dist/templates/types.js.map +1 -1
  131. package/dist/util.cjs +57 -74
  132. package/dist/util.cjs.map +1 -1
  133. package/dist/util.js +51 -72
  134. package/dist/util.js.map +1 -1
  135. package/package.json +7 -7
  136. package/dist/block.d.ts +0 -25
  137. package/dist/block.d.ts.map +0 -1
  138. package/dist/cmd-opts.d.ts +0 -89
  139. package/dist/cmd-opts.d.ts.map +0 -1
  140. package/dist/commands/create-block.d.ts.map +0 -1
  141. package/dist/commands/reset.d.ts.map +0 -1
  142. package/dist/commands/start/docker/s3.d.ts.map +0 -1
  143. package/dist/commands/start/docker.d.ts.map +0 -1
  144. package/dist/commands/start/local/s3.d.ts.map +0 -1
  145. package/dist/commands/start/local.d.ts.map +0 -1
  146. package/dist/commands/start.d.ts.map +0 -1
  147. package/dist/commands/stop.d.ts.map +0 -1
  148. package/dist/commands/svc/create/arg-parser.d.ts +0 -43
  149. package/dist/commands/svc/create/arg-parser.d.ts.map +0 -1
  150. package/dist/commands/svc/create/docker/s3.d.ts.map +0 -1
  151. package/dist/commands/svc/create/docker.d.ts.map +0 -1
  152. package/dist/commands/svc/create/local/s3.d.ts.map +0 -1
  153. package/dist/commands/svc/create/local.d.ts.map +0 -1
  154. package/dist/commands/svc/delete.d.ts.map +0 -1
  155. package/dist/commands/svc/down.d.ts.map +0 -1
  156. package/dist/commands/svc/list.d.ts.map +0 -1
  157. package/dist/commands/svc/up.d.ts.map +0 -1
  158. package/dist/core.d.ts +0 -105
  159. package/dist/core.d.ts.map +0 -1
  160. package/dist/index.d.ts.map +0 -1
  161. package/dist/package.d.ts +0 -7
  162. package/dist/package.d.ts.map +0 -1
  163. package/dist/platforma.d.ts +0 -24
  164. package/dist/platforma.d.ts.map +0 -1
  165. package/dist/run.d.ts +0 -13
  166. package/dist/run.d.ts.map +0 -1
  167. package/dist/state.d.ts +0 -63
  168. package/dist/state.d.ts.map +0 -1
  169. package/dist/templates/compose.d.ts +0 -14
  170. package/dist/templates/compose.d.ts.map +0 -1
  171. package/dist/templates/pl-config.d.ts +0 -6
  172. package/dist/templates/pl-config.d.ts.map +0 -1
  173. package/dist/templates/types.d.ts +0 -138
  174. package/dist/templates/types.d.ts.map +0 -1
  175. package/dist/util.d.ts +0 -18
  176. package/dist/util.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"arg-parser.js","sources":["../../../../src/commands/svc/create/arg-parser.ts"],"sourcesContent":["/**\n * Enhanced command line argument parser for OCLIF commands\n * Handles both known and unknown flags\n */\n\nexport interface ParsedArgs {\n instanceName: string;\n knownFlags: Record<string, any>;\n unknownFlags: string[];\n positionalArgs: string[];\n}\n\nexport interface FlagDefinition {\n name: string;\n type: \"string\" | \"boolean\" | \"number\" | \"array\";\n required?: boolean;\n default?: any;\n multiple?: boolean;\n}\n\nexport class ArgParser {\n private knownFlags: Set<string>;\n private flagDefinitions: Map<string, FlagDefinition>;\n\n constructor(flags: Record<string, any>) {\n this.knownFlags = new Set(Object.keys(flags));\n this.flagDefinitions = new Map();\n\n // Analyze flag definitions\n for (const [name, flag] of Object.entries(flags)) {\n if (flag.type) {\n this.flagDefinitions.set(name, {\n name,\n type: flag.type,\n required: flag.required || false,\n default: flag.default,\n multiple: flag.multiple || false,\n });\n }\n }\n }\n\n /**\n * Parse command line arguments\n */\n parse(argv: string[]): ParsedArgs {\n const result: ParsedArgs = {\n instanceName: \"\",\n knownFlags: {},\n unknownFlags: [],\n positionalArgs: [],\n };\n\n let i = 0;\n while (i < argv.length) {\n const arg = argv[i];\n\n if (arg.startsWith(\"--\")) {\n // Handle flag\n if (arg.includes(\"=\")) {\n // Flag with value: --flag=value\n const [flagName, value] = arg.split(\"=\", 2);\n const cleanFlagName = flagName.substring(2);\n\n if (this.knownFlags.has(cleanFlagName)) {\n result.knownFlags[cleanFlagName] = this.parseFlagValue(cleanFlagName, value);\n } else {\n result.unknownFlags.push(arg);\n }\n } else {\n // Flag without value: --flag or --flag value\n const flagName = arg.substring(2);\n\n if (this.knownFlags.has(flagName)) {\n const flagDef = this.flagDefinitions.get(flagName);\n\n if (flagDef?.type === \"boolean\") {\n // Boolean flag\n result.knownFlags[flagName] = true;\n } else if (i + 1 < argv.length && !argv[i + 1].startsWith(\"-\")) {\n // Flag with value in next argument\n const value = argv[i + 1];\n result.knownFlags[flagName] = this.parseFlagValue(flagName, value);\n i++; // Skip next argument\n } else {\n // Flag without value\n result.knownFlags[flagName] = true;\n }\n } else {\n result.unknownFlags.push(arg);\n }\n }\n } else if (arg.startsWith(\"-\") && arg.length > 1) {\n // Short flags: -f, -abc\n const shortFlags = arg.substring(1).split(\"\");\n for (const shortFlag of shortFlags) {\n // Find long name for short flag\n const longFlagName = this.findLongFlagName(shortFlag);\n if (longFlagName) {\n result.knownFlags[longFlagName] = true;\n } else {\n result.unknownFlags.push(`-${shortFlag}`);\n }\n }\n } else {\n // Positional argument\n if (!result.instanceName) {\n result.instanceName = arg;\n } else {\n result.positionalArgs.push(arg);\n }\n }\n\n i++;\n }\n\n // Set default values\n this.setDefaultValues(result.knownFlags);\n\n return result;\n }\n\n /**\n * Parse flag value according to its type\n */\n private parseFlagValue(flagName: string, value: string): any {\n const flagDef = this.flagDefinitions.get(flagName);\n\n if (!flagDef) {\n return value;\n }\n\n switch (flagDef.type) {\n case \"number\":\n const num = parseFloat(value);\n if (isNaN(num)) {\n throw new Error(`Invalid number value for flag --${flagName}: ${value}`);\n }\n return num;\n\n case \"boolean\":\n if (value === \"true\" || value === \"1\") return true;\n if (value === \"false\" || value === \"0\") return false;\n return Boolean(value);\n\n case \"array\":\n if (flagDef.multiple) {\n // For multiple flags create array\n // This will be handled in main parse method\n return [value];\n }\n return value;\n\n default:\n return value;\n }\n }\n\n /**\n * Find long flag name by short flag\n */\n private findLongFlagName(shortFlag: string): string | null {\n // Simple implementation - can be extended\n for (const flagName of this.knownFlags) {\n if (flagName.startsWith(shortFlag)) {\n return flagName;\n }\n }\n return null;\n }\n\n /**\n * Set default values for flags\n */\n private setDefaultValues(flags: Record<string, any>): void {\n for (const [name, flagDef] of this.flagDefinitions) {\n if (flagDef.default !== undefined && flags[name] === undefined) {\n flags[name] = flagDef.default;\n }\n }\n }\n\n /**\n * Validate required flags\n */\n validateRequired(flags: Record<string, any>): string[] {\n const errors: string[] = [];\n\n for (const [name, flagDef] of this.flagDefinitions) {\n if (flagDef.required && flags[name] === undefined) {\n errors.push(`Required flag --${name} is missing`);\n }\n }\n\n return errors;\n }\n}\n"],"names":[],"mappings":"AAAA;;;AAGG;MAiBU,SAAS,CAAA;AACZ,IAAA,UAAU;AACV,IAAA,eAAe;AAEvB,IAAA,WAAA,CAAY,KAA0B,EAAA;AACpC,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE;;AAGhC,QAAA,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAChD,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE;oBAC7B,IAAI;oBACJ,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,oBAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;oBAChC,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,oBAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;AACjC,iBAAA,CAAC;YACJ;QACF;IACF;AAEA;;AAEG;AACH,IAAA,KAAK,CAAC,IAAc,EAAA;AAClB,QAAA,MAAM,MAAM,GAAe;AACzB,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,cAAc,EAAE,EAAE;SACnB;QAED,IAAI,CAAC,GAAG,CAAC;AACT,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AACtB,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AAEnB,YAAA,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;;AAExB,gBAAA,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;;AAErB,oBAAA,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;oBAC3C,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;oBAE3C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;AACtC,wBAAA,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,KAAK,CAAC;oBAC9E;yBAAO;AACL,wBAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;oBAC/B;gBACF;qBAAO;;oBAEL,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;oBAEjC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;wBACjC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;AAElD,wBAAA,IAAI,OAAO,EAAE,IAAI,KAAK,SAAS,EAAE;;AAE/B,4BAAA,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI;wBACpC;6BAAO,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;;4BAE9D,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACzB,4BAAA,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC;4BAClE,CAAC,EAAE,CAAC;wBACN;6BAAO;;AAEL,4BAAA,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI;wBACpC;oBACF;yBAAO;AACL,wBAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;oBAC/B;gBACF;YACF;AAAO,iBAAA,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;;AAEhD,gBAAA,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;AAC7C,gBAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;;oBAElC,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;oBACrD,IAAI,YAAY,EAAE;AAChB,wBAAA,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,IAAI;oBACxC;yBAAO;wBACL,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,CAAC;oBAC3C;gBACF;YACF;iBAAO;;AAEL,gBAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;AACxB,oBAAA,MAAM,CAAC,YAAY,GAAG,GAAG;gBAC3B;qBAAO;AACL,oBAAA,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;gBACjC;YACF;AAEA,YAAA,CAAC,EAAE;QACL;;AAGA,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC;AAExC,QAAA,OAAO,MAAM;IACf;AAEA;;AAEG;IACK,cAAc,CAAC,QAAgB,EAAE,KAAa,EAAA;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;QAElD,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,QAAQ,OAAO,CAAC,IAAI;AAClB,YAAA,KAAK,QAAQ;AACX,gBAAA,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC;AAC7B,gBAAA,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;oBACd,MAAM,IAAI,KAAK,CAAC,CAAA,gCAAA,EAAmC,QAAQ,CAAA,EAAA,EAAK,KAAK,CAAA,CAAE,CAAC;gBAC1E;AACA,gBAAA,OAAO,GAAG;AAEZ,YAAA,KAAK,SAAS;AACZ,gBAAA,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG;AAAE,oBAAA,OAAO,IAAI;AAClD,gBAAA,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,GAAG;AAAE,oBAAA,OAAO,KAAK;AACpD,gBAAA,OAAO,OAAO,CAAC,KAAK,CAAC;AAEvB,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,OAAO,CAAC,QAAQ,EAAE;;;oBAGpB,OAAO,CAAC,KAAK,CAAC;gBAChB;AACA,gBAAA,OAAO,KAAK;AAEd,YAAA;AACE,gBAAA,OAAO,KAAK;;IAElB;AAEA;;AAEG;AACK,IAAA,gBAAgB,CAAC,SAAiB,EAAA;;AAExC,QAAA,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;AACtC,YAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;AAClC,gBAAA,OAAO,QAAQ;YACjB;QACF;AACA,QAAA,OAAO,IAAI;IACb;AAEA;;AAEG;AACK,IAAA,gBAAgB,CAAC,KAA0B,EAAA;QACjD,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE;AAClD,YAAA,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;AAC9D,gBAAA,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO;YAC/B;QACF;IACF;AAEA;;AAEG;AACH,IAAA,gBAAgB,CAAC,KAA0B,EAAA;QACzC,MAAM,MAAM,GAAa,EAAE;QAE3B,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE;YAClD,IAAI,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;AACjD,gBAAA,MAAM,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAA,WAAA,CAAa,CAAC;YACnD;QACF;AAEA,QAAA,OAAO,MAAM;IACf;AACD;;;;"}
1
+ {"version":3,"file":"arg-parser.js","names":[],"sources":["../../../../src/commands/svc/create/arg-parser.ts"],"sourcesContent":["/**\n * Enhanced command line argument parser for OCLIF commands\n * Handles both known and unknown flags\n */\n\nexport interface ParsedArgs {\n instanceName: string;\n knownFlags: Record<string, any>;\n unknownFlags: string[];\n positionalArgs: string[];\n}\n\nexport interface FlagDefinition {\n name: string;\n type: \"string\" | \"boolean\" | \"number\" | \"array\";\n required?: boolean;\n default?: any;\n multiple?: boolean;\n}\n\nexport class ArgParser {\n private knownFlags: Set<string>;\n private flagDefinitions: Map<string, FlagDefinition>;\n\n constructor(flags: Record<string, any>) {\n this.knownFlags = new Set(Object.keys(flags));\n this.flagDefinitions = new Map();\n\n // Analyze flag definitions\n for (const [name, flag] of Object.entries(flags)) {\n if (flag.type) {\n this.flagDefinitions.set(name, {\n name,\n type: flag.type,\n required: flag.required || false,\n default: flag.default,\n multiple: flag.multiple || false,\n });\n }\n }\n }\n\n /**\n * Parse command line arguments\n */\n parse(argv: string[]): ParsedArgs {\n const result: ParsedArgs = {\n instanceName: \"\",\n knownFlags: {},\n unknownFlags: [],\n positionalArgs: [],\n };\n\n let i = 0;\n while (i < argv.length) {\n const arg = argv[i];\n\n if (arg.startsWith(\"--\")) {\n // Handle flag\n if (arg.includes(\"=\")) {\n // Flag with value: --flag=value\n const [flagName, value] = arg.split(\"=\", 2);\n const cleanFlagName = flagName.substring(2);\n\n if (this.knownFlags.has(cleanFlagName)) {\n result.knownFlags[cleanFlagName] = this.parseFlagValue(cleanFlagName, value);\n } else {\n result.unknownFlags.push(arg);\n }\n } else {\n // Flag without value: --flag or --flag value\n const flagName = arg.substring(2);\n\n if (this.knownFlags.has(flagName)) {\n const flagDef = this.flagDefinitions.get(flagName);\n\n if (flagDef?.type === \"boolean\") {\n // Boolean flag\n result.knownFlags[flagName] = true;\n } else if (i + 1 < argv.length && !argv[i + 1].startsWith(\"-\")) {\n // Flag with value in next argument\n const value = argv[i + 1];\n result.knownFlags[flagName] = this.parseFlagValue(flagName, value);\n i++; // Skip next argument\n } else {\n // Flag without value\n result.knownFlags[flagName] = true;\n }\n } else {\n result.unknownFlags.push(arg);\n }\n }\n } else if (arg.startsWith(\"-\") && arg.length > 1) {\n // Short flags: -f, -abc\n const shortFlags = arg.substring(1).split(\"\");\n for (const shortFlag of shortFlags) {\n // Find long name for short flag\n const longFlagName = this.findLongFlagName(shortFlag);\n if (longFlagName) {\n result.knownFlags[longFlagName] = true;\n } else {\n result.unknownFlags.push(`-${shortFlag}`);\n }\n }\n } else {\n // Positional argument\n if (!result.instanceName) {\n result.instanceName = arg;\n } else {\n result.positionalArgs.push(arg);\n }\n }\n\n i++;\n }\n\n // Set default values\n this.setDefaultValues(result.knownFlags);\n\n return result;\n }\n\n /**\n * Parse flag value according to its type\n */\n private parseFlagValue(flagName: string, value: string): any {\n const flagDef = this.flagDefinitions.get(flagName);\n\n if (!flagDef) {\n return value;\n }\n\n switch (flagDef.type) {\n case \"number\":\n const num = parseFloat(value);\n if (isNaN(num)) {\n throw new Error(`Invalid number value for flag --${flagName}: ${value}`);\n }\n return num;\n\n case \"boolean\":\n if (value === \"true\" || value === \"1\") return true;\n if (value === \"false\" || value === \"0\") return false;\n return Boolean(value);\n\n case \"array\":\n if (flagDef.multiple) {\n // For multiple flags create array\n // This will be handled in main parse method\n return [value];\n }\n return value;\n\n default:\n return value;\n }\n }\n\n /**\n * Find long flag name by short flag\n */\n private findLongFlagName(shortFlag: string): string | null {\n // Simple implementation - can be extended\n for (const flagName of this.knownFlags) {\n if (flagName.startsWith(shortFlag)) {\n return flagName;\n }\n }\n return null;\n }\n\n /**\n * Set default values for flags\n */\n private setDefaultValues(flags: Record<string, any>): void {\n for (const [name, flagDef] of this.flagDefinitions) {\n if (flagDef.default !== undefined && flags[name] === undefined) {\n flags[name] = flagDef.default;\n }\n }\n }\n\n /**\n * Validate required flags\n */\n validateRequired(flags: Record<string, any>): string[] {\n const errors: string[] = [];\n\n for (const [name, flagDef] of this.flagDefinitions) {\n if (flagDef.required && flags[name] === undefined) {\n errors.push(`Required flag --${name} is missing`);\n }\n }\n\n return errors;\n }\n}\n"],"mappings":"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"}
@@ -1,98 +1,80 @@
1
- 'use strict';
1
+ const require_runtime = require('../../../../_virtual/_rolldown/runtime.cjs');
2
+ const require_cmd_opts = require('../../../../cmd-opts.cjs');
3
+ const require_util = require('../../../../util.cjs');
4
+ const require_state = require('../../../../state.cjs');
5
+ const require_core = require('../../../../core.cjs');
6
+ const require_arg_parser = require('../arg-parser.cjs');
7
+ let _oclif_core = require("@oclif/core");
8
+ let node_path = require("node:path");
9
+ node_path = require_runtime.__toESM(node_path);
2
10
 
3
- var core = require('@oclif/core');
4
- var path = require('node:path');
5
- var core$1 = require('../../../../core.cjs');
6
- var cmdOpts = require('../../../../cmd-opts.cjs');
7
- var util = require('../../../../util.cjs');
8
- var state = require('../../../../state.cjs');
9
- var argParser = require('../arg-parser.cjs');
11
+ //#region src/commands/svc/create/docker/s3.ts
12
+ var S3 = class S3 extends _oclif_core.Command {
13
+ static description = "Run Platforma Backend service as docker container on current host with MinIO as local S3 storage";
14
+ static examples = ["<%= config.bin %> <%= command.id %>"];
15
+ static flags = {
16
+ ...require_cmd_opts.GlobalFlags,
17
+ ...require_cmd_opts.AddressesFlags,
18
+ ...require_cmd_opts.S3AddressesFlags,
19
+ ...require_cmd_opts.ImageFlag,
20
+ ...require_cmd_opts.VersionFlag,
21
+ ...require_cmd_opts.ArchFlag,
22
+ ...require_cmd_opts.AuthFlags,
23
+ ...require_cmd_opts.LicenseFlags,
24
+ ...require_cmd_opts.MountFlag,
25
+ ...require_cmd_opts.StorageFlag,
26
+ ...require_cmd_opts.MinioPresignHostFlag
27
+ };
28
+ static args = { name: _oclif_core.Args.string({ required: true }) };
29
+ async run() {
30
+ const parser = new require_arg_parser.ArgParser(S3.flags);
31
+ const parsed = parser.parse(this.argv);
32
+ const errors = parser.validateRequired(parsed.knownFlags);
33
+ if (errors.length > 0) throw new Error(`Validation errors:\n${errors.join("\n")}`);
34
+ const instanceName = parsed.instanceName;
35
+ const flags = parsed.knownFlags;
36
+ const backendCommands = parsed.unknownFlags;
37
+ if (flags["log-level"]) backendCommands.push(`--log-level=${flags["log-level"]}`);
38
+ if (!flags["s3-port"]) flags["s3-port"] = 9e3;
39
+ if (!flags["s3-console-port"]) flags["s3-console-port"] = 9001;
40
+ const logger = require_util.createLogger(flags["log-level"] || "info");
41
+ const core = new require_core.default(logger);
42
+ core.mergeLicenseEnvs(flags);
43
+ const authEnabled = flags["auth-enabled"];
44
+ const authOptions = authEnabled ? {
45
+ enabled: authEnabled,
46
+ drivers: core.initAuthDriversList(flags, ".")
47
+ } : void 0;
48
+ const storage = flags.storage ? node_path.default.join(".", flags.storage) : require_state.default.instanceDir(instanceName);
49
+ const mounts = [];
50
+ for (const p of flags.mount ?? []) mounts.push({ hostPath: p });
51
+ const platformOverride = flags.arch ? `linux/${flags.arch}` : void 0;
52
+ const presignHost = flags["minio-presign-host"] ? "minio" : "localhost";
53
+ core.createDockerS3(instanceName, storage, {
54
+ image: flags.image,
55
+ version: flags.version,
56
+ license: flags["license"],
57
+ licenseFile: flags["license-file"],
58
+ platformOverride,
59
+ customMounts: mounts,
60
+ auth: authOptions,
61
+ grpcAddr: flags["grpc-listen"],
62
+ grpcPort: flags["grpc-port"],
63
+ monitoringAddr: flags["monitoring-listen"],
64
+ monitoringPort: flags["monitoring-port"],
65
+ debugAddr: flags["debug-listen"],
66
+ debugPort: flags["debug-port"],
67
+ s3Port: flags["s3-port"],
68
+ s3ConsolePort: flags["s3-console-port"],
69
+ presignHost,
70
+ backendCommands
71
+ });
72
+ logger.info(`Instance '${instanceName}' was created. To start it run 'up' command`);
73
+ if (flags["minio-presign-host"]) logger.info(" NOTE: make sure you have 'minio' host in your hosts file as 127.0.0.1 address");
74
+ if (backendCommands.length > 0) logger.info(`Unknown flags will be passed to backend: ${backendCommands.join(" ")}`);
75
+ }
76
+ };
10
77
 
11
- class S3 extends core.Command {
12
- static description = "Run Platforma Backend service as docker container on current host with MinIO as local S3 storage";
13
- static examples = ["<%= config.bin %> <%= command.id %>"];
14
- static flags = {
15
- ...cmdOpts.GlobalFlags,
16
- ...cmdOpts.AddressesFlags,
17
- ...cmdOpts.S3AddressesFlags,
18
- ...cmdOpts.ImageFlag,
19
- ...cmdOpts.VersionFlag,
20
- ...cmdOpts.ArchFlag,
21
- ...cmdOpts.AuthFlags,
22
- ...cmdOpts.LicenseFlags,
23
- ...cmdOpts.MountFlag,
24
- ...cmdOpts.StorageFlag,
25
- ...cmdOpts.MinioPresignHostFlag,
26
- };
27
- static args = {
28
- name: core.Args.string({ required: true }),
29
- };
30
- async run() {
31
- // Use custom parser instead of OCLIF parse
32
- const parser = new argParser.ArgParser(S3.flags);
33
- const parsed = parser.parse(this.argv);
34
- // Validate required flags
35
- const errors = parser.validateRequired(parsed.knownFlags);
36
- if (errors.length > 0) {
37
- throw new Error(`Validation errors:\n${errors.join("\n")}`);
38
- }
39
- const instanceName = parsed.instanceName;
40
- const flags = parsed.knownFlags;
41
- const backendCommands = parsed.unknownFlags;
42
- if (flags["log-level"]) {
43
- backendCommands.push(`--log-level=${flags["log-level"]}`);
44
- }
45
- // Set default values for S3-specific flags
46
- if (!flags["s3-port"])
47
- flags["s3-port"] = 9000;
48
- if (!flags["s3-console-port"])
49
- flags["s3-console-port"] = 9001;
50
- const logger = util.createLogger(flags["log-level"] || "info");
51
- const core = new core$1.default(logger);
52
- core.mergeLicenseEnvs(flags);
53
- const authEnabled = flags["auth-enabled"];
54
- const authOptions = authEnabled
55
- ? {
56
- enabled: authEnabled,
57
- drivers: core.initAuthDriversList(flags, "."),
58
- }
59
- : undefined;
60
- const storage = flags.storage ? path.join(".", flags.storage) : state.instanceDir(instanceName);
61
- const mounts = [];
62
- for (const p of flags.mount ?? []) {
63
- mounts.push({ hostPath: p });
64
- }
65
- const platformOverride = flags.arch ? `linux/${flags.arch}` : undefined;
66
- const presignHost = flags["minio-presign-host"] ? "minio" : "localhost";
67
- core.createDockerS3(instanceName, storage, {
68
- image: flags.image,
69
- version: flags.version,
70
- license: flags["license"],
71
- licenseFile: flags["license-file"],
72
- platformOverride: platformOverride,
73
- customMounts: mounts,
74
- auth: authOptions,
75
- grpcAddr: flags["grpc-listen"],
76
- grpcPort: flags["grpc-port"],
77
- monitoringAddr: flags["monitoring-listen"],
78
- monitoringPort: flags["monitoring-port"],
79
- debugAddr: flags["debug-listen"],
80
- debugPort: flags["debug-port"],
81
- s3Port: flags["s3-port"],
82
- s3ConsolePort: flags["s3-console-port"],
83
- presignHost: presignHost,
84
- backendCommands: backendCommands,
85
- });
86
- logger.info(`Instance '${instanceName}' was created. To start it run 'up' command`);
87
- if (flags["minio-presign-host"]) {
88
- logger.info(" NOTE: make sure you have 'minio' host in your hosts file as 127.0.0.1 address");
89
- }
90
- // Log unknown flags that will be passed to backend
91
- if (backendCommands.length > 0) {
92
- logger.info(`Unknown flags will be passed to backend: ${backendCommands.join(" ")}`);
93
- }
94
- }
95
- }
96
-
97
- module.exports = S3;
98
- //# sourceMappingURL=s3.cjs.map
78
+ //#endregion
79
+ exports.default = S3;
80
+ //# sourceMappingURL=s3.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"s3.cjs","sources":["../../../../../src/commands/svc/create/docker/s3.ts"],"sourcesContent":["import { Command, Args } from \"@oclif/core\";\nimport path from \"node:path\";\nimport type * as types from \"../../../../templates/types\";\nimport Core from \"../../../../core\";\nimport * as cmdOpts from \"../../../../cmd-opts\";\nimport * as util from \"../../../../util\";\nimport state from \"../../../../state\";\nimport { ArgParser } from \"../arg-parser\";\n\nexport default class S3 extends Command {\n static override description =\n \"Run Platforma Backend service as docker container on current host with MinIO as local S3 storage\";\n\n static override examples = [\"<%= config.bin %> <%= command.id %>\"];\n\n static override flags = {\n ...cmdOpts.GlobalFlags,\n\n ...cmdOpts.AddressesFlags,\n ...cmdOpts.S3AddressesFlags,\n ...cmdOpts.ImageFlag,\n ...cmdOpts.VersionFlag,\n ...cmdOpts.ArchFlag,\n\n ...cmdOpts.AuthFlags,\n ...cmdOpts.LicenseFlags,\n\n ...cmdOpts.MountFlag,\n ...cmdOpts.StorageFlag,\n ...cmdOpts.MinioPresignHostFlag,\n };\n\n static override args = {\n name: Args.string({ required: true }),\n };\n\n public async run(): Promise<void> {\n // Use custom parser instead of OCLIF parse\n const parser = new ArgParser(S3.flags);\n const parsed = parser.parse(this.argv);\n\n // Validate required flags\n const errors = parser.validateRequired(parsed.knownFlags);\n if (errors.length > 0) {\n throw new Error(`Validation errors:\\n${errors.join(\"\\n\")}`);\n }\n\n const instanceName = parsed.instanceName;\n const flags = parsed.knownFlags;\n\n const backendCommands = parsed.unknownFlags;\n if (flags[\"log-level\"]) {\n backendCommands.push(`--log-level=${flags[\"log-level\"]}`);\n }\n\n // Set default values for S3-specific flags\n if (!flags[\"s3-port\"]) flags[\"s3-port\"] = 9000;\n if (!flags[\"s3-console-port\"]) flags[\"s3-console-port\"] = 9001;\n\n const logger = util.createLogger(flags[\"log-level\"] || \"info\");\n const core = new Core(logger);\n core.mergeLicenseEnvs(flags);\n\n const authEnabled = flags[\"auth-enabled\"];\n const authOptions: types.authOptions | undefined = authEnabled\n ? {\n enabled: authEnabled,\n drivers: core.initAuthDriversList(flags, \".\"),\n }\n : undefined;\n\n const storage = flags.storage ? path.join(\".\", flags.storage) : state.instanceDir(instanceName);\n\n const mounts: { hostPath: string; containerPath?: string }[] = [];\n for (const p of flags.mount ?? []) {\n mounts.push({ hostPath: p });\n }\n\n const platformOverride = flags.arch ? `linux/${flags.arch}` : undefined;\n const presignHost = flags[\"minio-presign-host\"] ? \"minio\" : \"localhost\";\n\n core.createDockerS3(instanceName, storage, {\n image: flags.image,\n version: flags.version,\n\n license: flags[\"license\"],\n licenseFile: flags[\"license-file\"],\n\n platformOverride: platformOverride,\n customMounts: mounts,\n\n auth: authOptions,\n\n grpcAddr: flags[\"grpc-listen\"],\n grpcPort: flags[\"grpc-port\"],\n\n monitoringAddr: flags[\"monitoring-listen\"],\n monitoringPort: flags[\"monitoring-port\"],\n\n debugAddr: flags[\"debug-listen\"],\n debugPort: flags[\"debug-port\"],\n\n s3Port: flags[\"s3-port\"],\n s3ConsolePort: flags[\"s3-console-port\"],\n\n presignHost: presignHost,\n\n backendCommands: backendCommands,\n });\n\n logger.info(`Instance '${instanceName}' was created. To start it run 'up' command`);\n if (flags[\"minio-presign-host\"]) {\n logger.info(\n \" NOTE: make sure you have 'minio' host in your hosts file as 127.0.0.1 address\",\n );\n }\n\n // Log unknown flags that will be passed to backend\n if (backendCommands.length > 0) {\n logger.info(`Unknown flags will be passed to backend: ${backendCommands.join(\" \")}`);\n }\n }\n}\n"],"names":["Command","cmdOpts.GlobalFlags","cmdOpts.AddressesFlags","cmdOpts.S3AddressesFlags","cmdOpts.ImageFlag","cmdOpts.VersionFlag","cmdOpts.ArchFlag","cmdOpts.AuthFlags","cmdOpts.LicenseFlags","cmdOpts.MountFlag","cmdOpts.StorageFlag","cmdOpts.MinioPresignHostFlag","Args","ArgParser","util.createLogger","Core"],"mappings":"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"}
1
+ {"version":3,"file":"s3.cjs","names":["Command","Args","ArgParser","Core","path","state"],"sources":["../../../../../src/commands/svc/create/docker/s3.ts"],"sourcesContent":["import { Command, Args } from \"@oclif/core\";\nimport path from \"node:path\";\nimport type * as types from \"../../../../templates/types\";\nimport Core from \"../../../../core\";\nimport * as cmdOpts from \"../../../../cmd-opts\";\nimport * as util from \"../../../../util\";\nimport state from \"../../../../state\";\nimport { ArgParser } from \"../arg-parser\";\n\nexport default class S3 extends Command {\n static override description =\n \"Run Platforma Backend service as docker container on current host with MinIO as local S3 storage\";\n\n static override examples = [\"<%= config.bin %> <%= command.id %>\"];\n\n static override flags = {\n ...cmdOpts.GlobalFlags,\n\n ...cmdOpts.AddressesFlags,\n ...cmdOpts.S3AddressesFlags,\n ...cmdOpts.ImageFlag,\n ...cmdOpts.VersionFlag,\n ...cmdOpts.ArchFlag,\n\n ...cmdOpts.AuthFlags,\n ...cmdOpts.LicenseFlags,\n\n ...cmdOpts.MountFlag,\n ...cmdOpts.StorageFlag,\n ...cmdOpts.MinioPresignHostFlag,\n };\n\n static override args = {\n name: Args.string({ required: true }),\n };\n\n public async run(): Promise<void> {\n // Use custom parser instead of OCLIF parse\n const parser = new ArgParser(S3.flags);\n const parsed = parser.parse(this.argv);\n\n // Validate required flags\n const errors = parser.validateRequired(parsed.knownFlags);\n if (errors.length > 0) {\n throw new Error(`Validation errors:\\n${errors.join(\"\\n\")}`);\n }\n\n const instanceName = parsed.instanceName;\n const flags = parsed.knownFlags;\n\n const backendCommands = parsed.unknownFlags;\n if (flags[\"log-level\"]) {\n backendCommands.push(`--log-level=${flags[\"log-level\"]}`);\n }\n\n // Set default values for S3-specific flags\n if (!flags[\"s3-port\"]) flags[\"s3-port\"] = 9000;\n if (!flags[\"s3-console-port\"]) flags[\"s3-console-port\"] = 9001;\n\n const logger = util.createLogger(flags[\"log-level\"] || \"info\");\n const core = new Core(logger);\n core.mergeLicenseEnvs(flags);\n\n const authEnabled = flags[\"auth-enabled\"];\n const authOptions: types.authOptions | undefined = authEnabled\n ? {\n enabled: authEnabled,\n drivers: core.initAuthDriversList(flags, \".\"),\n }\n : undefined;\n\n const storage = flags.storage ? path.join(\".\", flags.storage) : state.instanceDir(instanceName);\n\n const mounts: { hostPath: string; containerPath?: string }[] = [];\n for (const p of flags.mount ?? []) {\n mounts.push({ hostPath: p });\n }\n\n const platformOverride = flags.arch ? `linux/${flags.arch}` : undefined;\n const presignHost = flags[\"minio-presign-host\"] ? \"minio\" : \"localhost\";\n\n core.createDockerS3(instanceName, storage, {\n image: flags.image,\n version: flags.version,\n\n license: flags[\"license\"],\n licenseFile: flags[\"license-file\"],\n\n platformOverride: platformOverride,\n customMounts: mounts,\n\n auth: authOptions,\n\n grpcAddr: flags[\"grpc-listen\"],\n grpcPort: flags[\"grpc-port\"],\n\n monitoringAddr: flags[\"monitoring-listen\"],\n monitoringPort: flags[\"monitoring-port\"],\n\n debugAddr: flags[\"debug-listen\"],\n debugPort: flags[\"debug-port\"],\n\n s3Port: flags[\"s3-port\"],\n s3ConsolePort: flags[\"s3-console-port\"],\n\n presignHost: presignHost,\n\n backendCommands: backendCommands,\n });\n\n logger.info(`Instance '${instanceName}' was created. To start it run 'up' command`);\n if (flags[\"minio-presign-host\"]) {\n logger.info(\n \" NOTE: make sure you have 'minio' host in your hosts file as 127.0.0.1 address\",\n );\n }\n\n // Log unknown flags that will be passed to backend\n if (backendCommands.length > 0) {\n logger.info(`Unknown flags will be passed to backend: ${backendCommands.join(\" \")}`);\n }\n }\n}\n"],"mappings":";;;;;;;;;;;AASA,IAAqB,KAArB,MAAqB,WAAWA,oBAAQ;CACtC,OAAgB,cACd;CAEF,OAAgB,WAAW,CAAC,sCAAsC;CAElE,OAAgB,QAAQ;EACtB;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACD;CAED,OAAgB,OAAO,EACrB,MAAMC,iBAAK,OAAO,EAAE,UAAU,MAAM,CAAC,EACtC;CAED,MAAa,MAAqB;EAEhC,MAAM,SAAS,IAAIC,6BAAU,GAAG,MAAM;EACtC,MAAM,SAAS,OAAO,MAAM,KAAK,KAAK;EAGtC,MAAM,SAAS,OAAO,iBAAiB,OAAO,WAAW;AACzD,MAAI,OAAO,SAAS,EAClB,OAAM,IAAI,MAAM,uBAAuB,OAAO,KAAK,KAAK,GAAG;EAG7D,MAAM,eAAe,OAAO;EAC5B,MAAM,QAAQ,OAAO;EAErB,MAAM,kBAAkB,OAAO;AAC/B,MAAI,MAAM,aACR,iBAAgB,KAAK,eAAe,MAAM,eAAe;AAI3D,MAAI,CAAC,MAAM,WAAY,OAAM,aAAa;AAC1C,MAAI,CAAC,MAAM,mBAAoB,OAAM,qBAAqB;EAE1D,MAAM,mCAA2B,MAAM,gBAAgB,OAAO;EAC9D,MAAM,OAAO,IAAIC,qBAAK,OAAO;AAC7B,OAAK,iBAAiB,MAAM;EAE5B,MAAM,cAAc,MAAM;EAC1B,MAAM,cAA6C,cAC/C;GACE,SAAS;GACT,SAAS,KAAK,oBAAoB,OAAO,IAAI;GAC9C,GACD;EAEJ,MAAM,UAAU,MAAM,UAAUC,kBAAK,KAAK,KAAK,MAAM,QAAQ,GAAGC,sBAAM,YAAY,aAAa;EAE/F,MAAM,SAAyD,EAAE;AACjE,OAAK,MAAM,KAAK,MAAM,SAAS,EAAE,CAC/B,QAAO,KAAK,EAAE,UAAU,GAAG,CAAC;EAG9B,MAAM,mBAAmB,MAAM,OAAO,SAAS,MAAM,SAAS;EAC9D,MAAM,cAAc,MAAM,wBAAwB,UAAU;AAE5D,OAAK,eAAe,cAAc,SAAS;GACzC,OAAO,MAAM;GACb,SAAS,MAAM;GAEf,SAAS,MAAM;GACf,aAAa,MAAM;GAED;GAClB,cAAc;GAEd,MAAM;GAEN,UAAU,MAAM;GAChB,UAAU,MAAM;GAEhB,gBAAgB,MAAM;GACtB,gBAAgB,MAAM;GAEtB,WAAW,MAAM;GACjB,WAAW,MAAM;GAEjB,QAAQ,MAAM;GACd,eAAe,MAAM;GAER;GAEI;GAClB,CAAC;AAEF,SAAO,KAAK,aAAa,aAAa,6CAA6C;AACnF,MAAI,MAAM,sBACR,QAAO,KACL,kFACD;AAIH,MAAI,gBAAgB,SAAS,EAC3B,QAAO,KAAK,4CAA4C,gBAAgB,KAAK,IAAI,GAAG"}
@@ -1,33 +1,38 @@
1
1
  import { Command } from "@oclif/core";
2
- export default class S3 extends Command {
3
- static description: string;
4
- static examples: string[];
5
- static flags: {
6
- "minio-presign-host": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
7
- storage: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
8
- mount: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
9
- license: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
10
- "license-file": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
11
- "auth-ldap-default-dn": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
12
- "auth-ldap-server": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
13
- "auth-htpasswd-file": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
14
- "auth-enabled": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
15
- arch: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
16
- version: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
17
- image: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
18
- "s3-port": import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
19
- "s3-console-port": import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
20
- "grpc-port": import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
21
- "grpc-listen": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
22
- "monitoring-port": import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
23
- "monitoring-listen": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
24
- "debug-port": import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
25
- "debug-listen": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
26
- "log-level": import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
27
- };
28
- static args: {
29
- name: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
30
- };
31
- run(): Promise<void>;
2
+ import * as _oclif_core_interfaces0 from "@oclif/core/interfaces";
3
+
4
+ //#region src/commands/svc/create/docker/s3.d.ts
5
+ declare class S3 extends Command {
6
+ static description: string;
7
+ static examples: string[];
8
+ static flags: {
9
+ "minio-presign-host": _oclif_core_interfaces0.BooleanFlag<boolean>;
10
+ storage: _oclif_core_interfaces0.OptionFlag<string | undefined, _oclif_core_interfaces0.CustomOptions>;
11
+ mount: _oclif_core_interfaces0.OptionFlag<string[] | undefined, _oclif_core_interfaces0.CustomOptions>;
12
+ license: _oclif_core_interfaces0.OptionFlag<string | undefined, _oclif_core_interfaces0.CustomOptions>;
13
+ "license-file": _oclif_core_interfaces0.OptionFlag<string | undefined, _oclif_core_interfaces0.CustomOptions>;
14
+ "auth-ldap-default-dn": _oclif_core_interfaces0.OptionFlag<string | undefined, _oclif_core_interfaces0.CustomOptions>;
15
+ "auth-ldap-server": _oclif_core_interfaces0.OptionFlag<string | undefined, _oclif_core_interfaces0.CustomOptions>;
16
+ "auth-htpasswd-file": _oclif_core_interfaces0.OptionFlag<string | undefined, _oclif_core_interfaces0.CustomOptions>;
17
+ "auth-enabled": _oclif_core_interfaces0.BooleanFlag<boolean>;
18
+ arch: _oclif_core_interfaces0.OptionFlag<string | undefined, _oclif_core_interfaces0.CustomOptions>;
19
+ version: _oclif_core_interfaces0.OptionFlag<string | undefined, _oclif_core_interfaces0.CustomOptions>;
20
+ image: _oclif_core_interfaces0.OptionFlag<string | undefined, _oclif_core_interfaces0.CustomOptions>;
21
+ "s3-port": _oclif_core_interfaces0.OptionFlag<number, _oclif_core_interfaces0.CustomOptions>;
22
+ "s3-console-port": _oclif_core_interfaces0.OptionFlag<number, _oclif_core_interfaces0.CustomOptions>;
23
+ "grpc-port": _oclif_core_interfaces0.OptionFlag<number | undefined, _oclif_core_interfaces0.CustomOptions>;
24
+ "grpc-listen": _oclif_core_interfaces0.OptionFlag<string | undefined, _oclif_core_interfaces0.CustomOptions>;
25
+ "monitoring-port": _oclif_core_interfaces0.OptionFlag<number | undefined, _oclif_core_interfaces0.CustomOptions>;
26
+ "monitoring-listen": _oclif_core_interfaces0.OptionFlag<string | undefined, _oclif_core_interfaces0.CustomOptions>;
27
+ "debug-port": _oclif_core_interfaces0.OptionFlag<number | undefined, _oclif_core_interfaces0.CustomOptions>;
28
+ "debug-listen": _oclif_core_interfaces0.OptionFlag<string | undefined, _oclif_core_interfaces0.CustomOptions>;
29
+ "log-level": _oclif_core_interfaces0.OptionFlag<string, _oclif_core_interfaces0.CustomOptions>;
30
+ };
31
+ static args: {
32
+ name: _oclif_core_interfaces0.Arg<string, Record<string, unknown>>;
33
+ };
34
+ run(): Promise<void>;
32
35
  }
36
+ //#endregion
37
+ export { S3 };
33
38
  //# sourceMappingURL=s3.d.ts.map
@@ -1,96 +1,78 @@
1
- import { Command, Args } from '@oclif/core';
2
- import path from 'node:path';
3
- import Core from '../../../../core.js';
4
- import { MinioPresignHostFlag, StorageFlag, MountFlag, LicenseFlags, AuthFlags, ArchFlag, VersionFlag, ImageFlag, S3AddressesFlags, AddressesFlags, GlobalFlags } from '../../../../cmd-opts.js';
5
- import { createLogger } from '../../../../util.js';
6
- import state from '../../../../state.js';
7
- import { ArgParser } from '../arg-parser.js';
1
+ import { AddressesFlags, ArchFlag, AuthFlags, GlobalFlags, ImageFlag, LicenseFlags, MinioPresignHostFlag, MountFlag, S3AddressesFlags, StorageFlag, VersionFlag } from "../../../../cmd-opts.js";
2
+ import { createLogger } from "../../../../util.js";
3
+ import state_default from "../../../../state.js";
4
+ import Core from "../../../../core.js";
5
+ import { ArgParser } from "../arg-parser.js";
6
+ import { Args, Command } from "@oclif/core";
7
+ import path from "node:path";
8
8
 
9
- class S3 extends Command {
10
- static description = "Run Platforma Backend service as docker container on current host with MinIO as local S3 storage";
11
- static examples = ["<%= config.bin %> <%= command.id %>"];
12
- static flags = {
13
- ...GlobalFlags,
14
- ...AddressesFlags,
15
- ...S3AddressesFlags,
16
- ...ImageFlag,
17
- ...VersionFlag,
18
- ...ArchFlag,
19
- ...AuthFlags,
20
- ...LicenseFlags,
21
- ...MountFlag,
22
- ...StorageFlag,
23
- ...MinioPresignHostFlag,
24
- };
25
- static args = {
26
- name: Args.string({ required: true }),
27
- };
28
- async run() {
29
- // Use custom parser instead of OCLIF parse
30
- const parser = new ArgParser(S3.flags);
31
- const parsed = parser.parse(this.argv);
32
- // Validate required flags
33
- const errors = parser.validateRequired(parsed.knownFlags);
34
- if (errors.length > 0) {
35
- throw new Error(`Validation errors:\n${errors.join("\n")}`);
36
- }
37
- const instanceName = parsed.instanceName;
38
- const flags = parsed.knownFlags;
39
- const backendCommands = parsed.unknownFlags;
40
- if (flags["log-level"]) {
41
- backendCommands.push(`--log-level=${flags["log-level"]}`);
42
- }
43
- // Set default values for S3-specific flags
44
- if (!flags["s3-port"])
45
- flags["s3-port"] = 9000;
46
- if (!flags["s3-console-port"])
47
- flags["s3-console-port"] = 9001;
48
- const logger = createLogger(flags["log-level"] || "info");
49
- const core = new Core(logger);
50
- core.mergeLicenseEnvs(flags);
51
- const authEnabled = flags["auth-enabled"];
52
- const authOptions = authEnabled
53
- ? {
54
- enabled: authEnabled,
55
- drivers: core.initAuthDriversList(flags, "."),
56
- }
57
- : undefined;
58
- const storage = flags.storage ? path.join(".", flags.storage) : state.instanceDir(instanceName);
59
- const mounts = [];
60
- for (const p of flags.mount ?? []) {
61
- mounts.push({ hostPath: p });
62
- }
63
- const platformOverride = flags.arch ? `linux/${flags.arch}` : undefined;
64
- const presignHost = flags["minio-presign-host"] ? "minio" : "localhost";
65
- core.createDockerS3(instanceName, storage, {
66
- image: flags.image,
67
- version: flags.version,
68
- license: flags["license"],
69
- licenseFile: flags["license-file"],
70
- platformOverride: platformOverride,
71
- customMounts: mounts,
72
- auth: authOptions,
73
- grpcAddr: flags["grpc-listen"],
74
- grpcPort: flags["grpc-port"],
75
- monitoringAddr: flags["monitoring-listen"],
76
- monitoringPort: flags["monitoring-port"],
77
- debugAddr: flags["debug-listen"],
78
- debugPort: flags["debug-port"],
79
- s3Port: flags["s3-port"],
80
- s3ConsolePort: flags["s3-console-port"],
81
- presignHost: presignHost,
82
- backendCommands: backendCommands,
83
- });
84
- logger.info(`Instance '${instanceName}' was created. To start it run 'up' command`);
85
- if (flags["minio-presign-host"]) {
86
- logger.info(" NOTE: make sure you have 'minio' host in your hosts file as 127.0.0.1 address");
87
- }
88
- // Log unknown flags that will be passed to backend
89
- if (backendCommands.length > 0) {
90
- logger.info(`Unknown flags will be passed to backend: ${backendCommands.join(" ")}`);
91
- }
92
- }
93
- }
9
+ //#region src/commands/svc/create/docker/s3.ts
10
+ var S3 = class S3 extends Command {
11
+ static description = "Run Platforma Backend service as docker container on current host with MinIO as local S3 storage";
12
+ static examples = ["<%= config.bin %> <%= command.id %>"];
13
+ static flags = {
14
+ ...GlobalFlags,
15
+ ...AddressesFlags,
16
+ ...S3AddressesFlags,
17
+ ...ImageFlag,
18
+ ...VersionFlag,
19
+ ...ArchFlag,
20
+ ...AuthFlags,
21
+ ...LicenseFlags,
22
+ ...MountFlag,
23
+ ...StorageFlag,
24
+ ...MinioPresignHostFlag
25
+ };
26
+ static args = { name: Args.string({ required: true }) };
27
+ async run() {
28
+ const parser = new ArgParser(S3.flags);
29
+ const parsed = parser.parse(this.argv);
30
+ const errors = parser.validateRequired(parsed.knownFlags);
31
+ if (errors.length > 0) throw new Error(`Validation errors:\n${errors.join("\n")}`);
32
+ const instanceName = parsed.instanceName;
33
+ const flags = parsed.knownFlags;
34
+ const backendCommands = parsed.unknownFlags;
35
+ if (flags["log-level"]) backendCommands.push(`--log-level=${flags["log-level"]}`);
36
+ if (!flags["s3-port"]) flags["s3-port"] = 9e3;
37
+ if (!flags["s3-console-port"]) flags["s3-console-port"] = 9001;
38
+ const logger = createLogger(flags["log-level"] || "info");
39
+ const core = new Core(logger);
40
+ core.mergeLicenseEnvs(flags);
41
+ const authEnabled = flags["auth-enabled"];
42
+ const authOptions = authEnabled ? {
43
+ enabled: authEnabled,
44
+ drivers: core.initAuthDriversList(flags, ".")
45
+ } : void 0;
46
+ const storage = flags.storage ? path.join(".", flags.storage) : state_default.instanceDir(instanceName);
47
+ const mounts = [];
48
+ for (const p of flags.mount ?? []) mounts.push({ hostPath: p });
49
+ const platformOverride = flags.arch ? `linux/${flags.arch}` : void 0;
50
+ const presignHost = flags["minio-presign-host"] ? "minio" : "localhost";
51
+ core.createDockerS3(instanceName, storage, {
52
+ image: flags.image,
53
+ version: flags.version,
54
+ license: flags["license"],
55
+ licenseFile: flags["license-file"],
56
+ platformOverride,
57
+ customMounts: mounts,
58
+ auth: authOptions,
59
+ grpcAddr: flags["grpc-listen"],
60
+ grpcPort: flags["grpc-port"],
61
+ monitoringAddr: flags["monitoring-listen"],
62
+ monitoringPort: flags["monitoring-port"],
63
+ debugAddr: flags["debug-listen"],
64
+ debugPort: flags["debug-port"],
65
+ s3Port: flags["s3-port"],
66
+ s3ConsolePort: flags["s3-console-port"],
67
+ presignHost,
68
+ backendCommands
69
+ });
70
+ logger.info(`Instance '${instanceName}' was created. To start it run 'up' command`);
71
+ if (flags["minio-presign-host"]) logger.info(" NOTE: make sure you have 'minio' host in your hosts file as 127.0.0.1 address");
72
+ if (backendCommands.length > 0) logger.info(`Unknown flags will be passed to backend: ${backendCommands.join(" ")}`);
73
+ }
74
+ };
94
75
 
76
+ //#endregion
95
77
  export { S3 as default };
96
- //# sourceMappingURL=s3.js.map
78
+ //# sourceMappingURL=s3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"s3.js","sources":["../../../../../src/commands/svc/create/docker/s3.ts"],"sourcesContent":["import { Command, Args } from \"@oclif/core\";\nimport path from \"node:path\";\nimport type * as types from \"../../../../templates/types\";\nimport Core from \"../../../../core\";\nimport * as cmdOpts from \"../../../../cmd-opts\";\nimport * as util from \"../../../../util\";\nimport state from \"../../../../state\";\nimport { ArgParser } from \"../arg-parser\";\n\nexport default class S3 extends Command {\n static override description =\n \"Run Platforma Backend service as docker container on current host with MinIO as local S3 storage\";\n\n static override examples = [\"<%= config.bin %> <%= command.id %>\"];\n\n static override flags = {\n ...cmdOpts.GlobalFlags,\n\n ...cmdOpts.AddressesFlags,\n ...cmdOpts.S3AddressesFlags,\n ...cmdOpts.ImageFlag,\n ...cmdOpts.VersionFlag,\n ...cmdOpts.ArchFlag,\n\n ...cmdOpts.AuthFlags,\n ...cmdOpts.LicenseFlags,\n\n ...cmdOpts.MountFlag,\n ...cmdOpts.StorageFlag,\n ...cmdOpts.MinioPresignHostFlag,\n };\n\n static override args = {\n name: Args.string({ required: true }),\n };\n\n public async run(): Promise<void> {\n // Use custom parser instead of OCLIF parse\n const parser = new ArgParser(S3.flags);\n const parsed = parser.parse(this.argv);\n\n // Validate required flags\n const errors = parser.validateRequired(parsed.knownFlags);\n if (errors.length > 0) {\n throw new Error(`Validation errors:\\n${errors.join(\"\\n\")}`);\n }\n\n const instanceName = parsed.instanceName;\n const flags = parsed.knownFlags;\n\n const backendCommands = parsed.unknownFlags;\n if (flags[\"log-level\"]) {\n backendCommands.push(`--log-level=${flags[\"log-level\"]}`);\n }\n\n // Set default values for S3-specific flags\n if (!flags[\"s3-port\"]) flags[\"s3-port\"] = 9000;\n if (!flags[\"s3-console-port\"]) flags[\"s3-console-port\"] = 9001;\n\n const logger = util.createLogger(flags[\"log-level\"] || \"info\");\n const core = new Core(logger);\n core.mergeLicenseEnvs(flags);\n\n const authEnabled = flags[\"auth-enabled\"];\n const authOptions: types.authOptions | undefined = authEnabled\n ? {\n enabled: authEnabled,\n drivers: core.initAuthDriversList(flags, \".\"),\n }\n : undefined;\n\n const storage = flags.storage ? path.join(\".\", flags.storage) : state.instanceDir(instanceName);\n\n const mounts: { hostPath: string; containerPath?: string }[] = [];\n for (const p of flags.mount ?? []) {\n mounts.push({ hostPath: p });\n }\n\n const platformOverride = flags.arch ? `linux/${flags.arch}` : undefined;\n const presignHost = flags[\"minio-presign-host\"] ? \"minio\" : \"localhost\";\n\n core.createDockerS3(instanceName, storage, {\n image: flags.image,\n version: flags.version,\n\n license: flags[\"license\"],\n licenseFile: flags[\"license-file\"],\n\n platformOverride: platformOverride,\n customMounts: mounts,\n\n auth: authOptions,\n\n grpcAddr: flags[\"grpc-listen\"],\n grpcPort: flags[\"grpc-port\"],\n\n monitoringAddr: flags[\"monitoring-listen\"],\n monitoringPort: flags[\"monitoring-port\"],\n\n debugAddr: flags[\"debug-listen\"],\n debugPort: flags[\"debug-port\"],\n\n s3Port: flags[\"s3-port\"],\n s3ConsolePort: flags[\"s3-console-port\"],\n\n presignHost: presignHost,\n\n backendCommands: backendCommands,\n });\n\n logger.info(`Instance '${instanceName}' was created. To start it run 'up' command`);\n if (flags[\"minio-presign-host\"]) {\n logger.info(\n \" NOTE: make sure you have 'minio' host in your hosts file as 127.0.0.1 address\",\n );\n }\n\n // Log unknown flags that will be passed to backend\n if (backendCommands.length > 0) {\n logger.info(`Unknown flags will be passed to backend: ${backendCommands.join(\" \")}`);\n }\n }\n}\n"],"names":["cmdOpts.GlobalFlags","cmdOpts.AddressesFlags","cmdOpts.S3AddressesFlags","cmdOpts.ImageFlag","cmdOpts.VersionFlag","cmdOpts.ArchFlag","cmdOpts.AuthFlags","cmdOpts.LicenseFlags","cmdOpts.MountFlag","cmdOpts.StorageFlag","cmdOpts.MinioPresignHostFlag","util.createLogger"],"mappings":"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"}
1
+ {"version":3,"file":"s3.js","names":["cmdOpts.GlobalFlags","cmdOpts.AddressesFlags","cmdOpts.S3AddressesFlags","cmdOpts.ImageFlag","cmdOpts.VersionFlag","cmdOpts.ArchFlag","cmdOpts.AuthFlags","cmdOpts.LicenseFlags","cmdOpts.MountFlag","cmdOpts.StorageFlag","cmdOpts.MinioPresignHostFlag","util.createLogger","state"],"sources":["../../../../../src/commands/svc/create/docker/s3.ts"],"sourcesContent":["import { Command, Args } from \"@oclif/core\";\nimport path from \"node:path\";\nimport type * as types from \"../../../../templates/types\";\nimport Core from \"../../../../core\";\nimport * as cmdOpts from \"../../../../cmd-opts\";\nimport * as util from \"../../../../util\";\nimport state from \"../../../../state\";\nimport { ArgParser } from \"../arg-parser\";\n\nexport default class S3 extends Command {\n static override description =\n \"Run Platforma Backend service as docker container on current host with MinIO as local S3 storage\";\n\n static override examples = [\"<%= config.bin %> <%= command.id %>\"];\n\n static override flags = {\n ...cmdOpts.GlobalFlags,\n\n ...cmdOpts.AddressesFlags,\n ...cmdOpts.S3AddressesFlags,\n ...cmdOpts.ImageFlag,\n ...cmdOpts.VersionFlag,\n ...cmdOpts.ArchFlag,\n\n ...cmdOpts.AuthFlags,\n ...cmdOpts.LicenseFlags,\n\n ...cmdOpts.MountFlag,\n ...cmdOpts.StorageFlag,\n ...cmdOpts.MinioPresignHostFlag,\n };\n\n static override args = {\n name: Args.string({ required: true }),\n };\n\n public async run(): Promise<void> {\n // Use custom parser instead of OCLIF parse\n const parser = new ArgParser(S3.flags);\n const parsed = parser.parse(this.argv);\n\n // Validate required flags\n const errors = parser.validateRequired(parsed.knownFlags);\n if (errors.length > 0) {\n throw new Error(`Validation errors:\\n${errors.join(\"\\n\")}`);\n }\n\n const instanceName = parsed.instanceName;\n const flags = parsed.knownFlags;\n\n const backendCommands = parsed.unknownFlags;\n if (flags[\"log-level\"]) {\n backendCommands.push(`--log-level=${flags[\"log-level\"]}`);\n }\n\n // Set default values for S3-specific flags\n if (!flags[\"s3-port\"]) flags[\"s3-port\"] = 9000;\n if (!flags[\"s3-console-port\"]) flags[\"s3-console-port\"] = 9001;\n\n const logger = util.createLogger(flags[\"log-level\"] || \"info\");\n const core = new Core(logger);\n core.mergeLicenseEnvs(flags);\n\n const authEnabled = flags[\"auth-enabled\"];\n const authOptions: types.authOptions | undefined = authEnabled\n ? {\n enabled: authEnabled,\n drivers: core.initAuthDriversList(flags, \".\"),\n }\n : undefined;\n\n const storage = flags.storage ? path.join(\".\", flags.storage) : state.instanceDir(instanceName);\n\n const mounts: { hostPath: string; containerPath?: string }[] = [];\n for (const p of flags.mount ?? []) {\n mounts.push({ hostPath: p });\n }\n\n const platformOverride = flags.arch ? `linux/${flags.arch}` : undefined;\n const presignHost = flags[\"minio-presign-host\"] ? \"minio\" : \"localhost\";\n\n core.createDockerS3(instanceName, storage, {\n image: flags.image,\n version: flags.version,\n\n license: flags[\"license\"],\n licenseFile: flags[\"license-file\"],\n\n platformOverride: platformOverride,\n customMounts: mounts,\n\n auth: authOptions,\n\n grpcAddr: flags[\"grpc-listen\"],\n grpcPort: flags[\"grpc-port\"],\n\n monitoringAddr: flags[\"monitoring-listen\"],\n monitoringPort: flags[\"monitoring-port\"],\n\n debugAddr: flags[\"debug-listen\"],\n debugPort: flags[\"debug-port\"],\n\n s3Port: flags[\"s3-port\"],\n s3ConsolePort: flags[\"s3-console-port\"],\n\n presignHost: presignHost,\n\n backendCommands: backendCommands,\n });\n\n logger.info(`Instance '${instanceName}' was created. To start it run 'up' command`);\n if (flags[\"minio-presign-host\"]) {\n logger.info(\n \" NOTE: make sure you have 'minio' host in your hosts file as 127.0.0.1 address\",\n );\n }\n\n // Log unknown flags that will be passed to backend\n if (backendCommands.length > 0) {\n logger.info(`Unknown flags will be passed to backend: ${backendCommands.join(\" \")}`);\n }\n }\n}\n"],"mappings":";;;;;;;;;AASA,IAAqB,KAArB,MAAqB,WAAW,QAAQ;CACtC,OAAgB,cACd;CAEF,OAAgB,WAAW,CAAC,sCAAsC;CAElE,OAAgB,QAAQ;EACtB,GAAGA;EAEH,GAAGC;EACH,GAAGC;EACH,GAAGC;EACH,GAAGC;EACH,GAAGC;EAEH,GAAGC;EACH,GAAGC;EAEH,GAAGC;EACH,GAAGC;EACH,GAAGC;EACJ;CAED,OAAgB,OAAO,EACrB,MAAM,KAAK,OAAO,EAAE,UAAU,MAAM,CAAC,EACtC;CAED,MAAa,MAAqB;EAEhC,MAAM,SAAS,IAAI,UAAU,GAAG,MAAM;EACtC,MAAM,SAAS,OAAO,MAAM,KAAK,KAAK;EAGtC,MAAM,SAAS,OAAO,iBAAiB,OAAO,WAAW;AACzD,MAAI,OAAO,SAAS,EAClB,OAAM,IAAI,MAAM,uBAAuB,OAAO,KAAK,KAAK,GAAG;EAG7D,MAAM,eAAe,OAAO;EAC5B,MAAM,QAAQ,OAAO;EAErB,MAAM,kBAAkB,OAAO;AAC/B,MAAI,MAAM,aACR,iBAAgB,KAAK,eAAe,MAAM,eAAe;AAI3D,MAAI,CAAC,MAAM,WAAY,OAAM,aAAa;AAC1C,MAAI,CAAC,MAAM,mBAAoB,OAAM,qBAAqB;EAE1D,MAAM,SAASC,aAAkB,MAAM,gBAAgB,OAAO;EAC9D,MAAM,OAAO,IAAI,KAAK,OAAO;AAC7B,OAAK,iBAAiB,MAAM;EAE5B,MAAM,cAAc,MAAM;EAC1B,MAAM,cAA6C,cAC/C;GACE,SAAS;GACT,SAAS,KAAK,oBAAoB,OAAO,IAAI;GAC9C,GACD;EAEJ,MAAM,UAAU,MAAM,UAAU,KAAK,KAAK,KAAK,MAAM,QAAQ,GAAGC,cAAM,YAAY,aAAa;EAE/F,MAAM,SAAyD,EAAE;AACjE,OAAK,MAAM,KAAK,MAAM,SAAS,EAAE,CAC/B,QAAO,KAAK,EAAE,UAAU,GAAG,CAAC;EAG9B,MAAM,mBAAmB,MAAM,OAAO,SAAS,MAAM,SAAS;EAC9D,MAAM,cAAc,MAAM,wBAAwB,UAAU;AAE5D,OAAK,eAAe,cAAc,SAAS;GACzC,OAAO,MAAM;GACb,SAAS,MAAM;GAEf,SAAS,MAAM;GACf,aAAa,MAAM;GAED;GAClB,cAAc;GAEd,MAAM;GAEN,UAAU,MAAM;GAChB,UAAU,MAAM;GAEhB,gBAAgB,MAAM;GACtB,gBAAgB,MAAM;GAEtB,WAAW,MAAM;GACjB,WAAW,MAAM;GAEjB,QAAQ,MAAM;GACd,eAAe,MAAM;GAER;GAEI;GAClB,CAAC;AAEF,SAAO,KAAK,aAAa,aAAa,6CAA6C;AACnF,MAAI,MAAM,sBACR,QAAO,KACL,kFACD;AAIH,MAAI,gBAAgB,SAAS,EAC3B,QAAO,KAAK,4CAA4C,gBAAgB,KAAK,IAAI,GAAG"}