@developers-homelab/runestone-cli 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +107 -0
  3. package/bin/runestone +17 -0
  4. package/dist/cli.d.ts +4 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +78 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/commands/certs.d.ts +3 -0
  9. package/dist/commands/certs.d.ts.map +1 -0
  10. package/dist/commands/certs.js +110 -0
  11. package/dist/commands/certs.js.map +1 -0
  12. package/dist/commands/down.d.ts +3 -0
  13. package/dist/commands/down.d.ts.map +1 -0
  14. package/dist/commands/down.js +59 -0
  15. package/dist/commands/down.js.map +1 -0
  16. package/dist/commands/keys.d.ts +3 -0
  17. package/dist/commands/keys.d.ts.map +1 -0
  18. package/dist/commands/keys.js +51 -0
  19. package/dist/commands/keys.js.map +1 -0
  20. package/dist/commands/setup.d.ts +15 -0
  21. package/dist/commands/setup.d.ts.map +1 -0
  22. package/dist/commands/setup.js +641 -0
  23. package/dist/commands/setup.js.map +1 -0
  24. package/dist/commands/status.d.ts +3 -0
  25. package/dist/commands/status.d.ts.map +1 -0
  26. package/dist/commands/status.js +57 -0
  27. package/dist/commands/status.js.map +1 -0
  28. package/dist/commands/stop.d.ts +3 -0
  29. package/dist/commands/stop.d.ts.map +1 -0
  30. package/dist/commands/stop.js +25 -0
  31. package/dist/commands/stop.js.map +1 -0
  32. package/dist/commands/up.d.ts +3 -0
  33. package/dist/commands/up.d.ts.map +1 -0
  34. package/dist/commands/up.js +72 -0
  35. package/dist/commands/up.js.map +1 -0
  36. package/dist/i18n/index.d.ts +316 -0
  37. package/dist/i18n/index.d.ts.map +1 -0
  38. package/dist/i18n/index.js +378 -0
  39. package/dist/i18n/index.js.map +1 -0
  40. package/dist/services/cert-manager.d.ts +38 -0
  41. package/dist/services/cert-manager.d.ts.map +1 -0
  42. package/dist/services/cert-manager.js +260 -0
  43. package/dist/services/cert-manager.js.map +1 -0
  44. package/dist/services/docker-compose.d.ts +24 -0
  45. package/dist/services/docker-compose.d.ts.map +1 -0
  46. package/dist/services/docker-compose.js +132 -0
  47. package/dist/services/docker-compose.js.map +1 -0
  48. package/dist/services/docker-exec.d.ts +10 -0
  49. package/dist/services/docker-exec.d.ts.map +1 -0
  50. package/dist/services/docker-exec.js +39 -0
  51. package/dist/services/docker-exec.js.map +1 -0
  52. package/dist/services/docker-network.d.ts +13 -0
  53. package/dist/services/docker-network.d.ts.map +1 -0
  54. package/dist/services/docker-network.js +58 -0
  55. package/dist/services/docker-network.js.map +1 -0
  56. package/dist/services/docker-run.d.ts +18 -0
  57. package/dist/services/docker-run.d.ts.map +1 -0
  58. package/dist/services/docker-run.js +56 -0
  59. package/dist/services/docker-run.js.map +1 -0
  60. package/dist/services/docker-volume.d.ts +12 -0
  61. package/dist/services/docker-volume.d.ts.map +1 -0
  62. package/dist/services/docker-volume.js +57 -0
  63. package/dist/services/docker-volume.js.map +1 -0
  64. package/dist/services/domain-checker.d.ts +29 -0
  65. package/dist/services/domain-checker.d.ts.map +1 -0
  66. package/dist/services/domain-checker.js +149 -0
  67. package/dist/services/domain-checker.js.map +1 -0
  68. package/dist/services/port-checker.d.ts +3 -0
  69. package/dist/services/port-checker.d.ts.map +1 -0
  70. package/dist/services/port-checker.js +45 -0
  71. package/dist/services/port-checker.js.map +1 -0
  72. package/dist/services/ssh-manager.d.ts +7 -0
  73. package/dist/services/ssh-manager.d.ts.map +1 -0
  74. package/dist/services/ssh-manager.js +125 -0
  75. package/dist/services/ssh-manager.js.map +1 -0
  76. package/dist/utils/command.d.ts +6 -0
  77. package/dist/utils/command.d.ts.map +1 -0
  78. package/dist/utils/command.js +34 -0
  79. package/dist/utils/command.js.map +1 -0
  80. package/dist/utils/docker-checker.d.ts +5 -0
  81. package/dist/utils/docker-checker.d.ts.map +1 -0
  82. package/dist/utils/docker-checker.js +31 -0
  83. package/dist/utils/docker-checker.js.map +1 -0
  84. package/dist/utils/env-loader.d.ts +32 -0
  85. package/dist/utils/env-loader.d.ts.map +1 -0
  86. package/dist/utils/env-loader.js +113 -0
  87. package/dist/utils/env-loader.js.map +1 -0
  88. package/dist/utils/logger.d.ts +8 -0
  89. package/dist/utils/logger.d.ts.map +1 -0
  90. package/dist/utils/logger.js +25 -0
  91. package/dist/utils/logger.js.map +1 -0
  92. package/dist/utils/logo.d.ts +2 -0
  93. package/dist/utils/logo.d.ts.map +1 -0
  94. package/dist/utils/logo.js +15 -0
  95. package/dist/utils/logo.js.map +1 -0
  96. package/dist/utils/os-detector.d.ts +10 -0
  97. package/dist/utils/os-detector.d.ts.map +1 -0
  98. package/dist/utils/os-detector.js +76 -0
  99. package/dist/utils/os-detector.js.map +1 -0
  100. package/dist/utils/path-helpers.d.ts +9 -0
  101. package/dist/utils/path-helpers.d.ts.map +1 -0
  102. package/dist/utils/path-helpers.js +96 -0
  103. package/dist/utils/path-helpers.js.map +1 -0
  104. package/dist/utils/port-checker.d.ts +3 -0
  105. package/dist/utils/port-checker.d.ts.map +1 -0
  106. package/dist/utils/port-checker.js +45 -0
  107. package/dist/utils/port-checker.js.map +1 -0
  108. package/dist/utils/project-files.d.ts +7 -0
  109. package/dist/utils/project-files.d.ts.map +1 -0
  110. package/dist/utils/project-files.js +97 -0
  111. package/dist/utils/project-files.js.map +1 -0
  112. package/dist/utils/spawn.d.ts +7 -0
  113. package/dist/utils/spawn.d.ts.map +1 -0
  114. package/dist/utils/spawn.js +31 -0
  115. package/dist/utils/spawn.js.map +1 -0
  116. package/dist/utils/tool-state.d.ts +16 -0
  117. package/dist/utils/tool-state.d.ts.map +1 -0
  118. package/dist/utils/tool-state.js +86 -0
  119. package/dist/utils/tool-state.js.map +1 -0
  120. package/package.json +63 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createStatusCommand(): Command;
