@dbos-inc/dbos-cloud 1.0.2 → 1.1.9-preview.gb854acef85

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 (119) hide show
  1. package/applications/delete-app.ts +1 -1
  2. package/applications/deploy-app-code.ts +2 -2
  3. package/applications/get-app-info.ts +2 -2
  4. package/applications/get-app-logs.ts +1 -1
  5. package/applications/index.ts +6 -6
  6. package/applications/list-apps.ts +2 -2
  7. package/applications/register-app.ts +1 -1
  8. package/applications/update-app.ts +2 -2
  9. package/cli.ts +40 -14
  10. package/dashboards.ts +1 -1
  11. package/dist/applications/delete-app.d.ts.map +1 -0
  12. package/dist/applications/delete-app.js +34 -0
  13. package/dist/applications/delete-app.js.map +1 -0
  14. package/dist/applications/deploy-app-code.d.ts.map +1 -0
  15. package/dist/{packages/dbos-cloud/applications → applications}/deploy-app-code.js +23 -30
  16. package/dist/applications/deploy-app-code.js.map +1 -0
  17. package/dist/applications/get-app-info.d.ts.map +1 -0
  18. package/dist/applications/get-app-info.js +43 -0
  19. package/dist/applications/get-app-info.js.map +1 -0
  20. package/dist/applications/get-app-logs.d.ts.map +1 -0
  21. package/dist/{packages/dbos-cloud/applications → applications}/get-app-logs.js +9 -16
  22. package/dist/applications/get-app-logs.js.map +1 -0
  23. package/dist/applications/index.d.ts +7 -0
  24. package/dist/applications/index.d.ts.map +1 -0
  25. package/dist/applications/index.js +7 -0
  26. package/dist/applications/index.js.map +1 -0
  27. package/dist/applications/list-apps.d.ts.map +1 -0
  28. package/dist/applications/list-apps.js +41 -0
  29. package/dist/applications/list-apps.js.map +1 -0
  30. package/dist/applications/register-app.d.ts.map +1 -0
  31. package/dist/applications/register-app.js +39 -0
  32. package/dist/applications/register-app.js.map +1 -0
  33. package/dist/applications/types.d.ts.map +1 -0
  34. package/dist/{packages/dbos-cloud/applications → applications}/types.js +1 -5
  35. package/dist/applications/types.js.map +1 -0
  36. package/dist/applications/update-app.d.ts.map +1 -0
  37. package/dist/applications/update-app.js +38 -0
  38. package/dist/applications/update-app.js.map +1 -0
  39. package/dist/cli.d.ts.map +1 -0
  40. package/dist/{packages/dbos-cloud/cli.js → cli.js} +53 -35
  41. package/dist/cli.js.map +1 -0
  42. package/dist/{packages/dbos-cloud/cloudutils.d.ts → cloudutils.d.ts} +1 -1
  43. package/dist/cloudutils.d.ts.map +1 -0
  44. package/dist/{packages/dbos-cloud/cloudutils.js → cloudutils.js} +34 -52
  45. package/dist/cloudutils.js.map +1 -0
  46. package/dist/dashboards.d.ts.map +1 -0
  47. package/dist/dashboards.js +55 -0
  48. package/dist/dashboards.js.map +1 -0
  49. package/dist/login.d.ts.map +1 -0
  50. package/dist/{packages/dbos-cloud/login.js → login.js} +17 -25
  51. package/dist/login.js.map +1 -0
  52. package/dist/package.json +44 -0
  53. package/dist/register.d.ts.map +1 -0
  54. package/dist/register.js +86 -0
  55. package/dist/register.js.map +1 -0
  56. package/dist/userdb.d.ts.map +1 -0
  57. package/dist/{packages/dbos-cloud/userdb.js → userdb.js} +34 -47
  58. package/dist/userdb.js.map +1 -0
  59. package/login.ts +1 -1
  60. package/package.json +6 -3
  61. package/register.ts +2 -2
  62. package/tsconfig.json +4 -2
  63. package/userdb.ts +1 -2
  64. package/dist/packages/dbos-cloud/applications/delete-app.d.ts.map +0 -1
  65. package/dist/packages/dbos-cloud/applications/delete-app.js +0 -41
  66. package/dist/packages/dbos-cloud/applications/delete-app.js.map +0 -1
  67. package/dist/packages/dbos-cloud/applications/deploy-app-code.d.ts.map +0 -1
  68. package/dist/packages/dbos-cloud/applications/deploy-app-code.js.map +0 -1
  69. package/dist/packages/dbos-cloud/applications/get-app-info.d.ts.map +0 -1
  70. package/dist/packages/dbos-cloud/applications/get-app-info.js +0 -50
  71. package/dist/packages/dbos-cloud/applications/get-app-info.js.map +0 -1
  72. package/dist/packages/dbos-cloud/applications/get-app-logs.d.ts.map +0 -1
  73. package/dist/packages/dbos-cloud/applications/get-app-logs.js.map +0 -1
  74. package/dist/packages/dbos-cloud/applications/index.d.ts +0 -7
  75. package/dist/packages/dbos-cloud/applications/index.d.ts.map +0 -1
  76. package/dist/packages/dbos-cloud/applications/index.js +0 -16
  77. package/dist/packages/dbos-cloud/applications/index.js.map +0 -1
  78. package/dist/packages/dbos-cloud/applications/list-apps.d.ts.map +0 -1
  79. package/dist/packages/dbos-cloud/applications/list-apps.js +0 -48
  80. package/dist/packages/dbos-cloud/applications/list-apps.js.map +0 -1
  81. package/dist/packages/dbos-cloud/applications/register-app.d.ts.map +0 -1
  82. package/dist/packages/dbos-cloud/applications/register-app.js +0 -46
  83. package/dist/packages/dbos-cloud/applications/register-app.js.map +0 -1
  84. package/dist/packages/dbos-cloud/applications/types.d.ts.map +0 -1
  85. package/dist/packages/dbos-cloud/applications/types.js.map +0 -1
  86. package/dist/packages/dbos-cloud/applications/update-app.d.ts.map +0 -1
  87. package/dist/packages/dbos-cloud/applications/update-app.js +0 -45
  88. package/dist/packages/dbos-cloud/applications/update-app.js.map +0 -1
  89. package/dist/packages/dbos-cloud/cli.d.ts.map +0 -1
  90. package/dist/packages/dbos-cloud/cli.js.map +0 -1
  91. package/dist/packages/dbos-cloud/cloudutils.d.ts.map +0 -1
  92. package/dist/packages/dbos-cloud/cloudutils.js.map +0 -1
  93. package/dist/packages/dbos-cloud/dashboards.d.ts.map +0 -1
  94. package/dist/packages/dbos-cloud/dashboards.js +0 -63
  95. package/dist/packages/dbos-cloud/dashboards.js.map +0 -1
  96. package/dist/packages/dbos-cloud/login.d.ts.map +0 -1
  97. package/dist/packages/dbos-cloud/login.js.map +0 -1
  98. package/dist/packages/dbos-cloud/register.d.ts.map +0 -1
  99. package/dist/packages/dbos-cloud/register.js +0 -116
  100. package/dist/packages/dbos-cloud/register.js.map +0 -1
  101. package/dist/packages/dbos-cloud/userdb.d.ts.map +0 -1
  102. package/dist/packages/dbos-cloud/userdb.js.map +0 -1
  103. package/dist/src/utils.d.ts +0 -6
  104. package/dist/src/utils.d.ts.map +0 -1
  105. package/dist/src/utils.js +0 -51
  106. package/dist/src/utils.js.map +0 -1
  107. /package/dist/{packages/dbos-cloud/applications → applications}/delete-app.d.ts +0 -0
  108. /package/dist/{packages/dbos-cloud/applications → applications}/deploy-app-code.d.ts +0 -0
  109. /package/dist/{packages/dbos-cloud/applications → applications}/get-app-info.d.ts +0 -0
  110. /package/dist/{packages/dbos-cloud/applications → applications}/get-app-logs.d.ts +0 -0
  111. /package/dist/{packages/dbos-cloud/applications → applications}/list-apps.d.ts +0 -0
  112. /package/dist/{packages/dbos-cloud/applications → applications}/register-app.d.ts +0 -0
  113. /package/dist/{packages/dbos-cloud/applications → applications}/types.d.ts +0 -0
  114. /package/dist/{packages/dbos-cloud/applications → applications}/update-app.d.ts +0 -0
  115. /package/dist/{packages/dbos-cloud/cli.d.ts → cli.d.ts} +0 -0
  116. /package/dist/{packages/dbos-cloud/dashboards.d.ts → dashboards.d.ts} +0 -0
  117. /package/dist/{packages/dbos-cloud/login.d.ts → login.d.ts} +0 -0
  118. /package/dist/{packages/dbos-cloud/register.d.ts → register.d.ts} +0 -0
  119. /package/dist/{packages/dbos-cloud/userdb.d.ts → userdb.d.ts} +0 -0
