@xano/cli 0.0.95 → 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.
Files changed (236) hide show
  1. package/README.md +133 -66
  2. package/dist/base-command.d.ts +41 -1
  3. package/dist/base-command.js +92 -3
  4. package/dist/commands/auth/index.d.ts +1 -0
  5. package/dist/commands/auth/index.js +16 -11
  6. package/dist/commands/branch/create/index.d.ts +4 -1
  7. package/dist/commands/branch/create/index.js +22 -21
  8. package/dist/commands/branch/delete/index.d.ts +1 -0
  9. package/dist/commands/branch/delete/index.js +1 -4
  10. package/dist/commands/branch/edit/index.d.ts +1 -0
  11. package/dist/commands/branch/edit/index.js +1 -4
  12. package/dist/commands/branch/get/index.d.ts +1 -0
  13. package/dist/commands/branch/get/index.js +1 -4
  14. package/dist/commands/branch/list/index.d.ts +2 -6
  15. package/dist/commands/branch/list/index.js +13 -17
  16. package/dist/commands/branch/set_live/index.d.ts +1 -0
  17. package/dist/commands/branch/set_live/index.js +1 -4
  18. package/dist/commands/function/create/index.d.ts +1 -0
  19. package/dist/commands/function/create/index.js +1 -2
  20. package/dist/commands/function/edit/index.d.ts +1 -0
  21. package/dist/commands/function/edit/index.js +1 -2
  22. package/dist/commands/function/get/index.d.ts +1 -0
  23. package/dist/commands/function/get/index.js +1 -4
  24. package/dist/commands/function/list/index.d.ts +1 -0
  25. package/dist/commands/function/list/index.js +1 -4
  26. package/dist/commands/platform/get/index.d.ts +1 -0
  27. package/dist/commands/platform/get/index.js +1 -4
  28. package/dist/commands/platform/list/index.d.ts +1 -0
  29. package/dist/commands/platform/list/index.js +1 -4
  30. package/dist/commands/profile/create/index.d.ts +1 -0
  31. package/dist/commands/profile/create/index.js +12 -6
  32. package/dist/commands/profile/delete/index.d.ts +1 -0
  33. package/dist/commands/profile/delete/index.js +8 -4
  34. package/dist/commands/profile/edit/index.d.ts +1 -0
  35. package/dist/commands/profile/edit/index.js +3 -6
  36. package/dist/commands/profile/get/index.d.ts +3 -0
  37. package/dist/commands/profile/get/index.js +12 -5
  38. package/dist/commands/profile/list/index.d.ts +1 -0
  39. package/dist/commands/profile/list/index.js +8 -4
  40. package/dist/commands/profile/me/index.d.ts +1 -0
  41. package/dist/commands/profile/me/index.js +22 -6
  42. package/dist/commands/profile/set/index.d.ts +3 -0
  43. package/dist/commands/profile/set/index.js +12 -6
  44. package/dist/commands/profile/token/index.d.ts +3 -0
  45. package/dist/commands/profile/token/index.js +12 -5
  46. package/dist/commands/profile/wizard/index.d.ts +1 -0
  47. package/dist/commands/profile/wizard/index.js +16 -12
  48. package/dist/commands/profile/workspace/index.d.ts +3 -0
  49. package/dist/commands/profile/workspace/index.js +12 -5
  50. package/dist/commands/profile/workspace/set/index.d.ts +1 -0
  51. package/dist/commands/profile/workspace/set/index.js +2 -4
  52. package/dist/commands/release/create/index.d.ts +4 -1
  53. package/dist/commands/release/create/index.js +12 -14
  54. package/dist/commands/release/delete/index.d.ts +1 -0
  55. package/dist/commands/release/delete/index.js +1 -4
  56. package/dist/commands/release/deploy/index.d.ts +20 -0
  57. package/dist/commands/release/deploy/index.js +137 -0
  58. package/dist/commands/release/edit/index.d.ts +1 -0
  59. package/dist/commands/release/edit/index.js +1 -4
  60. package/dist/commands/release/export/index.d.ts +1 -0
  61. package/dist/commands/release/export/index.js +1 -3
  62. package/dist/commands/release/get/index.d.ts +1 -0
  63. package/dist/commands/release/get/index.js +1 -4
  64. package/dist/commands/release/import/index.d.ts +1 -0
  65. package/dist/commands/release/import/index.js +1 -3
  66. package/dist/commands/release/list/index.d.ts +1 -0
  67. package/dist/commands/release/list/index.js +1 -4
  68. package/dist/commands/release/pull/index.d.ts +2 -3
  69. package/dist/commands/release/pull/index.js +19 -18
  70. package/dist/commands/release/push/index.d.ts +2 -3
  71. package/dist/commands/release/push/index.js +19 -22
  72. package/dist/commands/sandbox/delete/index.d.ts +13 -0
  73. package/dist/commands/sandbox/delete/index.js +71 -0
  74. package/dist/commands/sandbox/env/delete/index.d.ts +15 -0
  75. package/dist/commands/sandbox/env/delete/index.js +89 -0
  76. package/dist/commands/sandbox/env/get/index.d.ts +13 -0
  77. package/dist/commands/sandbox/env/get/index.js +65 -0
  78. package/dist/commands/sandbox/env/get_all/index.d.ts +14 -0
  79. package/dist/commands/sandbox/env/get_all/index.js +78 -0
  80. package/dist/commands/sandbox/env/list/index.d.ts +12 -0
  81. package/dist/commands/sandbox/env/list/index.js +67 -0
  82. package/dist/commands/sandbox/env/set/index.d.ts +14 -0
  83. package/dist/commands/sandbox/env/set/index.js +74 -0
  84. package/dist/commands/sandbox/env/set_all/index.d.ts +14 -0
  85. package/dist/commands/sandbox/env/set_all/index.js +86 -0
  86. package/dist/commands/sandbox/get/index.d.ts +12 -0
  87. package/dist/commands/sandbox/get/index.js +63 -0
  88. package/dist/commands/sandbox/impersonate/index.d.ts +5 -0
  89. package/dist/commands/sandbox/impersonate/index.js +5 -0
  90. package/dist/commands/sandbox/license/get/index.d.ts +14 -0
  91. package/dist/commands/sandbox/license/get/index.js +78 -0
  92. package/dist/commands/sandbox/license/set/index.d.ts +15 -0
  93. package/dist/commands/sandbox/license/set/index.js +95 -0
  94. package/dist/commands/sandbox/pull/index.d.ts +16 -0
  95. package/dist/commands/sandbox/pull/index.js +185 -0
  96. package/dist/commands/sandbox/push/index.d.ts +26 -0
  97. package/dist/commands/sandbox/push/index.js +196 -0
  98. package/dist/commands/sandbox/reset/index.d.ts +13 -0
  99. package/dist/commands/sandbox/reset/index.js +71 -0
  100. package/dist/commands/sandbox/review/index.d.ts +14 -0
  101. package/dist/commands/sandbox/review/index.js +94 -0
  102. package/dist/commands/sandbox/unit_test/list/index.d.ts +14 -0
  103. package/dist/commands/sandbox/unit_test/list/index.js +91 -0
  104. package/dist/commands/sandbox/unit_test/run/index.d.ts +15 -0
  105. package/dist/commands/sandbox/unit_test/run/index.js +79 -0
  106. package/dist/commands/sandbox/unit_test/run_all/index.d.ts +14 -0
  107. package/dist/commands/sandbox/unit_test/run_all/index.js +171 -0
  108. package/dist/commands/sandbox/workflow_test/list/index.d.ts +13 -0
  109. package/dist/commands/sandbox/workflow_test/list/index.js +84 -0
  110. package/dist/commands/sandbox/workflow_test/run/index.d.ts +18 -0
  111. package/dist/commands/sandbox/workflow_test/run/index.js +77 -0
  112. package/dist/commands/sandbox/workflow_test/run_all/index.d.ts +13 -0
  113. package/dist/commands/sandbox/workflow_test/run_all/index.js +157 -0
  114. package/dist/commands/static_host/build/create/index.d.ts +1 -0
  115. package/dist/commands/static_host/build/create/index.js +1 -3
  116. package/dist/commands/static_host/build/get/index.d.ts +1 -0
  117. package/dist/commands/static_host/build/get/index.js +1 -4
  118. package/dist/commands/static_host/build/list/index.d.ts +1 -0
  119. package/dist/commands/static_host/build/list/index.js +1 -4
  120. package/dist/commands/static_host/list/index.d.ts +1 -0
  121. package/dist/commands/static_host/list/index.js +1 -4
  122. package/dist/commands/tenant/backup/create/index.d.ts +1 -0
  123. package/dist/commands/tenant/backup/create/index.js +1 -4
  124. package/dist/commands/tenant/backup/delete/index.d.ts +1 -0
  125. package/dist/commands/tenant/backup/delete/index.js +1 -4
  126. package/dist/commands/tenant/backup/export/index.d.ts +1 -0
  127. package/dist/commands/tenant/backup/export/index.js +1 -3
  128. package/dist/commands/tenant/backup/import/index.d.ts +1 -0
  129. package/dist/commands/tenant/backup/import/index.js +1 -3
  130. package/dist/commands/tenant/backup/list/index.d.ts +1 -0
  131. package/dist/commands/tenant/backup/list/index.js +1 -4
  132. package/dist/commands/tenant/backup/restore/index.d.ts +1 -0
  133. package/dist/commands/tenant/backup/restore/index.js +1 -4
  134. package/dist/commands/tenant/cluster/create/index.d.ts +1 -0
  135. package/dist/commands/tenant/cluster/create/index.js +1 -3
  136. package/dist/commands/tenant/cluster/delete/index.d.ts +1 -0
  137. package/dist/commands/tenant/cluster/delete/index.js +1 -4
  138. package/dist/commands/tenant/cluster/edit/index.d.ts +1 -0
  139. package/dist/commands/tenant/cluster/edit/index.js +1 -4
  140. package/dist/commands/tenant/cluster/get/index.d.ts +1 -0
  141. package/dist/commands/tenant/cluster/get/index.js +1 -4
  142. package/dist/commands/tenant/cluster/license/get/index.d.ts +1 -0
  143. package/dist/commands/tenant/cluster/license/get/index.js +1 -3
  144. package/dist/commands/tenant/cluster/license/set/index.d.ts +1 -0
  145. package/dist/commands/tenant/cluster/license/set/index.js +1 -3
  146. package/dist/commands/tenant/cluster/list/index.d.ts +1 -0
  147. package/dist/commands/tenant/cluster/list/index.js +1 -4
  148. package/dist/commands/tenant/create/index.d.ts +1 -1
  149. package/dist/commands/tenant/create/index.js +1 -8
  150. package/dist/commands/tenant/delete/index.d.ts +1 -0
  151. package/dist/commands/tenant/delete/index.js +1 -4
  152. package/dist/commands/tenant/deploy_platform/index.d.ts +1 -0
  153. package/dist/commands/tenant/deploy_platform/index.js +1 -3
  154. package/dist/commands/tenant/deploy_release/index.d.ts +1 -0
  155. package/dist/commands/tenant/deploy_release/index.js +1 -4
  156. package/dist/commands/tenant/edit/index.d.ts +1 -0
  157. package/dist/commands/tenant/edit/index.js +1 -4
  158. package/dist/commands/tenant/env/delete/index.d.ts +1 -0
  159. package/dist/commands/tenant/env/delete/index.js +1 -4
  160. package/dist/commands/tenant/env/get/index.d.ts +1 -0
  161. package/dist/commands/tenant/env/get/index.js +1 -4
  162. package/dist/commands/tenant/env/get_all/index.d.ts +1 -0
  163. package/dist/commands/tenant/env/get_all/index.js +1 -3
  164. package/dist/commands/tenant/env/list/index.d.ts +1 -0
  165. package/dist/commands/tenant/env/list/index.js +1 -4
  166. package/dist/commands/tenant/env/set/index.d.ts +1 -0
  167. package/dist/commands/tenant/env/set/index.js +1 -4
  168. package/dist/commands/tenant/env/set_all/index.d.ts +1 -0
  169. package/dist/commands/tenant/env/set_all/index.js +1 -3
  170. package/dist/commands/tenant/get/index.d.ts +1 -0
  171. package/dist/commands/tenant/get/index.js +3 -6
  172. package/dist/commands/tenant/impersonate/index.d.ts +1 -0
  173. package/dist/commands/tenant/impersonate/index.js +1 -4
  174. package/dist/commands/tenant/license/get/index.d.ts +1 -0
  175. package/dist/commands/tenant/license/get/index.js +1 -3
  176. package/dist/commands/tenant/license/set/index.d.ts +1 -0
  177. package/dist/commands/tenant/license/set/index.js +1 -3
  178. package/dist/commands/tenant/list/index.d.ts +1 -0
  179. package/dist/commands/tenant/list/index.js +3 -6
  180. package/dist/commands/tenant/pull/index.d.ts +2 -3
  181. package/dist/commands/tenant/pull/index.js +20 -21
  182. package/dist/commands/tenant/push/index.d.ts +2 -22
  183. package/dist/commands/tenant/push/index.js +7 -259
  184. package/dist/commands/tenant/unit_test/list/index.d.ts +16 -0
  185. package/dist/commands/tenant/unit_test/list/index.js +115 -0
  186. package/dist/commands/tenant/unit_test/run/index.d.ts +17 -0
  187. package/dist/commands/tenant/unit_test/run/index.js +103 -0
  188. package/dist/commands/tenant/unit_test/run_all/index.d.ts +16 -0
  189. package/dist/commands/tenant/unit_test/run_all/index.js +190 -0
  190. package/dist/commands/tenant/workflow_test/list/index.d.ts +15 -0
  191. package/dist/commands/tenant/workflow_test/list/index.js +108 -0
  192. package/dist/commands/tenant/workflow_test/run/index.d.ts +20 -0
  193. package/dist/commands/tenant/workflow_test/run/index.js +101 -0
  194. package/dist/commands/tenant/workflow_test/run_all/index.d.ts +15 -0
  195. package/dist/commands/tenant/workflow_test/run_all/index.js +176 -0
  196. package/dist/commands/unit_test/list/index.d.ts +1 -0
  197. package/dist/commands/unit_test/list/index.js +1 -4
  198. package/dist/commands/unit_test/run/index.d.ts +1 -0
  199. package/dist/commands/unit_test/run/index.js +1 -4
  200. package/dist/commands/unit_test/run_all/index.d.ts +1 -0
  201. package/dist/commands/unit_test/run_all/index.js +1 -4
  202. package/dist/commands/update/index.d.ts +1 -0
  203. package/dist/commands/workflow_test/delete/index.d.ts +1 -0
  204. package/dist/commands/workflow_test/delete/index.js +1 -4
  205. package/dist/commands/workflow_test/get/index.d.ts +1 -0
  206. package/dist/commands/workflow_test/get/index.js +1 -4
  207. package/dist/commands/workflow_test/list/index.d.ts +1 -0
  208. package/dist/commands/workflow_test/list/index.js +1 -4
  209. package/dist/commands/workflow_test/run/index.d.ts +1 -0
  210. package/dist/commands/workflow_test/run/index.js +1 -4
  211. package/dist/commands/workflow_test/run_all/index.d.ts +1 -0
  212. package/dist/commands/workflow_test/run_all/index.js +1 -4
  213. package/dist/commands/workspace/create/index.d.ts +1 -0
  214. package/dist/commands/workspace/create/index.js +1 -4
  215. package/dist/commands/workspace/delete/index.d.ts +2 -6
  216. package/dist/commands/workspace/delete/index.js +17 -16
  217. package/dist/commands/workspace/edit/index.d.ts +3 -6
  218. package/dist/commands/workspace/edit/index.js +31 -25
  219. package/dist/commands/workspace/get/index.d.ts +2 -6
  220. package/dist/commands/workspace/get/index.js +23 -25
  221. package/dist/commands/workspace/git/pull/index.d.ts +2 -3
  222. package/dist/commands/workspace/git/pull/index.js +18 -17
  223. package/dist/commands/workspace/list/index.d.ts +2 -0
  224. package/dist/commands/workspace/list/index.js +15 -11
  225. package/dist/commands/workspace/pull/index.d.ts +2 -3
  226. package/dist/commands/workspace/pull/index.js +21 -24
  227. package/dist/commands/workspace/push/index.d.ts +7 -16
  228. package/dist/commands/workspace/push/index.js +85 -674
  229. package/dist/help.d.ts +2 -1
  230. package/dist/help.js +39 -1
  231. package/dist/utils/multidoc-push.d.ts +63 -0
  232. package/dist/utils/multidoc-push.js +690 -0
  233. package/dist/utils/reference-checker.d.ts +57 -0
  234. package/dist/utils/reference-checker.js +232 -0
  235. package/oclif.manifest.json +5631 -2297
  236. package/package.json +17 -2
