intershell 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +301 -0
- package/dist/commands/ci/act.d.ts +13 -0
- package/dist/commands/ci/act.d.ts.map +1 -0
- package/dist/commands/ci/act.js +89 -0
- package/dist/commands/ci/act.js.map +1 -0
- package/dist/commands/ci/attach-affected.d.ts +12 -0
- package/dist/commands/ci/attach-affected.d.ts.map +1 -0
- package/dist/commands/ci/attach-affected.js +83 -0
- package/dist/commands/ci/attach-affected.js.map +1 -0
- package/dist/commands/ci/attach-service-ports.d.ts +10 -0
- package/dist/commands/ci/attach-service-ports.d.ts.map +1 -0
- package/dist/commands/ci/attach-service-ports.js +25 -0
- package/dist/commands/ci/attach-service-ports.js.map +1 -0
- package/dist/commands/commit-check.d.ts +13 -0
- package/dist/commands/commit-check.d.ts.map +1 -0
- package/dist/commands/commit-check.js +110 -0
- package/dist/commands/commit-check.js.map +1 -0
- package/dist/commands/commit.d.ts +16 -0
- package/dist/commands/commit.d.ts.map +1 -0
- package/dist/commands/commit.js +91 -0
- package/dist/commands/commit.js.map +1 -0
- package/dist/commands/dev/check.d.ts +13 -0
- package/dist/commands/dev/check.d.ts.map +1 -0
- package/dist/commands/dev/check.js +91 -0
- package/dist/commands/dev/check.js.map +1 -0
- package/dist/commands/dev/cleanup.d.ts +10 -0
- package/dist/commands/dev/cleanup.d.ts.map +1 -0
- package/dist/commands/dev/cleanup.js +28 -0
- package/dist/commands/dev/cleanup.js.map +1 -0
- package/dist/commands/dev/rm.d.ts +12 -0
- package/dist/commands/dev/rm.d.ts.map +1 -0
- package/dist/commands/dev/rm.js +49 -0
- package/dist/commands/dev/rm.js.map +1 -0
- package/dist/commands/dev/setup.d.ts +10 -0
- package/dist/commands/dev/setup.d.ts.map +1 -0
- package/dist/commands/dev/setup.js +40 -0
- package/dist/commands/dev/setup.js.map +1 -0
- package/dist/commands/local/cleanup.d.ts +12 -0
- package/dist/commands/local/cleanup.d.ts.map +1 -0
- package/dist/commands/local/cleanup.js +62 -0
- package/dist/commands/local/cleanup.js.map +1 -0
- package/dist/commands/local/setup.d.ts +11 -0
- package/dist/commands/local/setup.d.ts.map +1 -0
- package/dist/commands/local/setup.js +55 -0
- package/dist/commands/local/setup.js.map +1 -0
- package/dist/commands/local/vscode.d.ts +17 -0
- package/dist/commands/local/vscode.d.ts.map +1 -0
- package/dist/commands/local/vscode.js +94 -0
- package/dist/commands/local/vscode.js.map +1 -0
- package/dist/commands/update-package-json.d.ts +12 -0
- package/dist/commands/update-package-json.d.ts.map +1 -0
- package/dist/commands/update-package-json.js +82 -0
- package/dist/commands/update-package-json.js.map +1 -0
- package/dist/commands/version/apply.d.ts +16 -0
- package/dist/commands/version/apply.d.ts.map +1 -0
- package/dist/commands/version/apply.js +120 -0
- package/dist/commands/version/apply.js.map +1 -0
- package/dist/commands/version/ci.d.ts +12 -0
- package/dist/commands/version/ci.d.ts.map +1 -0
- package/dist/commands/version/ci.js +67 -0
- package/dist/commands/version/ci.js.map +1 -0
- package/dist/commands/version/prepare.d.ts +19 -0
- package/dist/commands/version/prepare.d.ts.map +1 -0
- package/dist/commands/version/prepare.js +153 -0
- package/dist/commands/version/prepare.js.map +1 -0
- package/dist/core/colorify.d.ts +21 -0
- package/dist/core/colorify.d.ts.map +1 -0
- package/dist/core/colorify.js +56 -0
- package/dist/core/colorify.js.map +1 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +3 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/types.d.ts +181 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +5 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/wrapshell.d.ts +19 -0
- package/dist/core/wrapshell.d.ts.map +1 -0
- package/dist/core/wrapshell.js +323 -0
- package/dist/core/wrapshell.js.map +1 -0
- package/dist/entities/affected/affected.d.ts +4 -0
- package/dist/entities/affected/affected.d.ts.map +1 -0
- package/dist/entities/affected/affected.js +20 -0
- package/dist/entities/affected/affected.js.map +1 -0
- package/dist/entities/affected/affected.test.d.ts +2 -0
- package/dist/entities/affected/affected.test.d.ts.map +1 -0
- package/dist/entities/affected/affected.test.js +305 -0
- package/dist/entities/affected/affected.test.js.map +1 -0
- package/dist/entities/affected/index.d.ts +2 -0
- package/dist/entities/affected/index.d.ts.map +1 -0
- package/dist/entities/affected/index.js +2 -0
- package/dist/entities/affected/index.js.map +1 -0
- package/dist/entities/branch/branch.d.ts +8 -0
- package/dist/entities/branch/branch.d.ts.map +1 -0
- package/dist/entities/branch/branch.js +74 -0
- package/dist/entities/branch/branch.js.map +1 -0
- package/dist/entities/branch/branch.test.d.ts +2 -0
- package/dist/entities/branch/branch.test.d.ts.map +1 -0
- package/dist/entities/branch/branch.test.js +316 -0
- package/dist/entities/branch/branch.test.js.map +1 -0
- package/dist/entities/branch/branch.types.d.ts +6 -0
- package/dist/entities/branch/branch.types.d.ts.map +1 -0
- package/dist/entities/branch/branch.types.js +2 -0
- package/dist/entities/branch/branch.types.js.map +1 -0
- package/dist/entities/branch/index.d.ts +3 -0
- package/dist/entities/branch/index.d.ts.map +1 -0
- package/dist/entities/branch/index.js +3 -0
- package/dist/entities/branch/index.js.map +1 -0
- package/dist/entities/commit/commit.d.ts +15 -0
- package/dist/entities/commit/commit.d.ts.map +1 -0
- package/dist/entities/commit/commit.js +196 -0
- package/dist/entities/commit/commit.js.map +1 -0
- package/dist/entities/commit/commit.test.d.ts +26 -0
- package/dist/entities/commit/commit.test.d.ts.map +1 -0
- package/dist/entities/commit/commit.test.js +550 -0
- package/dist/entities/commit/commit.test.js.map +1 -0
- package/dist/entities/commit/commit.types.d.ts +49 -0
- package/dist/entities/commit/commit.types.d.ts.map +1 -0
- package/dist/entities/commit/commit.types.js +31 -0
- package/dist/entities/commit/commit.types.js.map +1 -0
- package/dist/entities/commit/index.d.ts +3 -0
- package/dist/entities/commit/index.d.ts.map +1 -0
- package/dist/entities/commit/index.js +3 -0
- package/dist/entities/commit/index.js.map +1 -0
- package/dist/entities/commit/pr.d.ts +11 -0
- package/dist/entities/commit/pr.d.ts.map +1 -0
- package/dist/entities/commit/pr.js +201 -0
- package/dist/entities/commit/pr.js.map +1 -0
- package/dist/entities/commit/pr.test.d.ts +2 -0
- package/dist/entities/commit/pr.test.d.ts.map +1 -0
- package/dist/entities/commit/pr.test.js +782 -0
- package/dist/entities/commit/pr.test.js.map +1 -0
- package/dist/entities/compose/compose.d.ts +18 -0
- package/dist/entities/compose/compose.d.ts.map +1 -0
- package/dist/entities/compose/compose.js +197 -0
- package/dist/entities/compose/compose.js.map +1 -0
- package/dist/entities/compose/compose.test.d.ts +2 -0
- package/dist/entities/compose/compose.test.d.ts.map +1 -0
- package/dist/entities/compose/compose.test.js +406 -0
- package/dist/entities/compose/compose.test.js.map +1 -0
- package/dist/entities/compose/compose.types.d.ts +77 -0
- package/dist/entities/compose/compose.types.d.ts.map +1 -0
- package/dist/entities/compose/compose.types.js +2 -0
- package/dist/entities/compose/compose.types.js.map +1 -0
- package/dist/entities/compose/index.d.ts +3 -0
- package/dist/entities/compose/index.d.ts.map +1 -0
- package/dist/entities/compose/index.js +3 -0
- package/dist/entities/compose/index.js.map +1 -0
- package/dist/entities/entities.shell.d.ts +29 -0
- package/dist/entities/entities.shell.d.ts.map +1 -0
- package/dist/entities/entities.shell.js +27 -0
- package/dist/entities/entities.shell.js.map +1 -0
- package/dist/entities/entities.shell.test.d.ts +2 -0
- package/dist/entities/entities.shell.test.d.ts.map +1 -0
- package/dist/entities/entities.shell.test.js +23 -0
- package/dist/entities/entities.shell.test.js.map +1 -0
- package/dist/entities/index.d.ts +12 -0
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +12 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/entities/intershell-config/intershell-config.d.ts +11 -0
- package/dist/entities/intershell-config/intershell-config.d.ts.map +1 -0
- package/dist/entities/intershell-config/intershell-config.default.d.ts +188 -0
- package/dist/entities/intershell-config/intershell-config.default.d.ts.map +1 -0
- package/dist/entities/intershell-config/intershell-config.default.js +225 -0
- package/dist/entities/intershell-config/intershell-config.default.js.map +1 -0
- package/dist/entities/intershell-config/intershell-config.js +132 -0
- package/dist/entities/intershell-config/intershell-config.js.map +1 -0
- package/dist/entities/intershell-config/intershell-config.test.d.ts +2 -0
- package/dist/entities/intershell-config/intershell-config.test.d.ts.map +1 -0
- package/dist/entities/intershell-config/intershell-config.test.js +102 -0
- package/dist/entities/intershell-config/intershell-config.test.js.map +1 -0
- package/dist/entities/intershell-config/intershell-config.types.d.ts +103 -0
- package/dist/entities/intershell-config/intershell-config.types.d.ts.map +1 -0
- package/dist/entities/intershell-config/intershell-config.types.js +2 -0
- package/dist/entities/intershell-config/intershell-config.types.js.map +1 -0
- package/dist/entities/package/index.d.ts +4 -0
- package/dist/entities/package/index.d.ts.map +1 -0
- package/dist/entities/package/index.js +4 -0
- package/dist/entities/package/index.js.map +1 -0
- package/dist/entities/package/package.d.ts +49 -0
- package/dist/entities/package/package.d.ts.map +1 -0
- package/dist/entities/package/package.js +234 -0
- package/dist/entities/package/package.js.map +1 -0
- package/dist/entities/package/package.shell.d.ts +48 -0
- package/dist/entities/package/package.shell.d.ts.map +1 -0
- package/dist/entities/package/package.shell.js +118 -0
- package/dist/entities/package/package.shell.js.map +1 -0
- package/dist/entities/package/package.test.d.ts +23 -0
- package/dist/entities/package/package.test.d.ts.map +1 -0
- package/dist/entities/package/package.test.js +637 -0
- package/dist/entities/package/package.test.js.map +1 -0
- package/dist/entities/package/package.types.d.ts +48 -0
- package/dist/entities/package/package.types.d.ts.map +1 -0
- package/dist/entities/package/package.types.js +2 -0
- package/dist/entities/package/package.types.js.map +1 -0
- package/dist/entities/package-changelog/index.d.ts +4 -0
- package/dist/entities/package-changelog/index.d.ts.map +1 -0
- package/dist/entities/package-changelog/index.js +4 -0
- package/dist/entities/package-changelog/index.js.map +1 -0
- package/dist/entities/package-changelog/package-changelog.d.ts +20 -0
- package/dist/entities/package-changelog/package-changelog.d.ts.map +1 -0
- package/dist/entities/package-changelog/package-changelog.js +59 -0
- package/dist/entities/package-changelog/package-changelog.js.map +1 -0
- package/dist/entities/package-changelog/package-changelog.types.d.ts +25 -0
- package/dist/entities/package-changelog/package-changelog.types.d.ts.map +1 -0
- package/dist/entities/package-changelog/package-changelog.types.js +2 -0
- package/dist/entities/package-changelog/package-changelog.types.js.map +1 -0
- package/dist/entities/package-changelog/template.d.ts +20 -0
- package/dist/entities/package-changelog/template.d.ts.map +1 -0
- package/dist/entities/package-changelog/template.default.d.ts +10 -0
- package/dist/entities/package-changelog/template.default.d.ts.map +1 -0
- package/dist/entities/package-changelog/template.default.js +85 -0
- package/dist/entities/package-changelog/template.default.js.map +1 -0
- package/dist/entities/package-changelog/template.js +90 -0
- package/dist/entities/package-changelog/template.js.map +1 -0
- package/dist/entities/package-commits/dependency-analyzer.d.ts +35 -0
- package/dist/entities/package-commits/dependency-analyzer.d.ts.map +1 -0
- package/dist/entities/package-commits/dependency-analyzer.js +169 -0
- package/dist/entities/package-commits/dependency-analyzer.js.map +1 -0
- package/dist/entities/package-commits/dependency-analyzer.test.d.ts +2 -0
- package/dist/entities/package-commits/dependency-analyzer.test.d.ts.map +1 -0
- package/dist/entities/package-commits/dependency-analyzer.test.js +25 -0
- package/dist/entities/package-commits/dependency-analyzer.test.js.map +1 -0
- package/dist/entities/package-commits/index.d.ts +3 -0
- package/dist/entities/package-commits/index.d.ts.map +1 -0
- package/dist/entities/package-commits/index.js +3 -0
- package/dist/entities/package-commits/index.js.map +1 -0
- package/dist/entities/package-commits/package-commits.d.ts +33 -0
- package/dist/entities/package-commits/package-commits.d.ts.map +1 -0
- package/dist/entities/package-commits/package-commits.js +149 -0
- package/dist/entities/package-commits/package-commits.js.map +1 -0
- package/dist/entities/package-commits/package-commits.test.d.ts +2 -0
- package/dist/entities/package-commits/package-commits.test.d.ts.map +1 -0
- package/dist/entities/package-commits/package-commits.test.js +40 -0
- package/dist/entities/package-commits/package-commits.test.js.map +1 -0
- package/dist/entities/package-tags/index.d.ts +2 -0
- package/dist/entities/package-tags/index.d.ts.map +1 -0
- package/dist/entities/package-tags/index.js +2 -0
- package/dist/entities/package-tags/index.js.map +1 -0
- package/dist/entities/package-tags/package-tags.d.ts +24 -0
- package/dist/entities/package-tags/package-tags.d.ts.map +1 -0
- package/dist/entities/package-tags/package-tags.js +197 -0
- package/dist/entities/package-tags/package-tags.js.map +1 -0
- package/dist/entities/package-tags/package-tags.test.d.ts +2 -0
- package/dist/entities/package-tags/package-tags.test.d.ts.map +1 -0
- package/dist/entities/package-tags/package-tags.test.js +60 -0
- package/dist/entities/package-tags/package-tags.test.js.map +1 -0
- package/dist/entities/package-version/index.d.ts +3 -0
- package/dist/entities/package-version/index.d.ts.map +1 -0
- package/dist/entities/package-version/index.js +3 -0
- package/dist/entities/package-version/index.js.map +1 -0
- package/dist/entities/package-version/package-version.d.ts +16 -0
- package/dist/entities/package-version/package-version.d.ts.map +1 -0
- package/dist/entities/package-version/package-version.js +166 -0
- package/dist/entities/package-version/package-version.js.map +1 -0
- package/dist/entities/package-version/package-version.test.d.ts +2 -0
- package/dist/entities/package-version/package-version.test.d.ts.map +1 -0
- package/dist/entities/package-version/package-version.test.js +113 -0
- package/dist/entities/package-version/package-version.test.js.map +1 -0
- package/dist/entities/package-version/package-version.types.d.ts +31 -0
- package/dist/entities/package-version/package-version.types.d.ts.map +1 -0
- package/dist/entities/package-version/package-version.types.js +2 -0
- package/dist/entities/package-version/package-version.types.js.map +1 -0
- package/dist/entities/tag/index.d.ts +3 -0
- package/dist/entities/tag/index.d.ts.map +1 -0
- package/dist/entities/tag/index.js +3 -0
- package/dist/entities/tag/index.js.map +1 -0
- package/dist/entities/tag/tag.d.ts +24 -0
- package/dist/entities/tag/tag.d.ts.map +1 -0
- package/dist/entities/tag/tag.js +168 -0
- package/dist/entities/tag/tag.js.map +1 -0
- package/dist/entities/tag/tag.test.d.ts +2 -0
- package/dist/entities/tag/tag.test.d.ts.map +1 -0
- package/dist/entities/tag/tag.test.js +638 -0
- package/dist/entities/tag/tag.test.js.map +1 -0
- package/dist/entities/tag/tag.types.d.ts +35 -0
- package/dist/entities/tag/tag.types.d.ts.map +1 -0
- package/dist/entities/tag/tag.types.js +2 -0
- package/dist/entities/tag/tag.types.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/package.json +73 -0
- package/src/commands/ci/act.ts +95 -0
- package/src/commands/ci/attach-affected.ts +93 -0
- package/src/commands/ci/attach-service-ports.ts +31 -0
- package/src/commands/commit-check.ts +124 -0
- package/src/commands/commit.ts +103 -0
- package/src/commands/dev/check.ts +117 -0
- package/src/commands/dev/cleanup.ts +34 -0
- package/src/commands/dev/rm.ts +66 -0
- package/src/commands/dev/setup.ts +48 -0
- package/src/commands/local/cleanup.ts +74 -0
- package/src/commands/local/setup.ts +68 -0
- package/src/commands/local/vscode.ts +118 -0
- package/src/commands/update-package-json.ts +104 -0
- package/src/commands/version/apply.ts +156 -0
- package/src/commands/version/ci.ts +85 -0
- package/src/commands/version/prepare.ts +217 -0
- package/src/core/colorify.ts +61 -0
- package/src/core/index.ts +3 -0
- package/src/core/types.ts +262 -0
- package/src/core/wrapshell.ts +388 -0
- package/src/entities/affected/affected.test.ts +427 -0
- package/src/entities/affected/affected.ts +22 -0
- package/src/entities/affected/index.ts +1 -0
- package/src/entities/branch/branch.test.ts +348 -0
- package/src/entities/branch/branch.ts +89 -0
- package/src/entities/branch/branch.types.ts +5 -0
- package/src/entities/branch/index.ts +2 -0
- package/src/entities/commit/commit.test.ts +769 -0
- package/src/entities/commit/commit.ts +245 -0
- package/src/entities/commit/commit.types.ts +81 -0
- package/src/entities/commit/index.ts +2 -0
- package/src/entities/commit/pr.test.ts +860 -0
- package/src/entities/commit/pr.ts +241 -0
- package/src/entities/compose/compose.test.ts +496 -0
- package/src/entities/compose/compose.ts +251 -0
- package/src/entities/compose/compose.types.ts +88 -0
- package/src/entities/compose/index.ts +2 -0
- package/src/entities/entities.shell.test.ts +35 -0
- package/src/entities/entities.shell.ts +81 -0
- package/src/entities/index.ts +11 -0
- package/src/entities/intershell-config/intershell-config.default.ts +229 -0
- package/src/entities/intershell-config/intershell-config.test.ts +117 -0
- package/src/entities/intershell-config/intershell-config.ts +143 -0
- package/src/entities/intershell-config/intershell-config.types.ts +118 -0
- package/src/entities/package/index.ts +3 -0
- package/src/entities/package/package.shell.ts +124 -0
- package/src/entities/package/package.test.ts +830 -0
- package/src/entities/package/package.ts +267 -0
- package/src/entities/package/package.types.ts +49 -0
- package/src/entities/package-changelog/index.ts +3 -0
- package/src/entities/package-changelog/package-changelog.ts +81 -0
- package/src/entities/package-changelog/package-changelog.types.ts +30 -0
- package/src/entities/package-changelog/template.default.ts +109 -0
- package/src/entities/package-changelog/template.ts +118 -0
- package/src/entities/package-commits/dependency-analyzer.test.ts +29 -0
- package/src/entities/package-commits/dependency-analyzer.ts +194 -0
- package/src/entities/package-commits/index.ts +2 -0
- package/src/entities/package-commits/package-commits.test.ts +44 -0
- package/src/entities/package-commits/package-commits.ts +191 -0
- package/src/entities/package-tags/index.ts +1 -0
- package/src/entities/package-tags/package-tags.test.ts +73 -0
- package/src/entities/package-tags/package-tags.ts +234 -0
- package/src/entities/package-version/index.ts +2 -0
- package/src/entities/package-version/package-version.test.ts +141 -0
- package/src/entities/package-version/package-version.ts +234 -0
- package/src/entities/package-version/package-version.types.ts +35 -0
- package/src/entities/tag/index.ts +2 -0
- package/src/entities/tag/tag.test.ts +844 -0
- package/src/entities/tag/tag.ts +208 -0
- package/src/entities/tag/tag.types.ts +37 -0
- package/src/index.ts +7 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit-check.d.ts","sourceRoot":"","sources":["../../src/commands/commit-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAM7C,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,OAAO;IAC/C,MAAM,CAAC,WAAW,SACuH;IAEzI,MAAM,CAAC,QAAQ,WAOb;IAEF,MAAM,CAAC,KAAK;;;;;MAmBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAmF1B"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { Command, Flags } from "@oclif/core";
|
|
2
|
+
import { colorify } from "../core";
|
|
3
|
+
import { EntityBranch, EntityCommit } from "../entities";
|
|
4
|
+
const isCI = process.env.CI === "true" || process.env.GITHUB_ACTIONS === "true";
|
|
5
|
+
export default class CommitCheck extends Command {
|
|
6
|
+
static description = "Comprehensive commit validation with step-based checking. Supports message strings, files, branch validation, and staged file checks.";
|
|
7
|
+
static examples = [
|
|
8
|
+
"intershell commit-check",
|
|
9
|
+
"intershell commit-check --message 'feat: add new feature'",
|
|
10
|
+
"intershell commit-check --message-file .git/COMMIT_EDITMSG",
|
|
11
|
+
"intershell commit-check --branch",
|
|
12
|
+
"intershell commit-check --staged",
|
|
13
|
+
"intershell commit-check --message 'fix: resolve bug' --branch --staged",
|
|
14
|
+
];
|
|
15
|
+
static flags = {
|
|
16
|
+
message: Flags.string({
|
|
17
|
+
char: "m",
|
|
18
|
+
description: "Validate specific commit message string",
|
|
19
|
+
}),
|
|
20
|
+
"message-file": Flags.string({
|
|
21
|
+
char: "f",
|
|
22
|
+
description: "Read and validate message from file",
|
|
23
|
+
}),
|
|
24
|
+
branch: Flags.boolean({
|
|
25
|
+
char: "b",
|
|
26
|
+
description: "Validate current branch name",
|
|
27
|
+
default: false,
|
|
28
|
+
}),
|
|
29
|
+
staged: Flags.boolean({
|
|
30
|
+
char: "s",
|
|
31
|
+
description: "Validate staged files for policy violations",
|
|
32
|
+
default: false,
|
|
33
|
+
}),
|
|
34
|
+
};
|
|
35
|
+
async run() {
|
|
36
|
+
const { flags } = await this.parse(CommitCheck);
|
|
37
|
+
const entityCommit = new EntityCommit();
|
|
38
|
+
const branchInstance = new EntityBranch();
|
|
39
|
+
if (flags["message-file"] || flags.message) {
|
|
40
|
+
this.log(colorify.blue("๐ Validating commit message from file..."));
|
|
41
|
+
const commitMessage = flags["message-file"]
|
|
42
|
+
? (await Bun.file(flags["message-file"]).text())
|
|
43
|
+
.trimEnd()
|
|
44
|
+
.split("\n")
|
|
45
|
+
.filter((line) => line.trim() && !line.trim().startsWith("#"))
|
|
46
|
+
.join("\n")
|
|
47
|
+
: flags.message;
|
|
48
|
+
if (!commitMessage) {
|
|
49
|
+
this.error(colorify.red("โ No commit message found"));
|
|
50
|
+
}
|
|
51
|
+
const validation = entityCommit.validateCommitMessage(commitMessage.trimEnd());
|
|
52
|
+
if (validation.length > 0) {
|
|
53
|
+
this.error(colorify.red("โ Commit message validation failed:\n") +
|
|
54
|
+
validation.map((error) => colorify.red(` โข ${error}`)).join("\n"));
|
|
55
|
+
}
|
|
56
|
+
this.log(colorify.green("โ
Commit message validation passed"));
|
|
57
|
+
}
|
|
58
|
+
if (flags.branch) {
|
|
59
|
+
try {
|
|
60
|
+
this.log(colorify.blue("๐ Running branch name validation..."));
|
|
61
|
+
const branchName = process.env.GITHUB_HEAD_REF ||
|
|
62
|
+
process.env.GITHUB_REF?.replace("refs/heads/", "") ||
|
|
63
|
+
(await branchInstance.getCurrentBranch()) ||
|
|
64
|
+
"";
|
|
65
|
+
const branchValidation = branchInstance.validate(branchName);
|
|
66
|
+
if (typeof branchValidation === "string") {
|
|
67
|
+
if (isCI) {
|
|
68
|
+
this.log(colorify.yellow("โ ๏ธ Skipping branch name check in CI environment"));
|
|
69
|
+
this.log(colorify.gray(`Branch name detected: ${branchName}`));
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
throw new Error(branchValidation);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
this.log(colorify.green("โ
Branch name validation passed"));
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
this.error(colorify.red("โ Branch name validation failed:\n") +
|
|
79
|
+
(error instanceof Error ? error.message.split("\n") : [String(error)])
|
|
80
|
+
.map((e) => colorify.red(` โข ${e}`))
|
|
81
|
+
.join("\n"));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (flags.staged) {
|
|
85
|
+
try {
|
|
86
|
+
this.log(colorify.blue("๐ Running staged files validation..."));
|
|
87
|
+
const { stagedFiles } = await entityCommit.getStagedFiles();
|
|
88
|
+
if (!stagedFiles.length) {
|
|
89
|
+
this.log(colorify.green("โ
No staged changes"));
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
const errors = await new EntityCommit().validateStagedFiles(stagedFiles);
|
|
93
|
+
if (errors.length === 0) {
|
|
94
|
+
this.log(colorify.green("โ
No policy violations found in staged files"));
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
throw new Error(errors.join("\n"));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
this.error(colorify.red("โ Staged files validation failed:\n") +
|
|
103
|
+
(error instanceof Error ? error.message.split("\n") : [String(error)])
|
|
104
|
+
.map((e) => colorify.red(` โข ${e.trim()}`))
|
|
105
|
+
.join("\n"));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=commit-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit-check.js","sourceRoot":"","sources":["../../src/commands/commit-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Command } from "@oclif/core";
|
|
2
|
+
export default class Commit extends Command {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
message: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
all: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
8
|
+
"no-verify": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
9
|
+
amend: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
"no-edit": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
"dry-run": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
12
|
+
};
|
|
13
|
+
run(): Promise<void>;
|
|
14
|
+
private executeCommit;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=commit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../src/commands/commit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAG7C,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,OAAO;IAC1C,MAAM,CAAC,WAAW,SAAkD;IAEpE,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;MA0BV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAYZ,aAAa;CAkD3B"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Command, Flags } from "@oclif/core";
|
|
2
|
+
import { colorify } from "../core";
|
|
3
|
+
export default class Commit extends Command {
|
|
4
|
+
static description = "Execute git commit with the provided message";
|
|
5
|
+
static examples = [
|
|
6
|
+
'intershell commit -m "feat: add new feature"',
|
|
7
|
+
"intershell commit -m 'fix: resolve bug' --no-verify",
|
|
8
|
+
"intershell commit -m 'docs: update readme' --amend",
|
|
9
|
+
];
|
|
10
|
+
static flags = {
|
|
11
|
+
message: Flags.string({
|
|
12
|
+
char: "m",
|
|
13
|
+
description: "Commit message (optional: run interactive mode)",
|
|
14
|
+
}),
|
|
15
|
+
all: Flags.boolean({
|
|
16
|
+
char: "a",
|
|
17
|
+
description: "Stage all modified files",
|
|
18
|
+
default: false,
|
|
19
|
+
}),
|
|
20
|
+
"no-verify": Flags.boolean({
|
|
21
|
+
description: "Skip git hooks when committing",
|
|
22
|
+
default: false,
|
|
23
|
+
}),
|
|
24
|
+
amend: Flags.boolean({
|
|
25
|
+
description: "Amend the previous commit",
|
|
26
|
+
default: false,
|
|
27
|
+
}),
|
|
28
|
+
"no-edit": Flags.boolean({
|
|
29
|
+
description: "Use the selected commit message without launching an editor",
|
|
30
|
+
default: false,
|
|
31
|
+
}),
|
|
32
|
+
"dry-run": Flags.boolean({
|
|
33
|
+
description: "Show what would be committed without actually committing",
|
|
34
|
+
default: false,
|
|
35
|
+
}),
|
|
36
|
+
};
|
|
37
|
+
async run() {
|
|
38
|
+
const { flags } = await this.parse(Commit);
|
|
39
|
+
if (flags.message) {
|
|
40
|
+
await this.executeCommit(flags);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
this.log("๐ก Interactive mode not yet implemented. Please provide a commit message with -m flag.");
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async executeCommit(flags) {
|
|
47
|
+
const gitArgs = ["commit"];
|
|
48
|
+
if (flags.all)
|
|
49
|
+
gitArgs.push("-a");
|
|
50
|
+
if (flags.message)
|
|
51
|
+
gitArgs.push("-m", flags.message);
|
|
52
|
+
if (flags.amend)
|
|
53
|
+
gitArgs.push("--amend");
|
|
54
|
+
if (flags["no-edit"])
|
|
55
|
+
gitArgs.push("--no-edit");
|
|
56
|
+
if (flags["no-verify"])
|
|
57
|
+
gitArgs.push("--no-verify");
|
|
58
|
+
if (flags["dry-run"]) {
|
|
59
|
+
this.log(colorify.blue("๐ Dry run - would execute:"));
|
|
60
|
+
this.log(colorify.gray(`git ${gitArgs.join(" ")}`));
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
// Check if there are staged changes
|
|
64
|
+
if (!flags.all && !flags.amend) {
|
|
65
|
+
const statusResult = Bun.spawn(["git", "diff", "--cached", "--quiet"]);
|
|
66
|
+
const statusExitCode = await statusResult.exited;
|
|
67
|
+
if (statusExitCode === 0) {
|
|
68
|
+
this.warn(colorify.yellow("โ ๏ธ No staged changes found."));
|
|
69
|
+
this.log(colorify.blue("๐ก Try one of these options:"));
|
|
70
|
+
this.log(colorify.gray(" โข Stage your changes: git add <files>"));
|
|
71
|
+
this.log(colorify.gray(' โข Use --all flag: intershell commit -a -m "message"'));
|
|
72
|
+
this.log(colorify.gray(" โข Check git status: git status"));
|
|
73
|
+
throw new Error("No staged changes to commit");
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
const result = Bun.spawn(["git", ...gitArgs], {
|
|
77
|
+
stdio: ["inherit", "pipe", "pipe"],
|
|
78
|
+
});
|
|
79
|
+
const exitCode = await result.exited;
|
|
80
|
+
if (exitCode === 0) {
|
|
81
|
+
this.log(colorify.green("๐ Commit successful!"));
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
const stderr = await new Response(result.stderr).text();
|
|
85
|
+
if (stderr)
|
|
86
|
+
this.error(colorify.gray(stderr));
|
|
87
|
+
throw new Error("โ Git commit failed");
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=commit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit.js","sourceRoot":"","sources":["../../src/commands/commit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Command } from "@oclif/core";
|
|
2
|
+
export default class DevCheck extends Command {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
"keep-alive": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
|
+
};
|
|
8
|
+
run(): Promise<void>;
|
|
9
|
+
private readonly icons;
|
|
10
|
+
private readonly colors;
|
|
11
|
+
private monitorServiceHealth;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/commands/dev/check.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAK7C,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;IAC5C,MAAM,CAAC,WAAW,SAAmD;IAErE,MAAM,CAAC,QAAQ,WAAiE;IAEhF,MAAM,CAAC,KAAK;;MAMV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAKpB;IAEF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAKrB;YAEY,oBAAoB;CAyDlC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { setTimeout } from "node:timers/promises";
|
|
2
|
+
import { Command, Flags } from "@oclif/core";
|
|
3
|
+
import { $ } from "bun";
|
|
4
|
+
import { colorify } from "../../core";
|
|
5
|
+
import { EntityCompose } from "../../entities";
|
|
6
|
+
export default class DevCheck extends Command {
|
|
7
|
+
static description = "Check the health of the DevContainer services";
|
|
8
|
+
static examples = ["intershell dev:check", "intershell dev:check --keep-alive"];
|
|
9
|
+
static flags = {
|
|
10
|
+
"keep-alive": Flags.boolean({
|
|
11
|
+
char: "s",
|
|
12
|
+
description: "Keep services alive after checks complete",
|
|
13
|
+
default: false,
|
|
14
|
+
}),
|
|
15
|
+
};
|
|
16
|
+
async run() {
|
|
17
|
+
const { flags } = await this.parse(DevCheck);
|
|
18
|
+
this.log(colorify.blue("๐งช Starting DevContainer Health Check..."));
|
|
19
|
+
await $ `bun run dev:up --build`;
|
|
20
|
+
const compose = new EntityCompose("./docker-compose.dev.yml");
|
|
21
|
+
await this.monitorServiceHealth(compose);
|
|
22
|
+
this.log(colorify.blue("\n๐ Services are available at:"));
|
|
23
|
+
const devUrls = await compose.getServiceUrls();
|
|
24
|
+
for (const [name, url] of Object.entries(devUrls)) {
|
|
25
|
+
this.log(colorify.cyan(` โข ${name}: ${url}`));
|
|
26
|
+
}
|
|
27
|
+
this.log(colorify.green("โ
DevContainer health check completed successfully!"));
|
|
28
|
+
if (flags["keep-alive"]) {
|
|
29
|
+
this.log(colorify.yellow("๐ก Use 'intershell dev:check --keep-alive' to keep services alive"));
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
this.log(colorify.yellow("๐งน Cleaning up services..."));
|
|
33
|
+
await $ `bun run dev:down`;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
icons = {
|
|
37
|
+
healthy: "โ
",
|
|
38
|
+
starting: "๐",
|
|
39
|
+
unhealthy: "โ",
|
|
40
|
+
unknown: "โ",
|
|
41
|
+
};
|
|
42
|
+
colors = {
|
|
43
|
+
healthy: colorify.green,
|
|
44
|
+
starting: colorify.yellow,
|
|
45
|
+
unhealthy: colorify.red,
|
|
46
|
+
unknown: colorify.gray,
|
|
47
|
+
};
|
|
48
|
+
async monitorServiceHealth(compose) {
|
|
49
|
+
const services = await compose.getServices();
|
|
50
|
+
this.log(colorify.yellow("โณ Waiting for services to become healthy..."));
|
|
51
|
+
const retryInterval = 5_000;
|
|
52
|
+
const maxRetries = 6; // 6 * retryInterval = 30 seconds total
|
|
53
|
+
let retryCount = 0;
|
|
54
|
+
let allHealthy = false;
|
|
55
|
+
let healthResult = null;
|
|
56
|
+
while (retryCount < maxRetries && !allHealthy) {
|
|
57
|
+
if (retryCount > 0) {
|
|
58
|
+
this.log(colorify.yellow(`๐ Retry ${retryCount}/${maxRetries} - Checking health again in 5 seconds...`));
|
|
59
|
+
await setTimeout(retryInterval);
|
|
60
|
+
}
|
|
61
|
+
healthResult = await compose.getServiceHealth();
|
|
62
|
+
if (healthResult?.every((s) => s.status === "healthy") &&
|
|
63
|
+
healthResult.length === services.length) {
|
|
64
|
+
allHealthy = true;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
retryCount++;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Print detailed health status
|
|
71
|
+
this.log(colorify.blue("\n๐ Final Service Health Status:"));
|
|
72
|
+
this.log("-".repeat(50));
|
|
73
|
+
if (!healthResult) {
|
|
74
|
+
throw new Error("Failed to get health status from services");
|
|
75
|
+
}
|
|
76
|
+
for (const service of healthResult) {
|
|
77
|
+
const icon = this.icons[service.status];
|
|
78
|
+
const color = this.colors[service.status];
|
|
79
|
+
const port = services.find((s) => s.name === service.name)?.ports[0]?.host;
|
|
80
|
+
this.log(`${icon} ${color(service.name)}: ${service.status} ${port ? `(${port})` : ""}`);
|
|
81
|
+
}
|
|
82
|
+
if (healthResult.some((s) => s.status === "unhealthy")) {
|
|
83
|
+
throw new Error(`Unhealthy services after ${maxRetries} retries: ${healthResult
|
|
84
|
+
.filter((s) => s.status === "unhealthy")
|
|
85
|
+
.map((s) => s.name)
|
|
86
|
+
.join(", ")}`);
|
|
87
|
+
}
|
|
88
|
+
this.log(colorify.green("โ
All services are healthy"));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/commands/dev/check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Command } from "@oclif/core";
|
|
2
|
+
export default class DevCleanup extends Command {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
|
+
};
|
|
8
|
+
run(): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=cleanup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../../src/commands/dev/cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAI7C,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC9C,MAAM,CAAC,WAAW,SAE8D;IAEhF,MAAM,CAAC,QAAQ,WAAkE;IAEjF,MAAM,CAAC,KAAK;;MAMV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAc1B"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Command, Flags } from "@oclif/core";
|
|
2
|
+
import { $ } from "bun";
|
|
3
|
+
import { colorify } from "../../core";
|
|
4
|
+
export default class DevCleanup extends Command {
|
|
5
|
+
static description = `Clean up DevContainer services and development artifacts.
|
|
6
|
+
This only cleans up the development services, not the VS Code DevContainer itself.
|
|
7
|
+
To stop the VS Code DevContainer, run \`bun run dev:rm\` from the host machine.`;
|
|
8
|
+
static examples = ["intershell dev:cleanup", "intershell dev:cleanup --verbose"];
|
|
9
|
+
static flags = {
|
|
10
|
+
verbose: Flags.boolean({
|
|
11
|
+
char: "v",
|
|
12
|
+
description: "Enable verbose output",
|
|
13
|
+
default: false,
|
|
14
|
+
}),
|
|
15
|
+
};
|
|
16
|
+
async run() {
|
|
17
|
+
await this.parse(DevCleanup);
|
|
18
|
+
this.log(colorify.blue("๐งน Starting DevContainer cleanup..."));
|
|
19
|
+
this.log(colorify.yellow("๐ณ Stopping DevContainer services..."));
|
|
20
|
+
await $ `docker compose -f ./docker-compose.dev.yml --profile all down --volumes`;
|
|
21
|
+
await $ `docker compose -f ./docker-compose.dev.yml --profile all rm -f --volumes`;
|
|
22
|
+
this.log(colorify.green("โ
DevContainer cleanup completed successfully!"));
|
|
23
|
+
this.log(colorify.cyan("\n๐ก To start fresh on devcontainer, run:"));
|
|
24
|
+
this.log(colorify.cyan(" - intershell dev:setup"));
|
|
25
|
+
this.log(colorify.cyan(" - intershell dev:rm # To stop VS Code DevContainer (host only)"));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=cleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../../src/commands/dev/cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC9C,MAAM,CAAC,WAAW,GAAG;;gFAE0D,CAAC;IAEhF,MAAM,CAAC,QAAQ,GAAG,CAAC,wBAAwB,EAAE,kCAAkC,CAAC,CAAC;IAEjF,MAAM,CAAC,KAAK,GAAG;QACd,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACtB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,uBAAuB;YACpC,OAAO,EAAE,KAAK;SACd,CAAC;KACF,CAAC;IAEF,KAAK,CAAC,GAAG;QACR,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE7B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAE/D,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,CAAA,yEAAyE,CAAC;QACjF,MAAM,CAAC,CAAA,0EAA0E,CAAC;QAElF,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC,CAAC;IAC7F,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Command } from "@oclif/core";
|
|
2
|
+
export default class DevRm extends Command {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
|
+
};
|
|
8
|
+
run(): Promise<void>;
|
|
9
|
+
private stepStopDevContainer;
|
|
10
|
+
private stepStopRemoveAllContainers;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=rm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rm.d.ts","sourceRoot":"","sources":["../../../src/commands/dev/rm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAI7C,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;IACzC,MAAM,CAAC,WAAW,SAEqD;IAEvE,MAAM,CAAC,QAAQ,WAAsD;IAErE,MAAM,CAAC,KAAK;;MAMV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAgCZ,oBAAoB;YAMpB,2BAA2B;CAQzC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Command, Flags } from "@oclif/core";
|
|
2
|
+
import { $ } from "bun";
|
|
3
|
+
import { colorify } from "../../core";
|
|
4
|
+
export default class DevRm extends Command {
|
|
5
|
+
static description = `Stop and remove the VS Code DevContainer itself.
|
|
6
|
+
โ ๏ธ WARNING: This script must be run from the HOST machine, not from within the DevContainer.
|
|
7
|
+
This will stop the VS Code DevContainer and all associated containers.`;
|
|
8
|
+
static examples = ["intershell dev:rm", "intershell dev:rm --force"];
|
|
9
|
+
static flags = {
|
|
10
|
+
force: Flags.boolean({
|
|
11
|
+
char: "f",
|
|
12
|
+
description: "Force removal without confirmation",
|
|
13
|
+
default: false,
|
|
14
|
+
}),
|
|
15
|
+
};
|
|
16
|
+
async run() {
|
|
17
|
+
await this.parse(DevRm);
|
|
18
|
+
this.log(colorify.blue("๐ณ Stopping VS Code DevContainer..."));
|
|
19
|
+
// Check if we're in a DevContainer
|
|
20
|
+
const isInDevContainer = process.env.REMOTE_CONTAINERS === "true";
|
|
21
|
+
if (isInDevContainer) {
|
|
22
|
+
this.error(colorify.red("โ ERROR: This script must be run from the HOST machine, not from within the DevContainer."));
|
|
23
|
+
this.log(colorify.yellow("๐ก Please exit the DevContainer and run this command from your host terminal."));
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
await this.stepStopDevContainer();
|
|
27
|
+
await this.stepStopRemoveAllContainers();
|
|
28
|
+
this.log(colorify.green("โ
DevContainer removal completed successfully!"));
|
|
29
|
+
this.log(colorify.cyan("\n๐ก To start fresh, run:"));
|
|
30
|
+
this.log(colorify.cyan(" - intershell local:setup # For local development"));
|
|
31
|
+
this.log(colorify.cyan(" - Press `Ctrl+Shift+P` (or `Cmd+Shift+P` on macOS) "));
|
|
32
|
+
this.log(colorify.cyan(" -Type 'Dev Containers: Reopen in Container' and select the command"));
|
|
33
|
+
this.log(colorify.cyan(" - intershell dev:setup # For DevContainer development"));
|
|
34
|
+
}
|
|
35
|
+
async stepStopDevContainer() {
|
|
36
|
+
this.log(colorify.yellow("๐ Stopping VS Code DevContainer..."));
|
|
37
|
+
// Stop the DevContainer using VS Code CLI
|
|
38
|
+
await $ `code --command "devcontainers.stop"`.nothrow();
|
|
39
|
+
}
|
|
40
|
+
async stepStopRemoveAllContainers() {
|
|
41
|
+
this.log(colorify.yellow("๐ณ Stopping all related containers..."));
|
|
42
|
+
await $ `docker compose -f ./docker-compose.dev.yml --profile all down --volumes --remove-orphans`;
|
|
43
|
+
await $ `docker compose -f docker-compose.yml down --volumes --remove-orphans`;
|
|
44
|
+
this.log(colorify.yellow("๐๏ธ Removing containers..."));
|
|
45
|
+
await $ `docker compose -f ./docker-compose.dev.yml --profile all rm -f --volumes`;
|
|
46
|
+
await $ `docker compose -f docker-compose.yml rm -f --volumes`;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=rm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rm.js","sourceRoot":"","sources":["../../../src/commands/dev/rm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;IACzC,MAAM,CAAC,WAAW,GAAG;;uEAEiD,CAAC;IAEvE,MAAM,CAAC,QAAQ,GAAG,CAAC,mBAAmB,EAAE,2BAA2B,CAAC,CAAC;IAErE,MAAM,CAAC,KAAK,GAAG;QACd,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACpB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,oCAAoC;YACjD,OAAO,EAAE,KAAK;SACd,CAAC;KACF,CAAC;IAEF,KAAK,CAAC,GAAG;QACR,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAE/D,mCAAmC;QACnC,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,MAAM,CAAC;QAClE,IAAI,gBAAgB,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CACT,QAAQ,CAAC,GAAG,CACX,2FAA2F,CAC3F,CACD,CAAC;YACF,IAAI,CAAC,GAAG,CACP,QAAQ,CAAC,MAAM,CACd,+EAA+E,CAC/E,CACD,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAClC,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEzC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC,CAAC;QAChG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC,CAAC;IACpF,CAAC;IAEO,KAAK,CAAC,oBAAoB;QACjC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC,CAAC;QACjE,0CAA0C;QAC1C,MAAM,CAAC,CAAA,qCAAqC,CAAC,OAAO,EAAE,CAAC;IACxD,CAAC;IAEO,KAAK,CAAC,2BAA2B;QACxC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,CAAA,0FAA0F,CAAC;QAClG,MAAM,CAAC,CAAA,sEAAsE,CAAC;QAC9E,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACxD,MAAM,CAAC,CAAA,0EAA0E,CAAC;QAClF,MAAM,CAAC,CAAA,sDAAsD,CAAC;IAC/D,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Command } from "@oclif/core";
|
|
2
|
+
export default class DevSetup extends Command {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
"skip-health-check": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
|
+
};
|
|
8
|
+
run(): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/commands/dev/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAK7C,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;IAC5C,MAAM,CAAC,WAAW,SAC6E;IAE/F,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;MAMV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAwB1B"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Command, Flags } from "@oclif/core";
|
|
2
|
+
import { $ } from "bun";
|
|
3
|
+
import { colorify } from "../../core";
|
|
4
|
+
import { EntityCompose } from "../../entities";
|
|
5
|
+
export default class DevSetup extends Command {
|
|
6
|
+
static description = "Setup DevContainer environment with Docker builds, service startup, and health verification";
|
|
7
|
+
static examples = [
|
|
8
|
+
"intershell dev:setup",
|
|
9
|
+
"intershell dev:setup --skip-health-check",
|
|
10
|
+
"intershell dev:setup --keep-running",
|
|
11
|
+
];
|
|
12
|
+
static flags = {
|
|
13
|
+
"skip-health-check": Flags.boolean({
|
|
14
|
+
char: "h",
|
|
15
|
+
description: "Skip health check verification",
|
|
16
|
+
default: false,
|
|
17
|
+
}),
|
|
18
|
+
};
|
|
19
|
+
async run() {
|
|
20
|
+
const { flags } = await this.parse(DevSetup);
|
|
21
|
+
this.log(colorify.blue("๐ณ Starting DevContainer setup..."));
|
|
22
|
+
await $ `bun run dev:up --build`;
|
|
23
|
+
if (!flags["skip-health-check"]) {
|
|
24
|
+
this.log(colorify.blue("๐ฅ Running health checks..."));
|
|
25
|
+
await $ `bun run dev:check`;
|
|
26
|
+
}
|
|
27
|
+
this.log(colorify.cyan("\n๐ก Services are running and available at:"));
|
|
28
|
+
const compose = new EntityCompose("./docker-compose.dev.yml");
|
|
29
|
+
const devUrls = await compose.getServiceUrls();
|
|
30
|
+
for (const [name, url] of Object.entries(devUrls)) {
|
|
31
|
+
this.log(colorify.cyan(` โข ${name}: ${url}`));
|
|
32
|
+
}
|
|
33
|
+
this.log(colorify.yellow("๐ก Use 'bun run dev:cleanup' to stop services when done"));
|
|
34
|
+
this.log(colorify.cyan("\n๐ก Useful commands:"));
|
|
35
|
+
this.log(colorify.cyan(" - bun run dev:check # Check DevContainer health"));
|
|
36
|
+
this.log(colorify.cyan(" - bun run dev:logs # View service logs"));
|
|
37
|
+
this.log(colorify.cyan(" - bun run dev:cleanup # Clean DevContainer environment"));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/commands/dev/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;IAC5C,MAAM,CAAC,WAAW,GACjB,6FAA6F,CAAC;IAE/F,MAAM,CAAC,QAAQ,GAAG;QACjB,sBAAsB;QACtB,0CAA0C;QAC1C,qCAAqC;KACrC,CAAC;IAEF,MAAM,CAAC,KAAK,GAAG;QACd,mBAAmB,EAAE,KAAK,CAAC,OAAO,CAAC;YAClC,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,gCAAgC;YAC7C,OAAO,EAAE,KAAK;SACd,CAAC;KACF,CAAC;IAEF,KAAK,CAAC,GAAG;QACR,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAE7C,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAE7D,MAAM,CAAC,CAAA,wBAAwB,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACvD,MAAM,CAAC,CAAA,mBAAmB,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,0BAA0B,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC;QAC/C,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,yDAAyD,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC,CAAC;IACpF,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Command } from "@oclif/core";
|
|
2
|
+
export default class LocalCleanup extends Command {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
|
+
};
|
|
8
|
+
private readonly directories;
|
|
9
|
+
private readonly files;
|
|
10
|
+
run(): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=cleanup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../../src/commands/local/cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAI7C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAChD,MAAM,CAAC,WAAW,SACyL;IAE3M,MAAM,CAAC,QAAQ,WAAsE;IAErF,MAAM,CAAC,KAAK;;MAMV;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAiB1B;IAEF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAQpB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0B1B"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Command, Flags } from "@oclif/core";
|
|
2
|
+
import { $ } from "bun";
|
|
3
|
+
import { colorify } from "../../core";
|
|
4
|
+
export default class LocalCleanup extends Command {
|
|
5
|
+
static description = "Comprehensive cleanup of Docker containers, build artifacts, and development files. This includes DevContainer cleanup. To stop the VS Code DevContainer itself, run `bun run dev:rm` from host machine";
|
|
6
|
+
static examples = ["intershell local:cleanup", "intershell local:cleanup --verbose"];
|
|
7
|
+
static flags = {
|
|
8
|
+
verbose: Flags.boolean({
|
|
9
|
+
char: "v",
|
|
10
|
+
description: "Enable verbose output",
|
|
11
|
+
default: false,
|
|
12
|
+
}),
|
|
13
|
+
};
|
|
14
|
+
directories = [
|
|
15
|
+
"dist",
|
|
16
|
+
"build",
|
|
17
|
+
"dist",
|
|
18
|
+
"dist-storybook",
|
|
19
|
+
".turbo",
|
|
20
|
+
".next",
|
|
21
|
+
".output",
|
|
22
|
+
"coverage",
|
|
23
|
+
".nyc_output",
|
|
24
|
+
".cache",
|
|
25
|
+
".parcel-cache",
|
|
26
|
+
".vite",
|
|
27
|
+
".swc",
|
|
28
|
+
".act",
|
|
29
|
+
".biomecache",
|
|
30
|
+
"bin",
|
|
31
|
+
];
|
|
32
|
+
files = [
|
|
33
|
+
".act-event.json",
|
|
34
|
+
"*.tsbuildinfo",
|
|
35
|
+
".log",
|
|
36
|
+
".tmp",
|
|
37
|
+
".temp",
|
|
38
|
+
".DS_Store",
|
|
39
|
+
"Thumbs.db",
|
|
40
|
+
];
|
|
41
|
+
async run() {
|
|
42
|
+
await this.parse(LocalCleanup);
|
|
43
|
+
this.log(colorify.blue("๐งน Starting comprehensive cleanup..."));
|
|
44
|
+
this.log(colorify.yellow("๐๏ธ Cleaning development artifacts..."));
|
|
45
|
+
for (const directory of this.directories) {
|
|
46
|
+
await $ `rm -rf ${directory} **/${directory} **/${directory}/**`.quiet().nothrow();
|
|
47
|
+
}
|
|
48
|
+
this.log(colorify.yellow("๐ Cleaning logs and temp files..."));
|
|
49
|
+
for (const file of this.files) {
|
|
50
|
+
await $ `rm -rf ${file} **/${file}`.quiet().nothrow();
|
|
51
|
+
}
|
|
52
|
+
this.log(colorify.yellow("๐ฆ Cleaning node_modules in directories..."));
|
|
53
|
+
await $ `rm -rf node_modules **/node_modules`.quiet().nothrow();
|
|
54
|
+
this.log(colorify.yellow("๐ฏ Cleaning VS Code configuration..."));
|
|
55
|
+
await $ `rm -rf .vscode`.quiet().nothrow();
|
|
56
|
+
this.log(colorify.green("โ
Cleanup completed successfully!"));
|
|
57
|
+
this.log(colorify.cyan("\n๐ก To start fresh, run:"));
|
|
58
|
+
this.log(colorify.cyan(" - intershell local:setup # For local development"));
|
|
59
|
+
this.log(colorify.cyan(" - intershell dev:setup # For DevContainer development"));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=cleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../../src/commands/local/cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAChD,MAAM,CAAC,WAAW,GACjB,yMAAyM,CAAC;IAE3M,MAAM,CAAC,QAAQ,GAAG,CAAC,0BAA0B,EAAE,oCAAoC,CAAC,CAAC;IAErF,MAAM,CAAC,KAAK,GAAG;QACd,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACtB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,uBAAuB;YACpC,OAAO,EAAE,KAAK;SACd,CAAC;KACF,CAAC;IAEe,WAAW,GAAG;QAC9B,MAAM;QACN,OAAO;QACP,MAAM;QACN,gBAAgB;QAChB,QAAQ;QACR,OAAO;QACP,SAAS;QACT,UAAU;QACV,aAAa;QACb,QAAQ;QACR,eAAe;QACf,OAAO;QACP,MAAM;QACN,MAAM;QACN,aAAa;QACb,KAAK;KACL,CAAC;IAEe,KAAK,GAAG;QACxB,iBAAiB;QACjB,eAAe;QACf,MAAM;QACN,MAAM;QACN,OAAO;QACP,WAAW;QACX,WAAW;KACX,CAAC;IAEF,KAAK,CAAC,GAAG;QACR,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAE/B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAEhE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC;QACnE,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,CAAC,CAAA,UAAU,SAAS,OAAO,SAAS,OAAO,SAAS,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;QACnF,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAChE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,CAAC,CAAA,UAAU,IAAI,OAAO,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,CAAA,qCAAqC,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;QAE/D,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,CAAA,gBAAgB,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;QAE1C,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC,CAAC;IACpF,CAAC"}
|