@dbos-inc/dbos-cloud 0.8.41-preview
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.ts +177 -0
- package/dist/packages/dbos-cloud/applications/delete-app.d.ts +2 -0
- package/dist/packages/dbos-cloud/applications/delete-app.d.ts.map +1 -0
- package/dist/packages/dbos-cloud/applications/delete-app.js +42 -0
- package/dist/packages/dbos-cloud/applications/delete-app.js.map +1 -0
- package/dist/packages/dbos-cloud/applications/deploy-app-code.d.ts +2 -0
- package/dist/packages/dbos-cloud/applications/deploy-app-code.d.ts.map +1 -0
- package/dist/packages/dbos-cloud/applications/deploy-app-code.js +145 -0
- package/dist/packages/dbos-cloud/applications/deploy-app-code.js.map +1 -0
- package/dist/packages/dbos-cloud/applications/get-app-logs.d.ts +2 -0
- package/dist/packages/dbos-cloud/applications/get-app-logs.d.ts.map +1 -0
- package/dist/packages/dbos-cloud/applications/get-app-logs.js +42 -0
- package/dist/packages/dbos-cloud/applications/get-app-logs.js.map +1 -0
- package/dist/packages/dbos-cloud/applications/index.d.ts +7 -0
- package/dist/packages/dbos-cloud/applications/index.d.ts.map +1 -0
- package/dist/packages/dbos-cloud/applications/index.js +16 -0
- package/dist/packages/dbos-cloud/applications/index.js.map +1 -0
- package/dist/packages/dbos-cloud/applications/list-apps.d.ts +2 -0
- package/dist/packages/dbos-cloud/applications/list-apps.d.ts.map +1 -0
- package/dist/packages/dbos-cloud/applications/list-apps.js +45 -0
- package/dist/packages/dbos-cloud/applications/list-apps.js.map +1 -0
- package/dist/packages/dbos-cloud/applications/register-app.d.ts +2 -0
- package/dist/packages/dbos-cloud/applications/register-app.d.ts.map +1 -0
- package/dist/packages/dbos-cloud/applications/register-app.js +48 -0
- package/dist/packages/dbos-cloud/applications/register-app.js.map +1 -0
- package/dist/packages/dbos-cloud/applications/types.d.ts +9 -0
- package/dist/packages/dbos-cloud/applications/types.d.ts.map +1 -0
- package/dist/packages/dbos-cloud/applications/types.js +3 -0
- package/dist/packages/dbos-cloud/applications/types.js.map +1 -0
- package/dist/packages/dbos-cloud/applications/update-app.d.ts +2 -0
- package/dist/packages/dbos-cloud/applications/update-app.d.ts.map +1 -0
- package/dist/packages/dbos-cloud/applications/update-app.js +49 -0
- package/dist/packages/dbos-cloud/applications/update-app.js.map +1 -0
- package/dist/packages/dbos-cloud/cli.d.ts +3 -0
- package/dist/packages/dbos-cloud/cli.d.ts.map +1 -0
- package/dist/packages/dbos-cloud/cli.js +149 -0
- package/dist/packages/dbos-cloud/cli.js.map +1 -0
- package/dist/packages/dbos-cloud/cloudutils.d.ts +5 -0
- package/dist/packages/dbos-cloud/cloudutils.d.ts.map +1 -0
- package/dist/packages/dbos-cloud/cloudutils.js +47 -0
- package/dist/packages/dbos-cloud/cloudutils.js.map +1 -0
- package/dist/packages/dbos-cloud/login.d.ts +9 -0
- package/dist/packages/dbos-cloud/login.d.ts.map +1 -0
- package/dist/packages/dbos-cloud/login.js +102 -0
- package/dist/packages/dbos-cloud/login.js.map +1 -0
- package/dist/packages/dbos-cloud/register.d.ts +2 -0
- package/dist/packages/dbos-cloud/register.d.ts.map +1 -0
- package/dist/packages/dbos-cloud/register.js +40 -0
- package/dist/packages/dbos-cloud/register.js.map +1 -0
- package/dist/packages/dbos-cloud/userdb.d.ts +13 -0
- package/dist/packages/dbos-cloud/userdb.d.ts.map +1 -0
- package/dist/packages/dbos-cloud/userdb.js +266 -0
- package/dist/packages/dbos-cloud/userdb.js.map +1 -0
- package/dist/schemas/system_db_schema.d.ts +34 -0
- package/dist/schemas/system_db_schema.d.ts.map +1 -0
- package/dist/schemas/system_db_schema.js +77 -0
- package/dist/schemas/system_db_schema.js.map +1 -0
- package/dist/schemas/user_db_schema.d.ts +11 -0
- package/dist/schemas/user_db_schema.d.ts.map +1 -0
- package/dist/schemas/user_db_schema.js +16 -0
- package/dist/schemas/user_db_schema.js.map +1 -0
- package/dist/src/communicator.d.ts +25 -0
- package/dist/src/communicator.d.ts.map +1 -0
- package/dist/src/communicator.js +26 -0
- package/dist/src/communicator.js.map +1 -0
- package/dist/src/context.d.ts +64 -0
- package/dist/src/context.d.ts.map +1 -0
- package/dist/src/context.js +96 -0
- package/dist/src/context.js.map +1 -0
- package/dist/src/data_validation.d.ts +3 -0
- package/dist/src/data_validation.d.ts.map +1 -0
- package/dist/src/data_validation.js +168 -0
- package/dist/src/data_validation.js.map +1 -0
- package/dist/src/dbos-executor.d.ts +102 -0
- package/dist/src/dbos-executor.d.ts.map +1 -0
- package/dist/src/dbos-executor.js +631 -0
- package/dist/src/dbos-executor.js.map +1 -0
- package/dist/src/dbos-runtime/applicationVersion.d.ts +3 -0
- package/dist/src/dbos-runtime/applicationVersion.d.ts.map +1 -0
- package/dist/src/dbos-runtime/applicationVersion.js +13 -0
- package/dist/src/dbos-runtime/applicationVersion.js.map +1 -0
- package/dist/src/dbos-runtime/cli.d.ts +8 -0
- package/dist/src/dbos-runtime/cli.d.ts.map +1 -0
- package/dist/src/dbos-runtime/cli.js +47 -0
- package/dist/src/dbos-runtime/cli.js.map +1 -0
- package/dist/src/dbos-runtime/config.d.ts +29 -0
- package/dist/src/dbos-runtime/config.d.ts.map +1 -0
- package/dist/src/dbos-runtime/config.js +111 -0
- package/dist/src/dbos-runtime/config.js.map +1 -0
- package/dist/src/dbos-runtime/debug.d.ts +4 -0
- package/dist/src/dbos-runtime/debug.d.ts.map +1 -0
- package/dist/src/dbos-runtime/debug.js +21 -0
- package/dist/src/dbos-runtime/debug.js.map +1 -0
- package/dist/src/dbos-runtime/init.d.ts +7 -0
- package/dist/src/dbos-runtime/init.d.ts.map +1 -0
- package/dist/src/dbos-runtime/init.js +51 -0
- package/dist/src/dbos-runtime/init.js.map +1 -0
- package/dist/src/dbos-runtime/runtime.d.ts +28 -0
- package/dist/src/dbos-runtime/runtime.d.ts.map +1 -0
- package/dist/src/dbos-runtime/runtime.js +95 -0
- package/dist/src/dbos-runtime/runtime.js.map +1 -0
- package/dist/src/debugger/debug_workflow.d.ts +38 -0
- package/dist/src/debugger/debug_workflow.d.ts.map +1 -0
- package/dist/src/debugger/debug_workflow.js +211 -0
- package/dist/src/debugger/debug_workflow.js.map +1 -0
- package/dist/src/decorators.d.ts +118 -0
- package/dist/src/decorators.d.ts.map +1 -0
- package/dist/src/decorators.js +467 -0
- package/dist/src/decorators.js.map +1 -0
- package/dist/src/error.d.ts +47 -0
- package/dist/src/error.d.ts.map +1 -0
- package/dist/src/error.js +171 -0
- package/dist/src/error.js.map +1 -0
- package/dist/src/httpServer/handler.d.ts +54 -0
- package/dist/src/httpServer/handler.d.ts.map +1 -0
- package/dist/src/httpServer/handler.js +175 -0
- package/dist/src/httpServer/handler.js.map +1 -0
- package/dist/src/httpServer/handlerTypes.d.ts +11 -0
- package/dist/src/httpServer/handlerTypes.d.ts.map +1 -0
- package/dist/src/httpServer/handlerTypes.js +19 -0
- package/dist/src/httpServer/handlerTypes.js.map +1 -0
- package/dist/src/httpServer/middleware.d.ts +56 -0
- package/dist/src/httpServer/middleware.d.ts.map +1 -0
- package/dist/src/httpServer/middleware.js +57 -0
- package/dist/src/httpServer/middleware.js.map +1 -0
- package/dist/src/httpServer/server.d.ts +45 -0
- package/dist/src/httpServer/server.d.ts.map +1 -0
- package/dist/src/httpServer/server.js +253 -0
- package/dist/src/httpServer/server.js.map +1 -0
- package/dist/src/system_database.d.ts +89 -0
- package/dist/src/system_database.d.ts.map +1 -0
- package/dist/src/system_database.js +447 -0
- package/dist/src/system_database.js.map +1 -0
- package/dist/src/telemetry/collector.d.ts +16 -0
- package/dist/src/telemetry/collector.d.ts.map +1 -0
- package/dist/src/telemetry/collector.js +65 -0
- package/dist/src/telemetry/collector.js.map +1 -0
- package/dist/src/telemetry/exporters.d.ts +15 -0
- package/dist/src/telemetry/exporters.d.ts.map +1 -0
- package/dist/src/telemetry/exporters.js +59 -0
- package/dist/src/telemetry/exporters.js.map +1 -0
- package/dist/src/telemetry/index.d.ts +11 -0
- package/dist/src/telemetry/index.d.ts.map +1 -0
- package/dist/src/telemetry/index.js +19 -0
- package/dist/src/telemetry/index.js.map +1 -0
- package/dist/src/telemetry/logs.d.ts +47 -0
- package/dist/src/telemetry/logs.d.ts.map +1 -0
- package/dist/src/telemetry/logs.js +195 -0
- package/dist/src/telemetry/logs.js.map +1 -0
- package/dist/src/telemetry/traces.d.ts +14 -0
- package/dist/src/telemetry/traces.d.ts.map +1 -0
- package/dist/src/telemetry/traces.js +52 -0
- package/dist/src/telemetry/traces.js.map +1 -0
- package/dist/src/transaction.d.ts +29 -0
- package/dist/src/transaction.d.ts.map +1 -0
- package/dist/src/transaction.js +27 -0
- package/dist/src/transaction.js.map +1 -0
- package/dist/src/user_database.d.ts +132 -0
- package/dist/src/user_database.d.ts.map +1 -0
- package/dist/src/user_database.js +332 -0
- package/dist/src/user_database.js.map +1 -0
- package/dist/src/utils.d.ts +6 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +35 -0
- package/dist/src/utils.js.map +1 -0
- package/dist/src/workflow.d.ts +195 -0
- package/dist/src/workflow.d.ts.map +1 -0
- package/dist/src/workflow.js +498 -0
- package/dist/src/workflow.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1,49 @@
|
|
|
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.updateApp = void 0;
|
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const logs_1 = require("../../../src/telemetry/logs");
|
|
9
|
+
const cloudutils_1 = require("../cloudutils");
|
|
10
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
11
|
+
async function updateApp(host, machines) {
|
|
12
|
+
const logger = new logs_1.GlobalLogger();
|
|
13
|
+
const userCredentials = (0, cloudutils_1.getCloudCredentials)();
|
|
14
|
+
const bearerToken = "Bearer " + userCredentials.token;
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
16
|
+
const packageJson = require(node_path_1.default.join(process.cwd(), 'package.json'));
|
|
17
|
+
const appName = packageJson.name;
|
|
18
|
+
logger.info(`Loaded application name from package.json: ${appName}`);
|
|
19
|
+
logger.info(`Updating application: ${appName}`);
|
|
20
|
+
try {
|
|
21
|
+
logger.info(`Updating application ${appName} to ${machines} machines`);
|
|
22
|
+
const update = await axios_1.default.patch(`https://${host}/${userCredentials.userName}/application/${appName}`, {
|
|
23
|
+
name: appName,
|
|
24
|
+
max_vms: machines
|
|
25
|
+
}, {
|
|
26
|
+
headers: {
|
|
27
|
+
"Content-Type": "application/json",
|
|
28
|
+
Authorization: bearerToken,
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
const application = update.data;
|
|
32
|
+
logger.info(`Successfully updated: ${application.Name}`);
|
|
33
|
+
console.log(JSON.stringify({ "Name": application.Name, "ID": application.ID, "Version": application.Version, "MaxVMs": application.MaxVMs }));
|
|
34
|
+
return 0;
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
if (axios_1.default.isAxiosError(e) && e.response) {
|
|
38
|
+
logger.error(`Failed to update application ${appName}: ${e.response?.data}`);
|
|
39
|
+
return 1;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
e.message = `Failed to update application ${appName}: ${e.message}`;
|
|
43
|
+
logger.error(e);
|
|
44
|
+
return 1;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.updateApp = updateApp;
|
|
49
|
+
//# sourceMappingURL=update-app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-app.js","sourceRoot":"","sources":["../../../../applications/update-app.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,sDAA2D;AAC3D,8CAAoD;AAEpD,0DAA6B;AAEtB,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,QAAgB;IAC5D,MAAM,MAAM,GAAI,IAAI,mBAAY,EAAE,CAAC;IACnC,MAAM,eAAe,GAAG,IAAA,gCAAmB,GAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;IAEtD,8DAA8D;IAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAqB,CAAC;IAC1F,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;IACjC,MAAM,CAAC,IAAI,CAAC,8CAA8C,OAAO,EAAE,CAAC,CAAA;IACpE,MAAM,CAAC,IAAI,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAA;IAE/C,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,wBAAwB,OAAO,OAAO,QAAQ,WAAW,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,MAAM,eAAK,CAAC,KAAK,CAC9B,WAAW,IAAI,IAAI,eAAe,CAAC,QAAQ,gBAAgB,OAAO,EAAE,EACpE;YACE,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,QAAQ;SAClB,EACD;YACE,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,WAAW;aAC3B;SACF,CACF,CAAC;QACF,MAAM,WAAW,GAAgB,MAAM,CAAC,IAAmB,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,yBAAyB,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9I,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,eAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,gCAAgC,OAAO,KAAK,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7E,OAAO,CAAC,CAAC;QACX,CAAC;aAAM,CAAC;YACL,CAAW,CAAC,OAAO,GAAG,gCAAgC,OAAO,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC;YAC1F,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;AACH,CAAC;AAxCD,8BAwCC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../cli.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const applications_1 = require("./applications");
|
|
5
|
+
const commander_1 = require("commander");
|
|
6
|
+
const login_1 = require("./login");
|
|
7
|
+
const register_1 = require("./register");
|
|
8
|
+
const userdb_1 = require("./userdb");
|
|
9
|
+
const cloudutils_1 = require("./cloudutils");
|
|
10
|
+
const program = new commander_1.Command();
|
|
11
|
+
const DEFAULT_HOST = process.env.DBOS_DOMAIN; // TODO: Once we have a "production" cluster, hardcode its domain name here
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
13
|
+
const packageJson = require('../../../package.json');
|
|
14
|
+
program.
|
|
15
|
+
version(packageJson.version);
|
|
16
|
+
/////////////////////
|
|
17
|
+
/* AUTHENTICATION */
|
|
18
|
+
/////////////////////
|
|
19
|
+
program
|
|
20
|
+
.command('login')
|
|
21
|
+
.description('Log in to DBOS cloud')
|
|
22
|
+
.requiredOption('-u, --username <string>', 'Username')
|
|
23
|
+
.action(async (options) => {
|
|
24
|
+
const exitCode = await (0, login_1.login)(options.username);
|
|
25
|
+
process.exit(exitCode);
|
|
26
|
+
});
|
|
27
|
+
program
|
|
28
|
+
.command('register')
|
|
29
|
+
.description('Register a user and log in to DBOS cloud')
|
|
30
|
+
.requiredOption('-u, --username <string>', 'Username')
|
|
31
|
+
.option('-h, --host <string>', 'Specify the host', DEFAULT_HOST)
|
|
32
|
+
.action(async (options) => {
|
|
33
|
+
if (!(0, cloudutils_1.credentialsExist)()) {
|
|
34
|
+
const exitCode = await (0, login_1.login)(options.username);
|
|
35
|
+
if (exitCode !== 0) {
|
|
36
|
+
process.exit(exitCode);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const exitCode = await (0, register_1.registerUser)(options.username, options.host);
|
|
40
|
+
process.exit(exitCode);
|
|
41
|
+
});
|
|
42
|
+
/////////////////////////////
|
|
43
|
+
/* APPLICATIONS MANAGEMENT */
|
|
44
|
+
/////////////////////////////
|
|
45
|
+
const applicationCommands = program
|
|
46
|
+
.command('applications')
|
|
47
|
+
.description('Manage your DBOS applications')
|
|
48
|
+
.option('-h, --host <string>', 'Specify the host', DEFAULT_HOST);
|
|
49
|
+
applicationCommands
|
|
50
|
+
.command('register')
|
|
51
|
+
.description('Register a new application')
|
|
52
|
+
.requiredOption('-d, --database <string>', 'Specify the app database name')
|
|
53
|
+
.option('-m, --machines <string>', 'Number of VMs to deploy', '1')
|
|
54
|
+
.action(async (options) => {
|
|
55
|
+
const { host } = applicationCommands.opts();
|
|
56
|
+
const exitCode = await (0, applications_1.registerApp)(options.database, host, parseInt(options.machines));
|
|
57
|
+
process.exit(exitCode);
|
|
58
|
+
});
|
|
59
|
+
applicationCommands
|
|
60
|
+
.command('update')
|
|
61
|
+
.description('Update an application')
|
|
62
|
+
.requiredOption('-m, --machines <string>', 'Number of VMs to deploy')
|
|
63
|
+
.action(async (options) => {
|
|
64
|
+
const { host } = applicationCommands.opts();
|
|
65
|
+
const exitCode = await (0, applications_1.updateApp)(host, parseInt(options.machines));
|
|
66
|
+
process.exit(exitCode);
|
|
67
|
+
});
|
|
68
|
+
applicationCommands
|
|
69
|
+
.command('deploy')
|
|
70
|
+
.description('Deploy an application code to the cloud')
|
|
71
|
+
.option('--no-docker', 'Build the code locally without using Docker')
|
|
72
|
+
.action(async (options) => {
|
|
73
|
+
const { host } = applicationCommands.opts();
|
|
74
|
+
const exitCode = await (0, applications_1.deployAppCode)(host, options.docker);
|
|
75
|
+
process.exit(exitCode);
|
|
76
|
+
});
|
|
77
|
+
applicationCommands
|
|
78
|
+
.command('delete')
|
|
79
|
+
.description('Delete a previously deployed application')
|
|
80
|
+
.action(async () => {
|
|
81
|
+
const { host } = applicationCommands.opts();
|
|
82
|
+
const exitCode = await (0, applications_1.deleteApp)(host);
|
|
83
|
+
process.exit(exitCode);
|
|
84
|
+
});
|
|
85
|
+
applicationCommands
|
|
86
|
+
.command('list')
|
|
87
|
+
.description('List all deployed applications')
|
|
88
|
+
.action(async () => {
|
|
89
|
+
const { host } = applicationCommands.opts();
|
|
90
|
+
const exitCode = await (0, applications_1.listApps)(host);
|
|
91
|
+
process.exit(exitCode);
|
|
92
|
+
});
|
|
93
|
+
applicationCommands
|
|
94
|
+
.command('logs')
|
|
95
|
+
.description('Print the microVM logs of a deployed application')
|
|
96
|
+
.action(async () => {
|
|
97
|
+
const { host } = applicationCommands.opts();
|
|
98
|
+
const exitCode = await (0, applications_1.getAppLogs)(host);
|
|
99
|
+
process.exit(exitCode);
|
|
100
|
+
});
|
|
101
|
+
//////////////////////////////
|
|
102
|
+
/* USER DATABASE MANAGEMENT */
|
|
103
|
+
//////////////////////////////
|
|
104
|
+
const userdbCommands = program
|
|
105
|
+
.command('userdb')
|
|
106
|
+
.description('Manage your databases')
|
|
107
|
+
.option('-h, --host <string>', 'Specify the host', DEFAULT_HOST);
|
|
108
|
+
userdbCommands
|
|
109
|
+
.command('create')
|
|
110
|
+
.argument('<string>', 'database name')
|
|
111
|
+
.requiredOption('-a, --admin <string>', 'Specify the admin user')
|
|
112
|
+
.requiredOption('-W, --password <string>', 'Specify the admin password')
|
|
113
|
+
.option('-s, --sync', 'make synchronous call', true)
|
|
114
|
+
.action((async (dbname, options) => {
|
|
115
|
+
const { host } = userdbCommands.opts();
|
|
116
|
+
await (0, userdb_1.createUserDb)(host, dbname, options.admin, options.password, options.sync);
|
|
117
|
+
}));
|
|
118
|
+
userdbCommands
|
|
119
|
+
.command('status')
|
|
120
|
+
.argument('<string>', 'database name')
|
|
121
|
+
.action((async (dbname) => {
|
|
122
|
+
const { host } = userdbCommands.opts();
|
|
123
|
+
await (0, userdb_1.getUserDb)(host, dbname);
|
|
124
|
+
}));
|
|
125
|
+
userdbCommands
|
|
126
|
+
.command('delete')
|
|
127
|
+
.argument('<string>', 'database name')
|
|
128
|
+
.action((async (dbname) => {
|
|
129
|
+
const { host } = userdbCommands.opts();
|
|
130
|
+
await (0, userdb_1.deleteUserDb)(host, dbname);
|
|
131
|
+
}));
|
|
132
|
+
userdbCommands
|
|
133
|
+
.command('migrate')
|
|
134
|
+
.action((async () => {
|
|
135
|
+
const exitCode = await (0, userdb_1.migrate)();
|
|
136
|
+
process.exit(exitCode);
|
|
137
|
+
}));
|
|
138
|
+
userdbCommands
|
|
139
|
+
.command('rollbackmigration')
|
|
140
|
+
.action((() => {
|
|
141
|
+
const exitCode = (0, userdb_1.rollbackMigration)();
|
|
142
|
+
process.exit(exitCode);
|
|
143
|
+
}));
|
|
144
|
+
program.parse(process.argv);
|
|
145
|
+
// If no arguments provided, display help by default
|
|
146
|
+
if (!process.argv.slice(2).length) {
|
|
147
|
+
program.outputHelp();
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { DBOSCloudCredentials } from "./login";
|
|
2
|
+
export declare function getCloudCredentials(): DBOSCloudCredentials;
|
|
3
|
+
export declare function credentialsExist(): boolean;
|
|
4
|
+
export declare function runCommand(command: string, args?: string[]): Promise<number>;
|
|
5
|
+
//# sourceMappingURL=cloudutils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudutils.d.ts","sourceRoot":"","sources":["../../../cloudutils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAe,MAAM,SAAS,CAAC;AAK5D,wBAAgB,mBAAmB,IAAI,oBAAoB,CAW1D;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAGD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBhF"}
|
|
@@ -0,0 +1,47 @@
|
|
|
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.runCommand = exports.credentialsExist = exports.getCloudCredentials = void 0;
|
|
7
|
+
const login_1 = require("./login");
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const child_process_1 = require("child_process");
|
|
10
|
+
const logs_1 = require("../../src/telemetry/logs");
|
|
11
|
+
function getCloudCredentials() {
|
|
12
|
+
const logger = new logs_1.GlobalLogger();
|
|
13
|
+
if (!credentialsExist()) {
|
|
14
|
+
logger.error("Error: not logged in");
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
const userCredentials = JSON.parse(fs_1.default.readFileSync(`./${login_1.dbosEnvPath}/credentials`).toString("utf-8"));
|
|
18
|
+
return {
|
|
19
|
+
userName: userCredentials.userName,
|
|
20
|
+
token: userCredentials.token.replace(/\r|\n/g, ""), // Trim the trailing /r /n.
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
exports.getCloudCredentials = getCloudCredentials;
|
|
24
|
+
function credentialsExist() {
|
|
25
|
+
return fs_1.default.existsSync(`./${login_1.dbosEnvPath}/credentials`);
|
|
26
|
+
}
|
|
27
|
+
exports.credentialsExist = credentialsExist;
|
|
28
|
+
// Run a command, streaming its output to stdout
|
|
29
|
+
function runCommand(command, args = []) {
|
|
30
|
+
return new Promise((resolve, reject) => {
|
|
31
|
+
const stdio = 'inherit';
|
|
32
|
+
const process = (0, child_process_1.spawn)(command, args, { stdio });
|
|
33
|
+
process.on('close', (code) => {
|
|
34
|
+
if (code === 0) {
|
|
35
|
+
resolve(code);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
reject(new Error(`Command "${command}" exited with code ${code}`));
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
process.on('error', (error) => {
|
|
42
|
+
reject(error);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
exports.runCommand = runCommand;
|
|
47
|
+
//# sourceMappingURL=cloudutils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudutils.js","sourceRoot":"","sources":["../../../cloudutils.ts"],"names":[],"mappings":";;;;;;AAAA,mCAA4D;AAC5D,4CAAoB;AACpB,iDAAoD;AACpD,mDAAwD;AAExD,SAAgB,mBAAmB;IACjC,MAAM,MAAM,GAAG,IAAI,mBAAY,EAAE,CAAC;IAClC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;QACxB,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,KAAK,mBAAW,cAAc,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAyB,CAAC;IAC9H,OAAO;QACL,QAAQ,EAAE,eAAe,CAAC,QAAQ;QAClC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,2BAA2B;KAChF,CAAC;AACJ,CAAC;AAXD,kDAWC;AAED,SAAgB,gBAAgB;IAC9B,OAAO,YAAE,CAAC,UAAU,CAAC,KAAK,mBAAW,cAAc,CAAC,CAAC;AACvD,CAAC;AAFD,4CAEC;AAED,gDAAgD;AAChD,SAAgB,UAAU,CAAC,OAAe,EAAE,OAAiB,EAAE;IAC7D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,KAAK,GAAiB,SAAS,CAAC;QAEtC,MAAM,OAAO,GAAG,IAAA,qBAAK,EAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAEhD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,OAAO,sBAAsB,IAAI,EAAE,CAAC,CAAC,CAAC;YACvE,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC;AAlBD,gCAkBC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const dbosEnvPath = ".dbos";
|
|
2
|
+
export declare const DBOSClientID = "G38fLmVErczEo9ioCFjVIHea6yd0qMZu";
|
|
3
|
+
export declare const DBOSCloudIdentifier = "dbos-cloud-api";
|
|
4
|
+
export interface DBOSCloudCredentials {
|
|
5
|
+
token: string;
|
|
6
|
+
userName: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function login(username: string): Promise<number>;
|
|
9
|
+
//# sourceMappingURL=login.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../login.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,WAAW,UAAU,CAAC;AACnC,eAAO,MAAM,YAAY,qCAAqC,CAAA;AAC9D,eAAO,MAAM,mBAAmB,mBAAmB,CAAA;AAEnD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AA8CD,wBAAsB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA4D7D"}
|
|
@@ -0,0 +1,102 @@
|
|
|
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.login = exports.DBOSCloudIdentifier = exports.DBOSClientID = exports.dbosEnvPath = void 0;
|
|
7
|
+
const logs_1 = require("../../src/telemetry/logs");
|
|
8
|
+
const axios_1 = __importDefault(require("axios"));
|
|
9
|
+
const utils_1 = require("../../src/utils");
|
|
10
|
+
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
11
|
+
const jwks_rsa_1 = __importDefault(require("jwks-rsa"));
|
|
12
|
+
const child_process_1 = require("child_process");
|
|
13
|
+
const fs_1 = __importDefault(require("fs"));
|
|
14
|
+
exports.dbosEnvPath = ".dbos";
|
|
15
|
+
exports.DBOSClientID = 'G38fLmVErczEo9ioCFjVIHea6yd0qMZu';
|
|
16
|
+
exports.DBOSCloudIdentifier = 'dbos-cloud-api';
|
|
17
|
+
const client = (0, jwks_rsa_1.default)({
|
|
18
|
+
jwksUri: 'https://dbos-inc.us.auth0.com/.well-known/jwks.json'
|
|
19
|
+
});
|
|
20
|
+
async function getSigningKey(kid) {
|
|
21
|
+
const key = await client.getSigningKey(kid);
|
|
22
|
+
return key.getPublicKey();
|
|
23
|
+
}
|
|
24
|
+
async function verifyToken(token) {
|
|
25
|
+
const decoded = jsonwebtoken_1.default.decode(token, { complete: true });
|
|
26
|
+
if (!decoded || typeof decoded === 'string' || !decoded.header.kid) {
|
|
27
|
+
throw new Error('Invalid token');
|
|
28
|
+
}
|
|
29
|
+
const signingKey = await getSigningKey(decoded.header.kid);
|
|
30
|
+
return new Promise((resolve, reject) => {
|
|
31
|
+
jsonwebtoken_1.default.verify(token, signingKey, { algorithms: ['RS256'] }, (err, verifiedToken) => {
|
|
32
|
+
if (err) {
|
|
33
|
+
reject(err);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
resolve(verifiedToken);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
async function login(username) {
|
|
42
|
+
const logger = new logs_1.GlobalLogger();
|
|
43
|
+
logger.info(`Logging in!`);
|
|
44
|
+
const deviceCodeRequest = {
|
|
45
|
+
method: 'POST',
|
|
46
|
+
url: 'https://dbos-inc.us.auth0.com/oauth/device/code',
|
|
47
|
+
headers: { 'content-type': 'application/x-www-form-urlencoded' },
|
|
48
|
+
data: { client_id: exports.DBOSClientID, scope: 'sub', audience: exports.DBOSCloudIdentifier }
|
|
49
|
+
};
|
|
50
|
+
let deviceCodeResponse;
|
|
51
|
+
try {
|
|
52
|
+
const response = await axios_1.default.request(deviceCodeRequest);
|
|
53
|
+
deviceCodeResponse = response.data;
|
|
54
|
+
}
|
|
55
|
+
catch (e) {
|
|
56
|
+
e.message = `failed to log in: ${e.message}`;
|
|
57
|
+
logger.error(e);
|
|
58
|
+
}
|
|
59
|
+
if (!deviceCodeResponse) {
|
|
60
|
+
return 1;
|
|
61
|
+
}
|
|
62
|
+
console.log(`Login URL: ${deviceCodeResponse.verification_uri_complete}`);
|
|
63
|
+
const tokenRequest = {
|
|
64
|
+
method: 'POST',
|
|
65
|
+
url: 'https://dbos-inc.us.auth0.com/oauth/token',
|
|
66
|
+
headers: { 'content-type': 'application/x-www-form-urlencoded' },
|
|
67
|
+
data: new URLSearchParams({
|
|
68
|
+
grant_type: 'urn:ietf:params:oauth:grant-type:device_code',
|
|
69
|
+
device_code: deviceCodeResponse.device_code,
|
|
70
|
+
client_id: exports.DBOSClientID
|
|
71
|
+
})
|
|
72
|
+
};
|
|
73
|
+
let tokenResponse;
|
|
74
|
+
let elapsedTimeSec = 0;
|
|
75
|
+
while (elapsedTimeSec < deviceCodeResponse.expires_in) {
|
|
76
|
+
try {
|
|
77
|
+
await (0, utils_1.sleep)(deviceCodeResponse.interval * 1000);
|
|
78
|
+
elapsedTimeSec += deviceCodeResponse.interval;
|
|
79
|
+
const response = await axios_1.default.request(tokenRequest);
|
|
80
|
+
tokenResponse = response.data;
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
catch (e) {
|
|
84
|
+
logger.info(`Waiting for login...`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (!tokenResponse) {
|
|
88
|
+
return 1;
|
|
89
|
+
}
|
|
90
|
+
await verifyToken(tokenResponse.access_token);
|
|
91
|
+
const credentials = {
|
|
92
|
+
token: tokenResponse.access_token,
|
|
93
|
+
userName: username,
|
|
94
|
+
};
|
|
95
|
+
(0, child_process_1.execSync)(`mkdir -p ${exports.dbosEnvPath}`);
|
|
96
|
+
fs_1.default.writeFileSync(`${exports.dbosEnvPath}/credentials`, JSON.stringify(credentials), "utf-8");
|
|
97
|
+
logger.info(`Successfully logged in as user: ${credentials.userName}`);
|
|
98
|
+
logger.info(`You can view your credentials in: ./${exports.dbosEnvPath}/credentials`);
|
|
99
|
+
return 0;
|
|
100
|
+
}
|
|
101
|
+
exports.login = login;
|
|
102
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../login.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../register.ts"],"names":[],"mappings":"AAIA,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA8BlF"}
|
|
@@ -0,0 +1,40 @@
|
|
|
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.registerUser = void 0;
|
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const logs_1 = require("../../src/telemetry/logs");
|
|
9
|
+
const cloudutils_1 = require("./cloudutils");
|
|
10
|
+
async function registerUser(username, host) {
|
|
11
|
+
const userCredentials = (0, cloudutils_1.getCloudCredentials)();
|
|
12
|
+
const bearerToken = "Bearer " + userCredentials.token;
|
|
13
|
+
const userName = userCredentials.userName;
|
|
14
|
+
const logger = new logs_1.GlobalLogger();
|
|
15
|
+
try {
|
|
16
|
+
// First, register the user.
|
|
17
|
+
const register = await axios_1.default.put(`https://${host}/user`, {
|
|
18
|
+
name: userName,
|
|
19
|
+
}, {
|
|
20
|
+
headers: {
|
|
21
|
+
"Content-Type": "application/json",
|
|
22
|
+
Authorization: bearerToken,
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
const userUUID = register.data;
|
|
26
|
+
logger.info(`Registered user ${userName}, UUID: ${userUUID}`);
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
if (axios_1.default.isAxiosError(e) && e.response) {
|
|
30
|
+
logger.error(`Failed to register user ${userName}: ${e.response.data}`);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
logger.error(`Failed to register user ${userName}: ${e.message}`);
|
|
34
|
+
}
|
|
35
|
+
return 1;
|
|
36
|
+
}
|
|
37
|
+
return 0;
|
|
38
|
+
}
|
|
39
|
+
exports.registerUser = registerUser;
|
|
40
|
+
//# sourceMappingURL=register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../register.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,mDAAwD;AACxD,6CAAmD;AAE5C,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,IAAY;IAC/D,MAAM,eAAe,GAAG,IAAA,gCAAmB,GAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;IACtD,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,mBAAY,EAAE,CAAC;IAClC,IAAI,CAAC;QACH,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAC9B,WAAW,IAAI,OAAO,EACtB;YACE,IAAI,EAAE,QAAQ;SACf,EACD;YACE,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,WAAW;aAC3B;SACF,CACF,CAAC;QACF,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAc,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,mBAAmB,QAAQ,WAAW,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,eAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,2BAA2B,QAAQ,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,2BAA2B,QAAQ,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AA9BD,oCA8BC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface UserDBInstance {
|
|
2
|
+
readonly DBName: string;
|
|
3
|
+
readonly Status: string;
|
|
4
|
+
readonly HostName: string;
|
|
5
|
+
readonly Port: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function createUserDb(host: string, dbName: string, adminName: string, adminPassword: string, sync: boolean): Promise<void>;
|
|
8
|
+
export declare function deleteUserDb(host: string, dbName: string): Promise<void>;
|
|
9
|
+
export declare function getUserDb(host: string, dbName: string): Promise<void>;
|
|
10
|
+
export declare function migrate(): Promise<number>;
|
|
11
|
+
export declare function rollbackMigration(): number;
|
|
12
|
+
export declare function getUserDBInfo(host: string, dbName: string): Promise<UserDBInstance>;
|
|
13
|
+
//# sourceMappingURL=userdb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userdb.d.ts","sourceRoot":"","sources":["../../../userdb.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,iBAmCvH;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAoB9D;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAa3D;AAED,wBAAsB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAiF/C;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CA4B1C;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAYzF"}
|