@@ -0,0 +1,157 @@
1
+ import { Flags } from '@oclif/core';
2
+ import BaseCommand from '../../../../base-command.js';
3
+ export default class SandboxWorkflowTestRunAll extends BaseCommand {
4
+ static description = 'Run all workflow tests for a sandbox environment';
5
+ static examples = [
6
+ `$ xano sandbox workflow-test run-all
7
+ Running 3 workflow tests...
8
+
9
+ PASS my-test (0.25s)
10
+ FAIL data-check (0.10s)
11
+ Error: assertion failed
12
+
13
+ Results: 2 passed, 1 failed
14
+ `,
15
+ `$ xano sandbox workflow-test run-all -o json`,
16
+ ];
17
+ static flags = {
18
+ ...BaseCommand.baseFlags,
19
+ branch: Flags.string({
20
+ char: 'b',
21
+ description: 'Filter by branch name',
22
+ required: false,
23
+ }),
24
+ output: Flags.string({
25
+ char: 'o',
26
+ default: 'summary',
27
+ description: 'Output format',
28
+ options: ['summary', 'json'],
29
+ required: false,
30
+ }),
31
+ };
32
+ async run() {
33
+ const { flags } = await this.parse(SandboxWorkflowTestRunAll);
34
+ const { profile } = this.resolveProfile(flags);
35
+ const baseUrl = `${profile.instance_origin}/api:meta/sandbox/workflow_test`;
36
+ try {
37
+ // Step 1: List all workflow tests
38
+ const listParams = new URLSearchParams();
39
+ listParams.set('per_page', '10000');
40
+ if (flags.branch)
41
+ listParams.set('branch', flags.branch);
42
+ const listResponse = await this.verboseFetch(`${baseUrl}?${listParams}`, {
43
+ headers: {
44
+ accept: 'application/json',
45
+ Authorization: `Bearer ${profile.access_token}`,
46
+ },
47
+ method: 'GET',
48
+ }, flags.verbose, profile.access_token);
49
+ if (!listResponse.ok) {
50
+ const errorText = await listResponse.text();
51
+ this.error(`Failed to list workflow tests: ${listResponse.status}: ${listResponse.statusText}\n${errorText}`);
52
+ }
53
+ const data = (await listResponse.json());
54
+ let tests;
55
+ if (Array.isArray(data)) {
56
+ tests = data;
57
+ }
58
+ else if (data && typeof data === 'object' && 'items' in data && Array.isArray(data.items)) {
59
+ tests = data.items;
60
+ }
61
+ else {
62
+ this.error('Unexpected API response format');
63
+ }
64
+ if (tests.length === 0) {
65
+ this.log('No workflow tests found');
66
+ return;
67
+ }
68
+ if (flags.output === 'summary') {
69
+ this.log(`Running ${tests.length} workflow test${tests.length === 1 ? '' : 's'}...\n`);
70
+ }
71
+ // Step 2: Run each test
72
+ const results = [];
73
+ for (const test of tests) {
74
+ const runUrl = `${baseUrl}/${test.id}/run`;
75
+ try {
76
+ const runResponse = await this.verboseFetch(runUrl, {
77
+ headers: {
78
+ accept: 'application/json',
79
+ Authorization: `Bearer ${profile.access_token}`,
80
+ 'Content-Type': 'application/json',
81
+ },
82
+ method: 'POST',
83
+ }, flags.verbose, profile.access_token);
84
+ if (!runResponse.ok) {
85
+ const errorText = await runResponse.text();
86
+ results.push({
87
+ message: `API error ${runResponse.status}: ${errorText}`,
88
+ name: test.name,
89
+ status: 'fail',
90
+ });
91
+ if (flags.output === 'summary') {
92
+ this.log(`FAIL ${test.name}`);
93
+ this.log(` Error: API error ${runResponse.status}`);
94
+ }
95
+ continue;
96
+ }
97
+ const runResult = (await runResponse.json());
98
+ const passed = runResult.status === 'ok';
99
+ results.push({
100
+ message: runResult.message,
101
+ name: test.name,
102
+ status: passed ? 'pass' : 'fail',
103
+ timing: runResult.timing,
104
+ });
105
+ if (flags.output === 'summary') {
106
+ const timing = runResult.timing ? ` (${runResult.timing}s)` : '';
107
+ if (passed) {
108
+ this.log(`PASS ${test.name}${timing}`);
109
+ }
110
+ else {
111
+ this.log(`FAIL ${test.name}${timing}`);
112
+ if (runResult.message) {
113
+ this.log(` Error: ${runResult.message}`);
114
+ }
115
+ }
116
+ }
117
+ }
118
+ catch (error) {
119
+ if (error instanceof Error && 'oclif' in error)
120
+ throw error;
121
+ const message = error instanceof Error ? error.message : String(error);
122
+ results.push({
123
+ message,
124
+ name: test.name,
125
+ status: 'fail',
126
+ });
127
+ if (flags.output === 'summary') {
128
+ this.log(`FAIL ${test.name}`);
129
+ this.log(` Error: ${message}`);
130
+ }
131
+ }
132
+ }
133
+ // Step 3: Summary
134
+ const passed = results.filter((r) => r.status === 'pass').length;
135
+ const failed = results.filter((r) => r.status === 'fail').length;
136
+ if (flags.output === 'json') {
137
+ this.log(JSON.stringify({ failed, passed, results }, null, 2));
138
+ }
139
+ else {
140
+ this.log(`\nResults: ${passed} passed, ${failed} failed`);
141
+ }
142
+ if (failed > 0) {
143
+ process.exitCode = 1;
144
+ }
145
+ }
146
+ catch (error) {
147
+ if (error instanceof Error && 'oclif' in error)
148
+ throw error;
149
+ if (error instanceof Error) {
150
+ this.error(`Failed to run workflow tests: ${error.message}`);
151
+ }
152
+ else {
153
+ this.error(`Failed to run workflow tests: ${String(error)}`);
154
+ }
155
+ }
156
+ }
157
+ }
@@ -11,6 +11,7 @@ export default class StaticHostBuildCreate extends BaseCommand {
11
11
  name: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
12
12
  output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
13
13
  workspace: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
15
  profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
16
  verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
17
  };
