@revos/cli 0.2.0 → 0.2.1

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 (84) hide show
  1. package/LICENSE +9 -0
  2. package/README.md +45 -0
  3. package/dist/adapters/oclif/commands/action-runs/get.mjs +1 -1
  4. package/dist/adapters/oclif/commands/action-runs/list.mjs +1 -1
  5. package/dist/adapters/oclif/commands/actions/get-input-schema.mjs +2 -2
  6. package/dist/adapters/oclif/commands/actions/get-params-schema.mjs +2 -2
  7. package/dist/adapters/oclif/commands/actions/get.mjs +1 -1
  8. package/dist/adapters/oclif/commands/actions/list.mjs +2 -2
  9. package/dist/adapters/oclif/commands/ai-instructions/create.mjs +1 -1
  10. package/dist/adapters/oclif/commands/ai-instructions/delete.mjs +1 -1
  11. package/dist/adapters/oclif/commands/ai-instructions/get.mjs +1 -1
  12. package/dist/adapters/oclif/commands/ai-instructions/list.mjs +1 -1
  13. package/dist/adapters/oclif/commands/ai-instructions/update.mjs +1 -1
  14. package/dist/adapters/oclif/commands/auth/login.mjs +2 -2
  15. package/dist/adapters/oclif/commands/auth/logout.mjs +7 -3
  16. package/dist/adapters/oclif/commands/auth/status.mjs +2 -2
  17. package/dist/adapters/oclif/commands/gservice-account-keys/get.mjs +1 -1
  18. package/dist/adapters/oclif/commands/gservice-account-keys/reveal.mjs +2 -2
  19. package/dist/adapters/oclif/commands/gservice-accounts/create.mjs +1 -1
  20. package/dist/adapters/oclif/commands/gservice-accounts/delete.mjs +1 -1
  21. package/dist/adapters/oclif/commands/gservice-accounts/get.mjs +1 -1
  22. package/dist/adapters/oclif/commands/gservice-accounts/list.mjs +1 -1
  23. package/dist/adapters/oclif/commands/init.mjs +4 -3
  24. package/dist/adapters/oclif/commands/integrations/create.d.mts +11 -0
  25. package/dist/adapters/oclif/commands/integrations/create.mjs +16 -0
  26. package/dist/adapters/oclif/commands/integrations/get.d.mts +15 -0
  27. package/dist/adapters/oclif/commands/integrations/get.mjs +21 -0
  28. package/dist/adapters/oclif/commands/integrations/list.d.mts +11 -0
  29. package/dist/adapters/oclif/commands/integrations/list.mjs +16 -0
  30. package/dist/adapters/oclif/commands/integrations/update.d.mts +15 -0
  31. package/dist/adapters/oclif/commands/integrations/update.mjs +21 -0
  32. package/dist/adapters/oclif/commands/org/create.mjs +1 -1
  33. package/dist/adapters/oclif/commands/org/current.mjs +2 -2
  34. package/dist/adapters/oclif/commands/org/get.mjs +1 -1
  35. package/dist/adapters/oclif/commands/org/list.mjs +2 -2
  36. package/dist/adapters/oclif/commands/org/switch.mjs +5 -4
  37. package/dist/adapters/oclif/commands/overlays/diff.mjs +5 -5
  38. package/dist/adapters/oclif/commands/overlays/pull.mjs +4 -3
  39. package/dist/adapters/oclif/commands/overlays/push.mjs +2 -2
  40. package/dist/adapters/oclif/commands/overlays/status.mjs +2 -2
  41. package/dist/adapters/oclif/commands/score-groups/create.mjs +1 -1
  42. package/dist/adapters/oclif/commands/score-groups/delete.mjs +1 -1
  43. package/dist/adapters/oclif/commands/score-groups/get.mjs +1 -1
  44. package/dist/adapters/oclif/commands/score-groups/list.mjs +1 -1
  45. package/dist/adapters/oclif/commands/score-groups/update.mjs +1 -1
  46. package/dist/adapters/oclif/commands/scores/create.mjs +1 -1
  47. package/dist/adapters/oclif/commands/scores/delete.mjs +1 -1
  48. package/dist/adapters/oclif/commands/scores/list.mjs +1 -1
  49. package/dist/adapters/oclif/commands/scores/update.mjs +1 -1
  50. package/dist/adapters/oclif/commands/segments/create.mjs +1 -1
  51. package/dist/adapters/oclif/commands/segments/delete.mjs +1 -1
  52. package/dist/adapters/oclif/commands/segments/evaluate.mjs +2 -2
  53. package/dist/adapters/oclif/commands/segments/get-evaluation-history.mjs +2 -2
  54. package/dist/adapters/oclif/commands/segments/get-version.mjs +2 -2
  55. package/dist/adapters/oclif/commands/segments/get.mjs +1 -1
  56. package/dist/adapters/oclif/commands/segments/list-versions.mjs +2 -2
  57. package/dist/adapters/oclif/commands/segments/list.mjs +1 -1
  58. package/dist/adapters/oclif/commands/segments/restore-version.mjs +2 -2
  59. package/dist/adapters/oclif/commands/segments/update.mjs +1 -1
  60. package/dist/adapters/oclif/commands/table-views/create.mjs +1 -1
  61. package/dist/adapters/oclif/commands/table-views/delete.mjs +1 -1
  62. package/dist/adapters/oclif/commands/table-views/list.mjs +1 -1
  63. package/dist/adapters/oclif/commands/table-views/update.mjs +1 -1
  64. package/dist/adapters/oclif/commands/tables/create.mjs +1 -1
  65. package/dist/adapters/oclif/commands/tables/delete.mjs +1 -1
  66. package/dist/adapters/oclif/commands/tables/get.mjs +1 -1
  67. package/dist/adapters/oclif/commands/tables/list.mjs +1 -1
  68. package/dist/adapters/oclif/commands/tables/update.mjs +1 -1
  69. package/dist/{base.command-DlVQ9Cqa.mjs → base.command-YiwlGlKs.mjs} +1 -1
  70. package/dist/{core-gKJ_V-K5.mjs → core-jpFPylBb.mjs} +31 -7
  71. package/dist/{factory-D9sR_S_g.mjs → factory-BrFKT8t-.mjs} +2 -2
  72. package/dist/{index-KAzwt5vr.d.mts → index-DD2Vr-pu.d.mts} +4 -1
  73. package/dist/index.d.mts +2 -2
  74. package/dist/index.mjs +2 -2
  75. package/dist/{presets-Cvazkjmu.mjs → presets-D9b6IWKy.mjs} +2 -2
  76. package/dist/templates/.devcontainer/devcontainer.json +2 -2
  77. package/dist/templates/AGENTS.md +19 -9
  78. package/dist/templates/skills/create-dbt-transformations/SKILL.md +21 -13
  79. package/dist/templates/skills/create-dbt-transformations/references/edge-cases.md +1 -1
  80. package/dist/templates/skills/create-semantic-model/SKILL.md +11 -11
  81. package/dist/templates/skills/create-semantic-model/references/cube-examples.md +83 -5
  82. package/dist/templates/skills/explore-lakehouse/SKILL.md +7 -3
  83. package/dist/templates/skills/load-sample-data/SKILL.md +119 -0
  84. package/package.json +7 -2
