@neetru/cli 1.0.1 → 2.1.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 (192) hide show
  1. package/CHANGELOG.md +136 -0
  2. package/README.md +109 -152
  3. package/dist/commands/add.d.ts +8 -3
  4. package/dist/commands/add.js +70 -143
  5. package/dist/commands/add.js.map +1 -1
  6. package/dist/commands/agent-release.d.ts +13 -0
  7. package/dist/commands/agent-release.js +204 -0
  8. package/dist/commands/agent-release.js.map +1 -0
  9. package/dist/commands/agent-write.d.ts +12 -0
  10. package/dist/commands/agent-write.js +94 -0
  11. package/dist/commands/agent-write.js.map +1 -0
  12. package/dist/commands/ai.d.ts +4 -0
  13. package/dist/commands/ai.js +88 -0
  14. package/dist/commands/ai.js.map +1 -0
  15. package/dist/commands/api-catalog.d.ts +20 -0
  16. package/dist/commands/api-catalog.js +126 -0
  17. package/dist/commands/api-catalog.js.map +1 -0
  18. package/dist/commands/audit.d.ts +8 -0
  19. package/dist/commands/audit.js +69 -0
  20. package/dist/commands/audit.js.map +1 -0
  21. package/dist/commands/autocomplete.d.ts +7 -0
  22. package/dist/commands/autocomplete.js +107 -0
  23. package/dist/commands/autocomplete.js.map +1 -0
  24. package/dist/commands/billing.d.ts +6 -0
  25. package/dist/commands/billing.js +69 -0
  26. package/dist/commands/billing.js.map +1 -0
  27. package/dist/commands/build.d.ts +18 -0
  28. package/dist/commands/build.js +295 -0
  29. package/dist/commands/build.js.map +1 -0
  30. package/dist/commands/cloud-run.d.ts +11 -0
  31. package/dist/commands/cloud-run.js +87 -0
  32. package/dist/commands/cloud-run.js.map +1 -0
  33. package/dist/commands/config.d.ts +3 -0
  34. package/dist/commands/config.js +70 -0
  35. package/dist/commands/config.js.map +1 -0
  36. package/dist/commands/db.d.ts +14 -0
  37. package/dist/commands/db.js +187 -0
  38. package/dist/commands/db.js.map +1 -0
  39. package/dist/commands/deploy.d.ts +23 -3
  40. package/dist/commands/deploy.js +530 -177
  41. package/dist/commands/deploy.js.map +1 -1
  42. package/dist/commands/deployments.d.ts +11 -0
  43. package/dist/commands/deployments.js +69 -0
  44. package/dist/commands/deployments.js.map +1 -0
  45. package/dist/commands/doctor.d.ts +27 -0
  46. package/dist/commands/doctor.js +211 -0
  47. package/dist/commands/doctor.js.map +1 -0
  48. package/dist/commands/dr.d.ts +11 -0
  49. package/dist/commands/dr.js +79 -0
  50. package/dist/commands/dr.js.map +1 -0
  51. package/dist/commands/env.d.ts +15 -0
  52. package/dist/commands/env.js +56 -0
  53. package/dist/commands/env.js.map +1 -0
  54. package/dist/commands/fn.d.ts +6 -0
  55. package/dist/commands/fn.js +87 -0
  56. package/dist/commands/fn.js.map +1 -0
  57. package/dist/commands/infra-read.d.ts +9 -0
  58. package/dist/commands/infra-read.js +113 -0
  59. package/dist/commands/infra-read.js.map +1 -0
  60. package/dist/commands/init.d.ts +10 -3
  61. package/dist/commands/init.js +275 -142
  62. package/dist/commands/init.js.map +1 -1
  63. package/dist/commands/login.d.ts +6 -3
  64. package/dist/commands/login.js +222 -92
  65. package/dist/commands/login.js.map +1 -1
  66. package/dist/commands/logout.d.ts +1 -0
  67. package/dist/commands/logout.js +28 -0
  68. package/dist/commands/logout.js.map +1 -0
  69. package/dist/commands/logs.d.ts +14 -3
  70. package/dist/commands/logs.js +132 -106
  71. package/dist/commands/logs.js.map +1 -1
  72. package/dist/commands/mocks.d.ts +5 -0
  73. package/dist/commands/mocks.js +23 -0
  74. package/dist/commands/mocks.js.map +1 -0
  75. package/dist/commands/open.d.ts +4 -3
  76. package/dist/commands/open.js +53 -85
  77. package/dist/commands/open.js.map +1 -1
  78. package/dist/commands/products-db.d.ts +37 -0
  79. package/dist/commands/products-db.js +230 -0
  80. package/dist/commands/products-db.js.map +1 -0
  81. package/dist/commands/products.d.ts +12 -0
  82. package/dist/commands/products.js +97 -0
  83. package/dist/commands/products.js.map +1 -0
  84. package/dist/commands/promote.d.ts +9 -0
  85. package/dist/commands/promote.js +114 -0
  86. package/dist/commands/promote.js.map +1 -0
  87. package/dist/commands/publish.d.ts +14 -0
  88. package/dist/commands/publish.js +180 -0
  89. package/dist/commands/publish.js.map +1 -0
  90. package/dist/commands/servers.d.ts +23 -0
  91. package/dist/commands/servers.js +166 -0
  92. package/dist/commands/servers.js.map +1 -0
  93. package/dist/commands/status.d.ts +5 -3
  94. package/dist/commands/status.js +91 -93
  95. package/dist/commands/status.js.map +1 -1
  96. package/dist/commands/support.d.ts +25 -0
  97. package/dist/commands/support.js +184 -0
  98. package/dist/commands/support.js.map +1 -0
  99. package/dist/commands/surface-status.d.ts +5 -0
  100. package/dist/commands/surface-status.js +63 -0
  101. package/dist/commands/surface-status.js.map +1 -0
  102. package/dist/commands/tenants.d.ts +34 -0
  103. package/dist/commands/tenants.js +179 -0
  104. package/dist/commands/tenants.js.map +1 -0
  105. package/dist/commands/upgrade.d.ts +12 -0
  106. package/dist/commands/upgrade.js +77 -0
  107. package/dist/commands/upgrade.js.map +1 -0
  108. package/dist/commands/validate.d.ts +1 -3
  109. package/dist/commands/validate.js +83 -91
  110. package/dist/commands/validate.js.map +1 -1
  111. package/dist/commands/whoami.d.ts +5 -3
  112. package/dist/commands/whoami.js +76 -28
  113. package/dist/commands/whoami.js.map +1 -1
  114. package/dist/commands/workspaces.d.ts +15 -0
  115. package/dist/commands/workspaces.js +72 -0
  116. package/dist/commands/workspaces.js.map +1 -0
  117. package/dist/index.d.ts +0 -1
  118. package/dist/index.js +1094 -36
  119. package/dist/index.js.map +1 -1
  120. package/dist/lib/ai/context.d.ts +11 -0
  121. package/dist/lib/ai/context.js +112 -0
  122. package/dist/lib/ai/context.js.map +1 -0
  123. package/dist/lib/ai/orchestrator.d.ts +10 -0
  124. package/dist/lib/ai/orchestrator.js +92 -0
  125. package/dist/lib/ai/orchestrator.js.map +1 -0
  126. package/dist/lib/api-client.d.ts +39 -0
  127. package/dist/lib/api-client.js +185 -0
  128. package/dist/lib/api-client.js.map +1 -0
  129. package/dist/lib/auth.d.ts +15 -0
  130. package/dist/lib/auth.js +98 -0
  131. package/dist/lib/auth.js.map +1 -0
  132. package/dist/lib/cli-read.d.ts +13 -0
  133. package/dist/lib/cli-read.js +103 -0
  134. package/dist/lib/cli-read.js.map +1 -0
  135. package/dist/lib/cli-write.d.ts +47 -0
  136. package/dist/lib/cli-write.js +137 -0
  137. package/dist/lib/cli-write.js.map +1 -0
  138. package/dist/lib/config-schema.d.ts +165 -0
  139. package/dist/lib/config-schema.js +57 -0
  140. package/dist/lib/config-schema.js.map +1 -0
  141. package/dist/lib/config.d.ts +15 -0
  142. package/dist/lib/config.js +33 -0
  143. package/dist/lib/config.js.map +1 -0
  144. package/dist/lib/render.d.ts +16 -0
  145. package/dist/lib/render.js +74 -0
  146. package/dist/lib/render.js.map +1 -0
  147. package/dist/utils/logger.d.ts +13 -0
  148. package/dist/utils/logger.js +27 -0
  149. package/dist/utils/logger.js.map +1 -0
  150. package/package.json +35 -33
  151. package/templates/auth/callback.ts +22 -0
  152. package/templates/auth/sign-in.tsx +41 -0
  153. package/templates/billing/checkout.ts +22 -0
  154. package/templates/billing/page.tsx +43 -0
  155. package/templates/support/ticket-form.tsx +68 -0
  156. package/templates/usage/track.ts +30 -0
  157. package/templates/users/profile.tsx +43 -0
  158. package/LICENSE +0 -21
  159. package/dist/commands/add.d.ts.map +0 -1
  160. package/dist/commands/deploy.d.ts.map +0 -1
  161. package/dist/commands/generate-types.d.ts +0 -3
  162. package/dist/commands/generate-types.d.ts.map +0 -1
  163. package/dist/commands/generate-types.js +0 -150
  164. package/dist/commands/generate-types.js.map +0 -1
  165. package/dist/commands/init.d.ts.map +0 -1
  166. package/dist/commands/login.d.ts.map +0 -1
  167. package/dist/commands/logs.d.ts.map +0 -1
  168. package/dist/commands/open.d.ts.map +0 -1
  169. package/dist/commands/status.d.ts.map +0 -1
  170. package/dist/commands/validate.d.ts.map +0 -1
  171. package/dist/commands/whoami.d.ts.map +0 -1
  172. package/dist/config.d.ts +0 -14
  173. package/dist/config.d.ts.map +0 -1
  174. package/dist/config.js +0 -83
  175. package/dist/config.js.map +0 -1
  176. package/dist/index.d.ts.map +0 -1
  177. package/dist/scaffold/auth.d.ts +0 -3
  178. package/dist/scaffold/auth.d.ts.map +0 -1
  179. package/dist/scaffold/auth.js +0 -228
  180. package/dist/scaffold/auth.js.map +0 -1
  181. package/dist/scaffold/billing.d.ts +0 -3
  182. package/dist/scaffold/billing.d.ts.map +0 -1
  183. package/dist/scaffold/billing.js +0 -184
  184. package/dist/scaffold/billing.js.map +0 -1
  185. package/dist/scaffold/usage.d.ts +0 -3
  186. package/dist/scaffold/usage.d.ts.map +0 -1
  187. package/dist/scaffold/usage.js +0 -173
  188. package/dist/scaffold/usage.js.map +0 -1
  189. package/dist/scaffold/users.d.ts +0 -3
  190. package/dist/scaffold/users.d.ts.map +0 -1
  191. package/dist/scaffold/users.js +0 -135
  192. package/dist/scaffold/users.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,kCA0GC;AAvHD,yCAAoC;AACpC,kDAA0B;AAC1B,8CAAsB;AACtB,6CAA+B;AAC/B,2CAA6B;AAC7B,sCAA6C;AAE7C,8DAA8D;AAC9D,KAAK,UAAU,MAAM,CAAC,SAAwE;IAC5F,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,wDAAa,UAAU,GAAC,CAAC;IACvD,OAAO,QAAQ,CAAC,MAAM,CAAC,SAAgB,CAAC,CAAC;AAC3C,CAAC;AAED,SAAgB,WAAW;IACzB,MAAM,GAAG,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC,CAAC;IAEhC,GAAG;SACA,WAAW,CAAC,iDAAiD,CAAC;SAC9D,MAAM,CAAC,kBAAkB,EAAE,kDAAkD,CAAC;SAC9E,MAAM,CAAC,kBAAkB,EAAE,4CAA4C,CAAC;SACxE,MAAM,CAAC,OAAO,EAAE,gCAAgC,CAAC;SACjD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAE/D,+BAA+B;QAC/B,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACjD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,CAAC;oBAClC,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,eAAK,CAAC,MAAM,CAAC,sCAAsC,CAAC;oBAC7D,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;gBACrC,OAAO;YACT,CAAC;QACH,CAAC;QAED,uDAAuD;QACvD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,MAAM,CAAC,CAAC;gBAChD,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,qBAAqB;gBAC9B,OAAO,EAAE,yBAAyB;gBAClC,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,cAAc;aAChE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAEb,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,MAAM,MAAM,CAAC,CAAC;gBAClD,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,gEAAgE;gBACzE,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,uBAAuB;aACjE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEd,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAEjD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,CAAC;gBACjC,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,iCAAiC;gBAC1C,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,yCAAyC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;oBACjF,EAAE,IAAI,EAAE,iCAAiC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;oBAC5E,EAAE,IAAI,EAAE,6CAA6C,EAAE,KAAK,EAAE,OAAO,EAAE;oBACvE,EAAE,IAAI,EAAE,mCAAmC,EAAE,KAAK,EAAE,OAAO,EAAE;iBAC9D;aACF,CAAC,CAAC,CAAC;QAEJ,sBAAsB;QACtB,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,mCAAmC,CAAC,CAAC,KAAK,EAAE,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,aAAa,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxF,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,6BAA6B,GAAG,CAAC,MAAM,4BAA4B,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QAC7E,CAAC;QAED,oBAAoB;QACpB,IAAA,yBAAgB,EAAC;YACf,OAAO;YACP,QAAQ;YACR,WAAW;YACX,QAAQ;YACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QAEH,6BAA6B;QAC7B,MAAM,OAAO,GAAG,cAAc,CAAC;QAC/B,MAAM,UAAU,GAAG;YACjB,EAAE;YACF,eAAe;YACf,mBAAmB,OAAO,EAAE;YAC5B,oBAAoB,QAAQ,EAAE;YAC9B,8CAA8C;YAC9C,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,OAAO,OAAO,SAAS,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC7C,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;YAC7B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