3
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,wBAAgB,mBAAmB,IAAI,OAAO,CAuC7C"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createStatusCommand = createStatusCommand;
4
+ const kleur_1 = require("kleur");
5
+ const docker_compose_1 = require("../services/docker-compose");
6
+ const docker_network_1 = require("../services/docker-network");
7
+ const ssh_manager_1 = require("../services/ssh-manager");
8
+ const docker_volume_1 = require("../services/docker-volume");
9
+ const env_loader_1 = require("../utils/env-loader");
10
+ const logger_1 = require("../utils/logger");
11
+ const i18n_1 = require("../i18n");
12
+ const command_1 = require("../utils/command");
13
+ function indicator(active) {
14
+ return active ? (0, kleur_1.green)('running') : (0, kleur_1.red)('stopped');
15
+ }
16
+ function createStatusCommand() {
17
+ return (0, command_1.createCommand)('status')
18
+ .description((0, i18n_1.t)('commands.status.description'))
19
+ .action(() => {
20
+ try {
21
+ const config = env_loader_1.envLoader.load();
22
+ logger_1.logger.info('Docker containers');
23
+ try {
24
+ const containers = docker_compose_1.composeService.ps(config.COMPOSE_FILE_PATH);
25
+ if (containers.length === 0) {
26
+ console.log(' No containers found.');
27
+ }
28
+ else {
29
+ for (const container of containers) {
30
+ console.log(` ${indicator(container.State === 'running')} ${container.Name} ${container.Status}`);
31
+ }
32
+ }
33
+ }
34
+ catch (error) {
35
+ console.log(` ${(0, kleur_1.red)('Error:')} ${error instanceof Error ? error.message : String(error)}`);
36
+ }
37
+ logger_1.logger.info('SSH keys');
38
+ const keys = ssh_manager_1.sshManager.listKeys(config.SSH_VOLUME_NAME);
39
+ if (keys.length === 0) {
40
+ console.log(' No injected SSH keys found.');
41
+ }
42
+ else {
43
+ keys.forEach((key) => console.log(` ${(0, kleur_1.green)('+')} ${key}`));
44
+ }
45
+ logger_1.logger.info('Docker network');
46
+ console.log(` ${indicator(docker_network_1.networkService.exists(config.NETWORK_NAME))} ${config.NETWORK_NAME}`);
47
+ logger_1.logger.info('Docker volume');
48
+ console.log(` ${indicator(docker_volume_1.volumeService.exists(config.SSH_VOLUME_NAME))} ${config.SSH_VOLUME_NAME}`);
49
+ }
50
+ catch (error) {
51
+ const message = error instanceof Error ? error.message : String(error);
52
+ logger_1.logger.error(`Failed to get status: ${message}`);
53
+ process.exit(1);
54
+ }
55
+ });
56
+ }
57
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createStopCommand(): Command;
3
+ //# sourceMappingURL=stop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,iBAAiB,IAAI,OAAO,CAc3C"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createStopCommand = createStopCommand;
4
+ const docker_compose_1 = require("../services/docker-compose");
5
+ const env_loader_1 = require("../utils/env-loader");
6
+ const logger_1 = require("../utils/logger");
7
+ const i18n_1 = require("../i18n");
8
+ const command_1 = require("../utils/command");
9
+ function createStopCommand() {
10
+ return (0, command_1.createCommand)('stop')
11
+ .description((0, i18n_1.t)('commands.stop.description'))
12
+ .action(() => {
13
+ try {
14
+ const config = env_loader_1.envLoader.load();
15
+ docker_compose_1.composeService.stop(config.COMPOSE_FILE_PATH);
16
+ logger_1.logger.success('Containers stopped successfully.');
17
+ }
18
+ catch (error) {
19
+ const message = error instanceof Error ? error.message : String(error);
20
+ logger_1.logger.error(`Failed to stop containers: ${message}`);
21
+ process.exit(1);
22
+ }
23
+ });
24
+ }
25
+ //# sourceMappingURL=stop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":";;AAOA,8CAcC;AApBD,+DAA4D;AAC5D,oDAAgD;AAChD,4CAAyC;AACzC,kCAA4B;AAC5B,8CAAiD;AAEjD,SAAgB,iBAAiB;IAC/B,OAAO,IAAA,uBAAa,EAAC,MAAM,CAAC;SACzB,WAAW,CAAC,IAAA,QAAC,EAAC,2BAA2B,CAAC,CAAC;SAC3C,MAAM,CAAC,GAAG,EAAE;QACX,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,sBAAS,CAAC,IAAI,EAAE,CAAC;YAChC,+BAAc,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAC9C,eAAM,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,eAAM,CAAC,KAAK,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createUpCommand(): Command;
3
+ //# sourceMappingURL=up.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuCpC,wBAAgB,eAAe,IAAI,OAAO,CA0CzC"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createUpCommand = createUpCommand;
4
+ const docker_compose_1 = require("../services/docker-compose");
5
+ const docker_network_1 = require("../services/docker-network");
6
+ const ssh_manager_1 = require("../services/ssh-manager");
7
+ const docker_volume_1 = require("../services/docker-volume");
8
+ const docker_checker_1 = require("../utils/docker-checker");
9
+ const env_loader_1 = require("../utils/env-loader");
10
+ const project_files_1 = require("../utils/project-files");
11
+ const logger_1 = require("../utils/logger");
12
+ const setup_1 = require("./setup");
13
+ const i18n_1 = require("../i18n");
14
+ const command_1 = require("../utils/command");
15
+ function ensureDocker() {
16
+ if (!docker_checker_1.dockerChecker.isInstalled()) {
17
+ throw new Error('Docker is not installed or not in PATH');
18
+ }
19
+ if (!docker_checker_1.dockerChecker.composePluginInstalled()) {
20
+ throw new Error('Docker Compose plugin is not installed');
21
+ }
22
+ }
23
+ async function loadOrSetup(options) {
24
+ let config = env_loader_1.envLoader.load();
25
+ if (!env_loader_1.envLoader.hasRequiredVars(config)) {
26
+ logger_1.logger.warn('Runestone is not configured yet. Starting setup.');
27
+ config = await (0, setup_1.runSetup)();
28
+ }
29
+ (0, project_files_1.ensureProjectFiles)(config);
30
+ return config;
31
+ }
32
+ function createUpCommand() {
33
+ return (0, command_1.createCommand)('up')
34
+ .description((0, i18n_1.t)('commands.up.description'))
35
+ .option('--force-recreate', (0, i18n_1.t)('options.forceRecreate.description'))
36
+ .option('--no-deps', (0, i18n_1.t)('options.noDeps.description'))
37
+ .action(async (options) => {
38
+ try {
39
+ const config = await loadOrSetup(options);
40
+ ensureDocker();
41
+ if (!docker_network_1.networkService.exists(config.NETWORK_NAME)) {
42
+ logger_1.logger.info(`Creating Docker network '${config.NETWORK_NAME}'`);
43
+ docker_network_1.networkService.createNetwork(config.NETWORK_NAME);
44
+ }
45
+ if (!docker_volume_1.volumeService.exists(config.SSH_VOLUME_NAME)) {
46
+ logger_1.logger.info(`Creating Docker volume '${config.SSH_VOLUME_NAME}'`);
47
+ docker_volume_1.volumeService.createVolume(config.SSH_VOLUME_NAME);
48
+ }
49
+ logger_1.logger.info('Starting Docker Compose services');
50
+ docker_compose_1.composeService.up(config.COMPOSE_FILE_PATH, {
51
+ wait: true,
52
+ forceRecreate: Boolean(options.forceRecreate),
53
+ noDeps: options.deps === false
54
+ });
55
+ if (process.env.RUNESTONE_SKIP_SSH_KEYS === '1') {
56
+ logger_1.logger.warn('Skipping SSH key injection because RUNESTONE_SKIP_SSH_KEYS=1.');
57
+ }
58
+ else {
59
+ logger_1.logger.info('Injecting SSH keys');
60
+ ssh_manager_1.sshManager.addKeys(undefined, config.SSH_VOLUME_NAME);
61
+ }
62
+ logger_1.logger.success(`runestone is ready at https://traefik.${config.HOST_DOMAIN}`);
63
+ logger_1.logger.info(`Mailpit: http://mailpit.${config.HOST_DOMAIN}`);
64
+ }
65
+ catch (error) {
66
+ const message = error instanceof Error ? error.message : String(error);
67
+ logger_1.logger.error(`Failed to start environment: ${message}`);
68
+ process.exit(1);
69
+ }
70
+ });
71
+ }
72
+ //# sourceMappingURL=up.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"up.js","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,316 @@
1
+ export declare const SUPPORTED_LOCALES: readonly ["en", "zh-TW", "ja-JP"];
2
+ export type Locale = (typeof SUPPORTED_LOCALES)[number];
3
+ declare const messages: {
4
+ readonly en: {
5
+ readonly 'cli.description': "Cross-platform CLI tool for the Runestone local development environment";
6
+ readonly 'commands.setup.description': "Interactive setup for runestone";
7
+ readonly 'commands.up.description': "Start the runestone environment";
8
+ readonly 'commands.stop.description': "Stop the Runestone environment without deleting data";
9
+ readonly 'commands.down.description': "Remove the Runestone environment";
10
+ readonly 'commands.status.description': "Show environment status";
11
+ readonly 'commands.certs.description': "Manage SSL certificates";
12
+ readonly 'commands.certs.create.description': "Generate local SSL certificate for a domain";
13
+ readonly 'commands.certs.list.description': "List generated SSL certificates";
14
+ readonly 'commands.certs.remove.description': "Remove certificate for a domain";
15
+ readonly 'commands.keys.description': "Manage SSH keys for Runestone";
16
+ readonly 'commands.keys.ls.description': "List injected SSH keys";
17
+ readonly 'commands.keys.add.description': "Add an SSH key to Runestone";
18
+ readonly 'options.forceRecreate.description': "Recreate services before starting";
19
+ readonly 'options.noDeps.description': "Start only the main service";
20
+ readonly 'options.removeNetwork.description': "Remove the shared network after teardown";
21
+ readonly 'options.removeVolumes.description': "Remove saved data volumes";
22
+ readonly 'options.purge.description': "Remove all local Runestone resources and images";
23
+ readonly 'options.noHeader.description': "Hide the table header";
24
+ readonly 'arguments.domain.create': "Domain to generate certificate for";
25
+ readonly 'arguments.domain.remove': "Domain to remove certificate for";
26
+ readonly 'arguments.keyPath': "Path to the SSH private key file";
27
+ readonly 'common.yes': "Yes";
28
+ readonly 'common.no': "No";
29
+ readonly 'setup.intro': "runestone setup";
30
+ readonly 'setup.cancelled': "Setup cancelled.";
31
+ readonly 'setup.failed': "Setup failed: {message}";
32
+ readonly 'setup.language.title': "Language";
33
+ readonly 'setup.language.description': "Choose the language used by setup and saved to this Runestone configuration.";
34
+ readonly 'setup.language.prompt': "Language";
35
+ readonly 'setup.runestonePath.title': "Runestone path";
36
+ readonly 'setup.runestonePath.description': "Runestone stores its .env, compose.yml, certificates, and Traefik configuration here. The default is ~/.runestone.";
37
+ readonly 'setup.runestonePath.required': "Runestone path is required";
38
+ readonly 'setup.existingSettings': "Existing settings found at {envPath}. Current values will be used as defaults.";
39
+ readonly 'setup.dockerDomain.title': "Docker domain";
40
+ readonly 'setup.dockerDomain.description': "This base domain is used for generated service hostnames such as traefik.<domain> and mailpit.<domain>.";
41
+ readonly 'setup.dockerDomain.required': "Domain is required";
42
+ readonly 'setup.domainCheck.title': "Docker domain check";
43
+ readonly 'setup.domainCheck.description1': "Runestone uses hosts under *.{domain}, so the check only verifies wildcard DNS.";
44
+ readonly 'setup.domainCheck.description2': "The wildcard check queries runestone-wildcard-check.{domain} instead of the bare domain.";
45
+ readonly 'setup.domainCheck.description3': "The check accepts 127.0.0.1, ::1, and IP addresses from local network interfaces.";
46
+ readonly 'setup.domainCheck.prompt': "Check whether this Docker domain resolves to this machine?";
47
+ readonly 'setup.domainCheck.skipped': "Docker domain resolution check skipped by user.";
48
+ readonly 'setup.domainCheck.spinner': "Checking Docker domain resolution";
49
+ readonly 'setup.domainCheck.spinnerDone': "Docker domain resolution check {status}";
50
+ readonly 'setup.domainCheck.localAddresses': "Local addresses considered for {domain}:";
51
+ readonly 'setup.domainCheck.externalIpv6': "External IPv6 detected: {value}";
52
+ readonly 'setup.domainCheck.resolvedTo': "{host} resolved to:";
53
+ readonly 'setup.domainCheck.noRecords': "no records";
54
+ readonly 'setup.domainCheck.success': "Docker domain resolves to this machine.";
55
+ readonly 'setup.domainCheck.warnContinue': "Docker domain check has warnings. Ignore and continue?";
56
+ readonly 'setup.domainCheck.failContinue': "Docker domain check failed. Ignore and continue?";
57
+ readonly 'setup.domainCheck.cancelled': "Setup cancelled. Update DNS or hosts file, then run setup again.";
58
+ readonly 'setup.projectPrefix.title': "Project prefix";
59
+ readonly 'setup.projectPrefix.description': "The prefix is used for Docker resource names such as the container, network, and SSH volume.";
60
+ readonly 'setup.projectPrefix.required': "Prefix is required";
61
+ readonly 'setup.httpGroup.title': "HTTP entrypoint & HTTP entrypoint port";
62
+ readonly 'setup.httpGroup.description1': "HTTP entrypoint name is passed to the Runestone container.";
63
+ readonly 'setup.httpGroup.description2': "HTTP entrypoint port defaults to 80 and maps plain HTTP traffic plus Traefik web redirects from the host.";
64
+ readonly 'setup.httpName.prompt': "HTTP entrypoint name";
65
+ readonly 'setup.httpName.required': "HTTP entrypoint name is required";
66
+ readonly 'setup.httpPort.prompt': "HTTP entrypoint port";
67
+ readonly 'setup.httpsGroup.title': "HTTPS entrypoint & HTTPS entrypoint port";
68
+ readonly 'setup.httpsGroup.description1': "HTTPS entrypoint name is passed to the Runestone container.";
69
+ readonly 'setup.httpsGroup.description2': "HTTPS entrypoint port defaults to 443 and is where browsers connect with the generated local certificates.";
70
+ readonly 'setup.httpsName.prompt': "HTTPS entrypoint name";
71
+ readonly 'setup.httpsName.required': "HTTPS entrypoint name is required";
72
+ readonly 'setup.httpsPort.prompt': "HTTPS entrypoint port";
73
+ readonly 'setup.mailpit.title': "Mailpit SMTP port";
74
+ readonly 'setup.mailpit.description': "Defaults to 1025. Applications use this host port to send mail into Mailpit during local development.";
75
+ readonly 'setup.mailpit.prompt': "Mailpit SMTP port";
76
+ readonly 'setup.hotkey.back': "Esc Back";
77
+ readonly 'setup.hotkey.next': "Enter Next";
78
+ readonly 'setup.hotkey.cancel': "Ctrl+C Cancel";
79
+ readonly 'setup.backSubmitted': "Back";
80
+ readonly 'setup.review.title': "Review settings";
81
+ readonly 'setup.review.prompt': "Apply these settings?";
82
+ readonly 'setup.review.apply': "Apply settings";
83
+ readonly 'setup.review.back': "Back to previous step";
84
+ readonly 'setup.review.cancel': "Cancel";
85
+ readonly 'setup.port.number': "Port must be a number";
86
+ readonly 'setup.port.range': "Port must be between 1 and 65535";
87
+ readonly 'setup.port.inUse': "Port {port} is already in use. Choose an unused port before continuing.";
88
+ readonly 'setup.writingFiles': "Writing runestone project files";
89
+ readonly 'setup.configurationWritten': "Configuration written to {envPath}";
90
+ readonly 'setup.localCa.title': "Install local CA for SSL certificates";
91
+ readonly 'setup.localCa.description': "This trusts the local certificate authority and generates default wildcard certificates for the Runestone domain and traefik.me.";
92
+ readonly 'setup.localCa.prompt': "Install local CA for SSL certificates?";
93
+ readonly 'setup.localCa.spinner': "Installing local CA and generating default certificates";
94
+ readonly 'setup.localCa.done': "Local CA installed and default certificates generated";
95
+ readonly 'setup.restart.prompt': "Runestone settings changed. Restart runestone now?";
96
+ readonly 'setup.restart.spinner': "Restarting runestone";
97
+ readonly 'setup.restart.done': "Runestone restarted";
98
+ readonly 'setup.restart.notRunning': "No running runestone container was found to restart.";
99
+ readonly 'setup.result.path': "Runestone path: {path}";
100
+ readonly 'setup.result.compose': "Compose file: {path}";
101
+ readonly 'setup.result.domain': "Domain: {domain}";
102
+ readonly 'setup.outro': "Setup complete. Run `runestone up` to start the environment.";
103
+ };
104
+ readonly 'zh-TW': {
105
+ readonly 'cli.description': "Runestone 本地開發環境的跨平台 CLI 工具";
106
+ readonly 'commands.setup.description': "Runestone 互動式設定";
107
+ readonly 'commands.up.description': "啟動 Runestone 環境";
108
+ readonly 'commands.stop.description': "停止 Runestone 環境但保留資料";
109
+ readonly 'commands.down.description': "移除 Runestone 環境";
110
+ readonly 'commands.status.description': "顯示環境狀態";
111
+ readonly 'commands.certs.description': "管理 SSL 憑證";
112
+ readonly 'commands.certs.create.description': "為網域產生本地 SSL 憑證";
113
+ readonly 'commands.certs.list.description': "列出已產生的 SSL 憑證";
114
+ readonly 'commands.certs.remove.description': "移除指定網域的憑證";
115
+ readonly 'commands.keys.description': "管理 Runestone 的 SSH keys";
116
+ readonly 'commands.keys.ls.description': "列出已注入的 SSH keys";
117
+ readonly 'commands.keys.add.description': "將 SSH key 加入 Runestone";
118
+ readonly 'options.forceRecreate.description': "啟動前重新建立服務";
119
+ readonly 'options.noDeps.description': "只啟動主要服務";
120
+ readonly 'options.removeNetwork.description': "拆除後移除共用網路";
121
+ readonly 'options.removeVolumes.description': "移除保存的資料 volumes";
122
+ readonly 'options.purge.description': "移除所有本機 Runestone 資源與 images";
123
+ readonly 'options.noHeader.description': "隱藏表格標題列";
124
+ readonly 'arguments.domain.create': "要產生憑證的網域";
125
+ readonly 'arguments.domain.remove': "要移除憑證的網域";
126
+ readonly 'arguments.keyPath': "SSH private key 檔案路徑";
127
+ readonly 'common.yes': "是";
128
+ readonly 'common.no': "否";
129
+ readonly 'setup.intro': "runestone 設定";
130
+ readonly 'setup.cancelled': "設定已取消。";
131
+ readonly 'setup.failed': "設定失敗:{message}";
132
+ readonly 'setup.language.title': "語言";
133
+ readonly 'setup.language.description': "選擇 setup 使用並寫入此 Runestone 設定的語言。";
134
+ readonly 'setup.language.prompt': "語言";
135
+ readonly 'setup.runestonePath.title': "Runestone path";
136
+ readonly 'setup.runestonePath.description': "Runestone 會在這裡存放 .env、compose.yml、憑證與 Traefik 設定。預設是 ~/.runestone。";
137
+ readonly 'setup.runestonePath.required': "Runestone path 必填";
138
+ readonly 'setup.existingSettings': "找到既有設定:{envPath}。目前值會作為預設值。";
139
+ readonly 'setup.dockerDomain.title': "Docker domain";
140
+ readonly 'setup.dockerDomain.description': "這個基礎網域會用來產生 traefik.<domain>、mailpit.<domain> 等服務 hostname。";
141
+ readonly 'setup.dockerDomain.required': "Domain 必填";
142
+ readonly 'setup.domainCheck.title': "Docker domain 檢查";
143
+ readonly 'setup.domainCheck.description1': "Runestone 使用 *.{domain} 底下的 hosts,所以只檢查 wildcard DNS。";
144
+ readonly 'setup.domainCheck.description2': "Wildcard 檢查會查詢 runestone-wildcard-check.{domain},不是 bare domain。";
145
+ readonly 'setup.domainCheck.description3': "檢查會接受 127.0.0.1、::1,以及本機網路介面上的 IP。";
146
+ readonly 'setup.domainCheck.prompt': "是否檢查這個 Docker domain 是否解析到本機?";
147
+ readonly 'setup.domainCheck.skipped': "使用者略過 Docker domain 解析檢查。";
148
+ readonly 'setup.domainCheck.spinner': "正在檢查 Docker domain 解析";
149
+ readonly 'setup.domainCheck.spinnerDone': "Docker domain 解析檢查結果:{status}";
150
+ readonly 'setup.domainCheck.localAddresses': "{domain} 檢查採用的本機 IP:";
151
+ readonly 'setup.domainCheck.externalIpv6': "偵測到外部 IPv6:{value}";
152
+ readonly 'setup.domainCheck.resolvedTo': "{host} 解析到:";
153
+ readonly 'setup.domainCheck.noRecords': "沒有記錄";
154
+ readonly 'setup.domainCheck.success': "Docker domain 已解析到本機。";
155
+ readonly 'setup.domainCheck.warnContinue': "Docker domain 檢查有警告。是否忽略並繼續?";
156
+ readonly 'setup.domainCheck.failContinue': "Docker domain 檢查失敗。是否忽略並繼續?";
157
+ readonly 'setup.domainCheck.cancelled': "設定已取消。請更新 DNS 或 hosts file 後再重新執行 setup。";
158
+ readonly 'setup.projectPrefix.title': "Project prefix";
159
+ readonly 'setup.projectPrefix.description': "Prefix 會用於 Docker resource 名稱,例如 container、network 和 SSH volume。";
160
+ readonly 'setup.projectPrefix.required': "Prefix 必填";
161
+ readonly 'setup.httpGroup.title': "HTTP entrypoint 與 HTTP entrypoint port";
162
+ readonly 'setup.httpGroup.description1': "HTTP entrypoint name 會傳給 Runestone container。";
163
+ readonly 'setup.httpGroup.description2': "HTTP entrypoint port 預設是 80,會對應 host 上的 HTTP 流量與 Traefik web redirect。";
164
+ readonly 'setup.httpName.prompt': "HTTP entrypoint name";
165
+ readonly 'setup.httpName.required': "HTTP entrypoint name 必填";
166
+ readonly 'setup.httpPort.prompt': "HTTP entrypoint port";
167
+ readonly 'setup.httpsGroup.title': "HTTPS entrypoint 與 HTTPS entrypoint port";
168
+ readonly 'setup.httpsGroup.description1': "HTTPS entrypoint name 會傳給 Runestone container。";
169
+ readonly 'setup.httpsGroup.description2': "HTTPS entrypoint port 預設是 443,瀏覽器會透過這個 port 使用本地憑證連線。";
170
+ readonly 'setup.httpsName.prompt': "HTTPS entrypoint name";
171
+ readonly 'setup.httpsName.required': "HTTPS entrypoint name 必填";
172
+ readonly 'setup.httpsPort.prompt': "HTTPS entrypoint port";
173
+ readonly 'setup.mailpit.title': "Mailpit SMTP port";
174
+ readonly 'setup.mailpit.description': "預設是 1025。應用程式會用這個 host port 將測試信件送進 Mailpit。";
175
+ readonly 'setup.mailpit.prompt': "Mailpit SMTP port";
176
+ readonly 'setup.hotkey.back': "Esc 上一步";
177
+ readonly 'setup.hotkey.next': "Enter 下一步";
178
+ readonly 'setup.hotkey.cancel': "Ctrl+C 取消";
179
+ readonly 'setup.backSubmitted': "上一步";
180
+ readonly 'setup.review.title': "確認設定";
181
+ readonly 'setup.review.prompt': "是否套用這些設定?";
182
+ readonly 'setup.review.apply': "套用設定";
183
+ readonly 'setup.review.back': "回到上一步";
184
+ readonly 'setup.review.cancel': "取消";
185
+ readonly 'setup.port.number': "Port 必須是數字";
186
+ readonly 'setup.port.range': "Port 必須介於 1 到 65535";
187
+ readonly 'setup.port.inUse': "Port {port} 已被使用。請選擇未被占用的 port。";
188
+ readonly 'setup.writingFiles': "正在寫入 Runestone 專案檔案";
189
+ readonly 'setup.configurationWritten': "設定已寫入 {envPath}";
190
+ readonly 'setup.localCa.title': "安裝本地 CA 給 SSL 憑證使用";
191
+ readonly 'setup.localCa.description': "這會信任本地憑證授權單位,並為 Runestone domain 與 traefik.me 產生預設 wildcard 憑證。";
192
+ readonly 'setup.localCa.prompt': "是否安裝本地 CA 給 SSL 憑證使用?";
193
+ readonly 'setup.localCa.spinner': "正在安裝本地 CA 並產生預設憑證";
194
+ readonly 'setup.localCa.done': "本地 CA 已安裝,預設憑證已產生";
195
+ readonly 'setup.restart.prompt': "Runestone 設定已變更。是否現在 restart runestone?";
196
+ readonly 'setup.restart.spinner': "正在 restart runestone";
197
+ readonly 'setup.restart.done': "Runestone 已 restart";
198
+ readonly 'setup.restart.notRunning': "找不到正在執行的 runestone container 可 restart。";
199
+ readonly 'setup.result.path': "Runestone path:{path}";
200
+ readonly 'setup.result.compose': "Compose file:{path}";
201
+ readonly 'setup.result.domain': "Domain:{domain}";
202
+ readonly 'setup.outro': "Setup 完成。執行 `runestone up` 啟動環境。";
203
+ };
204
+ readonly 'ja-JP': {
205
+ readonly 'cli.description': "Runestone ローカル開発環境用のクロスプラットフォーム CLI ツール";
206
+ readonly 'commands.setup.description': "Runestone の対話式設定";
207
+ readonly 'commands.up.description': "Runestone 環境を起動します";
208
+ readonly 'commands.stop.description': "データを残したまま Runestone 環境を停止します";
209
+ readonly 'commands.down.description': "Runestone 環境を削除します";
210
+ readonly 'commands.status.description': "環境の状態を表示します";
211
+ readonly 'commands.certs.description': "SSL 証明書を管理します";
212
+ readonly 'commands.certs.create.description': "ドメイン用のローカル SSL 証明書を生成します";
213
+ readonly 'commands.certs.list.description': "生成済みの SSL 証明書を一覧表示します";
214
+ readonly 'commands.certs.remove.description': "指定したドメインの証明書を削除します";
215
+ readonly 'commands.keys.description': "Runestone の SSH keys を管理します";
216
+ readonly 'commands.keys.ls.description': "注入済み SSH keys を一覧表示します";
217
+ readonly 'commands.keys.add.description': "SSH key を Runestone に追加します";
218
+ readonly 'options.forceRecreate.description': "起動前にサービスを再作成します";
219
+ readonly 'options.noDeps.description': "メインサービスのみ起動します";
220
+ readonly 'options.removeNetwork.description': "削除後に共有ネットワークも削除します";
221
+ readonly 'options.removeVolumes.description': "保存されたデータ volumes を削除します";
222
+ readonly 'options.purge.description': "ローカルの Runestone resources と images をすべて削除します";
223
+ readonly 'options.noHeader.description': "表のヘッダーを非表示にします";
224
+ readonly 'arguments.domain.create': "証明書を生成するドメイン";
225
+ readonly 'arguments.domain.remove': "証明書を削除するドメイン";
226
+ readonly 'arguments.keyPath': "SSH private key ファイルのパス";
227
+ readonly 'common.yes': "はい";
228
+ readonly 'common.no': "いいえ";
229
+ readonly 'setup.intro': "runestone 設定";
230
+ readonly 'setup.cancelled': "設定をキャンセルしました。";
231
+ readonly 'setup.failed': "設定に失敗しました: {message}";
232
+ readonly 'setup.language.title': "言語";
233
+ readonly 'setup.language.description': "setup で使用し、この Runestone 設定に保存する言語を選択します。";
234
+ readonly 'setup.language.prompt': "言語";
235
+ readonly 'setup.runestonePath.title': "Runestone path";
236
+ readonly 'setup.runestonePath.description': "Runestone は .env、compose.yml、証明書、Traefik 設定をここに保存します。既定値は ~/.runestone です。";
237
+ readonly 'setup.runestonePath.required': "Runestone path は必須です";
238
+ readonly 'setup.existingSettings': "既存の設定が見つかりました: {envPath}。現在の値を既定値として使用します。";
239
+ readonly 'setup.dockerDomain.title': "Docker domain";
240
+ readonly 'setup.dockerDomain.description': "このベースドメインは traefik.<domain> や mailpit.<domain> などの service hostname に使われます。";
241
+ readonly 'setup.dockerDomain.required': "Domain は必須です";
242
+ readonly 'setup.domainCheck.title': "Docker domain チェック";
243
+ readonly 'setup.domainCheck.description1': "Runestone は *.{domain} 配下の hosts を使うため、wildcard DNS のみ確認します。";
244
+ readonly 'setup.domainCheck.description2': "Wildcard チェックでは bare domain ではなく runestone-wildcard-check.{domain} を問い合わせます。";
245
+ readonly 'setup.domainCheck.description3': "127.0.0.1、::1、およびローカルネットワークインターフェイスの IP を許可します。";
246
+ readonly 'setup.domainCheck.prompt': "この Docker domain がこのマシンに解決されるか確認しますか?";
247
+ readonly 'setup.domainCheck.skipped': "Docker domain の解決チェックはユーザーによりスキップされました。";
248
+ readonly 'setup.domainCheck.spinner': "Docker domain の解決を確認しています";
249
+ readonly 'setup.domainCheck.spinnerDone': "Docker domain 解決チェック: {status}";
250
+ readonly 'setup.domainCheck.localAddresses': "{domain} の確認に使うローカル IP:";
251
+ readonly 'setup.domainCheck.externalIpv6': "外部 IPv6 検出: {value}";
252
+ readonly 'setup.domainCheck.resolvedTo': "{host} の解決先:";
253
+ readonly 'setup.domainCheck.noRecords': "レコードなし";
254
+ readonly 'setup.domainCheck.success': "Docker domain はこのマシンに解決されます。";
255
+ readonly 'setup.domainCheck.warnContinue': "Docker domain チェックに警告があります。無視して続行しますか?";
256
+ readonly 'setup.domainCheck.failContinue': "Docker domain チェックに失敗しました。無視して続行しますか?";
257
+ readonly 'setup.domainCheck.cancelled': "設定をキャンセルしました。DNS または hosts file を更新してから再実行してください。";
258
+ readonly 'setup.projectPrefix.title': "Project prefix";
259
+ readonly 'setup.projectPrefix.description': "Prefix は container、network、SSH volume などの Docker resource 名に使われます。";
260
+ readonly 'setup.projectPrefix.required': "Prefix は必須です";
261
+ readonly 'setup.httpGroup.title': "HTTP entrypoint と HTTP entrypoint port";
262
+ readonly 'setup.httpGroup.description1': "HTTP entrypoint name は Runestone container に渡されます。";
263
+ readonly 'setup.httpGroup.description2': "HTTP entrypoint port の既定値は 80 で、host の HTTP 通信と Traefik web redirect に使われます。";
264
+ readonly 'setup.httpName.prompt': "HTTP entrypoint name";
265
+ readonly 'setup.httpName.required': "HTTP entrypoint name は必須です";
266
+ readonly 'setup.httpPort.prompt': "HTTP entrypoint port";
267
+ readonly 'setup.httpsGroup.title': "HTTPS entrypoint と HTTPS entrypoint port";
268
+ readonly 'setup.httpsGroup.description1': "HTTPS entrypoint name は Runestone container に渡されます。";
269
+ readonly 'setup.httpsGroup.description2': "HTTPS entrypoint port の既定値は 443 で、ブラウザが生成済みローカル証明書で接続する port です。";
270
+ readonly 'setup.httpsName.prompt': "HTTPS entrypoint name";
271
+ readonly 'setup.httpsName.required': "HTTPS entrypoint name は必須です";
272
+ readonly 'setup.httpsPort.prompt': "HTTPS entrypoint port";
273
+ readonly 'setup.mailpit.title': "Mailpit SMTP port";
274
+ readonly 'setup.mailpit.description': "既定値は 1025 です。アプリケーションはこの host port から Mailpit にメールを送信します。";
275
+ readonly 'setup.mailpit.prompt': "Mailpit SMTP port";
276
+ readonly 'setup.hotkey.back': "Esc 戻る";
277
+ readonly 'setup.hotkey.next': "Enter 次へ";
278
+ readonly 'setup.hotkey.cancel': "Ctrl+C キャンセル";
279
+ readonly 'setup.backSubmitted': "戻る";
280
+ readonly 'setup.review.title': "設定の確認";
281
+ readonly 'setup.review.prompt': "この設定を適用しますか?";
282
+ readonly 'setup.review.apply': "設定を適用";
283
+ readonly 'setup.review.back': "前のステップへ戻る";
284
+ readonly 'setup.review.cancel': "キャンセル";
285
+ readonly 'setup.port.number': "Port は数値で入力してください";
286
+ readonly 'setup.port.range': "Port は 1 から 65535 の範囲で入力してください";
287
+ readonly 'setup.port.inUse': "Port {port} は既に使用中です。未使用の port を選択してください。";
288
+ readonly 'setup.writingFiles': "Runestone project files を書き込んでいます";
289
+ readonly 'setup.configurationWritten': "設定を {envPath} に書き込みました";
290
+ readonly 'setup.localCa.title': "SSL 証明書用のローカル CA をインストール";
291
+ readonly 'setup.localCa.description': "ローカル認証局を信頼し、Runestone domain と traefik.me の既定 wildcard 証明書を生成します。";
292
+ readonly 'setup.localCa.prompt': "SSL 証明書用のローカル CA をインストールしますか?";
293
+ readonly 'setup.localCa.spinner': "ローカル CA をインストールし、既定証明書を生成しています";
294
+ readonly 'setup.localCa.done': "ローカル CA をインストールし、既定証明書を生成しました";
295
+ readonly 'setup.restart.prompt': "Runestone 設定が変更されました。今すぐ runestone を restart しますか?";
296
+ readonly 'setup.restart.spinner': "runestone を restart しています";
297
+ readonly 'setup.restart.done': "Runestone を restart しました";
298
+ readonly 'setup.restart.notRunning': "restart できる実行中の runestone container が見つかりません。";
299
+ readonly 'setup.result.path': "Runestone path: {path}";
300
+ readonly 'setup.result.compose': "Compose file: {path}";
301
+ readonly 'setup.result.domain': "Domain: {domain}";
302
+ readonly 'setup.outro': "Setup が完了しました。`runestone up` で環境を起動してください。";
303
+ };
304
+ };
305
+ type MessageKey = keyof typeof messages.en;
306
+ export declare function resolveLocale(userLocale?: string): Locale;
307
+ export declare function initialSetupLocale(userLocale?: string): Locale;
308
+ export declare function languageChoices(): Array<{
309
+ value: Locale;
310
+ label: string;
311
+ }>;
312
+ export declare function formatMessage(locale: Locale, key: string, vars?: Record<string, string | number | boolean>): string;
313
+ export declare function createTranslator(locale: Locale): (key: MessageKey, vars?: Record<string, string | number | boolean>) => string;
314
+ export declare function t(key: MessageKey, vars?: Record<string, string | number | boolean>): string;
315
+ export {};
316
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB,mCAAoC,CAAC;AACnE,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAQxD,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8TJ,CAAC;AAEX,KAAK,UAAU,GAAG,MAAM,OAAO,QAAQ,CAAC,EAAE,CAAC;AAgD3C,wBAAgB,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,eAAe,IAAI,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAEzE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAM,GAAG,MAAM,CAKvH;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,KAAK,MAAM,CAE9H;AAED,wBAAgB,CAAC,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,MAAM,CAE3F"}