@ketrics/ketrics-cli 0.5.0 → 0.6.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 (36) hide show
  1. package/dist/src/cli.d.ts.map +1 -1
  2. package/dist/src/cli.js +6 -0
  3. package/dist/src/cli.js.map +1 -1
  4. package/dist/src/commands/create.d.ts +1 -0
  5. package/dist/src/commands/create.d.ts.map +1 -1
  6. package/dist/src/commands/create.js +44 -13
  7. package/dist/src/commands/create.js.map +1 -1
  8. package/dist/src/services/local-template-service.d.ts +52 -0
  9. package/dist/src/services/local-template-service.d.ts.map +1 -0
  10. package/dist/src/services/local-template-service.js +216 -0
  11. package/dist/src/services/local-template-service.js.map +1 -0
  12. package/dist/src/services/remote-template-service.d.ts +41 -0
  13. package/dist/src/services/remote-template-service.d.ts.map +1 -0
  14. package/dist/src/services/remote-template-service.js +232 -0
  15. package/dist/src/services/remote-template-service.js.map +1 -0
  16. package/dist/src/services/template-cache-service.d.ts +44 -0
  17. package/dist/src/services/template-cache-service.d.ts.map +1 -0
  18. package/dist/src/services/template-cache-service.js +193 -0
  19. package/dist/src/services/template-cache-service.js.map +1 -0
  20. package/dist/src/services/template-service.d.ts +25 -31
  21. package/dist/src/services/template-service.d.ts.map +1 -1
  22. package/dist/src/services/template-service.js +136 -132
  23. package/dist/src/services/template-service.js.map +1 -1
  24. package/dist/src/types/index.d.ts +46 -0
  25. package/dist/src/types/index.d.ts.map +1 -1
  26. package/dist/src/types/index.js.map +1 -1
  27. package/dist/src/version.d.ts +1 -1
  28. package/dist/src/version.js +1 -1
  29. package/package.json +5 -1
  30. package/templates/HelloWorld/.claude/skills/ketrics-app/BACKEND_REFERENCE.md +693 -0
  31. package/templates/HelloWorld/.claude/skills/ketrics-app/CONFIG_AND_DEPLOY.md +278 -0
  32. package/templates/HelloWorld/.claude/skills/ketrics-app/FRONTEND_REFERENCE.md +325 -0
  33. package/templates/HelloWorld/.claude/skills/ketrics-app/SKILL.md +348 -0
  34. package/templates/HelloWorld/.env.example +20 -0
  35. package/templates/HelloWorld/.github/workflows/deploy.yml +51 -0
  36. package/templates/HelloWorld/backend/package.json +1 -1
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  /**
3
- * Template Service
3
+ * Template Service (Orchestrator)
4
4
  *
5
- * Handles template discovery, listing, and copying for the init command.
5
+ * Coordinates between remote and local template sources.
6
+ * Strategy: remote-first with cache, falling back to bundled local templates.
6
7
  */
7
8
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
9
  if (k2 === undefined) k2 = k;
@@ -37,178 +38,181 @@ var __importStar = (this && this.__importStar) || (function () {
37
38
  return result;
38
39
  };
39
40
  })();
41
+ var __importDefault = (this && this.__importDefault) || function (mod) {
42
+ return (mod && mod.__esModule) ? mod : { "default": mod };
43
+ };
40
44
  Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.createDirectory = exports.directoryExists = void 0;
41
46
  exports.getAvailableTemplates = getAvailableTemplates;
42
47
  exports.getTemplate = getTemplate;
43
- exports.validateDestination = validateDestination;
44
- exports.copyTemplate = copyTemplate;
48
+ exports.copyTemplateToDestination = copyTemplateToDestination;
49
+ exports.applyCustomizations = applyCustomizations;
45
50
  exports.getTemplateFiles = getTemplateFiles;
46
- exports.updateAppName = updateAppName;
47
- exports.directoryExists = directoryExists;
48
- exports.createDirectory = createDirectory;
51
+ exports.clearCache = clearCache;
49
52
  const fs = __importStar(require("fs"));
50
53
  const path = __importStar(require("path"));
54
+ const semver_1 = __importDefault(require("semver"));
55
+ const logger_1 = require("../utils/logger");
56
+ const version_1 = require("../version");
57
+ const localTemplateService = __importStar(require("./local-template-service"));
58
+ const remoteTemplateService = __importStar(require("./remote-template-service"));
59
+ const cacheService = __importStar(require("./template-cache-service"));
51
60
  /**
52
- * Get the templates directory path
61
+ * Get available templates, preferring remote with local fallback.
53
62
  */
