@oneuptime/cli 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,334 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.discoverResources = discoverResources;
40
+ exports.registerResourceCommands = registerResourceCommands;
41
+ const Index_1 = __importDefault(require("Common/Models/DatabaseModels/Index"));
42
+ const Index_2 = __importDefault(require("Common/Models/AnalyticsModels/Index"));
43
+ const ApiClient_1 = require("../Core/ApiClient");
44
+ const ConfigManager_1 = require("../Core/ConfigManager");
45
+ const OutputFormatter_1 = require("../Core/OutputFormatter");
46
+ const ErrorHandler_1 = require("../Core/ErrorHandler");
47
+ const SelectFieldGenerator_1 = require("../Utils/SelectFieldGenerator");
48
+ const fs = __importStar(require("fs"));
49
+ function toKebabCase(str) {
50
+ return str
51
+ .replace(/([a-z])([A-Z])/g, "$1-$2")
52
+ .replace(/[\s_]+/g, "-")
53
+ .toLowerCase();
54
+ }
55
+ function parseJsonArg(value) {
56
+ try {
57
+ return JSON.parse(value);
58
+ }
59
+ catch (_a) {
60
+ throw new Error(`Invalid JSON: ${value}`);
61
+ }
62
+ }
63
+ function discoverResources() {
64
+ var _a, _b;
65
+ const resources = [];
66
+ // Database models
67
+ for (const ModelClass of Index_1.default) {
68
+ try {
69
+ const model = new ModelClass();
70
+ const tableName = model.tableName || ModelClass.name;
71
+ const singularName = model.singularName || tableName;
72
+ const pluralName = model.pluralName || `${singularName}s`;
73
+ const apiPath = (_a = model.crudApiPath) === null || _a === void 0 ? void 0 : _a.toString();
74
+ if (tableName && model.enableMCP && apiPath) {
75
+ resources.push({
76
+ name: toKebabCase(singularName),
77
+ singularName,
78
+ pluralName,
79
+ apiPath,
80
+ tableName,
81
+ modelType: "database",
82
+ });
83
+ }
84
+ }
85
+ catch (_c) {
86
+ // Skip models that fail to instantiate
87
+ }
88
+ }
89
+ // Analytics models
90
+ for (const ModelClass of Index_2.default) {
91
+ try {
92
+ const model = new ModelClass();
93
+ const tableName = model.tableName || ModelClass.name;
94
+ const singularName = model.singularName || tableName;
95
+ const pluralName = model.pluralName || `${singularName}s`;
96
+ const apiPath = (_b = model.crudApiPath) === null || _b === void 0 ? void 0 : _b.toString();
97
+ if (tableName && model.enableMCP && apiPath) {
98
+ resources.push({
99
+ name: toKebabCase(singularName),
100
+ singularName,
101
+ pluralName,
102
+ apiPath,
103
+ tableName,
104
+ modelType: "analytics",
105
+ });
106
+ }
107
+ }
108
+ catch (_d) {
109
+ // Skip models that fail to instantiate
110
+ }
111
+ }
112
+ return resources;
113
+ }
114
+ function getParentOptions(cmd) {
115
+ // Walk up to root program to get global options
116
+ let current = cmd;
117
+ while (current === null || current === void 0 ? void 0 : current.parent) {
118
+ current = current.parent;
119
+ }
120
+ const opts = (current === null || current === void 0 ? void 0 : current.opts()) || {};
121
+ return {
122
+ apiKey: opts["apiKey"],
123
+ url: opts["url"],
124
+ context: opts["context"],
125
+ };
126
+ }
127
+ function registerListCommand(resourceCmd, resource) {
128
+ resourceCmd
129
+ .command("list")
130
+ .description(`List ${resource.pluralName}`)
131
+ .option("--query <json>", "Filter query as JSON")
132
+ .option("--limit <n>", "Max results to return", "10")
133
+ .option("--skip <n>", "Number of results to skip", "0")
134
+ .option("--sort <json>", "Sort order as JSON")
135
+ .option("-o, --output <format>", "Output format: json, table, wide")
136
+ .action(async (options) => {
137
+ try {
138
+ const parentOpts = getParentOptions(resourceCmd);
139
+ const creds = (0, ConfigManager_1.getResolvedCredentials)(parentOpts);
140
+ const select = (0, SelectFieldGenerator_1.generateAllFieldsSelect)(resource.tableName, resource.modelType);
141
+ const result = await (0, ApiClient_1.executeApiRequest)({
142
+ apiUrl: creds.apiUrl,
143
+ apiKey: creds.apiKey,
144
+ apiPath: resource.apiPath,
145
+ operation: "list",
146
+ query: options.query ? parseJsonArg(options.query) : undefined,
147
+ select,
148
+ skip: parseInt(options.skip, 10),
149
+ limit: parseInt(options.limit, 10),
150
+ sort: options.sort ? parseJsonArg(options.sort) : undefined,
151
+ });
152
+ // Extract data array from response
153
+ const responseData = result && typeof result === "object" && !Array.isArray(result)
154
+ ? result["data"] || result
155
+ : result;
156
+ // eslint-disable-next-line no-console
157
+ console.log((0, OutputFormatter_1.formatOutput)(responseData, options.output));
158
+ }
159
+ catch (error) {
160
+ (0, ErrorHandler_1.handleError)(error);
161
+ }
162
+ });
163
+ }
164
+ function registerGetCommand(resourceCmd, resource) {
165
+ resourceCmd
166
+ .command("get <id>")
167
+ .description(`Get a single ${resource.singularName} by ID`)
168
+ .option("-o, --output <format>", "Output format: json, table, wide")
169
+ .action(async (id, options) => {
170
+ try {
171
+ const parentOpts = getParentOptions(resourceCmd);
172
+ const creds = (0, ConfigManager_1.getResolvedCredentials)(parentOpts);
173
+ const select = (0, SelectFieldGenerator_1.generateAllFieldsSelect)(resource.tableName, resource.modelType);
174
+ const result = await (0, ApiClient_1.executeApiRequest)({
175
+ apiUrl: creds.apiUrl,
176
+ apiKey: creds.apiKey,
177
+ apiPath: resource.apiPath,
178
+ operation: "read",
179
+ id,
180
+ select,
181
+ });
182
+ // eslint-disable-next-line no-console
183
+ console.log((0, OutputFormatter_1.formatOutput)(result, options.output));
184
+ }
185
+ catch (error) {
186
+ (0, ErrorHandler_1.handleError)(error);
187
+ }
188
+ });
189
+ }
190
+ function registerCreateCommand(resourceCmd, resource) {
191
+ resourceCmd
192
+ .command("create")
193
+ .description(`Create a new ${resource.singularName}`)
194
+ .option("--data <json>", "Resource data as JSON")
195
+ .option("--file <path>", "Read resource data from a JSON file")
196
+ .option("-o, --output <format>", "Output format: json, table, wide")
197
+ .action(async (options) => {
198
+ try {
199
+ let data;
200
+ if (options.file) {
201
+ const fileContent = fs.readFileSync(options.file, "utf-8");
202
+ data = JSON.parse(fileContent);
203
+ }
204
+ else if (options.data) {
205
+ data = parseJsonArg(options.data);
206
+ }
207
+ else {
208
+ throw new Error("Either --data or --file is required for create.");
209
+ }
210
+ const parentOpts = getParentOptions(resourceCmd);
211
+ const creds = (0, ConfigManager_1.getResolvedCredentials)(parentOpts);
212
+ const result = await (0, ApiClient_1.executeApiRequest)({
213
+ apiUrl: creds.apiUrl,
214
+ apiKey: creds.apiKey,
215
+ apiPath: resource.apiPath,
216
+ operation: "create",
217
+ data,
218
+ });
219
+ // eslint-disable-next-line no-console
220
+ console.log((0, OutputFormatter_1.formatOutput)(result, options.output));
221
+ }
222
+ catch (error) {
223
+ (0, ErrorHandler_1.handleError)(error);
224
+ }
225
+ });
226
+ }
227
+ function registerUpdateCommand(resourceCmd, resource) {
228
+ resourceCmd
229
+ .command("update <id>")
230
+ .description(`Update an existing ${resource.singularName}`)
231
+ .requiredOption("--data <json>", "Fields to update as JSON")
232
+ .option("-o, --output <format>", "Output format: json, table, wide")
233
+ .action(async (id, options) => {
234
+ try {
235
+ const data = parseJsonArg(options.data);
236
+ const parentOpts = getParentOptions(resourceCmd);
237
+ const creds = (0, ConfigManager_1.getResolvedCredentials)(parentOpts);
238
+ const result = await (0, ApiClient_1.executeApiRequest)({
239
+ apiUrl: creds.apiUrl,
240
+ apiKey: creds.apiKey,
241
+ apiPath: resource.apiPath,
242
+ operation: "update",
243
+ id,
244
+ data,
245
+ });
246
+ // eslint-disable-next-line no-console
247
+ console.log((0, OutputFormatter_1.formatOutput)(result, options.output));
248
+ }
249
+ catch (error) {
250
+ (0, ErrorHandler_1.handleError)(error);
251
+ }
252
+ });
253
+ }
254
+ function registerDeleteCommand(resourceCmd, resource) {
255
+ resourceCmd
256
+ .command("delete <id>")
257
+ .description(`Delete a ${resource.singularName}`)
258
+ .option("--force", "Skip confirmation")
259
+ .action(async (id, _options) => {
260
+ try {
261
+ const parentOpts = getParentOptions(resourceCmd);
262
+ const creds = (0, ConfigManager_1.getResolvedCredentials)(parentOpts);
263
+ await (0, ApiClient_1.executeApiRequest)({
264
+ apiUrl: creds.apiUrl,
265
+ apiKey: creds.apiKey,
266
+ apiPath: resource.apiPath,
267
+ operation: "delete",
268
+ id,
269
+ });
270
+ (0, OutputFormatter_1.printSuccess)(`${resource.singularName} ${id} deleted successfully.`);
271
+ }
272
+ catch (error) {
273
+ (0, ErrorHandler_1.handleError)(error);
274
+ }
275
+ });
276
+ }
277
+ function registerCountCommand(resourceCmd, resource) {
278
+ resourceCmd
279
+ .command("count")
280
+ .description(`Count ${resource.pluralName}`)
281
+ .option("--query <json>", "Filter query as JSON")
282
+ .action(async (options) => {
283
+ try {
284
+ const parentOpts = getParentOptions(resourceCmd);
285
+ const creds = (0, ConfigManager_1.getResolvedCredentials)(parentOpts);
286
+ const result = await (0, ApiClient_1.executeApiRequest)({
287
+ apiUrl: creds.apiUrl,
288
+ apiKey: creds.apiKey,
289
+ apiPath: resource.apiPath,
290
+ operation: "count",
291
+ query: options.query ? parseJsonArg(options.query) : undefined,
292
+ });
293
+ // Count response is typically { count: number }
294
+ if (result &&
295
+ typeof result === "object" &&
296
+ !Array.isArray(result) &&
297
+ "count" in result) {
298
+ // eslint-disable-next-line no-console
299
+ console.log(result["count"]);
300
+ }
301
+ else {
302
+ // eslint-disable-next-line no-console
303
+ console.log(result);
304
+ }
305
+ }
306
+ catch (error) {
307
+ (0, ErrorHandler_1.handleError)(error);
308
+ }
309
+ });
310
+ }
311
+ function registerResourceCommands(program) {
312
+ const resources = discoverResources();
313
+ for (const resource of resources) {
314
+ const resourceCmd = program
315
+ .command(resource.name)
316
+ .description(`Manage ${resource.pluralName} (${resource.modelType})`);
317
+ // Database models get full CRUD
318
+ if (resource.modelType === "database") {
319
+ registerListCommand(resourceCmd, resource);
320
+ registerGetCommand(resourceCmd, resource);
321
+ registerCreateCommand(resourceCmd, resource);
322
+ registerUpdateCommand(resourceCmd, resource);
323
+ registerDeleteCommand(resourceCmd, resource);
324
+ registerCountCommand(resourceCmd, resource);
325
+ }
326
+ // Analytics models get create, list, count
327
+ if (resource.modelType === "analytics") {
328
+ registerListCommand(resourceCmd, resource);
329
+ registerCreateCommand(resourceCmd, resource);
330
+ registerCountCommand(resourceCmd, resource);
331
+ }
332
+ }
333
+ }
334
+ //# sourceMappingURL=ResourceCommands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceCommands.js","sourceRoot":"","sources":["../../../Commands/ResourceCommands.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,8CAoDC;AAyPD,4DAyBC;AAlWD,+EAAgE;AAChE,gFAAkE;AAIlE,iDAAoE;AACpE,yDAA2E;AAC3E,6DAAqE;AACrE,uDAAmD;AACnD,wEAAwE;AAExE,uCAAyB;AAEzB,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG;SACP,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;SACnC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,WAAW,EAAE,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAe,CAAC;IACzC,CAAC;IAAC,WAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,SAAgB,iBAAiB;;IAC/B,MAAM,SAAS,GAAmB,EAAE,CAAC;IAErC,kBAAkB;IAClB,KAAK,MAAM,UAAU,IAAI,eAAc,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,KAAK,GAAc,IAAI,UAAU,EAAE,CAAC;YAC1C,MAAM,SAAS,GAAW,KAAK,CAAC,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC;YAC7D,MAAM,YAAY,GAAW,KAAK,CAAC,YAAY,IAAI,SAAS,CAAC;YAC7D,MAAM,UAAU,GAAW,KAAK,CAAC,UAAU,IAAI,GAAG,YAAY,GAAG,CAAC;YAClE,MAAM,OAAO,GAAuB,MAAA,KAAK,CAAC,WAAW,0CAAE,QAAQ,EAAE,CAAC;YAElE,IAAI,SAAS,IAAI,KAAK,CAAC,SAAS,IAAI,OAAO,EAAE,CAAC;gBAC5C,SAAS,CAAC,IAAI,CAAC;oBACb,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC;oBAC/B,YAAY;oBACZ,UAAU;oBACV,OAAO;oBACP,SAAS;oBACT,SAAS,EAAE,UAAU;iBACtB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,WAAM,CAAC;YACP,uCAAuC;QACzC,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,KAAK,GAAuB,IAAI,UAAU,EAAE,CAAC;YACnD,MAAM,SAAS,GAAW,KAAK,CAAC,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC;YAC7D,MAAM,YAAY,GAAW,KAAK,CAAC,YAAY,IAAI,SAAS,CAAC;YAC7D,MAAM,UAAU,GAAW,KAAK,CAAC,UAAU,IAAI,GAAG,YAAY,GAAG,CAAC;YAClE,MAAM,OAAO,GAAuB,MAAA,KAAK,CAAC,WAAW,0CAAE,QAAQ,EAAE,CAAC;YAElE,IAAI,SAAS,IAAI,KAAK,CAAC,SAAS,IAAI,OAAO,EAAE,CAAC;gBAC5C,SAAS,CAAC,IAAI,CAAC;oBACb,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC;oBAC/B,YAAY;oBACZ,UAAU;oBACV,OAAO;oBACP,SAAS;oBACT,SAAS,EAAE,WAAW;iBACvB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,WAAM,CAAC;YACP,uCAAuC;QACzC,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAY;IACpC,gDAAgD;IAChD,IAAI,OAAO,GAAmB,GAAG,CAAC;IAClC,OAAO,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE,CAAC;QACvB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3B,CAAC;IACD,MAAM,IAAI,GAA4B,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,KAAI,EAAE,CAAC;IAC5D,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAuB;QAC5C,GAAG,EAAE,IAAI,CAAC,KAAK,CAAuB;QACtC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAuB;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,WAAoB,EACpB,QAAsB;IAEtB,WAAW;SACR,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,QAAQ,QAAQ,CAAC,UAAU,EAAE,CAAC;SAC1C,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;SAChD,MAAM,CAAC,aAAa,EAAE,uBAAuB,EAAE,IAAI,CAAC;SACpD,MAAM,CAAC,YAAY,EAAE,2BAA2B,EAAE,GAAG,CAAC;SACtD,MAAM,CAAC,eAAe,EAAE,oBAAoB,CAAC;SAC7C,MAAM,CAAC,uBAAuB,EAAE,kCAAkC,CAAC;SACnE,MAAM,CACL,KAAK,EAAE,OAMN,EAAE,EAAE;QACH,IAAI,CAAC;YACH,MAAM,UAAU,GAAe,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAC7D,MAAM,KAAK,GAAwB,IAAA,sCAAsB,EAAC,UAAU,CAAC,CAAC;YACtE,MAAM,MAAM,GAAe,IAAA,8CAAuB,EAChD,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,SAAS,CACnB,CAAC;YAEF,MAAM,MAAM,GAAc,MAAM,IAAA,6BAAiB,EAAC;gBAChD,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,SAAS,EAAE,MAAsB;gBACjC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC9D,MAAM;gBACN,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;gBAChC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBAClC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;aAC5D,CAAC,CAAC;YAEH,mCAAmC;YACnC,MAAM,YAAY,GAChB,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC5D,CAAC,CAAG,MAAqB,CAAC,MAAM,CAAe,IAAI,MAAM;gBACzD,CAAC,CAAC,MAAM,CAAC;YAEb,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,IAAA,8BAAY,EAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,0BAAW,EAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CACF,CAAC;AACN,CAAC;AAED,SAAS,kBAAkB,CACzB,WAAoB,EACpB,QAAsB;IAEtB,WAAW;SACR,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,gBAAgB,QAAQ,CAAC,YAAY,QAAQ,CAAC;SAC1D,MAAM,CAAC,uBAAuB,EAAE,kCAAkC,CAAC;SACnE,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,OAA4B,EAAE,EAAE;QACzD,IAAI,CAAC;YACH,MAAM,UAAU,GAAe,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAC7D,MAAM,KAAK,GAAwB,IAAA,sCAAsB,EAAC,UAAU,CAAC,CAAC;YACtE,MAAM,MAAM,GAAe,IAAA,8CAAuB,EAChD,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,SAAS,CACnB,CAAC;YAEF,MAAM,MAAM,GAAc,MAAM,IAAA,6BAAiB,EAAC;gBAChD,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,SAAS,EAAE,MAAsB;gBACjC,EAAE;gBACF,MAAM;aACP,CAAC,CAAC;YAEH,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,IAAA,8BAAY,EAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,0BAAW,EAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,qBAAqB,CAC5B,WAAoB,EACpB,QAAsB;IAEtB,WAAW;SACR,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gBAAgB,QAAQ,CAAC,YAAY,EAAE,CAAC;SACpD,MAAM,CAAC,eAAe,EAAE,uBAAuB,CAAC;SAChD,MAAM,CAAC,eAAe,EAAE,qCAAqC,CAAC;SAC9D,MAAM,CAAC,uBAAuB,EAAE,kCAAkC,CAAC;SACnE,MAAM,CACL,KAAK,EAAE,OAA0D,EAAE,EAAE;QACnE,IAAI,CAAC;YACH,IAAI,IAAgB,CAAC;YAErB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,MAAM,WAAW,GAAW,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACnE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAe,CAAC;YAC/C,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACxB,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,CAAC;YAED,MAAM,UAAU,GAAe,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAC7D,MAAM,KAAK,GAAwB,IAAA,sCAAsB,EAAC,UAAU,CAAC,CAAC;YAEtE,MAAM,MAAM,GAAc,MAAM,IAAA,6BAAiB,EAAC;gBAChD,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,SAAS,EAAE,QAAwB;gBACnC,IAAI;aACL,CAAC,CAAC;YAEH,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,IAAA,8BAAY,EAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,0BAAW,EAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CACF,CAAC;AACN,CAAC;AAED,SAAS,qBAAqB,CAC5B,WAAoB,EACpB,QAAsB;IAEtB,WAAW;SACR,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,sBAAsB,QAAQ,CAAC,YAAY,EAAE,CAAC;SAC1D,cAAc,CAAC,eAAe,EAAE,0BAA0B,CAAC;SAC3D,MAAM,CAAC,uBAAuB,EAAE,kCAAkC,CAAC;SACnE,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,OAA0C,EAAE,EAAE;QACvE,IAAI,CAAC;YACH,MAAM,IAAI,GAAe,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,UAAU,GAAe,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAC7D,MAAM,KAAK,GAAwB,IAAA,sCAAsB,EAAC,UAAU,CAAC,CAAC;YAEtE,MAAM,MAAM,GAAc,MAAM,IAAA,6BAAiB,EAAC;gBAChD,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,SAAS,EAAE,QAAwB;gBACnC,EAAE;gBACF,IAAI;aACL,CAAC,CAAC;YAEH,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,IAAA,8BAAY,EAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,0BAAW,EAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,qBAAqB,CAC5B,WAAoB,EACpB,QAAsB;IAEtB,WAAW;SACR,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,YAAY,QAAQ,CAAC,YAAY,EAAE,CAAC;SAChD,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC;SACtC,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,QAA6B,EAAE,EAAE;QAC1D,IAAI,CAAC;YACH,MAAM,UAAU,GAAe,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAC7D,MAAM,KAAK,GAAwB,IAAA,sCAAsB,EAAC,UAAU,CAAC,CAAC;YAEtE,MAAM,IAAA,6BAAiB,EAAC;gBACtB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,SAAS,EAAE,QAAwB;gBACnC,EAAE;aACH,CAAC,CAAC;YAEH,IAAA,8BAAY,EAAC,GAAG,QAAQ,CAAC,YAAY,IAAI,EAAE,wBAAwB,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,0BAAW,EAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,oBAAoB,CAC3B,WAAoB,EACpB,QAAsB;IAEtB,WAAW;SACR,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,SAAS,QAAQ,CAAC,UAAU,EAAE,CAAC;SAC3C,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;SAChD,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,EAAE;QAC5C,IAAI,CAAC;YACH,MAAM,UAAU,GAAe,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAC7D,MAAM,KAAK,GAAwB,IAAA,sCAAsB,EAAC,UAAU,CAAC,CAAC;YAEtE,MAAM,MAAM,GAAc,MAAM,IAAA,6BAAiB,EAAC;gBAChD,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,SAAS,EAAE,OAAuB;gBAClC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;aAC/D,CAAC,CAAC;YAEH,gDAAgD;YAChD,IACE,MAAM;gBACN,OAAO,MAAM,KAAK,QAAQ;gBAC1B,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBACtB,OAAO,IAAK,MAAqB,EACjC,CAAC;gBACD,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAE,MAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,0BAAW,EAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,wBAAwB,CAAC,OAAgB;IACvD,MAAM,SAAS,GAAmB,iBAAiB,EAAE,CAAC;IAEtD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,WAAW,GAAY,OAAO;aACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;aACtB,WAAW,CAAC,UAAU,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;QAExE,gCAAgC;QAChC,IAAI,QAAQ,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YACtC,mBAAmB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC3C,kBAAkB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC1C,qBAAqB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC7C,qBAAqB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC7C,qBAAqB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC7C,oBAAoB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC;QAED,2CAA2C;QAC3C,IAAI,QAAQ,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;YACvC,mBAAmB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC3C,qBAAqB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC7C,oBAAoB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,109 @@
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.registerUtilityCommands = registerUtilityCommands;
7
+ const ConfigManager_1 = require("../Core/ConfigManager");
8
+ const OutputFormatter_1 = require("../Core/OutputFormatter");
9
+ const ResourceCommands_1 = require("./ResourceCommands");
10
+ const cli_table3_1 = __importDefault(require("cli-table3"));
11
+ const chalk_1 = __importDefault(require("chalk"));
12
+ function registerUtilityCommands(program) {
13
+ // Version command
14
+ program
15
+ .command("version")
16
+ .description("Print CLI version")
17
+ .action(() => {
18
+ try {
19
+ // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports
20
+ const pkg = require("../package.json");
21
+ // eslint-disable-next-line no-console
22
+ console.log(pkg.version);
23
+ }
24
+ catch (_a) {
25
+ // Fallback if package.json can't be loaded at runtime
26
+ // eslint-disable-next-line no-console
27
+ console.log("1.0.0");
28
+ }
29
+ });
30
+ // Whoami command
31
+ program
32
+ .command("whoami")
33
+ .description("Show current authentication info")
34
+ .action(() => {
35
+ try {
36
+ const ctx = (0, ConfigManager_1.getCurrentContext)();
37
+ const opts = program.opts();
38
+ const cliOpts = {
39
+ apiKey: opts["apiKey"],
40
+ url: opts["url"],
41
+ context: opts["context"],
42
+ };
43
+ let creds;
44
+ try {
45
+ creds = (0, ConfigManager_1.getResolvedCredentials)(cliOpts);
46
+ }
47
+ catch (_a) {
48
+ (0, OutputFormatter_1.printInfo)("Not authenticated. Run `oneuptime login` to authenticate.");
49
+ return;
50
+ }
51
+ const maskedKey = creds.apiKey.length > 8
52
+ ? creds.apiKey.substring(0, 4) +
53
+ "****" +
54
+ creds.apiKey.substring(creds.apiKey.length - 4)
55
+ : "****";
56
+ // eslint-disable-next-line no-console
57
+ console.log(`URL: ${creds.apiUrl}`);
58
+ // eslint-disable-next-line no-console
59
+ console.log(`API Key: ${maskedKey}`);
60
+ if (ctx) {
61
+ // eslint-disable-next-line no-console
62
+ console.log(`Context: ${ctx.name}`);
63
+ }
64
+ }
65
+ catch (error) {
66
+ (0, OutputFormatter_1.printError)(error instanceof Error ? error.message : String(error));
67
+ process.exit(1);
68
+ }
69
+ });
70
+ // Resources command
71
+ program
72
+ .command("resources")
73
+ .description("List all available resource types")
74
+ .option("--type <type>", "Filter by model type: database, analytics")
75
+ .action((options) => {
76
+ const resources = (0, ResourceCommands_1.discoverResources)();
77
+ const filtered = options.type
78
+ ? resources.filter((r) => {
79
+ return r.modelType === options.type;
80
+ })
81
+ : resources;
82
+ if (filtered.length === 0) {
83
+ (0, OutputFormatter_1.printInfo)("No resources found.");
84
+ return;
85
+ }
86
+ const noColor = process.env["NO_COLOR"] !== undefined ||
87
+ process.argv.includes("--no-color");
88
+ const table = new cli_table3_1.default({
89
+ head: ["Command", "Singular", "Plural", "Type", "API Path"].map((h) => {
90
+ return noColor ? h : chalk_1.default.cyan(h);
91
+ }),
92
+ style: { head: [], border: [] },
93
+ });
94
+ for (const r of filtered) {
95
+ table.push([
96
+ r.name,
97
+ r.singularName,
98
+ r.pluralName,
99
+ r.modelType,
100
+ r.apiPath,
101
+ ]);
102
+ }
103
+ // eslint-disable-next-line no-console
104
+ console.log(table.toString());
105
+ // eslint-disable-next-line no-console
106
+ console.log(`\nTotal: ${filtered.length} resources`);
107
+ });
108
+ }
109
+ //# sourceMappingURL=UtilityCommands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UtilityCommands.js","sourceRoot":"","sources":["../../../Commands/UtilityCommands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
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.executeApiRequest = executeApiRequest;
7
+ const API_1 = __importDefault(require("Common/Utils/API"));
8
+ const URL_1 = __importDefault(require("Common/Types/API/URL"));
9
+ const Route_1 = __importDefault(require("Common/Types/API/Route"));
10
+ const HTTPErrorResponse_1 = __importDefault(require("Common/Types/API/HTTPErrorResponse"));
11
+ function buildApiRoute(apiPath, operation, id) {
12
+ let fullPath = `/api${apiPath}`;
13
+ switch (operation) {
14
+ case "read":
15
+ if (id) {
16
+ fullPath = `/api${apiPath}/${id}/get-item`;
17
+ }
18
+ break;
19
+ case "update":
20
+ case "delete":
21
+ if (id) {
22
+ fullPath = `/api${apiPath}/${id}/`;
23
+ }
24
+ break;
25
+ case "count":
26
+ fullPath = `/api${apiPath}/count`;
27
+ break;
28
+ case "list":
29
+ fullPath = `/api${apiPath}/get-list`;
30
+ break;
31
+ case "create":
32
+ default:
33
+ fullPath = `/api${apiPath}`;
34
+ break;
35
+ }
36
+ return new Route_1.default(fullPath);
37
+ }
38
+ function buildHeaders(apiKey) {
39
+ return {
40
+ "Content-Type": "application/json",
41
+ Accept: "application/json",
42
+ APIKey: apiKey,
43
+ };
44
+ }
45
+ function buildRequestData(options) {
46
+ switch (options.operation) {
47
+ case "create":
48
+ return { data: options.data || {} };
49
+ case "update":
50
+ return { data: options.data || {} };
51
+ case "list":
52
+ case "count":
53
+ return {
54
+ query: options.query || {},
55
+ select: options.select || {},
56
+ skip: options.skip || 0,
57
+ limit: options.limit || 10,
58
+ sort: options.sort || {},
59
+ };
60
+ case "read":
61
+ return {
62
+ select: options.select || {},
63
+ };
64
+ case "delete":
65
+ default:
66
+ return undefined;
67
+ }
68
+ }
69
+ async function executeApiRequest(options) {
70
+ const url = URL_1.default.fromString(options.apiUrl);
71
+ const protocol = url.protocol;
72
+ const hostname = url.hostname;
73
+ const api = new API_1.default(protocol, hostname, new Route_1.default("/"));
74
+ const route = buildApiRoute(options.apiPath, options.operation, options.id);
75
+ const headers = buildHeaders(options.apiKey);
76
+ const data = buildRequestData(options);
77
+ const requestUrl = new URL_1.default(api.protocol, api.hostname, route);
78
+ const baseOptions = {
79
+ url: requestUrl,
80
+ headers,
81
+ };
82
+ let response;
83
+ switch (options.operation) {
84
+ case "create":
85
+ case "count":
86
+ case "list":
87
+ case "read":
88
+ response = await API_1.default.post(data ? Object.assign(Object.assign({}, baseOptions), { data }) : baseOptions);
89
+ break;
90
+ case "update":
91
+ response = await API_1.default.put(data ? Object.assign(Object.assign({}, baseOptions), { data }) : baseOptions);
92
+ break;
93
+ case "delete":
94
+ response = await API_1.default.delete(data ? Object.assign(Object.assign({}, baseOptions), { data }) : baseOptions);
95
+ break;
96
+ default:
97
+ throw new Error(`Unsupported operation: ${options.operation}`);
98
+ }
99
+ if (response instanceof HTTPErrorResponse_1.default) {
100
+ throw new Error(`API error (${response.statusCode}): ${response.message || "Unknown error"}`);
101
+ }
102
+ return response.data;
103
+ }
104
+ //# sourceMappingURL=ApiClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiClient.js","sourceRoot":"","sources":["../../../Core/ApiClient.ts"],"names":[],"mappings":"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"}