package/LICENSE ADDED
@@ -0,0 +1,9 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 RevOS GmbH.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md CHANGED
@@ -8,6 +8,13 @@ Command-line interface for managing RevOS resources.
8
8
  pnpm add @revos/cli
9
9
  ```
10
10
 
11
+ ## Platform support
12
+
13
+ Linux, macOS, and Windows. On POSIX systems the credentials store
14
+ (`~/.revos/credentials.json`) is created with `0600` permissions; on Windows
15
+ those bits are not applied (Windows uses ACLs). Treat your home directory's
16
+ `.revos` folder as sensitive on Windows and rely on standard user-profile ACLs.
17
+
11
18
  ## Usage
12
19
 
13
20
  ```bash
@@ -115,6 +122,44 @@ revos org switch <org-id>
115
122
 
116
123
  ---
117
124
 
125
+ ### Integrations
126
+
127
+ Browser-opener commands that deep-link to the RevOS UI for managing data source integrations.
128
+
129
+ #### List integrations
130
+
131
+ ```bash
132
+ revos integrations list
133
+ ```
134
+
135
+ Opens the integrations page in the RevOS UI.
136
+
137
+ #### Get integration
138
+
139
+ ```bash
140
+ revos integrations get <id>
141
+ ```
142
+
143
+ Opens a specific integration in the RevOS UI.
144
+
145
+ #### Create integration
146
+
147
+ ```bash
148
+ revos integrations create
149
+ ```
150
+
151
+ Opens the RevOS UI to add a new data source.
152
+
153
+ #### Update integration
154
+
155
+ ```bash
156
+ revos integrations update <id>
157
+ ```
158
+
159
+ Opens the RevOS UI to edit an existing integration.
160
+
161
+ ---
162
+
118
163
  ### Overlays Management