54
- function getTemplatesDir() {
55
- // When running from dist/, templates is at ../templates
56
- // When running from src/, templates is at ../../templates
57
- const distPath = path.join(__dirname, '../../templates');
58
- const srcPath = path.join(__dirname, '../../../templates');
59
- if (fs.existsSync(distPath)) {
60
- return distPath;
63
+ async function getAvailableTemplates(options) {
64
+ // If --local flag, skip remote entirely
65
+ if (options.local) {
66
+ return localTemplateService.getAvailableTemplates();
61
67
  }
62
- if (fs.existsSync(srcPath)) {
63
- return srcPath;
68
+ try {
69
+ const templates = await getRemoteTemplates(options.refresh);
70
+ return templates;
64
71
  }
65
- throw new Error('Templates directory not found');
66
- }
67
- /**
68
- * Get list of available templates
69
- */
70
- function getAvailableTemplates() {
71
- const templatesDir = getTemplatesDir();
72
- const templates = [];
73
- const entries = fs.readdirSync(templatesDir, { withFileTypes: true });
74
- for (const entry of entries) {
75
- if (!entry.isDirectory())
76
- continue;
77
- const templatePath = path.join(templatesDir, entry.name);
78
- const configPath = path.join(templatePath, 'ketrics.config.json');
79
- // Skip if no ketrics.config.json
80
- if (!fs.existsSync(configPath))
81
- continue;
82
- try {
83
- const configContent = fs.readFileSync(configPath, 'utf-8');
84
- const config = JSON.parse(configContent);
85
- templates.push({
72
+ catch (error) {
73
+ // Try stale cache (any age)
74
+ const staleManifest = cacheService.getCachedManifest();
75
+ if (staleManifest) {
76
+ logger_1.logger.warn('Could not fetch remote templates. Using cached templates.');
77
+ const filtered = filterCompatibleTemplates(staleManifest.templates);
78
+ return filtered.map((entry) => ({
86
79
  name: entry.name,
87
- path: templatePath,
88
- description: config.description || 'No description available',
89
- });
90
- }
91
- catch {
92
- // Skip templates with invalid config
93
- continue;
80
+ path: cacheService.getCachedTemplatePath(entry.name),
81
+ description: entry.description,
82
+ source: 'remote',
83
+ minCliVersion: entry.minCliVersion,
84
+ minSdkVersion: entry.minSdkVersion,
85
+ tags: entry.tags,
86
+ }));
94
87
  }
88
+ // Fall back to bundled templates
89
+ logger_1.logger.warn('Could not fetch remote templates. Using bundled templates.');
90
+ return localTemplateService.getAvailableTemplates();
95
91
  }
96
- return templates;
97
92
  }
98
93
  /**
99
94
  * Get a specific template by name
100
95
  */
101
- function getTemplate(name) {
102
- const templates = getAvailableTemplates();
96
+ async function getTemplate(name, options) {
97
+ const templates = await getAvailableTemplates(options);
103
98
  return templates.find((t) => t.name === name);
104
99
  }
105
100
  /**
106
- * Validate destination directory before copying template
101
+ * Copy a template to the destination directory.
102
+ * For remote templates: downloads, extracts, and copies from tarball.
103
+ * For local templates: copies from bundled directory.
107
104
  */
108
- function validateDestination(destDir) {
109
- const errors = [];
110
- // Check for ketrics.config.json
111
- if (fs.existsSync(path.join(destDir, 'ketrics.config.json'))) {
112
- errors.push('Cannot initialize: ketrics.config.json already exists in this directory');
105
+ async function copyTemplateToDestination(template, destDir) {
106
+ if (template.source === 'local') {
107
+ localTemplateService.copyTemplate(template, destDir);
108
+ // Try to read template.json from the copied files
109
+ return remoteTemplateService.readTemplateConfig(destDir);
113
110
  }
114
- // Check for frontend/ directory
115
- if (fs.existsSync(path.join(destDir, 'frontend'))) {
116
- errors.push('Cannot initialize: frontend/ directory already exists');
111
+ // Remote template: download tarball, extract the specific template
112
+ const repoDir = await remoteTemplateService.downloadAndExtractTarball();
113
+ try {
114
+ // Find the manifest entry for this template
115
+ const manifestPath = path.join(repoDir, 'templates.json');
116
+ const manifestContent = fs.readFileSync(manifestPath, 'utf-8');
117
+ const manifest = JSON.parse(manifestContent);
118
+ const entry = manifest.templates.find((t) => t.name === template.name);
119
+ if (!entry) {
120
+ throw new Error(`Template "${template.name}" not found in downloaded repository`);
121
+ }
122
+ // Read template.json for ignore patterns and placeholders
123
+ const templateSrcDir = path.join(repoDir, entry.path);
124
+ const templateConfig = remoteTemplateService.readTemplateConfig(templateSrcDir);
125
+ const ignorePatterns = templateConfig?.ignore || [];
126
+ // Extract template to destination
127
+ remoteTemplateService.extractTemplate(repoDir, entry, destDir, ignorePatterns);
128
+ // Cache the template for offline use
129
+ cacheService.cacheTemplate(template.name, destDir);
130
+ return templateConfig;
117
131
  }
118
- // Check for backend/ directory
119
- if (fs.existsSync(path.join(destDir, 'backend'))) {
120
- errors.push('Cannot initialize: backend/ directory already exists');
132
+ finally {
133
+ // Clean up the temporary tarball extraction directory
134
+ remoteTemplateService.cleanupTmpDir(path.dirname(repoDir));
121
135
  }
122
- return {
123
- valid: errors.length === 0,
124
- errors,
125
- };
126
136
  }
127
137
  /**
128
- * Copy directory recursively
138
+ * Apply customizations to a copied template.
139
+ * Uses template.json placeholders if available, falls back to hardcoded updateAppName.
129
140
  */
130
- function copyDirRecursive(src, dest) {
131
- // Create destination directory
132
- if (!fs.existsSync(dest)) {
133
- fs.mkdirSync(dest, { recursive: true });
141
+ function applyCustomizations(projectDir, appName, templateConfig) {
142
+ if (templateConfig && templateConfig.placeholders) {
143
+ remoteTemplateService.applyPlaceholders(projectDir, templateConfig, {
144
+ APP_NAME: appName,
145
+ });
134
146
  }
135
- const entries = fs.readdirSync(src, { withFileTypes: true });
136
- for (const entry of entries) {
137
- const srcPath = path.join(src, entry.name);
138
- const destPath = path.join(dest, entry.name);
139
- if (entry.isDirectory()) {
140
- copyDirRecursive(srcPath, destPath);
141
- }
142
- else {
143
- fs.copyFileSync(srcPath, destPath);
144
- }
147
+ else {
148
+ // Fallback to the hardcoded approach for templates without template.json
149
+ localTemplateService.updateAppName(projectDir, appName);
145
150
  }
146
151
  }
147
152
  /**
148
- * Copy template to destination directory
149
- */
150
- function copyTemplate(template, destDir) {
151
- copyDirRecursive(template.path, destDir);
152
- }
153
- /**
154
- * Get files that will be copied from template
153
+ * Get the list of files in a template (for display purposes)
155
154
  */
156
155
  function getTemplateFiles(template) {
157
- const files = [];
158
- function collectFiles(dir, relativePath = '') {
159
- const entries = fs.readdirSync(dir, { withFileTypes: true });
160
- for (const entry of entries) {
161
- const fullPath = path.join(dir, entry.name);
162
- const relPath = relativePath ? path.join(relativePath, entry.name) : entry.name;
163
- if (entry.isDirectory()) {
164
- collectFiles(fullPath, relPath);
165
- }
166
- else {
167
- files.push(relPath);
168
- }
169
- }
156
+ if (template.source === 'local') {
157
+ return localTemplateService.getTemplateFiles(template);
158
+ }
159
+ // For remote templates, the path points to the cached or extracted dir
160
+ if (fs.existsSync(template.path)) {
161
+ const templateConfig = remoteTemplateService.readTemplateConfig(template.path);
162
+ const ignorePatterns = templateConfig?.ignore || [];
163
+ return remoteTemplateService.getTemplateFilesFromDir(template.path, ignorePatterns);
170
164
  }
171
- collectFiles(template.path);
172
- return files;
165
+ return [];
173
166
  }
174
167
  /**
175
- * Update app name in project files
176
- *
177
- * Updates the name field in:
178
- * - ketrics.config.json
179
- * - frontend/package.json
180
- * - backend/package.json
168
+ * Clear the template cache
181
169
  */
182
- function updateAppName(projectDir, appName) {
183
- const filesToUpdate = [
184
- { path: path.join(projectDir, 'ketrics.config.json'), field: 'name' },
185
- { path: path.join(projectDir, 'frontend', 'package.json'), field: 'name' },
186
- { path: path.join(projectDir, 'backend', 'package.json'), field: 'name' },
187
- ];
188
- for (const file of filesToUpdate) {
189
- if (!fs.existsSync(file.path))
190
- continue;
191
- try {
192
- const content = fs.readFileSync(file.path, 'utf-8');
193
- const json = JSON.parse(content);
194
- json[file.field] = appName;
195
- fs.writeFileSync(file.path, JSON.stringify(json, null, 2) + '\n', 'utf-8');
196
- }
197
- catch {
198
- // Skip files that can't be parsed
199
- }
200
- }
170
+ function clearCache() {
171
+ cacheService.clearCache();
172
+ logger_1.logger.success('Template cache cleared.');
201
173
  }
202
174
  /**
203
- * Check if a directory exists
175
+ * Re-export utilities needed by create command
204
176
  */
205
- function directoryExists(dirPath) {
206
- return fs.existsSync(dirPath);
177
+ var local_template_service_1 = require("./local-template-service");
178
+ Object.defineProperty(exports, "directoryExists", { enumerable: true, get: function () { return local_template_service_1.directoryExists; } });
179
+ Object.defineProperty(exports, "createDirectory", { enumerable: true, get: function () { return local_template_service_1.createDirectory; } });
180
+ // ---- Internal helpers ----
181
+ /**
182
+ * Fetch remote templates, using cache when appropriate.
183
+ */
184
+ async function getRemoteTemplates(forceRefresh) {
185
+ let manifest;
186
+ if (!forceRefresh && cacheService.isCacheFresh()) {
187
+ manifest = cacheService.getCachedManifest();
188
+ }
189
+ else {
190
+ manifest = await remoteTemplateService.fetchManifest();
191
+ cacheService.saveCachedManifest(manifest);
192
+ }
193
+ const compatibleEntries = filterCompatibleTemplates(manifest.templates);
194
+ return compatibleEntries.map((entry) => ({
195
+ name: entry.name,
196
+ path: cacheService.getCachedTemplatePath(entry.name),
197
+ description: entry.description,
198
+ source: 'remote',
199
+ minCliVersion: entry.minCliVersion,
200
+ minSdkVersion: entry.minSdkVersion,
201
+ tags: entry.tags,
202
+ }));
207
203
  }
208
204
  /**
209
- * Create a directory
205
+ * Filter out templates that require a newer CLI version.
210
206
  */
211
- function createDirectory(dirPath) {
212
- fs.mkdirSync(dirPath, { recursive: true });
207
+ function filterCompatibleTemplates(entries) {
208
+ const compatible = [];
209
+ for (const entry of entries) {
210
+ if (entry.minCliVersion && !semver_1.default.gte(version_1.VERSION, entry.minCliVersion)) {
211
+ logger_1.logger.warn(`Template '${entry.name}' requires CLI v${entry.minCliVersion}+ (you have v${version_1.VERSION}). Skipping.`);
212
+ continue;
213
+ }
214
+ compatible.push(entry);
215
+ }
216
+ return compatible;
213
217
  }
214
218
  //# sourceMappingURL=template-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template-service.js","sourceRoot":"","sources":["../../../src/services/template-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-service.js","sourceRoot":"","sources":["../../../src/services/template-service.ts"],"names":[],"mappings":"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"}
@@ -122,6 +122,9 @@ export interface DeployOptions {
122
122
  */
123
123
  export interface CreateOptions {
124
124
  template?: string;
125
+ refresh?: boolean;
126
+ local?: boolean;
127
+ clearCache?: boolean;
125
128
  }
126
129
  /**
127
130
  * Template information
@@ -130,6 +133,49 @@ export interface TemplateInfo {
130
133
  name: string;
131
134
  path: string;
132
135
  description: string;
136
+ source: 'remote' | 'local';
137
+ minCliVersion?: string;
138
+ minSdkVersion?: string;
139
+ tags?: string[];
140
+ }
141
+ /**
142
+ * Remote template manifest (templates.json)
143
+ */
144
+ export interface TemplateManifest {
145
+ version: number;
146
+ templates: TemplateManifestEntry[];
147
+ }
148
+ export interface TemplateManifestEntry {
149
+ name: string;
150
+ description: string;
151
+ path: string;
152
+ minCliVersion: string;
153
+ minSdkVersion: string;
154
+ tags: string[];
155
+ }
156
+ /**
157
+ * Template customization config (template.json inside each template)
158
+ */
159
+ export interface TemplateConfig {
160
+ displayName: string;
161
+ description: string;
162
+ author: string;
163
+ sdkVersion: string;
164
+ placeholders: Record<string, TemplatePlaceholder>;
165
+ ignore: string[];
166
+ }
167
+ export interface TemplatePlaceholder {
168
+ description: string;
169
+ files: string[];
170
+ jsonField?: string;
171
+ }
172
+ /**
173
+ * Cached manifest with timestamp
174
+ */
175
+ export interface CachedManifest {
176
+ manifest: TemplateManifest;
177
+ fetchedAt: number;
178
+ cliVersion: string;
133
179
  }
134
180
  /**
135
181
  * Zod schema for run file validation (*.info.json)
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;EAO1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,aAAa,CAAC;IACvB,GAAG,EAAE,SAAS,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;EAKxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;EAG7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;EAO1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,aAAa,CAAC;IACvB,GAAG,EAAE,SAAS,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,qBAAqB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAClD,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;EAKxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;EAG7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,6BAAwB;AAExB;;GAEG;AACU,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,8BAA8B,CAAC;IACvD,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,iBAAiB,EAAE,gDAAgD,CAAC;IAC9F,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IACvE,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,iCAAiC,CAAC;IACtE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC;IACnD,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,0CAA0C,CAAC;IAC/E,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACzC,CAAC,CAAC;AAIH;;GAEG;AACU,QAAA,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC;IACtC,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,2BAA2B,CAAC;IAC7D,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,qCAAqC,CAAC;IACtE,iBAAiB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,wCAAwC,CAAC;IAC5E,sBAAsB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,6CAA6C,CAAC;IACtF,kBAAkB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzC,mBAAmB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC,QAAQ,EAAE;CAC1F,CAAC,CAAC;AAiFH;;GAEG;AACU,QAAA,aAAa,GAAG,OAAC,CAAC,MAAM,CAAC;IACpC,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;IACnD,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACzE,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACpD,IAAI,EAAE,OAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACrC,CAAC,CAAC;AAIH;;GAEG;AACU,QAAA,kBAAkB,GAAG,uBAAe,CAAC,MAAM,CAAC;IACvD,kBAAkB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,gDAAgD,CAAC;IACvF,mBAAmB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,iDAAiD,CAAC;CACvF,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,6BAAwB;AAExB;;GAEG;AACU,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,8BAA8B,CAAC;IACvD,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,iBAAiB,EAAE,gDAAgD,CAAC;IAC9F,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IACvE,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,iCAAiC,CAAC;IACtE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC;IACnD,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,0CAA0C,CAAC;IAC/E,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACzC,CAAC,CAAC;AAIH;;GAEG;AACU,QAAA,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC;IACtC,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,2BAA2B,CAAC;IAC7D,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,qCAAqC,CAAC;IACtE,iBAAiB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,wCAAwC,CAAC;IAC5E,sBAAsB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,6CAA6C,CAAC;IACtF,kBAAkB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzC,mBAAmB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC,QAAQ,EAAE;CAC1F,CAAC,CAAC;AAoIH;;GAEG;AACU,QAAA,aAAa,GAAG,OAAC,CAAC,MAAM,CAAC;IACpC,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;IACnD,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACzE,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACpD,IAAI,EAAE,OAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACrC,CAAC,CAAC;AAIH;;GAEG;AACU,QAAA,kBAAkB,GAAG,uBAAe,CAAC,MAAM,CAAC;IACvD,kBAAkB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,gDAAgD,CAAC;IACvF,mBAAmB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,iDAAiD,CAAC;CACvF,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.5.0";
1
+ export declare const VERSION = "0.6.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
4
  // Auto-generated - do not edit
5
- exports.VERSION = "0.5.0";
5
+ exports.VERSION = "0.6.0";
6
6
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ketrics/ketrics-cli",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "CLI tool for deploying applications to Ketrics platform",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -30,11 +30,15 @@
30
30
  "dotenv": "^16.3.1",
31
31
  "glob": "^10.3.0",
32
32
  "ora": "^5.4.1",
33
+ "semver": "^7.7.4",
34
+ "tar": "^7.5.9",
33
35
  "zod": "^3.22.4"
34
36
  },
35
37
  "devDependencies": {
36
38
  "@types/archiver": "^6.0.2",
37
39
  "@types/node": "^20.10.0",
40
+ "@types/semver": "^7.7.1",
41
+ "@types/tar": "^6.1.13",
38
42
  "ts-node": "^1.7.1",
39
43
  "typescript": "^5.3.3"
40
44
  },