@@ -1,5 +1,5 @@
1
1
  import axios, { AxiosError } from "axios";
2
- import { isCloudAPIErrorResponse, handleAPIErrors, getCloudCredentials, getLogger, retrieveApplicationName } from "../cloudutils";
2
+ import { isCloudAPIErrorResponse, handleAPIErrors, getCloudCredentials, getLogger, retrieveApplicationName } from "../cloudutils.js";
3
3
 
4
4
  export async function deleteApp(host: string, appName?: string): Promise<number> {
5
5
  const logger = getLogger()
@@ -1,8 +1,8 @@
1
1
  import axios, { AxiosError } from "axios";
2
2
  import { existsSync, readFileSync } from 'fs';
3
- import { handleAPIErrors, dbosConfigFilePath, getCloudCredentials, getLogger, checkReadFile, sleep, isCloudAPIErrorResponse, retrieveApplicationName, dbosEnvPath } from "../cloudutils";
3
+ import { handleAPIErrors, dbosConfigFilePath, getCloudCredentials, getLogger, checkReadFile, sleep, isCloudAPIErrorResponse, retrieveApplicationName, dbosEnvPath } from "../cloudutils.js";
4
4
  import path from "path";
5
- import { Application } from "./types";
5
+ import { Application } from "./types.js";
6
6
  import JSZip from "jszip";
7
7
  import fg from 'fast-glob';
8
8
 
@@ -1,6 +1,6 @@
1
1
  import axios , { AxiosError } from "axios";
2
- import { handleAPIErrors, getCloudCredentials, getLogger, isCloudAPIErrorResponse, retrieveApplicationName } from "../cloudutils";
3
- import { Application, prettyPrintApplication } from "./types";
2
+ import { handleAPIErrors, getCloudCredentials, getLogger, isCloudAPIErrorResponse, retrieveApplicationName } from "../cloudutils.js";
3
+ import { Application, prettyPrintApplication } from "./types.js";
4
4
 
5
5
  export async function getAppInfo(host: string, json: boolean, appName?: string): Promise<number> {
6
6
  const logger = getLogger();
@@ -1,5 +1,5 @@
1
1
  import axios , { AxiosError } from "axios";
2
- import { handleAPIErrors, getCloudCredentials, getLogger, isCloudAPIErrorResponse, retrieveApplicationName } from "../cloudutils";
2
+ import { handleAPIErrors, getCloudCredentials, getLogger, isCloudAPIErrorResponse, retrieveApplicationName } from "../cloudutils.js";
3
3
 
4
4
  export async function getAppLogs(host: string, last: number): Promise<number> {
5
5
  if (last != undefined && (isNaN(last) || last <= 0)) {
@@ -1,7 +1,7 @@
1
- export { registerApp } from './register-app';
2
- export { listApps } from './list-apps';
3
- export { deleteApp } from './delete-app';
4
- export { deployAppCode } from './deploy-app-code';
5
- export { getAppLogs } from './get-app-logs';
6
- export { updateApp } from './update-app';
1
+ export { registerApp } from './register-app.js';
2
+ export { listApps } from './list-apps.js';
3
+ export { deleteApp } from './delete-app.js';
4
+ export { deployAppCode } from './deploy-app-code.js';
5
+ export { getAppLogs } from './get-app-logs.js';
6
+ export { updateApp } from './update-app.js';
7
7
 
@@ -1,6 +1,6 @@
1
1
  import axios, { AxiosError } from "axios";
2
- import { handleAPIErrors, getCloudCredentials, getLogger, isCloudAPIErrorResponse } from "../cloudutils";
3
- import { Application, prettyPrintApplication } from "./types";
2
+ import { handleAPIErrors, getCloudCredentials, getLogger, isCloudAPIErrorResponse } from "../cloudutils.js";
3
+ import { Application, prettyPrintApplication } from "./types.js";
4
4
 
5
5
  export async function listApps(host: string, json: boolean): Promise<number> {
6
6
  const logger = getLogger();
@@ -1,5 +1,5 @@
1
1
  import axios, { AxiosError } from "axios";
2
- import { handleAPIErrors, getCloudCredentials, getLogger, isCloudAPIErrorResponse, retrieveApplicationName } from "../cloudutils";
2
+ import { handleAPIErrors, getCloudCredentials, getLogger, isCloudAPIErrorResponse, retrieveApplicationName } from "../cloudutils.js";
3
3
 
4
4
  export async function registerApp(dbname: string, host: string): Promise<number> {
5
5
  const logger = getLogger();
@@ -1,6 +1,6 @@
1
1
  import axios, { AxiosError } from "axios";
2
- import { getCloudCredentials, getLogger, handleAPIErrors, isCloudAPIErrorResponse, retrieveApplicationName } from "../cloudutils";
3
- import { Application } from "./types";
2
+ import { getCloudCredentials, getLogger, handleAPIErrors, isCloudAPIErrorResponse, retrieveApplicationName } from "../cloudutils.js";
3
+ import { Application } from "./types.js";
4
4
 
5
5
  export async function updateApp(host: string): Promise<number> {
6
6
  const logger = getLogger();
package/cli.ts CHANGED
@@ -7,20 +7,46 @@ import {
7
7
  deleteApp,
8
8
  deployAppCode,
9
9
  getAppLogs,
10
- } from "./applications";
10
+ } from "./applications/index.js";
11
11
  import { Command } from 'commander';
12
- import { login } from "./login";
13
- import { registerUser } from "./register";
14
- import { createUserDb, getUserDb, deleteUserDb, listUserDB, resetDBCredentials } from "./userdb";
15
- import { launchDashboard, getDashboardURL } from "./dashboards";
16
- import { DBOSCloudHost, credentialsExist, deleteCredentials } from "./cloudutils";
17
- import { getAppInfo } from "./applications/get-app-info";
12
+ import { login } from "./login.js";
13
+ import { registerUser } from "./register.js";
14
+ import { createUserDb, getUserDb, deleteUserDb, listUserDB, resetDBCredentials } from "./userdb.js";
15
+ import { launchDashboard, getDashboardURL } from "./dashboards.js";
16
+ import { DBOSCloudHost, credentialsExist, deleteCredentials } from "./cloudutils.js";
17
+ import { getAppInfo } from "./applications/get-app-info.js";
18
18
  import promptSync from 'prompt-sync';
19
+ import chalk from 'chalk';
20
+ import fs from "fs";
21
+ import * as url from 'url';
22
+ import path from "path";
23
+ import updateNotifier, { Package } from "update-notifier";
24
+
25
+ // Read local package.json
26
+ const __dirname = url.fileURLToPath(new URL('.', import.meta.url));
27
+ const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, "package.json")).toString()) as Package;
28
+
29
+ // Notify the user if the package requires an update.
30
+ const notifier = updateNotifier({
31
+ pkg: packageJson,
32
+ updateCheckInterval: 0
33
+ })
34
+ if (notifier.update) {
35
+ console.log(`
36
+ ${chalk.yellow("-----------------------------------------------------------------------------------------")}
37
+
38
+ DBOS Cloud CLI Update available ${chalk.gray(notifier.update.current)} → ${chalk.green(notifier.update.latest)}
39
+
40
+ To upgrade the DBOS Cloud CLI to the latest version, run the following command:
41
+ ${chalk.cyan("`npm i --save-dev @dbos-inc/dbos-cloud@latest`")}
42
+
43
+ ${chalk.yellow("-----------------------------------------------------------------------------------------")}`
44
+ );
45
+ }
19
46
 
20
47
  const program = new Command();
21
48
 
22
49
  // eslint-disable-next-line @typescript-eslint/no-var-requires
23
- const packageJson = require('../../../package.json') as { version: string };
24
50
  program.version(packageJson.version);
25
51
 
26
52
  /////////////////////
@@ -39,12 +65,12 @@ program
39
65
  .command('register')
40
66
  .description('Register a user with DBOS cloud')
41
67
  .requiredOption('-u, --username <string>', 'Username')
42
- .action(async (options: { username: string}) => {
68
+ .action(async (options: { username: string }) => {
43
69
  const exitCode = await registerUser(options.username, DBOSCloudHost);
44
70
  process.exit(exitCode);
45
71
  });
46
72
 
47
- program
73
+ program
48
74
  .command('logout')
49
75
  .description('Log out of DBOS cloud')
50
76
  .action(() => {
@@ -122,7 +148,7 @@ applicationCommands
122
148
  .command('logs')
123
149
  .description("Print this application's logs")
124
150
  .option('-l, --last <integer>', 'How far back to query, in seconds from current time. By default, we retrieve all data', parseInt)
125
- .action(async (options: { last: number}) => {
151
+ .action(async (options: { last: number }) => {
126
152
  const exitCode = await getAppLogs(DBOSCloudHost, options.last);
127
153
  process.exit(exitCode);
128
154
  });
@@ -157,7 +183,7 @@ databaseCommands
157
183
  .description("Retrieve the status of a Postgres database instance")
158
184
  .argument('<name>', 'database instance name')
159
185
  .option('--json', 'Emit JSON output')
160
- .action((async (dbname: string, options: { json: boolean}) => {
186
+ .action((async (dbname: string, options: { json: boolean }) => {
161
187
  const exitCode = await getUserDb(DBOSCloudHost, dbname, options.json)
162
188
  process.exit(exitCode);
163
189
  }))
@@ -166,7 +192,7 @@ databaseCommands
166
192
  .command('list')
167
193
  .description("List all your Postgres database instances")
168
194
  .option('--json', 'Emit JSON output')
169
- .action((async (options: { json: boolean}) => {
195
+ .action((async (options: { json: boolean }) => {
170
196
  const exitCode = await listUserDB(DBOSCloudHost, options.json)
171
197
  process.exit(exitCode);
172
198
  }))
@@ -176,7 +202,7 @@ databaseCommands
176
202
  .description("Reset password for a Postgres database instance")
177
203
  .argument('<name>', 'database instance name')
178
204
  .option('-W, --password <string>', 'Specify the database user password')
179
- .action((async (dbName: string, options: { password: string}) => {
205
+ .action((async (dbName: string, options: { password: string }) => {
180
206
  if (!options.password) {
181
207
  options.password = prompt('Database Password: ', { echo: '*' });
182
208
  }
package/dashboards.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import axios, { AxiosError } from "axios";
2
- import { getLogger, getCloudCredentials, isCloudAPIErrorResponse, handleAPIErrors } from "./cloudutils";
2
+ import { getLogger, getCloudCredentials, isCloudAPIErrorResponse, handleAPIErrors } from "./cloudutils.js";
3
3
 
4
4
  export async function launchDashboard(host: string): Promise<number> {
5
5
  const logger = getLogger();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-app.d.ts","sourceRoot":"","sources":["../../applications/delete-app.ts"],"names":[],"mappings":"AAGA,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+B/E"}
@@ -0,0 +1,34 @@
1
+ import axios from "axios";
2
+ import { isCloudAPIErrorResponse, handleAPIErrors, getCloudCredentials, getLogger, retrieveApplicationName } from "../cloudutils.js";
3
+ export async function deleteApp(host, appName) {
4
+ const logger = getLogger();
5
+ const userCredentials = getCloudCredentials();
6
+ const bearerToken = "Bearer " + userCredentials.token;
7
+ appName = appName ?? retrieveApplicationName(logger);
8
+ if (!appName) {
9
+ return 1;
10
+ }
11
+ logger.info(`Deleting application: ${appName}`);
12
+ try {
13
+ await axios.delete(`https://${host}/v1alpha1/${userCredentials.userName}/applications/${appName}`, {
14
+ headers: {
15
+ "Content-Type": "application/json",
16
+ Authorization: bearerToken,
17
+ },
18
+ });
19
+ logger.info(`Successfully deleted application: ${appName}`);
20
+ return 0;
21
+ }
22
+ catch (e) {
23
+ const errorLabel = `Failed to delete application ${appName}`;
24
+ const axiosError = e;
25
+ if (isCloudAPIErrorResponse(axiosError.response?.data)) {
26
+ handleAPIErrors(errorLabel, axiosError);
27
+ }
28
+ else {
29
+ logger.error(`${errorLabel}: ${e.message}`);
30
+ }
31
+ return 1;
32
+ }
33
+ }
34
+ //# sourceMappingURL=delete-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-app.js","sourceRoot":"","sources":["../../applications/delete-app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,mBAAmB,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAErI,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,OAAgB;IAC5D,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,eAAe,GAAG,mBAAmB,EAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;IAEtD,OAAO,GAAG,OAAO,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAA;IAE/C,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,IAAI,aAAa,eAAe,CAAC,QAAQ,iBAAiB,OAAO,EAAE,EAAE;YACjG,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,WAAW;aAC3B;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,qCAAqC,OAAO,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,gCAAgC,OAAO,EAAE,CAAC;QAC7D,MAAM,UAAU,GAAG,CAAe,CAAC;QACnC,IAAI,uBAAuB,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;YACvD,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy-app-code.d.ts","sourceRoot":"","sources":["../../applications/deploy-app-code.ts"],"names":[],"mappings":"AAkCA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmFjE"}
@@ -1,40 +1,34 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.deployAppCode = void 0;
7
- const axios_1 = __importDefault(require("axios"));
8
- const fs_1 = require("fs");
9
- const cloudutils_1 = require("../cloudutils");
10
- const path_1 = __importDefault(require("path"));
11
- const jszip_1 = __importDefault(require("jszip"));
12
- const fast_glob_1 = __importDefault(require("fast-glob"));
1
+ import axios from "axios";
2
+ import { existsSync, readFileSync } from 'fs';
3
+ import { handleAPIErrors, dbosConfigFilePath, getCloudCredentials, getLogger, checkReadFile, sleep, isCloudAPIErrorResponse, retrieveApplicationName, dbosEnvPath } from "../cloudutils.js";
4
+ import path from "path";
5
+ import JSZip from "jszip";
6
+ import fg from 'fast-glob';
13
7
  async function createZipData() {
14
- const zip = new jszip_1.default();
15
- const files = await (0, fast_glob_1.default)(`${process.cwd()}/**/*`, { dot: true, onlyFiles: true, ignore: [`**/${cloudutils_1.dbosEnvPath}/**`, '**/node_modules/**', '**/dist/**', `**/${cloudutils_1.dbosConfigFilePath}`] });
8
+ const zip = new JSZip();
9
+ const files = await fg(`${process.cwd()}/**/*`, { dot: true, onlyFiles: true, ignore: [`**/${dbosEnvPath}/**`, '**/node_modules/**', '**/dist/**', `**/${dbosConfigFilePath}`] });
16
10
  files.forEach(file => {
17
11
  const relativePath = file.replace(`${process.cwd()}/`, '');
18
- const fileData = (0, fs_1.readFileSync)(file);
12
+ const fileData = readFileSync(file);
19
13
  zip.file(relativePath, fileData, { binary: true });
20
14
  });
21
15
  // Add the interpolated config file at package root
22
- const interpolatedConfig = readInterpolatedConfig(cloudutils_1.dbosConfigFilePath);
23
- zip.file(cloudutils_1.dbosConfigFilePath, interpolatedConfig, { binary: true });
16
+ const interpolatedConfig = readInterpolatedConfig(dbosConfigFilePath);
17
+ zip.file(dbosConfigFilePath, interpolatedConfig, { binary: true });
24
18
  // Generate ZIP file as a Buffer
25
19
  const buffer = await zip.generateAsync({ type: 'nodebuffer' });
26
20
  return buffer.toString('base64');
27
21
  }
28
- async function deployAppCode(host) {
29
- const logger = (0, cloudutils_1.getLogger)();
30
- const userCredentials = (0, cloudutils_1.getCloudCredentials)();
22
+ export async function deployAppCode(host) {
23
+ const logger = getLogger();
24
+ const userCredentials = getCloudCredentials();
31
25
  const bearerToken = "Bearer " + userCredentials.token;
32
- const appName = (0, cloudutils_1.retrieveApplicationName)(logger);
26
+ const appName = retrieveApplicationName(logger);
33
27
  if (!appName) {
34
28
  return 1;
35
29
  }
36
30
  // Verify that package-lock.json exists
37
- if (!(0, fs_1.existsSync)(path_1.default.join(process.cwd(), 'package-lock.json'))) {
31
+ if (!existsSync(path.join(process.cwd(), 'package-lock.json'))) {
38
32
  logger.error("package-lock.json not found. Please run 'npm install' before deploying.");
39
33
  return 1;
40
34
  }
@@ -42,7 +36,7 @@ async function deployAppCode(host) {
42
36
  const zipData = await createZipData();
43
37
  // Submit the deploy request
44
38
  logger.info(`Submitting deploy request for ${appName}`);
45
- const response = await axios_1.default.post(`https://${host}/v1alpha1/${userCredentials.userName}/applications/${appName}`, {
39
+ const response = await axios.post(`https://${host}/v1alpha1/${userCredentials.userName}/applications/${appName}`, {
46
40
  application_archive: zipData,
47
41
  }, {
48
42
  headers: {
@@ -68,7 +62,7 @@ async function deployAppCode(host) {
68
62
  return 1;
69
63
  }
70
64
  // Retrieve the application status, check if it is "AVAILABLE"
71
- const list = await axios_1.default.get(`https://${host}/v1alpha1/${userCredentials.userName}/applications`, {
65
+ const list = await axios.get(`https://${host}/v1alpha1/${userCredentials.userName}/applications`, {
72
66
  headers: {
73
67
  Authorization: bearerToken,
74
68
  },
@@ -79,9 +73,9 @@ async function deployAppCode(host) {
79
73
  applicationAvailable = true;
80
74
  }
81
75
  }
82
- await (0, cloudutils_1.sleep)(1000);
76
+ await sleep(1000);
83
77
  }
84
- await (0, cloudutils_1.sleep)(5000); // Leave time for route cache updates
78
+ await sleep(5000); // Leave time for route cache updates
85
79
  logger.info(`Successfully deployed ${appName}!`);
86
80
  logger.info(`Access your application at https://${userCredentials.userName}-${appName}.${host}/`);
87
81
  return 0;
@@ -89,8 +83,8 @@ async function deployAppCode(host) {
89
83
  catch (e) {
90
84
  const errorLabel = `Failed to deploy application ${appName}`;
91
85
  const axiosError = e;
92
- if ((0, cloudutils_1.isCloudAPIErrorResponse)(axiosError.response?.data)) {
93
- (0, cloudutils_1.handleAPIErrors)(errorLabel, axiosError);
86
+ if (isCloudAPIErrorResponse(axiosError.response?.data)) {
87
+ handleAPIErrors(errorLabel, axiosError);
94
88
  }
95
89
  else {
96
90
  logger.error(`${errorLabel}: ${e.message}`);
@@ -98,9 +92,8 @@ async function deployAppCode(host) {
98
92
  return 1;
99
93
  }
100
94
  }
101
- exports.deployAppCode = deployAppCode;
102
95
  function readInterpolatedConfig(configFilePath) {
103
- const configFileContent = (0, cloudutils_1.checkReadFile)(configFilePath);
96
+ const configFileContent = checkReadFile(configFilePath);
104
97
  const regex = /\${([^}]+)}/g; // Regex to match ${VAR_NAME} style placeholders
105
98
  return configFileContent.replace(regex, (_, g1) => {
106
99
  return process.env[g1] || ""; // If the env variable is not set, return an empty string.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy-app-code.js","sourceRoot":"","sources":["../../applications/deploy-app-code.ts"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5L,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,WAAW,CAAC;AAO3B,KAAK,UAAU,aAAa;IACxB,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;IAExB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,MAAM,WAAW,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,kBAAkB,EAAE,CAAC,EAAE,CAAC,CAAC;IAElL,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACjB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACpC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,mDAAmD;IACnD,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,kBAAkB,CAAC,CAAA;IACrE,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAEnE,gCAAgC;IAChC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IAC/D,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY;IAC9C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,eAAe,GAAG,mBAAmB,EAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;IAEtD,MAAM,OAAO,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,CAAC;IACX,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC;QAC/D,MAAM,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAA;QACvF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAC;QAEtC,4BAA4B;QAC5B,MAAM,CAAC,IAAI,CAAC,iCAAiC,OAAO,EAAE,CAAC,CAAA;QACvD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAC/B,WAAW,IAAI,aAAa,eAAe,CAAC,QAAQ,iBAAiB,OAAO,EAAE,EAC9E;YACE,mBAAmB,EAAE,OAAO;SAC7B,EACD;YACE,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,WAAW;aAC3B;SACF,CACF,CAAC;QACF,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAoB,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,gCAAgC,OAAO,uBAAuB,YAAY,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAE7G,+CAA+C;QAC/C,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,IAAI,oBAAoB,GAAG,KAAK,CAAA;QAChC,OAAO,CAAC,oBAAoB,EAAE,CAAC;YAC7B,KAAK,IAAI,CAAC,CAAA;YACV,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,eAAe,OAAO,iBAAiB,YAAY,CAAC,kBAAkB,kBAAkB,CAAC,CAAC;gBACtG,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,CAAC,MAAM,OAAO,6FAA6F,CAAC,CAAC;gBAC1H,CAAC;YACH,CAAC;YACD,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;gBAChB,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAA;gBAC/D,OAAO,CAAC,CAAC;YACX,CAAC;YAED,8DAA8D;YAC9D,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAC1B,WAAW,IAAI,aAAa,eAAe,CAAC,QAAQ,eAAe,EACnE;gBACE,OAAO,EAAE;oBACP,aAAa,EAAE,WAAW;iBAC3B;aACF,CACF,CAAC;YACF,MAAM,YAAY,GAAkB,IAAI,CAAC,IAAqB,CAAC;YAC/D,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;gBACvC,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,IAAI,WAAW,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBACvE,oBAAoB,GAAG,IAAI,CAAA;gBAC7B,CAAC;YACH,CAAC;YACD,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,qCAAqC;QACxD,MAAM,CAAC,IAAI,CAAC,yBAAyB,OAAO,GAAG,CAAC,CAAA;QAChD,MAAM,CAAC,IAAI,CAAC,sCAAsC,eAAe,CAAC,QAAQ,IAAI,OAAO,IAAI,IAAI,GAAG,CAAC,CAAA;QACjG,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,gCAAgC,OAAO,EAAE,CAAC;QAC7D,MAAM,UAAU,GAAG,CAAe,CAAC;QACnC,IAAI,uBAAuB,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;YACvD,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,cAAsB;IACpD,MAAM,iBAAiB,GAAG,aAAa,CAAC,cAAc,CAAW,CAAC;IAClE,MAAM,KAAK,GAAG,cAAc,CAAC,CAAE,gDAAgD;IAC/E,OAAO,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAU,EAAE,EAAE;QACxD,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAE,0DAA0D;IAC7F,CAAC,CAAC,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-app-info.d.ts","sourceRoot":"","sources":["../../applications/get-app-info.ts"],"names":[],"mappings":"AAIA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqC/F"}
@@ -0,0 +1,43 @@
1
+ import axios from "axios";
2
+ import { handleAPIErrors, getCloudCredentials, getLogger, isCloudAPIErrorResponse, retrieveApplicationName } from "../cloudutils.js";
3
+ import { prettyPrintApplication } from "./types.js";
4
+ export async function getAppInfo(host, json, appName) {
5
+ const logger = getLogger();
6
+ const userCredentials = getCloudCredentials();
7
+ const bearerToken = "Bearer " + userCredentials.token;
8
+ appName = appName ?? retrieveApplicationName(logger, json);
9
+ if (!appName) {
10
+ return 1;
11
+ }
12
+ if (!json) {
13
+ logger.info(`Retrieving info for application: ${appName}`);
14
+ }
15
+ try {
16
+ const res = await axios.get(`https://${host}/v1alpha1/${userCredentials.userName}/applications/${appName}`, {
17
+ headers: {
18
+ "Content-Type": "application/json",
19
+ Authorization: bearerToken,
20
+ }
21
+ });
22
+ const app = res.data;
23
+ if (json) {
24
+ console.log(JSON.stringify(app));
25
+ }
26
+ else {
27
+ prettyPrintApplication(app);
28
+ }
29
+ return 0;
30
+ }
31
+ catch (e) {
32
+ const errorLabel = `Failed to retrieve info for application ${appName}`;
33
+ const axiosError = e;
34
+ if (isCloudAPIErrorResponse(axiosError.response?.data)) {
35
+ handleAPIErrors(errorLabel, axiosError);
36
+ }
37
+ else {
38
+ logger.error(`${errorLabel}: ${e.message}`);
39
+ }
40
+ return 1;
41
+ }
42
+ }
43
+ //# sourceMappingURL=get-app-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-app-info.js","sourceRoot":"","sources":["../../applications/get-app-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,SAAS,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AACrI,OAAO,EAAe,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,IAAa,EAAE,OAAgB;IAC5E,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,eAAe,GAAG,mBAAmB,EAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;IAEtD,OAAO,GAAG,OAAO,IAAI,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,CAAC,IAAI,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAA;IAC5D,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,WAAW,IAAI,aAAa,eAAe,CAAC,QAAQ,iBAAiB,OAAO,EAAE,EAAE;YAC1G,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,WAAW;aAC3B;SACF,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,GAAG,CAAC,IAAmB,CAAA;QACnC,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,2CAA2C,OAAO,EAAE,CAAC;QACxE,MAAM,UAAU,GAAG,CAAe,CAAC;QACnC,IAAI,uBAAuB,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;YACvD,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-app-logs.d.ts","sourceRoot":"","sources":["../../applications/get-app-logs.ts"],"names":[],"mappings":"AAGA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAyC5E"}
@@ -1,28 +1,22 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getAppLogs = void 0;
7
- const axios_1 = __importDefault(require("axios"));
8
- const cloudutils_1 = require("../cloudutils");
9
- async function getAppLogs(host, last) {
1
+ import axios from "axios";
2
+ import { handleAPIErrors, getCloudCredentials, getLogger, isCloudAPIErrorResponse, retrieveApplicationName } from "../cloudutils.js";
3
+ export async function getAppLogs(host, last) {
10
4
  if (last != undefined && (isNaN(last) || last <= 0)) {
11
5
  throw new Error('The --last parmameter must be an integer greater than 0');
12
6
  }
13
7
  if (last == undefined) {
14
8
  last = 0; //internally, 0 means "get all the logs." This is the default.
15
9
  }
16
- const logger = (0, cloudutils_1.getLogger)();
17
- const userCredentials = (0, cloudutils_1.getCloudCredentials)();
10
+ const logger = getLogger();
11
+ const userCredentials = getCloudCredentials();
18
12
  const bearerToken = "Bearer " + userCredentials.token;
19
- const appName = (0, cloudutils_1.retrieveApplicationName)(logger);
13
+ const appName = retrieveApplicationName(logger);
20
14
  if (!appName) {
21
15
  return 1;
22
16
  }
23
17
  logger.info(`Retrieving logs for application: ${appName}`);
24
18
  try {
25
- const res = await axios_1.default.get(`https://${host}/v1alpha1/${userCredentials.userName}/logs/applications/${appName}?last=${last}`, {
19
+ const res = await axios.get(`https://${host}/v1alpha1/${userCredentials.userName}/logs/applications/${appName}?last=${last}`, {
26
20
  headers: {
27
21
  "Content-Type": "application/json",
28
22
  Authorization: bearerToken,
@@ -40,8 +34,8 @@ async function getAppLogs(host, last) {
40
34
  catch (e) {
41
35
  const errorLabel = `Failed to retrieve logs of application ${appName}`;
42
36
  const axiosError = e;
43
- if ((0, cloudutils_1.isCloudAPIErrorResponse)(axiosError.response?.data)) {
44
- (0, cloudutils_1.handleAPIErrors)(errorLabel, axiosError);
37
+ if (isCloudAPIErrorResponse(axiosError.response?.data)) {
38
+ handleAPIErrors(errorLabel, axiosError);
45
39
  }
46
40
  else {
47
41
  logger.error(`${errorLabel}: ${e.message}`);
@@ -49,5 +43,4 @@ async function getAppLogs(host, last) {
49
43
  return 1;
50
44
  }
51
45
  }
52
- exports.getAppLogs = getAppLogs;
53
46
  //# sourceMappingURL=get-app-logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-app-logs.js","sourceRoot":"","sources":["../../applications/get-app-logs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,SAAS,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAErI,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,IAAY;IACzD,IAAI,IAAI,IAAI,SAAS,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,CAAA,CAAM,8DAA8D;IAC9E,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,eAAe,GAAG,mBAAmB,EAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;IAEtD,MAAM,OAAO,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAA;IAE1D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,WAAW,IAAI,aAAa,eAAe,CAAC,QAAQ,sBAAsB,OAAO,SAAS,IAAI,EAAE,EAAE;YAC5H,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,WAAW;aAC3B;SACF,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,+CAA+C,OAAO,EAAE,CAAC,CAAC;YACtE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,0CAA0C,OAAO,EAAE,CAAC;QACvE,MAAM,UAAU,GAAG,CAAe,CAAC;QACnC,IAAI,uBAAuB,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;YACvD,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { registerApp } from './register-app.js';
2
+ export { listApps } from './list-apps.js';
3
+ export { deleteApp } from './delete-app.js';
4
+ export { deployAppCode } from './deploy-app-code.js';
5
+ export { getAppLogs } from './get-app-logs.js';
6
+ export { updateApp } from './update-app.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../applications/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { registerApp } from './register-app.js';
2
+ export { listApps } from './list-apps.js';
3
+ export { deleteApp } from './delete-app.js';
4
+ export { deployAppCode } from './deploy-app-code.js';
5
+ export { getAppLogs } from './get-app-logs.js';
6
+ export { updateApp } from './update-app.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../applications/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-apps.d.ts","sourceRoot":"","sources":["../../applications/list-apps.ts"],"names":[],"mappings":"AAIA,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAqC3E"}
@@ -0,0 +1,41 @@
1
+ import axios from "axios";
2
+ import { handleAPIErrors, getCloudCredentials, getLogger, isCloudAPIErrorResponse } from "../cloudutils.js";
3
+ import { prettyPrintApplication } from "./types.js";
4
+ export async function listApps(host, json) {
5
+ const logger = getLogger();
6
+ const userCredentials = getCloudCredentials();
7
+ const bearerToken = "Bearer " + userCredentials.token;
8
+ try {
9
+ const list = await axios.get(`https://${host}/v1alpha1/${userCredentials.userName}/applications`, {
10
+ headers: {
11
+ Authorization: bearerToken,
12
+ },
13
+ });
14
+ const applications = list.data;
15
+ if (json) {
16
+ console.log(JSON.stringify(applications));
17
+ }
18
+ else {
19
+ if (applications.length === 0) {
20
+ logger.info("No applications found");
21
+ }
22
+ applications.forEach(app => {
23
+ prettyPrintApplication(app);
24
+ console.log('-------------------------');
25
+ });
26
+ }
27
+ return 0;
28
+ }
29
+ catch (e) {
30
+ const errorLabel = 'Failed to list applications';
31
+ const axiosError = e;
32
+ if (isCloudAPIErrorResponse(axiosError.response?.data)) {
33
+ handleAPIErrors(errorLabel, axiosError);
34
+ }
35
+ else {
36
+ logger.error(`${errorLabel}: ${e.message}`);
37
+ }
38
+ return 1;
39
+ }
40
+ }
41
+ //# sourceMappingURL=list-apps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-apps.js","sourceRoot":"","sources":["../../applications/list-apps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC5G,OAAO,EAAe,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,IAAa;IACxD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,eAAe,GAAG,mBAAmB,EAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;IAEtD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAC1B,WAAW,IAAI,aAAa,eAAe,CAAC,QAAQ,eAAe,EACnE;YACE,OAAO,EAAE;gBACP,aAAa,EAAE,WAAW;aAC3B;SACF,CACF,CAAC;QACF,MAAM,YAAY,GAAkB,IAAI,CAAC,IAAqB,CAAC;QAC/D,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACvC,CAAC;YACD,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACzB,sBAAsB,CAAC,GAAG,CAAC,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,6BAA6B,CAAC;QACjD,MAAM,UAAU,GAAG,CAAe,CAAC;QACnC,IAAI,uBAAuB,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;YACvD,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-app.d.ts","sourceRoot":"","sources":["../../applications/register-app.ts"],"names":[],"mappings":"AAGA,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuC/E"}
@@ -0,0 +1,39 @@
1
+ import axios from "axios";
2
+ import { handleAPIErrors, getCloudCredentials, getLogger, isCloudAPIErrorResponse, retrieveApplicationName } from "../cloudutils.js";
3
+ export async function registerApp(dbname, host) {
4
+ const logger = getLogger();
5
+ const userCredentials = getCloudCredentials();
6
+ const bearerToken = "Bearer " + userCredentials.token;
7
+ const appName = retrieveApplicationName(logger);
8
+ if (!appName) {
9
+ return 1;
10
+ }
11
+ logger.info(`Registering application: ${appName}`);
12
+ try {
13
+ const register = await axios.put(`https://${host}/v1alpha1/${userCredentials.userName}/applications`, {
14
+ name: appName,
15
+ database: dbname,
16
+ }, {
17
+ headers: {
18
+ "Content-Type": "application/json",
19
+ Authorization: bearerToken,
20
+ },
21
+ });
22
+ const uuid = register.data;
23
+ logger.info(`${appName} ID: ${uuid}`);
24
+ logger.info(`Successfully registered ${appName}!`);
25
+ return 0;
26
+ }
27
+ catch (e) {
28
+ const errorLabel = `Failed to register application ${appName}`;
29
+ const axiosError = e;
30
+ if (isCloudAPIErrorResponse(axiosError.response?.data)) {
31
+ handleAPIErrors(errorLabel, axiosError);
32
+ }
33
+ else {
34
+ logger.error(`${errorLabel}: ${e.message}`);
35
+ }
36
+ return 1;
37
+ }
38
+ }
39
+ //# sourceMappingURL=register-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-app.js","sourceRoot":"","sources":["../../applications/register-app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,SAAS,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAErI,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAc,EAAE,IAAY;IAC5D,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,eAAe,GAAG,mBAAmB,EAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;IAEtD,MAAM,OAAO,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAA;IAElD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAC9B,WAAW,IAAI,aAAa,eAAe,CAAC,QAAQ,eAAe,EACnE;YACE,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,MAAM;SACjB,EACD;YACE,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,WAAW;aAC3B;SACF,CACF,CAAC;QACF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAc,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,IAAI,EAAE,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,2BAA2B,OAAO,GAAG,CAAC,CAAC;QACnD,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,kCAAkC,OAAO,EAAE,CAAC;QAC/D,MAAM,UAAU,GAAG,CAAe,CAAC;QACnC,IAAI,uBAAuB,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;YACvD,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../applications/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uBAAuB,EAAE,MAAM,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,QAQtD"}
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.prettyPrintApplication = void 0;
4
- function prettyPrintApplication(app) {
1
+ export function prettyPrintApplication(app) {
5
2
  console.log(`Application Name: ${app.Name}`);
6
3
  console.log(`ID: ${app.ID}`);
7
4
  console.log(`Postgres Instance Name: ${app.PostgresInstanceName}`);
@@ -10,5 +7,4 @@ function prettyPrintApplication(app) {
10
7
  console.log(`Version: ${app.Version}`);
11
8
  console.log(`App URL: ${app.AppURL}`);
12
9
  }
13
- exports.prettyPrintApplication = prettyPrintApplication;
14
10
  //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../applications/types.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,sBAAsB,CAAC,GAAgB;IACrD,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,2BAA2B,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;AACxC,CAAC"}