119
164
 
120
165
  Overlay files are Cube.dev semantic model definitions stored as YAML in `semantic/`. The overlay name is taken from the `name` field inside the file (or derived from the filename as a fallback). A `description` field is synced with the overlay's description on push.
@@ -1,4 +1,4 @@
1
- import { r as getCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { r as getCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/action-runs/get.ts
3
3
  var get_default = getCommand({
4
4
  resource: "actionRuns",
@@ -1,4 +1,4 @@
1
- import { i as listCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { i as listCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/action-runs/list.ts
3
3
  var list_default = listCommand({
4
4
  resource: "actionRuns",
@@ -1,5 +1,5 @@
1
- import { m as unwrap } from "../../../../core-gKJ_V-K5.mjs";
2
- import { n as defineApiCommand } from "../../../../factory-D9sR_S_g.mjs";
1
+ import { m as unwrap } from "../../../../core-jpFPylBb.mjs";
2
+ import { n as defineApiCommand } from "../../../../factory-BrFKT8t-.mjs";
3
3
  import { Args, Flags } from "@oclif/core";
4
4
  //#region src/adapters/oclif/commands/actions/get-input-schema.ts
5
5
  var get_input_schema_default = defineApiCommand({
@@ -1,5 +1,5 @@
1
- import { m as unwrap } from "../../../../core-gKJ_V-K5.mjs";
2
- import { n as defineApiCommand } from "../../../../factory-D9sR_S_g.mjs";
1
+ import { m as unwrap } from "../../../../core-jpFPylBb.mjs";
2
+ import { n as defineApiCommand } from "../../../../factory-BrFKT8t-.mjs";
3
3
  import { Args, Flags } from "@oclif/core";
4
4
  //#region src/adapters/oclif/commands/actions/get-params-schema.ts
5
5
  var get_params_schema_default = defineApiCommand({
@@ -1,4 +1,4 @@
1
- import { r as getCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { r as getCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/actions/get.ts
3
3
  var get_default = getCommand({
4
4
  resource: "actions",
@@ -1,5 +1,5 @@
1
- import { m as unwrap } from "../../../../core-gKJ_V-K5.mjs";
2
- import { n as defineApiCommand } from "../../../../factory-D9sR_S_g.mjs";
1
+ import { m as unwrap } from "../../../../core-jpFPylBb.mjs";
2
+ import { n as defineApiCommand } from "../../../../factory-BrFKT8t-.mjs";
3
3
  import { Flags } from "@oclif/core";
4
4
  //#region src/adapters/oclif/commands/actions/list.ts
5
5
  var list_default = defineApiCommand({
@@ -1,4 +1,4 @@
1
- import { t as createCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { t as createCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/ai-instructions/create.ts
3
3
  var create_default = createCommand({
4
4
  resource: "aiInstructions",
@@ -1,4 +1,4 @@
1
- import { n as deleteCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { n as deleteCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/ai-instructions/delete.ts
3
3
  var delete_default = deleteCommand({
4
4
  resource: "aiInstructions",
@@ -1,4 +1,4 @@
1
- import { r as getCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { r as getCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/ai-instructions/get.ts
3
3
  var get_default = getCommand({
4
4
  resource: "aiInstructions",
@@ -1,4 +1,4 @@
1
- import { i as listCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { i as listCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/ai-instructions/list.ts
3
3
  var list_default = listCommand({
4
4
  resource: "aiInstructions",
@@ -1,4 +1,4 @@
1
- import { a as updateCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { a as updateCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/ai-instructions/update.ts
3
3
  var update_default = updateCommand({
4
4
  resource: "aiInstructions",
@@ -1,5 +1,5 @@
1
- import { A as getCredentialsPath, C as getUserInfo, D as tokenResponseToCredentials, N as saveCredentials, O as startOAuthServer, S as generatePKCEChallenge, T as setClerkConfig, b as buildAuthorizationUrl, m as unwrap, n as selectOrganization, p as createApiClient, x as exchangeCodeForTokens } from "../../../../core-gKJ_V-K5.mjs";
2
- import { t as BaseCommand } from "../../../../base.command-DlVQ9Cqa.mjs";
1
+ import { C as generatePKCEChallenge, E as setClerkConfig, O as tokenResponseToCredentials, P as saveCredentials, S as exchangeCodeForTokens, j as getCredentialsPath, k as startOAuthServer, m as unwrap, n as selectOrganization, p as createApiClient, w as getUserInfo, x as buildAuthorizationUrl } from "../../../../core-jpFPylBb.mjs";
2
+ import { t as BaseCommand } from "../../../../base.command-YiwlGlKs.mjs";
3
3
  import chalk from "chalk";
4
4
  import { Flags } from "@oclif/core";
5
5
  import open from "open";
@@ -1,5 +1,6 @@
1
- import { k as deleteCredentials } from "../../../../core-gKJ_V-K5.mjs";
2
- import { t as BaseCommand } from "../../../../base.command-DlVQ9Cqa.mjs";
1
+ import { A as deleteCredentials } from "../../../../core-jpFPylBb.mjs";
2
+ import { t as BaseCommand } from "../../../../base.command-YiwlGlKs.mjs";
3
+ import * as os from "os";
3
4
  //#region src/adapters/oclif/commands/auth/logout.ts
4
5
  var AuthLogout = class extends BaseCommand {
5
6
  static description = "Remove stored authentication credentials";
@@ -8,7 +9,10 @@ var AuthLogout = class extends BaseCommand {
8
9
  if (!this.jsonEnabled()) {
9
10
  if (deleted) this.log("Logged out successfully. Credentials removed.");
10
11
  else this.log("No stored credentials found.");
11
- if (process.env.REVOS_TOKEN) this.warn("REVOS_TOKEN environment variable is still set. Unset it to fully log out:\n\n unset REVOS_TOKEN");
12
+ if (process.env.REVOS_TOKEN) {
13
+ const unsetCmd = process.platform === "win32" ? " PowerShell: Remove-Item Env:REVOS_TOKEN" + os.EOL + " CMD: set REVOS_TOKEN=" : " unset REVOS_TOKEN";
14
+ this.warn(`REVOS_TOKEN environment variable is still set. Unset it to fully log out:${os.EOL}${os.EOL}${unsetCmd}`);
15
+ }
12
16
  }
13
17
  return { deleted };
14
18
  }
@@ -1,5 +1,5 @@
1
- import { A as getCredentialsPath, M as loadCredentials, j as isTokenExpired } from "../../../../core-gKJ_V-K5.mjs";
2
- import { t as BaseCommand } from "../../../../base.command-DlVQ9Cqa.mjs";
1
+ import { M as isTokenExpired, N as loadCredentials, j as getCredentialsPath } from "../../../../core-jpFPylBb.mjs";
2
+ import { t as BaseCommand } from "../../../../base.command-YiwlGlKs.mjs";
3
3
  import chalk from "chalk";
4
4
  //#region src/adapters/oclif/commands/auth/status.ts
5
5
  var AuthStatus = class extends BaseCommand {
@@ -1,4 +1,4 @@
1
- import { r as getCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { r as getCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/gservice-account-keys/get.ts
3
3
  var get_default = getCommand({
4
4
  resource: "gserviceAccountKeys",
@@ -1,5 +1,5 @@
1
- import { m as unwrap } from "../../../../core-gKJ_V-K5.mjs";
2
- import { n as defineApiCommand } from "../../../../factory-D9sR_S_g.mjs";
1
+ import { m as unwrap } from "../../../../core-jpFPylBb.mjs";
2
+ import { n as defineApiCommand } from "../../../../factory-BrFKT8t-.mjs";
3
3
  import { Args } from "@oclif/core";
4
4
  //#region src/adapters/oclif/commands/gservice-account-keys/reveal.ts
5
5
  var reveal_default = defineApiCommand({
@@ -1,4 +1,4 @@
1
- import { t as createCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { t as createCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/gservice-accounts/create.ts
3
3
  var create_default = createCommand({
4
4
  resource: "gserviceAccounts",
@@ -1,4 +1,4 @@
1
- import { n as deleteCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { n as deleteCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/gservice-accounts/delete.ts
3
3
  var delete_default = deleteCommand({
4
4
  resource: "gserviceAccounts",
@@ -1,4 +1,4 @@
1
- import { r as getCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { r as getCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/gservice-accounts/get.ts
3
3
  var get_default = getCommand({
4
4
  resource: "gserviceAccounts",
@@ -1,4 +1,4 @@
1
- import { i as listCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { i as listCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/gservice-accounts/list.ts
3
3
  var list_default = listCommand({
4
4
  resource: "gserviceAccounts",
@@ -1,6 +1,6 @@
1
- import { P as ApiError, t as InitService, y as getConfig } from "../../../core-gKJ_V-K5.mjs";
1
+ import { F as ApiError, b as getConfig, t as InitService } from "../../../core-jpFPylBb.mjs";
2
2
  import { TEMPLATES_DIR } from "../../../templates/index.mjs";
3
- import { t as BaseCommand } from "../../../base.command-DlVQ9Cqa.mjs";
3
+ import { t as BaseCommand } from "../../../base.command-YiwlGlKs.mjs";
4
4
  import * as fs from "fs";
5
5
  import * as path from "path";
6
6
  import select from "@inquirer/select";
@@ -95,7 +95,8 @@ var Init = class extends BaseCommand {
95
95
  this.log(chalk.green(`\nProject created at ${result.projectDir}`));
96
96
  this.log("\nGenerated files:");
97
97
  for (const f of result.createdFiles) this.log(` ${f}`);
98
- this.log(`\nNext step: open ${chalk.bold(result.projectDir)} in VS Code and click ${chalk.bold("Reopen in Container")}.\n`);
98
+ this.log(`\nNext step: open ${chalk.bold(result.projectDir)} in VS Code and click ${chalk.bold("Reopen in Container")}.`);
99
+ this.log(`\n${chalk.dim("Tip: once inside the Dev Container, ask Claude to \"load sample data\" if you need example datasets.")}\n`);
99
100
  }
100
101
  };
101
102
  //#endregion
@@ -0,0 +1,11 @@
1
+ import { t as BaseCommand } from "../../../../base.command-d7VW6WTp.mjs";
2
+
3
+ //#region src/adapters/oclif/commands/integrations/create.d.ts
4
+ declare class IntegrationsCreate extends BaseCommand<typeof IntegrationsCreate> {
5
+ static description: string;
6
+ run(): Promise<{
7
+ url: string;
8
+ }>;
9
+ }
10
+ //#endregion
11
+ export { IntegrationsCreate as default };
@@ -0,0 +1,16 @@
1
+ import { b as getConfig, h as resolveAppUrl } from "../../../../core-jpFPylBb.mjs";
2
+ import { t as BaseCommand } from "../../../../base.command-YiwlGlKs.mjs";
3
+ import chalk from "chalk";
4
+ import open from "open";
5
+ //#region src/adapters/oclif/commands/integrations/create.ts
6
+ var IntegrationsCreate = class extends BaseCommand {
7
+ static description = "Open the RevOS UI to create a new integration (data source)";
8
+ async run() {
9
+ const url = `${resolveAppUrl((await getConfig()).apiUrl)}/integrations?action=new`;
10
+ if (!this.jsonEnabled()) this.log(`Opening ${chalk.bold(url)} in your browser...`);
11
+ await open(url);
12
+ return { url };
13
+ }
14
+ };
15
+ //#endregion
16
+ export { IntegrationsCreate as default };
@@ -0,0 +1,15 @@
1
+ import { t as BaseCommand } from "../../../../base.command-d7VW6WTp.mjs";
2
+ import * as _$_oclif_core_interfaces0 from "@oclif/core/interfaces";
3
+
4
+ //#region src/adapters/oclif/commands/integrations/get.d.ts
5
+ declare class IntegrationsGet extends BaseCommand<typeof IntegrationsGet> {
6
+ static description: string;
7
+ static args: {
8
+ id: _$_oclif_core_interfaces0.Arg<string, Record<string, unknown>>;
9
+ };
10
+ run(): Promise<{
11
+ url: string;
12
+ }>;
13
+ }
14
+ //#endregion
15
+ export { IntegrationsGet as default };
@@ -0,0 +1,21 @@
1
+ import { b as getConfig, h as resolveAppUrl } from "../../../../core-jpFPylBb.mjs";
2
+ import { t as BaseCommand } from "../../../../base.command-YiwlGlKs.mjs";
3
+ import chalk from "chalk";
4
+ import { Args } from "@oclif/core";
5
+ import open from "open";
6
+ //#region src/adapters/oclif/commands/integrations/get.ts
7
+ var IntegrationsGet = class extends BaseCommand {
8
+ static description = "Open a specific integration in the RevOS UI";
9
+ static args = { id: Args.string({
10
+ description: "Integration ID",
11
+ required: true
12
+ }) };
13
+ async run() {
14
+ const url = `${resolveAppUrl((await getConfig()).apiUrl)}/integrations/${this.args.id}`;
15
+ if (!this.jsonEnabled()) this.log(`Opening ${chalk.bold(url)} in your browser...`);
16
+ await open(url);
17
+ return { url };
18
+ }
19
+ };
20
+ //#endregion
21
+ export { IntegrationsGet as default };
@@ -0,0 +1,11 @@
1
+ import { t as BaseCommand } from "../../../../base.command-d7VW6WTp.mjs";
2
+
3
+ //#region src/adapters/oclif/commands/integrations/list.d.ts
4
+ declare class IntegrationsList extends BaseCommand<typeof IntegrationsList> {
5
+ static description: string;
6
+ run(): Promise<{
7
+ url: string;
8
+ }>;
9
+ }
10
+ //#endregion
11
+ export { IntegrationsList as default };
@@ -0,0 +1,16 @@
1
+ import { b as getConfig, h as resolveAppUrl } from "../../../../core-jpFPylBb.mjs";
2
+ import { t as BaseCommand } from "../../../../base.command-YiwlGlKs.mjs";
3
+ import chalk from "chalk";
4
+ import open from "open";
5
+ //#region src/adapters/oclif/commands/integrations/list.ts
6
+ var IntegrationsList = class extends BaseCommand {
7
+ static description = "Open the integrations page in the RevOS UI";
8
+ async run() {
9
+ const url = `${resolveAppUrl((await getConfig()).apiUrl)}/integrations`;
10
+ if (!this.jsonEnabled()) this.log(`Opening ${chalk.bold(url)} in your browser...`);
11
+ await open(url);
12
+ return { url };
13
+ }
14
+ };
15
+ //#endregion
16
+ export { IntegrationsList as default };
@@ -0,0 +1,15 @@
1
+ import { t as BaseCommand } from "../../../../base.command-d7VW6WTp.mjs";
2
+ import * as _$_oclif_core_interfaces0 from "@oclif/core/interfaces";
3
+
4
+ //#region src/adapters/oclif/commands/integrations/update.d.ts
5
+ declare class IntegrationsUpdate extends BaseCommand<typeof IntegrationsUpdate> {
6
+ static description: string;
7
+ static args: {
8
+ id: _$_oclif_core_interfaces0.Arg<string, Record<string, unknown>>;
9
+ };
10
+ run(): Promise<{
11
+ url: string;
12
+ }>;
13
+ }
14
+ //#endregion
15
+ export { IntegrationsUpdate as default };
@@ -0,0 +1,21 @@
1
+ import { b as getConfig, h as resolveAppUrl } from "../../../../core-jpFPylBb.mjs";
2
+ import { t as BaseCommand } from "../../../../base.command-YiwlGlKs.mjs";
3
+ import chalk from "chalk";
4
+ import { Args } from "@oclif/core";
5
+ import open from "open";
6
+ //#region src/adapters/oclif/commands/integrations/update.ts
7
+ var IntegrationsUpdate = class extends BaseCommand {
8
+ static description = "Open the RevOS UI to edit an existing integration";
9
+ static args = { id: Args.string({
10
+ description: "Integration ID",
11
+ required: true
12
+ }) };
13
+ async run() {
14
+ const url = `${resolveAppUrl((await getConfig()).apiUrl)}/integrations?action=edit&id=${this.args.id}`;
15
+ if (!this.jsonEnabled()) this.log(`Opening ${chalk.bold(url)} in your browser...`);
16
+ await open(url);
17
+ return { url };
18
+ }
19
+ };
20
+ //#endregion
21
+ export { IntegrationsUpdate as default };
@@ -1,4 +1,4 @@
1
- import { t as createCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { t as createCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/org/create.ts
3
3
  var create_default = createCommand({
4
4
  resource: "organizations",
@@ -1,5 +1,5 @@
1
- import { M as loadCredentials, m as unwrap, p as createApiClient, y as getConfig } from "../../../../core-gKJ_V-K5.mjs";
2
- import { t as BaseCommand } from "../../../../base.command-DlVQ9Cqa.mjs";
1
+ import { N as loadCredentials, b as getConfig, m as unwrap, p as createApiClient } from "../../../../core-jpFPylBb.mjs";
2
+ import { t as BaseCommand } from "../../../../base.command-YiwlGlKs.mjs";
3
3
  //#region src/adapters/oclif/commands/org/current.ts
4
4
  var OrgCurrent = class extends BaseCommand {
5
5
  static description = "Show currently selected organization";
@@ -1,4 +1,4 @@
1
- import { r as getCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { r as getCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/org/get.ts
3
3
  var get_default = getCommand({
4
4
  resource: "organizations",
@@ -1,5 +1,5 @@
1
- import { m as unwrap, p as createApiClient, y as getConfig } from "../../../../core-gKJ_V-K5.mjs";
2
- import { t as BaseCommand } from "../../../../base.command-DlVQ9Cqa.mjs";
1
+ import { b as getConfig, m as unwrap, p as createApiClient } from "../../../../core-jpFPylBb.mjs";
2
+ import { t as BaseCommand } from "../../../../base.command-YiwlGlKs.mjs";
3
3
  import chalk from "chalk";
4
4
  import { Flags } from "@oclif/core";
5
5
  //#region src/adapters/oclif/commands/org/list.ts
@@ -1,5 +1,6 @@
1
- import { M as loadCredentials, N as saveCredentials, m as unwrap, n as selectOrganization, p as createApiClient, y as getConfig } from "../../../../core-gKJ_V-K5.mjs";
2
- import { t as BaseCommand } from "../../../../base.command-DlVQ9Cqa.mjs";
1
+ import { N as loadCredentials, P as saveCredentials, b as getConfig, m as unwrap, n as selectOrganization, p as createApiClient } from "../../../../core-jpFPylBb.mjs";
2
+ import { t as BaseCommand } from "../../../../base.command-YiwlGlKs.mjs";
3
+ import * as os from "os";
3
4
  import chalk from "chalk";
4
5
  import { Args } from "@oclif/core";
5
6
  //#region src/adapters/oclif/commands/org/switch.ts
@@ -17,8 +18,8 @@ var OrgSwitch = class extends BaseCommand {
17
18
  if (args.id) {
18
19
  selected = organizations.find((o) => o.id === args.id);
19
20
  if (!selected) {
20
- const available = organizations.map((o) => ` ${o.name} (${o.id})`).join("\n");
21
- this.error(`Organization "${args.id}" not found.\n\nAvailable organizations:\n${available}`, { exit: 1 });
21
+ const available = organizations.map((o) => ` ${o.name} (${o.id})`).join(os.EOL);
22
+ this.error(`Organization "${args.id}" not found.${os.EOL}${os.EOL}Available organizations:${os.EOL}${available}`, { exit: 1 });
22
23
  }
23
24
  } else selected = await selectOrganization(organizations);
24
25
  const credentials = loadCredentials();
@@ -1,5 +1,5 @@
1
- import { p as createApiClient, r as DiffService, y as getConfig } from "../../../../core-gKJ_V-K5.mjs";
2
- import { t as BaseCommand } from "../../../../base.command-DlVQ9Cqa.mjs";
1
+ import { b as getConfig, p as createApiClient, r as DiffService } from "../../../../core-jpFPylBb.mjs";
2
+ import { t as BaseCommand } from "../../../../base.command-YiwlGlKs.mjs";
3
3
  import chalk from "chalk";
4
4
  import { Args, Flags } from "@oclif/core";
5
5
  //#region src/adapters/oclif/commands/overlays/diff.ts
@@ -46,7 +46,7 @@ var OverlaysDiff = class extends BaseCommand {
46
46
  this.log(chalk.green("+ New overlay (will be created)"));
47
47
  for (const change of entry.changes) if (change.field === "data") {
48
48
  this.log(chalk.green(` ${change.field}:`));
49
- for (const line of (change.newValue ?? "").split("\n")) this.log(chalk.green(` ${line}`));
49
+ for (const line of (change.newValue ?? "").split(/\r?\n/)) this.log(chalk.green(` ${line}`));
50
50
  } else this.log(chalk.green(` ${change.field}: ${change.newValue}`));
51
51
  return;
52
52
  }
@@ -59,8 +59,8 @@ var OverlaysDiff = class extends BaseCommand {
59
59
  }
60
60
  }
61
61
  renderDataDiff(oldValue, newValue) {
62
- const oldLines = oldValue.split("\n");
63
- const newLines = newValue.split("\n");
62
+ const oldLines = oldValue.split(/\r?\n/);
63
+ const newLines = newValue.split(/\r?\n/);
64
64
  const maxLines = Math.max(oldLines.length, newLines.length);
65
65
  const maxDiffLines = 20;
66
66
  let diffCount = 0;
@@ -1,5 +1,6 @@
1
- import { a as PullService, p as createApiClient, y as getConfig } from "../../../../core-gKJ_V-K5.mjs";
2
- import { t as BaseCommand } from "../../../../base.command-DlVQ9Cqa.mjs";
1
+ import { a as PullService, b as getConfig, p as createApiClient } from "../../../../core-jpFPylBb.mjs";
2
+ import { t as BaseCommand } from "../../../../base.command-YiwlGlKs.mjs";
3
+ import * as os from "os";
3
4
  import chalk from "chalk";
4
5
  import { Flags } from "@oclif/core";
5
6
  //#region src/adapters/oclif/commands/overlays/pull.ts
@@ -28,7 +29,7 @@ var OverlaysPull = class extends BaseCommand {
28
29
  this.warn("No overlays to pull.");
29
30
  return result;
30
31
  }
31
- if (result.notFound.length > 0) this.warn(`The following overlays were not found:\n${result.notFound.map((n) => ` - ${n}`).join("\n")}`);
32
+ if (result.notFound.length > 0) this.warn(`The following overlays were not found:${os.EOL}${result.notFound.map((n) => ` - ${n}`).join(os.EOL)}`);
32
33
  for (const item of result.pulled) this.log(chalk.green(`↓ Pulled: ${item.name} → ${item.filePath}`));
33
34
  for (const e of result.errors) this.log(chalk.red(`✗ Error saving ${e.name}: ${e.error}`));
34
35
  this.log("");
@@ -1,5 +1,5 @@
1
- import { o as PushService, p as createApiClient, y as getConfig } from "../../../../core-gKJ_V-K5.mjs";
2
- import { t as BaseCommand } from "../../../../base.command-DlVQ9Cqa.mjs";
1
+ import { b as getConfig, o as PushService, p as createApiClient } from "../../../../core-jpFPylBb.mjs";
2
+ import { t as BaseCommand } from "../../../../base.command-YiwlGlKs.mjs";
3
3
  import chalk from "chalk";
4
4
  import { Args, Flags } from "@oclif/core";
5
5
  //#region src/adapters/oclif/commands/overlays/push.ts
@@ -1,5 +1,5 @@
1
- import { i as StatusService, p as createApiClient, y as getConfig } from "../../../../core-gKJ_V-K5.mjs";
2
- import { t as BaseCommand } from "../../../../base.command-DlVQ9Cqa.mjs";
1
+ import { b as getConfig, i as StatusService, p as createApiClient } from "../../../../core-jpFPylBb.mjs";
2
+ import { t as BaseCommand } from "../../../../base.command-YiwlGlKs.mjs";
3
3
  import chalk from "chalk";
4
4
  import { Args, Flags } from "@oclif/core";
5
5
  //#region src/adapters/oclif/commands/overlays/status.ts
@@ -1,4 +1,4 @@
1
- import { t as createCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { t as createCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/score-groups/create.ts
3
3
  var create_default = createCommand({
4
4
  resource: "scoreGroups",
@@ -1,4 +1,4 @@
1
- import { n as deleteCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { n as deleteCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/score-groups/delete.ts
3
3
  var delete_default = deleteCommand({
4
4
  resource: "scoreGroups",
@@ -1,4 +1,4 @@
1
- import { r as getCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { r as getCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/score-groups/get.ts
3
3
  var get_default = getCommand({
4
4
  resource: "scoreGroups",
@@ -1,4 +1,4 @@
1
- import { i as listCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { i as listCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/score-groups/list.ts
3
3
  var list_default = listCommand({
4
4
  resource: "scoreGroups",
@@ -1,4 +1,4 @@
1
- import { a as updateCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { a as updateCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/score-groups/update.ts
3
3
  var update_default = updateCommand({
4
4
  resource: "scoreGroups",
@@ -1,4 +1,4 @@
1
- import { t as createCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { t as createCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/scores/create.ts
3
3
  var create_default = createCommand({
4
4
  resource: "scores",
@@ -1,4 +1,4 @@
1
- import { n as deleteCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { n as deleteCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/scores/delete.ts
3
3
  var delete_default = deleteCommand({
4
4
  resource: "scores",
@@ -1,4 +1,4 @@
1
- import { i as listCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { i as listCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/scores/list.ts
3
3
  var list_default = listCommand({
4
4
  resource: "scores",
@@ -1,4 +1,4 @@
1
- import { a as updateCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { a as updateCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/scores/update.ts
3
3
  var update_default = updateCommand({
4
4
  resource: "scores",
@@ -1,4 +1,4 @@
1
- import { t as createCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { t as createCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/segments/create.ts
3
3
  var create_default = createCommand({
4
4
  resource: "segments",
@@ -1,4 +1,4 @@
1
- import { n as deleteCommand } from "../../../../presets-Cvazkjmu.mjs";
1
+ import { n as deleteCommand } from "../../../../presets-D9b6IWKy.mjs";
2
2
  //#region src/adapters/oclif/commands/segments/delete.ts
3
3
  var delete_default = deleteCommand({
4
4
  resource: "segments",