- import { Command } from 'commander';
2
- export declare function loginCommand(): Command;
3
- //# sourceMappingURL=login.d.ts.map
1
+ interface RunLoginOpts {
2
+ token?: string;
3
+ json?: boolean;
4
+ }
5
+ export declare function runLogin(opts?: RunLoginOpts): Promise<void>;
6
+ export {};
@@ -1,104 +1,234 @@
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.loginCommand = loginCommand;
40
- const commander_1 = require("commander");
41
- const chalk_1 = __importDefault(require("chalk"));
42
- const ora_1 = __importDefault(require("ora"));
43
- const config_1 = require("../config");
44
- async function prompt(questions) {
45
- const { default: inquirer } = await Promise.resolve().then(() => __importStar(require('inquirer')));
46
- return inquirer.prompt(questions);
1
+ /**
2
+ * `neetru login` Device Code OAuth (RFC 8628).
3
+ *
4
+ * Sprint 1: substitui o paste manual de token por fluxo browser-aware.
5
+ *
6
+ * Steps:
7
+ * 1. POST {api}/api/v1/oauth/device/authorize → device_code, user_code,
8
+ * verification_uri, interval, expires_in.
9
+ * 2. Print user_code + abrir browser na verification_uri (best-effort).
10
+ * 3. Polling POST {api}/api/v1/oauth/device/token a cada `interval` s
11
+ * até receber access_token, slow_down (interval+5s) ou erro fatal.
12
+ * 4. Salvar token em ~/.config/neetru-cli/auth.json (chmod 0600).
13
+ * 5. Validar via /api/cli/v1/whoami pra mostrar identidade.
14
+ *
15
+ * Mantém `--token` legado pra CI: pula o flow e salva direto.
16
+ * Suporta `--json` pra ambientes scriptados (saída machine-readable).
17
+ */
18
+ import chalk from 'chalk';
19
+ import ora from 'ora';
20
+ import { spawn } from 'node:child_process';
21
+ import { config } from '../lib/config.js';
22
+ import { saveToken } from '../lib/auth.js';
23
+ import { apiRequest, CliApiError, CliNetworkError } from '../lib/api-client.js';
24
+ import { log } from '../utils/logger.js';
25
+ const TOKEN_PATTERN = /^nrt_[a-z0-9]{8,16}_[A-Za-z0-9_\-=]{20,64}$/;
26
+ const DEVICE_GRANT_TYPE = 'urn:ietf:params:oauth:grant-type:device_code';
27
+ const POLL_TIMEOUT_MS = 10 * 60 * 1000; // 10min
28
+ function emitJson(obj) {
29
+ console.log(JSON.stringify(obj));
47
30
  }
48
- function loginCommand() {
49
- const cmd = new commander_1.Command('login');
50
- cmd
51
- .description('Autentica o CLI com sua API key do Neetru Core')
52
- .option('--core-url <url>', 'URL do Neetru Core', 'https://core.neetru.com')
53
- .option('--api-key <key>', 'API key (opcional, será solicitada interativamente se omitida)')
54
- .action(async (options) => {
55
- console.log('\n' + chalk_1.default.bold.cyan('🔐 Neetru CLILogin'));
56
- console.log(chalk_1.default.dim('Autentique seu CLI para chamar a API do Neetru Core\n'));
57
- const coreUrl = options.coreUrl;
58
- let apiKey = options.apiKey;
59
- if (!apiKey) {
60
- console.log(chalk_1.default.dim('Obtenha sua API key em:'));
61
- console.log(chalk_1.default.cyan(` ${coreUrl}/admin/credentials\n`));
62
- const { key } = await prompt([{
63
- type: 'password',
64
- name: 'key',
65
- message: 'API key:',
66
- mask: '*',
67
- validate: (v) => v.length >= 20 || 'API key parece inválida (muito curta)',
68
- }]);
69
- apiKey = key;
31
+ /**
32
+ * Best-effort cross-platform browser open. Falha silenciosamente — usuário
33
+ * sempre tem fallback de copiar/colar a URL.
34
+ */
35
+ function openBrowser(url) {
36
+ try {
37
+ if (process.platform === 'win32') {
38
+ // Detached `start` via cmd.exeempty title arg is required.
39
+ spawn('cmd', ['/c', 'start', '""', url], {
40
+ detached: true,
41
+ stdio: 'ignore',
42
+ windowsHide: true,
43
+ }).unref();
44
+ return;
45
+ }
46
+ if (process.platform === 'darwin') {
47
+ spawn('open', [url], { detached: true, stdio: 'ignore' }).unref();
48
+ return;
70
49
  }
71
- const spinner = (0, ora_1.default)('Verificando credenciais...').start();
50
+ spawn('xdg-open', [url], { detached: true, stdio: 'ignore' }).unref();
51
+ }
52
+ catch {
53
+ // ignore — caller já printou a URL.
54
+ }
55
+ }
56
+ function sleep(ms) {
57
+ return new Promise((res) => setTimeout(res, ms));
58
+ }
59
+ async function pollForToken(deviceCode, initialIntervalSec, expiresAtMs, json) {
60
+ let intervalMs = initialIntervalSec * 1000;
61
+ const spinner = json
62
+ ? null
63
+ : ora({ text: 'Aguardando aprovação no browser…', color: 'blue' }).start();
64
+ while (Date.now() < expiresAtMs) {
65
+ await sleep(intervalMs);
72
66
  try {
73
- const res = await fetch(`${coreUrl}/api/v1/cli/whoami`, {
74
- headers: { Authorization: `Bearer ${apiKey}` },
75
- signal: AbortSignal.timeout(8000),
67
+ const result = await apiRequest('/api/v1/oauth/device/token', {
68
+ method: 'POST',
69
+ body: {
70
+ grant_type: DEVICE_GRANT_TYPE,
71
+ device_code: deviceCode,
72
+ client_id: 'neetru-cli',
73
+ },
76
74
  });
77
- if (!res.ok) {
78
- spinner.fail(`Falha de autenticação (HTTP ${res.status})`);
79
- if (res.status === 401) {
80
- console.log(chalk_1.default.dim(' → API key inválida ou expirada'));
75
+ spinner?.succeed('Autorização concedida.');
76
+ return result.access_token;
77
+ }
78
+ catch (error) {
79
+ if (error instanceof CliApiError) {
80
+ // Códigos RFC 8628.
81
+ if (error.code === 'authorization_pending') {
82
+ continue;
83
+ }
84
+ if (error.code === 'slow_down') {
85
+ intervalMs += 5_000;
86
+ continue;
87
+ }
88
+ if (error.code === 'access_denied') {
89
+ spinner?.fail('Autorização negada pelo usuário.');
90
+ throw new Error('access_denied');
81
91
  }
82
- process.exit(1);
92
+ if (error.code === 'expired_token') {
93
+ spinner?.fail('Código expirou. Reinicie `neetru login`.');
94
+ throw new Error('expired_token');
95
+ }
96
+ spinner?.fail(`Erro do servidor: ${error.code}`);
97
+ throw new Error(error.code);
98
+ }
99
+ if (error instanceof CliNetworkError) {
100
+ // Trata como transient — segue tentando até timeout.
101
+ continue;
83
102
  }
84
- const data = await res.json();
85
- spinner.succeed(`Autenticado como ${chalk_1.default.cyan(data.email ?? 'usuário')} (${data.role ?? 'role desconhecida'})`);
103
+ spinner?.fail(error.message);
104
+ throw error;
86
105
  }
87
- catch (e) {
88
- spinner.fail(`Erro: ${e.message}`);
106
+ }
107
+ spinner?.fail('Timeout aguardando aprovação.');
108
+ throw new Error('timeout');
109
+ }
110
+ export async function runLogin(opts = {}) {
111
+ const json = !!opts.json;
112
+ if (!json)
113
+ log.banner();
114
+ // ── Path legado: --token <nrt_...> pula o device flow.
115
+ if (opts.token) {
116
+ const token = opts.token.trim();
117
+ if (!TOKEN_PATTERN.test(token)) {
118
+ if (json)
119
+ emitJson({ ok: false, error: 'invalid_token_format' });
120
+ else
121
+ log.error('Token inválido. Formato esperado: nrt_<keyId>_<secret>');
89
122
  process.exit(1);
90
123
  }
91
- // Save to global config
92
- const existing = (0, config_1.readGlobalConfig)();
93
- (0, config_1.writeGlobalConfig)({
94
- ...existing,
95
- coreUrl,
96
- clientSecret: apiKey,
124
+ try {
125
+ const me = await apiRequest('/api/cli/v1/whoami', { token });
126
+ const path = await saveToken(token, me.email);
127
+ // Compat: alguns comandos legados ainda leem do Conf.
128
+ config.set('neetruApiKey', token);
129
+ if (json) {
130
+ emitJson({ ok: true, email: me.email, role: me.role, path });
131
+ }
132
+ else {
133
+ log.success(`Logado como ${chalk.bold(me.email)} (role: ${chalk.bold(me.role)})`);
134
+ log.dim(`Token salvo em ${path}`);
135
+ }
136
+ process.exit(0);
137
+ }
138
+ catch (err) {
139
+ handleFatalAuthError(err, json);
140
+ }
141
+ return;
142
+ }
143
+ // ── Device Code flow.
144
+ let authResp;
145
+ try {
146
+ authResp = await apiRequest('/api/v1/oauth/device/authorize', {
147
+ method: 'POST',
148
+ body: { client_id: 'neetru-cli' },
149
+ });
150
+ }
151
+ catch (err) {
152
+ if (json)
153
+ emitJson({ ok: false, error: 'authorize_failed', message: err.message });
154
+ else
155
+ log.error(`Falha ao iniciar login: ${err.message}`);
156
+ process.exit(2);
157
+ return;
158
+ }
159
+ const verifyUrl = authResp.verification_uri_complete ?? authResp.verification_uri;
160
+ if (json) {
161
+ emitJson({
162
+ ok: true,
163
+ stage: 'awaiting_approval',
164
+ user_code: authResp.user_code,
165
+ verification_uri: authResp.verification_uri,
166
+ verification_uri_complete: authResp.verification_uri_complete ?? null,
167
+ expires_in: authResp.expires_in,
97
168
  });
98
- console.log('\n' + chalk_1.default.green.bold('✓ Login efetuado'));
99
- console.log(chalk_1.default.dim('Credenciais salvas em ~/.neetru/config.json'));
100
- console.log('');
101
- });
102
- return cmd;
169
+ }
170
+ else {
171
+ console.log();
172
+ console.log(` ${chalk.dim('Código de verificação')}`);
173
+ console.log(` ${chalk.bold.cyan(authResp.user_code)}`);
174
+ console.log();
175
+ console.log(` ${chalk.dim('Verifique em')} ${chalk.underline(authResp.verification_uri)}`);
176
+ console.log();
177
+ }
178
+ openBrowser(verifyUrl);
179
+ const expiresAtMs = Date.now() + Math.min(authResp.expires_in * 1000, POLL_TIMEOUT_MS);
180
+ let accessToken;
181
+ try {
182
+ accessToken = await pollForToken(authResp.device_code, authResp.interval ?? 5, expiresAtMs, json);
183
+ }
184
+ catch (err) {
185
+ const message = err.message;
186
+ if (json)
187
+ emitJson({ ok: false, error: message });
188
+ else
189
+ log.error(`Login falhou: ${message}`);
190
+ process.exit(1);
191
+ return;
192
+ }
193
+ // Valida + persiste.
194
+ try {
195
+ const me = await apiRequest('/api/cli/v1/whoami', { token: accessToken });
196
+ const path = await saveToken(accessToken, me.email);
197
+ // Compat: legacy commands podem usar Conf — mantemos o token lá também.
198
+ config.set('neetruApiKey', accessToken);
199
+ if (json) {
200
+ emitJson({ ok: true, email: me.email, role: me.role, path });
201
+ }
202
+ else {
203
+ console.log();
204
+ log.success(`Logado como ${chalk.bold(me.email)} (role: ${chalk.bold(me.role)})`);
205
+ log.dim(`Token salvo em ${path}`);
206
+ }
207
+ process.exit(0);
208
+ }
209
+ catch (err) {
210
+ handleFatalAuthError(err, json);
211
+ }
212
+ }
213
+ function handleFatalAuthError(err, json) {
214
+ if (err instanceof CliApiError) {
215
+ if (json)
216
+ emitJson({ ok: false, status: err.status, error: err.code, message: err.message });
217
+ else
218
+ log.error(`Servidor retornou ${err.status}: ${err.message}`);
219
+ process.exit(err.status === 401 || err.status === 403 ? 1 : 2);
220
+ }
221
+ if (err instanceof CliNetworkError) {
222
+ if (json)
223
+ emitJson({ ok: false, error: 'network', message: err.message });
224
+ else
225
+ log.error(err.message);
226
+ process.exit(2);
227
+ }
228
+ if (json)
229
+ emitJson({ ok: false, error: 'unknown', message: err.message });
230
+ else
231
+ log.error(err.message);
232
+ process.exit(2);
103
233
  }
104
234
  //# sourceMappingURL=login.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function runLogout(): Promise<void>;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * `neetru logout` — limpa credenciais locais.
3
+ *
4
+ * Sprint 1: arquivo canônico é ~/.config/neetru-cli/auth.json.
5
+ * Mantemos cleanup do Conf storage legado por compat com sessões antigas.
6
+ */
7
+ import { config } from '../lib/config.js';
8
+ import { clearToken, getAuthFilePath } from '../lib/auth.js';
9
+ import { log } from '../utils/logger.js';
10
+ export async function runLogout() {
11
+ let removed = false;
12
+ try {
13
+ if (await clearToken())
14
+ removed = true;
15
+ }
16
+ catch (err) {
17
+ log.warn(`Falha ao remover ${getAuthFilePath()}: ${err.message}`);
18
+ }
19
+ if (config.get('neetruApiKey')) {
20
+ config.delete('neetruApiKey');
21
+ removed = true;
22
+ }
23
+ if (removed)
24
+ log.success('Sessão local apagada.');
25
+ else
26
+ log.warn('Nenhuma sessão ativa.');
27
+ }
28
+ //# sourceMappingURL=logout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,IAAI,CAAC;QACH,IAAI,MAAM,UAAU,EAAE;YAAE,OAAO,GAAG,IAAI,CAAC;IACzC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,oBAAoB,eAAe,EAAE,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC9B,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,IAAI,OAAO;QAAE,GAAG,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;;QAC7C,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACzC,CAAC"}
@@ -1,3 +1,14 @@
1
- import { Command } from 'commander';
2
- export declare function logsCommand(): Command;
3
- //# sourceMappingURL=logs.d.ts.map
1
+ export interface LogsOptions {
2
+ clientId?: string;
3
+ follow?: boolean;
4
+ lines?: string;
5
+ since?: string;
6
+ level?: string;
7
+ /** v1.3 — filtrar por productId (corresponde a `logs/{productId}/...`). */
8
+ product?: string;
9
+ /** v1.3 — filtrar por channel (`stdout` | `stderr` | `app` etc). */
10
+ channel?: string;
11
+ /** v1.3 — buscar logs com `correlationId == <uuid>`. */
12
+ correlationId?: string;
13
+ }
14
+ export declare function runLogs(opts: LogsOptions): Promise<void>;