@@ -1,7 +1,6 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
2
  import * as yaml from 'js-yaml';
3
3
  import * as fs from 'node:fs';
4
- import * as os from 'node:os';
5
4
  import * as path from 'node:path';
6
5
  import BaseCommand from '../../../../base-command.js';
7
6
  export default class StaticHostBuildCreate extends BaseCommand {
@@ -171,8 +170,7 @@ Description: Production build
171
170
  }
172
171
  }
173
172
  loadCredentials() {
174
- const configDir = path.join(os.homedir(), '.xano');
175
- const credentialsPath = path.join(configDir, 'credentials.yaml');
173
+ const credentialsPath = this.getCredentialsPath();
176
174
  // Check if credentials file exists
177
175
  if (!fs.existsSync(credentialsPath)) {
178
176
  this.error(`Credentials file not found at ${credentialsPath}\n` +
@@ -9,6 +9,7 @@ export default class StaticHostBuildGet extends BaseCommand {
9
9
  static flags: {
10
10
  output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
11
11
  workspace: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
13
  profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
14
  verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
14
15
  };
@@ -1,8 +1,6 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
2
  import * as yaml from 'js-yaml';
3
3
  import * as fs from 'node:fs';
4
- import * as os from 'node:os';
5
- import * as path from 'node:path';
6
4
  import BaseCommand from '../../../../base-command.js';
7
5
  export default class StaticHostBuildGet extends BaseCommand {
8
6
  static args = {
@@ -142,8 +140,7 @@ Name: production-build
142
140
  }
143
141
  }
144
142
  loadCredentials() {
145
- const configDir = path.join(os.homedir(), '.xano');
146
- const credentialsPath = path.join(configDir, 'credentials.yaml');
143
+ const credentialsPath = this.getCredentialsPath();
147
144
  // Check if credentials file exists
148
145
  if (!fs.existsSync(credentialsPath)) {
149
146
  this.error(`Credentials file not found at ${credentialsPath}\n` +
@@ -10,6 +10,7 @@ export default class StaticHostBuildList extends BaseCommand {
10
10
  page: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
11
11
  per_page: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
12
12
  workspace: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
14
  profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
15
  verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
16
  };
@@ -1,8 +1,6 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
2
  import * as yaml from 'js-yaml';
3
3
  import * as fs from 'node:fs';
4
- import * as os from 'node:os';
5
- import * as path from 'node:path';
6
4
  import BaseCommand from '../../../../base-command.js';
7
5
  export default class StaticHostBuildList extends BaseCommand {
8
6
  static args = {
@@ -169,8 +167,7 @@ Available builds:
169
167
  }
170
168
  }
171
169
  loadCredentials() {
172
- const configDir = path.join(os.homedir(), '.xano');
173
- const credentialsPath = path.join(configDir, 'credentials.yaml');
170
+ const credentialsPath = this.getCredentialsPath();
174
171
  // Check if credentials file exists
175
172
  if (!fs.existsSync(credentialsPath)) {
176
173
  this.error(`Credentials file not found at ${credentialsPath}\n` +
@@ -8,6 +8,7 @@ export default class StaticHostList extends BaseCommand {
8
8
  page: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
9
9
  per_page: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
10
10
  workspace: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
12
  profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
13
  verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
14
  };
@@ -1,8 +1,6 @@
1
1
  import { Flags } from '@oclif/core';
2
2
  import * as yaml from 'js-yaml';
3
3
  import * as fs from 'node:fs';
4
- import * as os from 'node:os';
5
- import * as path from 'node:path';
6
4
  import BaseCommand from '../../../base-command.js';
7
5
  export default class StaticHostList extends BaseCommand {
8
6
  static args = {};
@@ -164,8 +162,7 @@ Available static hosts:
164
162
  }
165
163
  }
166
164
  loadCredentials() {
167
- const configDir = path.join(os.homedir(), '.xano');
168
- const credentialsPath = path.join(configDir, 'credentials.yaml');
165
+ const credentialsPath = this.getCredentialsPath();
169
166
  // Check if credentials file exists
170
167
  if (!fs.existsSync(credentialsPath)) {
171
168
  this.error(`Credentials file not found at ${credentialsPath}\n` +
@@ -9,6 +9,7 @@ export default class TenantBackupCreate extends BaseCommand {
9
9
  description: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
10
10
  output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
11
11
  workspace: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
13
  profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
14
  verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
14
15
  };
@@ -1,8 +1,6 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
2
  import * as yaml from 'js-yaml';
3
3
  import * as fs from 'node:fs';
4
- import * as os from 'node:os';
5
- import * as path from 'node:path';
6
4
  import BaseCommand from '../../../../base-command.js';
7
5
  export default class TenantBackupCreate extends BaseCommand {
8
6
  static args = {
@@ -92,8 +90,7 @@ Created backup #15 for tenant t1234-abcd-xyz1
92
90
  }
93
91
  }
94
92
  loadCredentials() {
95
- const configDir = path.join(os.homedir(), '.xano');
96
- const credentialsPath = path.join(configDir, 'credentials.yaml');
93
+ const credentialsPath = this.getCredentialsPath();
97
94
  if (!fs.existsSync(credentialsPath)) {
98
95
  this.error(`Credentials file not found at ${credentialsPath}\n` +
99
96
  `Create a profile using 'xano profile create'`);
@@ -10,6 +10,7 @@ export default class TenantBackupDelete extends BaseCommand {
10
10
  force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
11
  output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
12
12
  workspace: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
14
  profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
15
  verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
16
  };
@@ -1,7 +1,5 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
2
  import * as fs from 'node:fs';
3
- import * as os from 'node:os';
4
- import * as path from 'node:path';
5
3
  import * as readline from 'node:readline';
6
4
  import * as yaml from 'js-yaml';
7
5
  import BaseCommand from '../../../../base-command.js';
@@ -116,8 +114,7 @@ Deleted backup #10
116
114
  });
117
115
  }
118
116
  loadCredentials() {
119
- const configDir = path.join(os.homedir(), '.xano');
120
- const credentialsPath = path.join(configDir, 'credentials.yaml');
117
+ const credentialsPath = this.getCredentialsPath();
121
118
  if (!fs.existsSync(credentialsPath)) {
122
119
  this.error(`Credentials file not found at ${credentialsPath}\n` + `Create a profile using 'xano profile create'`);
123
120
  }
@@ -10,6 +10,7 @@ export default class TenantBackupExport extends BaseCommand {
10
10
  format: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
11
11
  output: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
12
  workspace: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
14
  profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
15
  verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
16
  };
@@ -1,6 +1,5 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
2
  import * as fs from 'node:fs';
3
- import * as os from 'node:os';
4
3
  import * as path from 'node:path';
5
4
  import * as yaml from 'js-yaml';
6
5
  import BaseCommand, { buildUserAgent } from '../../../../base-command.js';
@@ -128,8 +127,7 @@ Downloaded backup #10 to ./tenant-t1234-abcd-xyz1-backup-10.tar.gz
128
127
  }
129
128
  }
130
129
  loadCredentials() {
131
- const configDir = path.join(os.homedir(), '.xano');
132
- const credentialsPath = path.join(configDir, 'credentials.yaml');
130
+ const credentialsPath = this.getCredentialsPath();
133
131
  if (!fs.existsSync(credentialsPath)) {
134
132
  this.error(`Credentials file not found at ${credentialsPath}\n` + `Create a profile using 'xano profile create'`);
135
133
  }
@@ -10,6 +10,7 @@ export default class TenantBackupImport extends BaseCommand {
10
10
  file: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
11
11
  output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
12
12
  workspace: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
14
  profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
15
  verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
16
  };
@@ -1,6 +1,5 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
2
  import * as fs from 'node:fs';
3
- import * as os from 'node:os';
4
3
  import * as path from 'node:path';
5
4
  import * as yaml from 'js-yaml';
6
5
  import BaseCommand from '../../../../base-command.js';
@@ -106,8 +105,7 @@ Imported backup as #15 for tenant t1234-abcd-xyz1
106
105
  }
107
106
  }
108
107
  loadCredentials() {
109
- const configDir = path.join(os.homedir(), '.xano');
110
- const credentialsPath = path.join(configDir, 'credentials.yaml');
108
+ const credentialsPath = this.getCredentialsPath();
111
109
  if (!fs.existsSync(credentialsPath)) {
112
110
  this.error(`Credentials file not found at ${credentialsPath}\n` +
113
111
  `Create a profile using 'xano profile create'`);
@@ -9,6 +9,7 @@ export default class TenantBackupList extends BaseCommand {
9
9
  output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
10
10
  page: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
11
11
  workspace: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
13
  profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
14
  verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
14
15
  };
@@ -1,8 +1,6 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
2
  import * as yaml from 'js-yaml';
3
3
  import * as fs from 'node:fs';
4
- import * as os from 'node:os';
5
- import * as path from 'node:path';
6
4
  import BaseCommand from '../../../../base-command.js';
7
5
  export default class TenantBackupList extends BaseCommand {
8
6
  static args = {
@@ -116,8 +114,7 @@ Backups for tenant t1234-abcd-xyz1:
116
114
  }
117
115
  }
118
116
  loadCredentials() {
119
- const configDir = path.join(os.homedir(), '.xano');
120
- const credentialsPath = path.join(configDir, 'credentials.yaml');
117
+ const credentialsPath = this.getCredentialsPath();
121
118
  if (!fs.existsSync(credentialsPath)) {
122
119
  this.error(`Credentials file not found at ${credentialsPath}\n` +
123
120
  `Create a profile using 'xano profile create'`);
@@ -10,6 +10,7 @@ export default class TenantRestore extends BaseCommand {
10
10
  force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
11
  output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
12
12
  workspace: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
14
  profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
15
  verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
16
  };
@@ -1,8 +1,6 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
2
  import * as yaml from 'js-yaml';
3
3
  import * as fs from 'node:fs';
4
- import * as os from 'node:os';
5
- import * as path from 'node:path';
6
4
  import BaseCommand from '../../../../base-command.js';
7
5
  export default class TenantRestore extends BaseCommand {
8
6
  static args = {
@@ -120,8 +118,7 @@ Restored tenant t1234-abcd-xyz1 from backup #10
120
118
  });
121
119
  }
122
120
  loadCredentials() {
123
- const configDir = path.join(os.homedir(), '.xano');
124
- const credentialsPath = path.join(configDir, 'credentials.yaml');
121
+ const credentialsPath = this.getCredentialsPath();
125
122
  if (!fs.existsSync(credentialsPath)) {
126
123
  this.error(`Credentials file not found at ${credentialsPath}\n` + `Create a profile using 'xano profile create'`);
127
124
  }
@@ -10,6 +10,7 @@ export default class TenantClusterCreate extends BaseCommand {
10
10
  name: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
11
11
  output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
12
12
  type: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
13
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
14
  profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
15
  verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
16
  };
@@ -1,7 +1,6 @@
1
1
  import { Flags } from '@oclif/core';
2
2
  import * as yaml from 'js-yaml';
3
3
  import * as fs from 'node:fs';
4
- import * as os from 'node:os';
5
4
  import * as path from 'node:path';
6
5
  import BaseCommand from '../../../../base-command.js';
7
6
  export default class TenantClusterCreate extends BaseCommand {
@@ -129,8 +128,7 @@ Created tenant cluster: us-east-1 (standard) - ID: 3
129
128
  }
130
129
  }
131
130
  loadCredentials() {
132
- const configDir = path.join(os.homedir(), '.xano');
133
- const credentialsPath = path.join(configDir, 'credentials.yaml');
131
+ const credentialsPath = this.getCredentialsPath();
134
132
  if (!fs.existsSync(credentialsPath)) {
135
133
  this.error(`Credentials file not found at ${credentialsPath}\n` + `Create a profile using 'xano profile create'`);
136
134
  }
@@ -11,6 +11,7 @@ export default class TenantClusterDelete extends BaseCommand {
11
11
  static flags: {
12
12
  force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
13
  output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
14
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
15
  profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
16
  verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
17
  };
@@ -1,8 +1,6 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
2
  import * as yaml from 'js-yaml';
3
3
  import * as fs from 'node:fs';
4
- import * as os from 'node:os';
5
- import * as path from 'node:path';
6
4
  import BaseCommand from '../../../../base-command.js';
7
5
  export default class TenantClusterDelete extends BaseCommand {
8
6
  static args = {
@@ -104,8 +102,7 @@ Tenant cluster 3 deleted successfully
104
102
  });
105
103
  }
106
104
  loadCredentials() {
107
- const configDir = path.join(os.homedir(), '.xano');
108
- const credentialsPath = path.join(configDir, 'credentials.yaml');
105
+ const credentialsPath = this.getCredentialsPath();
109
106
  if (!fs.existsSync(credentialsPath)) {
110
107
  this.error(`Credentials file not found at ${credentialsPath}\n` +
111
108
  `Create a profile using 'xano profile create'`);
@@ -14,6 +14,7 @@ export default class TenantClusterEdit extends BaseCommand {
14
14
  name: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
15
15
  output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
16
16
  type: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
17
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
18
  profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
18
19
  verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
19
20
  };
@@ -1,8 +1,6 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
2
  import * as yaml from 'js-yaml';
3
3
  import * as fs from 'node:fs';
4
- import * as os from 'node:os';
5
- import * as path from 'node:path';
6
4
  import BaseCommand from '../../../../base-command.js';
7
5
  export default class TenantClusterEdit extends BaseCommand {
8
6
  static args = {
@@ -107,8 +105,7 @@ Updated tenant cluster: us-east-1-updated (standard) - ID: 1
107
105
  }
108
106
  }
109
107
  loadCredentials() {
110
- const configDir = path.join(os.homedir(), '.xano');
111
- const credentialsPath = path.join(configDir, 'credentials.yaml');
108
+ const credentialsPath = this.getCredentialsPath();
112
109
  if (!fs.existsSync(credentialsPath)) {
113
110
  this.error(`Credentials file not found at ${credentialsPath}\n` +
114
111
  `Create a profile using 'xano profile create'`);
@@ -10,6 +10,7 @@ export default class TenantClusterGet extends BaseCommand {
10
10
  static examples: string[];
11
11
  static flags: {
12
12
  output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
13
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
14
  profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
15
  verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
16
  };
@@ -1,8 +1,6 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
2
  import * as yaml from 'js-yaml';
3
3
  import * as fs from 'node:fs';
4
- import * as os from 'node:os';
5
- import * as path from 'node:path';
6
4
  import BaseCommand from '../../../../base-command.js';
7
5
  export default class TenantClusterGet extends BaseCommand {
8
6
  static args = {
@@ -94,8 +92,7 @@ Cluster: us-east-1
94
92
  }
95
93
  }
96
94
  loadCredentials() {
97
- const configDir = path.join(os.homedir(), '.xano');
98
- const credentialsPath = path.join(configDir, 'credentials.yaml');
95
+ const credentialsPath = this.getCredentialsPath();
99
96
  if (!fs.existsSync(credentialsPath)) {
100
97
  this.error(`Credentials file not found at ${credentialsPath}\n` + `Create a profile using 'xano profile create'`);
101
98
  }
@@ -12,6 +12,7 @@ export default class TenantClusterLicenseGet extends BaseCommand {
12
12
  file: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
13
  output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
14
14
  view: import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
16
  profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
17
  verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
17
18
  };
@@ -1,7 +1,6 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
2
  import * as yaml from 'js-yaml';
3
3
  import * as fs from 'node:fs';
4
- import * as os from 'node:os';
5
4
  import * as path from 'node:path';
6
5
  import BaseCommand from '../../../../../base-command.js';
7
6
  export default class TenantClusterLicenseGet extends BaseCommand {
@@ -98,8 +97,7 @@ License saved to my-kubeconfig.yaml
98
97
  }
99
98
  }
100
99
  loadCredentials() {
101
- const configDir = path.join(os.homedir(), '.xano');
102
- const credentialsPath = path.join(configDir, 'credentials.yaml');
100
+ const credentialsPath = this.getCredentialsPath();
103
101
  if (!fs.existsSync(credentialsPath)) {
104
102
  this.error(`Credentials file not found at ${credentialsPath}\n` + `Create a profile using 'xano profile create'`);
105
103
  }
@@ -13,6 +13,7 @@ export default class TenantClusterLicenseSet extends BaseCommand {
13
13
  file: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
14
  output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
15
15
  value: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
17
  profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
18
  verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
18
19
  };
@@ -1,7 +1,6 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
2
  import * as yaml from 'js-yaml';
3
3
  import * as fs from 'node:fs';
4
- import * as os from 'node:os';
5
4
  import * as path from 'node:path';
6
5
  import BaseCommand from '../../../../../base-command.js';
7
6
  export default class TenantClusterLicenseSet extends BaseCommand {
@@ -112,8 +111,7 @@ Reads from kubeconfig-1.yaml
112
111
  }
113
112
  }
114
113
  loadCredentials() {
115
- const configDir = path.join(os.homedir(), '.xano');
116
- const credentialsPath = path.join(configDir, 'credentials.yaml');
114
+ const credentialsPath = this.getCredentialsPath();
117
115
  if (!fs.existsSync(credentialsPath)) {
118
116
  this.error(`Credentials file not found at ${credentialsPath}\n` + `Create a profile using 'xano profile create'`);
119
117
  }
@@ -4,6 +4,7 @@ export default class TenantClusterList extends BaseCommand {
4
4
  static examples: string[];
5
5
  static flags: {
6
6
  output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
7
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
8
  profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
9
  verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
10
  };