@ketrics/ketrics-cli 0.1.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 (91) hide show
  1. package/README.md +326 -0
  2. package/dist/bin/ketrics.d.ts +8 -0
  3. package/dist/bin/ketrics.d.ts.map +1 -0
  4. package/dist/bin/ketrics.js +12 -0
  5. package/dist/bin/ketrics.js.map +1 -0
  6. package/dist/src/cli.d.ts +11 -0
  7. package/dist/src/cli.d.ts.map +1 -0
  8. package/dist/src/cli.js +77 -0
  9. package/dist/src/cli.js.map +1 -0
  10. package/dist/src/commands/build.d.ts +10 -0
  11. package/dist/src/commands/build.d.ts.map +1 -0
  12. package/dist/src/commands/build.js +35 -0
  13. package/dist/src/commands/build.js.map +1 -0
  14. package/dist/src/commands/create.d.ts +11 -0
  15. package/dist/src/commands/create.d.ts.map +1 -0
  16. package/dist/src/commands/create.js +170 -0
  17. package/dist/src/commands/create.js.map +1 -0
  18. package/dist/src/commands/deploy.d.ts +11 -0
  19. package/dist/src/commands/deploy.d.ts.map +1 -0
  20. package/dist/src/commands/deploy.js +105 -0
  21. package/dist/src/commands/deploy.js.map +1 -0
  22. package/dist/src/commands/run.d.ts +11 -0
  23. package/dist/src/commands/run.d.ts.map +1 -0
  24. package/dist/src/commands/run.js +236 -0
  25. package/dist/src/commands/run.js.map +1 -0
  26. package/dist/src/commands/validate.d.ts +10 -0
  27. package/dist/src/commands/validate.d.ts.map +1 -0
  28. package/dist/src/commands/validate.js +46 -0
  29. package/dist/src/commands/validate.js.map +1 -0
  30. package/dist/src/index.d.ts +13 -0
  31. package/dist/src/index.d.ts.map +1 -0
  32. package/dist/src/index.js +29 -0
  33. package/dist/src/index.js.map +1 -0
  34. package/dist/src/services/api-client.d.ts +14 -0
  35. package/dist/src/services/api-client.d.ts.map +1 -0
  36. package/dist/src/services/api-client.js +57 -0
  37. package/dist/src/services/api-client.js.map +1 -0
  38. package/dist/src/services/build-service.d.ts +40 -0
  39. package/dist/src/services/build-service.d.ts.map +1 -0
  40. package/dist/src/services/build-service.js +130 -0
  41. package/dist/src/services/build-service.js.map +1 -0
  42. package/dist/src/services/config-service.d.ts +35 -0
  43. package/dist/src/services/config-service.d.ts.map +1 -0
  44. package/dist/src/services/config-service.js +204 -0
  45. package/dist/src/services/config-service.js.map +1 -0
  46. package/dist/src/services/template-service.d.ts +51 -0
  47. package/dist/src/services/template-service.d.ts.map +1 -0
  48. package/dist/src/services/template-service.js +214 -0
  49. package/dist/src/services/template-service.js.map +1 -0
  50. package/dist/src/services/upload-service.d.ts +13 -0
  51. package/dist/src/services/upload-service.d.ts.map +1 -0
  52. package/dist/src/services/upload-service.js +54 -0
  53. package/dist/src/services/upload-service.js.map +1 -0
  54. package/dist/src/services/zip-service.d.ts +55 -0
  55. package/dist/src/services/zip-service.d.ts.map +1 -0
  56. package/dist/src/services/zip-service.js +219 -0
  57. package/dist/src/services/zip-service.js.map +1 -0
  58. package/dist/src/types/index.d.ts +188 -0
  59. package/dist/src/types/index.d.ts.map +1 -0
  60. package/dist/src/types/index.js +50 -0
  61. package/dist/src/types/index.js.map +1 -0
  62. package/dist/src/utils/logger.d.ts +52 -0
  63. package/dist/src/utils/logger.d.ts.map +1 -0
  64. package/dist/src/utils/logger.js +95 -0
  65. package/dist/src/utils/logger.js.map +1 -0
  66. package/dist/src/utils/spinner.d.ts +15 -0
  67. package/dist/src/utils/spinner.d.ts.map +1 -0
  68. package/dist/src/utils/spinner.js +38 -0
  69. package/dist/src/utils/spinner.js.map +1 -0
  70. package/package.json +47 -0
  71. package/templates/ketrics-app-v1/.env.example +17 -0
  72. package/templates/ketrics-app-v1/README.md +134 -0
  73. package/templates/ketrics-app-v1/backend/package-lock.json +716 -0
  74. package/templates/ketrics-app-v1/backend/package.json +18 -0
  75. package/templates/ketrics-app-v1/backend/src/index.ts +41 -0
  76. package/templates/ketrics-app-v1/backend/src/volume.ts +48 -0
  77. package/templates/ketrics-app-v1/backend/tsconfig.json +16 -0
  78. package/templates/ketrics-app-v1/frontend/index.html +13 -0
  79. package/templates/ketrics-app-v1/frontend/package-lock.json +1981 -0
  80. package/templates/ketrics-app-v1/frontend/package.json +24 -0
  81. package/templates/ketrics-app-v1/frontend/src/App.css +121 -0
  82. package/templates/ketrics-app-v1/frontend/src/App.tsx +109 -0
  83. package/templates/ketrics-app-v1/frontend/src/main.tsx +10 -0
  84. package/templates/ketrics-app-v1/frontend/src/services/index.ts +55 -0
  85. package/templates/ketrics-app-v1/frontend/tsconfig.json +21 -0
  86. package/templates/ketrics-app-v1/frontend/tsconfig.node.json +11 -0
  87. package/templates/ketrics-app-v1/frontend/vite.config.ts +11 -0
  88. package/templates/ketrics-app-v1/ketrics.config.json +10 -0
  89. package/templates/ketrics-app-v1/tests/test.echo.json +13 -0
  90. package/templates/ketrics-app-v1/tests/test.greet.json +11 -0
  91. package/templates/ketrics-app-v1/tests/test.info.json +9 -0
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "app3",
3
+ "version": "1.0.0",
4
+ "description": "My Ketrics application backend",
5
+ "main": "dist/index.js",
6
+ "scripts": {
7
+ "build": "esbuild src/index.ts --bundle --platform=node --target=es2020 --outfile=dist/index.js",
8
+ "dev": "ts-node src/index.ts",
9
+ "clean": "rm -rf dist"
10
+ },
11
+ "devDependencies": {
12
+ "@ketrics/sdk-backend": "^0.3.0",
13
+ "@types/node": "^20.10.0",
14
+ "esbuild": "^0.24.0",
15
+ "ts-node": "^10.9.2",
16
+ "typescript": "^5.3.3"
17
+ }
18
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Ketrics Application Backend
3
+ *
4
+ * Exports handler functions compatible with Ketrics data-plane-api.
5
+ *
6
+ * The `ketrics` global object is automatically typed via @ketrics/sdk.
7
+ * No imports needed - just use `ketrics.*` directly.
8
+ *
9
+ * Available SDK features:
10
+ * - ketrics.tenant, ketrics.application, ketrics.user, ketrics.env (context)
11
+ * - ketrics.console (logging to CloudWatch)
12
+ * - ketrics.http (HTTP client for external APIs)
13
+ * - ketrics.Volume.connect(code) (S3-backed storage)
14
+ * - ketrics.DatabaseConnection.connect(code) (external databases)
15
+ * - ketrics.Secret.get(code) (encrypted secrets)
16
+ */
17
+
18
+ // ============================================================================
19
+ // Basic Handlers
20
+ // ============================================================================
21
+
22
+ import { saveFile, readFile, generateDownloadUrl } from "./volume";
23
+
24
+ /**
25
+ * Echo handler - returns payload with context info
26
+ *
27
+ * @param payload - Any payload to echo back
28
+ * @returns Payload with additional context information
29
+ */
30
+
31
+ const echo = async (payload: unknown) => {
32
+ ketrics.console.log("Echo called with payload:", payload);
33
+
34
+ return {
35
+ tenantName: ketrics.tenant.name,
36
+ userEmail: ketrics.user.email,
37
+ applicationCode: ketrics.application.code,
38
+ };
39
+ };
40
+
41
+ export { echo, saveFile, readFile, generateDownloadUrl };
@@ -0,0 +1,48 @@
1
+ const saveFile = async () => {
2
+ const volume = await ketrics.Volume.connect("test-volume");
3
+
4
+ const data = {
5
+ id: ketrics.application.id,
6
+ code: ketrics.application.code,
7
+ name: ketrics.application.name,
8
+ version: ketrics.application.version,
9
+ deploymentId: ketrics.application.deploymentId,
10
+ };
11
+
12
+ // Write text/JSON content
13
+ const resultData = await volume.put("output/data.json", JSON.stringify(data), {
14
+ contentType: "application/json",
15
+ });
16
+ console.log(resultData.key, resultData.etag, resultData.size);
17
+
18
+ // Write binary content
19
+ const buffer = Buffer.from("Hello World");
20
+ const resultBuffer = await volume.put("files/hello.txt", buffer);
21
+
22
+ return {
23
+ data,
24
+ dataFile: { key: resultData.key, etag: resultData.etag, size: resultData.size },
25
+ bufferFile: { key: resultBuffer.key, etag: resultBuffer.etag, size: resultBuffer.size },
26
+ };
27
+ };
28
+
29
+ const readFile = async () => {
30
+ const volume = await ketrics.Volume.connect("test-volume");
31
+ const file = await volume.get("output/data.json");
32
+ if (!file) {
33
+ throw new Error("File not found");
34
+ }
35
+ const content = await file.content.toString();
36
+ return {
37
+ content: content,
38
+ parsed: JSON.parse(content),
39
+ };
40
+ };
41
+
42
+ const generateDownloadUrl = async () => {
43
+ const volume = await ketrics.Volume.connect("test-volume");
44
+ const results = await volume.generateDownloadUrl("output/data.json"); // URL valid for 1 hour
45
+ return { url: results.url };
46
+ };
47
+
48
+ export { saveFile, readFile, generateDownloadUrl };
@@ -0,0 +1,16 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "module": "CommonJS",
5
+ "outDir": "dist",
6
+ "rootDir": "src",
7
+ "strict": true,
8
+ "esModuleInterop": true,
9
+ "skipLibCheck": true,
10
+ "forceConsistentCasingInFileNames": true,
11
+ "declaration": true,
12
+ "types": ["node", "@ketrics/sdk-backend"]
13
+ },
14
+ "include": ["src/**/*"],
15
+ "exclude": ["node_modules", "dist"]
16
+ }
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <link rel="icon" type="image/svg+xml" href="/vite.svg" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <title>Ketrics Test Application</title>
8
+ </head>
9
+ <body>
10
+ <div id="root"></div>
11
+ <script type="module" src="/src/main.tsx"></script>
12
+ </body>
13
+ </html>