estela 0.2.0 → 0.2.2

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 (305) hide show
  1. package/README.md +5 -2
  2. package/dist/statusline-cache.d.ts +39 -10
  3. package/dist/statusline-cache.js +47 -14
  4. package/dist/statusline-run.js +11 -7
  5. package/dist/statusline.d.ts +2 -0
  6. package/dist/statusline.js +35 -21
  7. package/package.json +3 -1
  8. package/dist/billing/amortize.d.ts.map +0 -1
  9. package/dist/billing/amortize.js.map +0 -1
  10. package/dist/billing/amortize.test.d.ts +0 -2
  11. package/dist/billing/amortize.test.d.ts.map +0 -1
  12. package/dist/billing/amortize.test.js +0 -121
  13. package/dist/billing/amortize.test.js.map +0 -1
  14. package/dist/billing/assign.d.ts.map +0 -1
  15. package/dist/billing/assign.js.map +0 -1
  16. package/dist/billing/assign.test.d.ts +0 -2
  17. package/dist/billing/assign.test.d.ts.map +0 -1
  18. package/dist/billing/assign.test.js +0 -153
  19. package/dist/billing/assign.test.js.map +0 -1
  20. package/dist/billing/format.test.d.ts +0 -2
  21. package/dist/billing/format.test.d.ts.map +0 -1
  22. package/dist/billing/format.test.js +0 -110
  23. package/dist/billing/format.test.js.map +0 -1
  24. package/dist/billing/invoice.d.ts.map +0 -1
  25. package/dist/billing/invoice.js.map +0 -1
  26. package/dist/billing/invoice.test.d.ts +0 -2
  27. package/dist/billing/invoice.test.d.ts.map +0 -1
  28. package/dist/billing/invoice.test.js +0 -200
  29. package/dist/billing/invoice.test.js.map +0 -1
  30. package/dist/billing/localize.d.ts.map +0 -1
  31. package/dist/billing/localize.js.map +0 -1
  32. package/dist/billing/localize.test.d.ts +0 -2
  33. package/dist/billing/localize.test.d.ts.map +0 -1
  34. package/dist/billing/localize.test.js +0 -144
  35. package/dist/billing/localize.test.js.map +0 -1
  36. package/dist/billing/sessionize.d.ts.map +0 -1
  37. package/dist/billing/sessionize.js.map +0 -1
  38. package/dist/billing/sessionize.test.d.ts +0 -2
  39. package/dist/billing/sessionize.test.d.ts.map +0 -1
  40. package/dist/billing/sessionize.test.js +0 -187
  41. package/dist/billing/sessionize.test.js.map +0 -1
  42. package/dist/billing.d.ts.map +0 -1
  43. package/dist/billing.js.map +0 -1
  44. package/dist/bin.d.ts.map +0 -1
  45. package/dist/bin.js.map +0 -1
  46. package/dist/cli-badge.test.d.ts +0 -2
  47. package/dist/cli-badge.test.d.ts.map +0 -1
  48. package/dist/cli-badge.test.js +0 -118
  49. package/dist/cli-badge.test.js.map +0 -1
  50. package/dist/cli-idioma.test.d.ts +0 -2
  51. package/dist/cli-idioma.test.d.ts.map +0 -1
  52. package/dist/cli-idioma.test.js +0 -190
  53. package/dist/cli-idioma.test.js.map +0 -1
  54. package/dist/cli-import-recover.test.d.ts +0 -2
  55. package/dist/cli-import-recover.test.d.ts.map +0 -1
  56. package/dist/cli-import-recover.test.js +0 -191
  57. package/dist/cli-import-recover.test.js.map +0 -1
  58. package/dist/cli-quota.test.d.ts +0 -2
  59. package/dist/cli-quota.test.d.ts.map +0 -1
  60. package/dist/cli-quota.test.js +0 -281
  61. package/dist/cli-quota.test.js.map +0 -1
  62. package/dist/cli-statusline.test.d.ts +0 -2
  63. package/dist/cli-statusline.test.d.ts.map +0 -1
  64. package/dist/cli-statusline.test.js +0 -333
  65. package/dist/cli-statusline.test.js.map +0 -1
  66. package/dist/cli.d.ts.map +0 -1
  67. package/dist/cli.js.map +0 -1
  68. package/dist/cloud/auth.d.ts.map +0 -1
  69. package/dist/cloud/auth.js.map +0 -1
  70. package/dist/cloud/client.d.ts.map +0 -1
  71. package/dist/cloud/client.js.map +0 -1
  72. package/dist/cloud/errors.test.d.ts +0 -2
  73. package/dist/cloud/errors.test.d.ts.map +0 -1
  74. package/dist/cloud/errors.test.js +0 -34
  75. package/dist/cloud/errors.test.js.map +0 -1
  76. package/dist/db/schema.d.ts.map +0 -1
  77. package/dist/db/schema.js.map +0 -1
  78. package/dist/db/schema.test.d.ts +0 -2
  79. package/dist/db/schema.test.d.ts.map +0 -1
  80. package/dist/db/schema.test.js +0 -825
  81. package/dist/db/schema.test.js.map +0 -1
  82. package/dist/db/store.d.ts.map +0 -1
  83. package/dist/db/store.js.map +0 -1
  84. package/dist/demo.d.ts.map +0 -1
  85. package/dist/demo.js.map +0 -1
  86. package/dist/demo.test.d.ts +0 -2
  87. package/dist/demo.test.d.ts.map +0 -1
  88. package/dist/demo.test.js +0 -148
  89. package/dist/demo.test.js.map +0 -1
  90. package/dist/doctor.d.ts.map +0 -1
  91. package/dist/doctor.js.map +0 -1
  92. package/dist/doctor.test.d.ts +0 -2
  93. package/dist/doctor.test.d.ts.map +0 -1
  94. package/dist/doctor.test.js +0 -167
  95. package/dist/doctor.test.js.map +0 -1
  96. package/dist/export/badge.d.ts.map +0 -1
  97. package/dist/export/badge.js.map +0 -1
  98. package/dist/export/badge.test.d.ts +0 -2
  99. package/dist/export/badge.test.d.ts.map +0 -1
  100. package/dist/export/badge.test.js +0 -32
  101. package/dist/export/badge.test.js.map +0 -1
  102. package/dist/export/clockify.d.ts.map +0 -1
  103. package/dist/export/clockify.js.map +0 -1
  104. package/dist/export/clockify.test.d.ts +0 -2
  105. package/dist/export/clockify.test.d.ts.map +0 -1
  106. package/dist/export/clockify.test.js +0 -51
  107. package/dist/export/clockify.test.js.map +0 -1
  108. package/dist/export/csv.d.ts.map +0 -1
  109. package/dist/export/csv.js.map +0 -1
  110. package/dist/export/dates.d.ts.map +0 -1
  111. package/dist/export/dates.js.map +0 -1
  112. package/dist/export/idioma.test.d.ts +0 -2
  113. package/dist/export/idioma.test.d.ts.map +0 -1
  114. package/dist/export/idioma.test.js +0 -255
  115. package/dist/export/idioma.test.js.map +0 -1
  116. package/dist/export/invoice-pdf.d.ts.map +0 -1
  117. package/dist/export/invoice-pdf.js.map +0 -1
  118. package/dist/export/panel.d.ts.map +0 -1
  119. package/dist/export/panel.js.map +0 -1
  120. package/dist/export/panel.test.d.ts +0 -2
  121. package/dist/export/panel.test.d.ts.map +0 -1
  122. package/dist/export/panel.test.js +0 -386
  123. package/dist/export/panel.test.js.map +0 -1
  124. package/dist/export/pdf.d.ts.map +0 -1
  125. package/dist/export/pdf.js.map +0 -1
  126. package/dist/export/pdf.test.d.ts +0 -2
  127. package/dist/export/pdf.test.d.ts.map +0 -1
  128. package/dist/export/pdf.test.js +0 -172
  129. package/dist/export/pdf.test.js.map +0 -1
  130. package/dist/export/pixelfont.d.ts.map +0 -1
  131. package/dist/export/pixelfont.js.map +0 -1
  132. package/dist/export/png.d.ts.map +0 -1
  133. package/dist/export/png.js.map +0 -1
  134. package/dist/export/receipt.d.ts.map +0 -1
  135. package/dist/export/receipt.js.map +0 -1
  136. package/dist/export/receipt.test.d.ts +0 -2
  137. package/dist/export/receipt.test.d.ts.map +0 -1
  138. package/dist/export/receipt.test.js +0 -207
  139. package/dist/export/receipt.test.js.map +0 -1
  140. package/dist/export/share.d.ts.map +0 -1
  141. package/dist/export/share.js.map +0 -1
  142. package/dist/export/share.test.d.ts +0 -2
  143. package/dist/export/share.test.d.ts.map +0 -1
  144. package/dist/export/share.test.js +0 -116
  145. package/dist/export/share.test.js.map +0 -1
  146. package/dist/i18n/en.d.ts.map +0 -1
  147. package/dist/i18n/en.js.map +0 -1
  148. package/dist/i18n/i18n.test.d.ts +0 -2
  149. package/dist/i18n/i18n.test.d.ts.map +0 -1
  150. package/dist/i18n/i18n.test.js +0 -226
  151. package/dist/i18n/i18n.test.js.map +0 -1
  152. package/dist/i18n/index.d.ts.map +0 -1
  153. package/dist/i18n/index.js.map +0 -1
  154. package/dist/i18n/labels.d.ts.map +0 -1
  155. package/dist/i18n/labels.js.map +0 -1
  156. package/dist/metrics/index.d.ts.map +0 -1
  157. package/dist/metrics/index.js.map +0 -1
  158. package/dist/metrics/metrics.test.d.ts +0 -2
  159. package/dist/metrics/metrics.test.d.ts.map +0 -1
  160. package/dist/metrics/metrics.test.js +0 -162
  161. package/dist/metrics/metrics.test.js.map +0 -1
  162. package/dist/metrics/people.d.ts.map +0 -1
  163. package/dist/metrics/people.js.map +0 -1
  164. package/dist/metrics/people.test.d.ts +0 -2
  165. package/dist/metrics/people.test.d.ts.map +0 -1
  166. package/dist/metrics/people.test.js +0 -92
  167. package/dist/metrics/people.test.js.map +0 -1
  168. package/dist/metrics/quota.d.ts.map +0 -1
  169. package/dist/metrics/quota.js.map +0 -1
  170. package/dist/metrics/quota.test.d.ts +0 -2
  171. package/dist/metrics/quota.test.d.ts.map +0 -1
  172. package/dist/metrics/quota.test.js +0 -325
  173. package/dist/metrics/quota.test.js.map +0 -1
  174. package/dist/metrics/team.d.ts.map +0 -1
  175. package/dist/metrics/team.js.map +0 -1
  176. package/dist/metrics/team.test.d.ts +0 -2
  177. package/dist/metrics/team.test.d.ts.map +0 -1
  178. package/dist/metrics/team.test.js +0 -90
  179. package/dist/metrics/team.test.js.map +0 -1
  180. package/dist/node-version.d.ts.map +0 -1
  181. package/dist/node-version.js.map +0 -1
  182. package/dist/node-version.test.d.ts +0 -2
  183. package/dist/node-version.test.d.ts.map +0 -1
  184. package/dist/node-version.test.js +0 -53
  185. package/dist/node-version.test.js.map +0 -1
  186. package/dist/paths.d.ts.map +0 -1
  187. package/dist/paths.js.map +0 -1
  188. package/dist/paths.test.d.ts +0 -2
  189. package/dist/paths.test.d.ts.map +0 -1
  190. package/dist/paths.test.js +0 -32
  191. package/dist/paths.test.js.map +0 -1
  192. package/dist/pricing/catalog.d.ts.map +0 -1
  193. package/dist/pricing/catalog.js.map +0 -1
  194. package/dist/pricing/cost.d.ts.map +0 -1
  195. package/dist/pricing/cost.js.map +0 -1
  196. package/dist/pricing/cost.test.d.ts +0 -2
  197. package/dist/pricing/cost.test.d.ts.map +0 -1
  198. package/dist/pricing/cost.test.js +0 -100
  199. package/dist/pricing/cost.test.js.map +0 -1
  200. package/dist/project-of.d.ts.map +0 -1
  201. package/dist/project-of.js.map +0 -1
  202. package/dist/project-of.test.d.ts +0 -2
  203. package/dist/project-of.test.d.ts.map +0 -1
  204. package/dist/project-of.test.js +0 -203
  205. package/dist/project-of.test.js.map +0 -1
  206. package/dist/publish.d.ts.map +0 -1
  207. package/dist/publish.js.map +0 -1
  208. package/dist/publish.test.d.ts +0 -2
  209. package/dist/publish.test.d.ts.map +0 -1
  210. package/dist/publish.test.js +0 -113
  211. package/dist/publish.test.js.map +0 -1
  212. package/dist/quota.d.ts.map +0 -1
  213. package/dist/quota.js.map +0 -1
  214. package/dist/server.d.ts.map +0 -1
  215. package/dist/server.js.map +0 -1
  216. package/dist/server.test.d.ts +0 -2
  217. package/dist/server.test.d.ts.map +0 -1
  218. package/dist/server.test.js +0 -402
  219. package/dist/server.test.js.map +0 -1
  220. package/dist/setup.d.ts.map +0 -1
  221. package/dist/setup.js.map +0 -1
  222. package/dist/setup.test.d.ts +0 -2
  223. package/dist/setup.test.d.ts.map +0 -1
  224. package/dist/setup.test.js +0 -144
  225. package/dist/setup.test.js.map +0 -1
  226. package/dist/statusline-cache.d.ts.map +0 -1
  227. package/dist/statusline-cache.js.map +0 -1
  228. package/dist/statusline-install.d.ts.map +0 -1
  229. package/dist/statusline-install.js.map +0 -1
  230. package/dist/statusline-run.d.ts.map +0 -1
  231. package/dist/statusline-run.js.map +0 -1
  232. package/dist/statusline.d.ts.map +0 -1
  233. package/dist/statusline.js.map +0 -1
  234. package/dist/statusline.test.d.ts +0 -2
  235. package/dist/statusline.test.d.ts.map +0 -1
  236. package/dist/statusline.test.js +0 -197
  237. package/dist/statusline.test.js.map +0 -1
  238. package/dist/sync/team.d.ts.map +0 -1
  239. package/dist/sync/team.js.map +0 -1
  240. package/dist/sync/team.test.d.ts +0 -2
  241. package/dist/sync/team.test.d.ts.map +0 -1
  242. package/dist/sync/team.test.js +0 -102
  243. package/dist/sync/team.test.js.map +0 -1
  244. package/dist/sync.d.ts.map +0 -1
  245. package/dist/sync.js.map +0 -1
  246. package/dist/sync.test.d.ts +0 -2
  247. package/dist/sync.test.d.ts.map +0 -1
  248. package/dist/sync.test.js +0 -151
  249. package/dist/sync.test.js.map +0 -1
  250. package/dist/team.d.ts.map +0 -1
  251. package/dist/team.js.map +0 -1
  252. package/dist/team.test.d.ts +0 -2
  253. package/dist/team.test.d.ts.map +0 -1
  254. package/dist/team.test.js +0 -163
  255. package/dist/team.test.js.map +0 -1
  256. package/dist/updateCheck.d.ts.map +0 -1
  257. package/dist/updateCheck.js.map +0 -1
  258. package/dist/updateCheck.test.d.ts +0 -2
  259. package/dist/updateCheck.test.d.ts.map +0 -1
  260. package/dist/updateCheck.test.js +0 -27
  261. package/dist/updateCheck.test.js.map +0 -1
  262. package/dist/watchers/agents.d.ts.map +0 -1
  263. package/dist/watchers/agents.js.map +0 -1
  264. package/dist/watchers/agents.test.d.ts +0 -2
  265. package/dist/watchers/agents.test.d.ts.map +0 -1
  266. package/dist/watchers/agents.test.js +0 -96
  267. package/dist/watchers/agents.test.js.map +0 -1
  268. package/dist/watchers/claude.d.ts.map +0 -1
  269. package/dist/watchers/claude.js.map +0 -1
  270. package/dist/watchers/claude.test.d.ts +0 -2
  271. package/dist/watchers/claude.test.d.ts.map +0 -1
  272. package/dist/watchers/claude.test.js +0 -180
  273. package/dist/watchers/claude.test.js.map +0 -1
  274. package/dist/watchers/codex.d.ts.map +0 -1
  275. package/dist/watchers/codex.js.map +0 -1
  276. package/dist/watchers/codex.test.d.ts +0 -2
  277. package/dist/watchers/codex.test.d.ts.map +0 -1
  278. package/dist/watchers/codex.test.js +0 -207
  279. package/dist/watchers/codex.test.js.map +0 -1
  280. package/dist/watchers/copilot.d.ts.map +0 -1
  281. package/dist/watchers/copilot.js.map +0 -1
  282. package/dist/watchers/copilot.test.d.ts +0 -2
  283. package/dist/watchers/copilot.test.d.ts.map +0 -1
  284. package/dist/watchers/copilot.test.js +0 -98
  285. package/dist/watchers/copilot.test.js.map +0 -1
  286. package/dist/watchers/git.d.ts.map +0 -1
  287. package/dist/watchers/git.js.map +0 -1
  288. package/dist/watchers/git.test.d.ts +0 -2
  289. package/dist/watchers/git.test.d.ts.map +0 -1
  290. package/dist/watchers/git.test.js +0 -75
  291. package/dist/watchers/git.test.js.map +0 -1
  292. package/dist/watchers/identity.d.ts.map +0 -1
  293. package/dist/watchers/identity.js.map +0 -1
  294. package/dist/watchers/identity.test.d.ts +0 -2
  295. package/dist/watchers/identity.test.d.ts.map +0 -1
  296. package/dist/watchers/identity.test.js +0 -48
  297. package/dist/watchers/identity.test.js.map +0 -1
  298. package/dist/web-ui.test.d.ts +0 -2
  299. package/dist/web-ui.test.d.ts.map +0 -1
  300. package/dist/web-ui.test.js +0 -414
  301. package/dist/web-ui.test.js.map +0 -1
  302. package/dist/workitems.test.d.ts +0 -2
  303. package/dist/workitems.test.d.ts.map +0 -1
  304. package/dist/workitems.test.js +0 -59
  305. package/dist/workitems.test.js.map +0 -1
@@ -1,32 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const strict_1 = __importDefault(require("node:assert/strict"));
7
- const node_test_1 = require("node:test");
8
- const paths_js_1 = require("./paths.js");
9
- (0, node_test_1.test)("una ruta de Windows queda igual venga del agente o de git", () => {
10
- strict_1.default.equal((0, paths_js_1.normalizePath)("C:\\Users\\ana\\repo"), "C:/Users/ana/repo");
11
- strict_1.default.equal((0, paths_js_1.normalizePath)("c:/Users/ana/repo/"), "C:/Users/ana/repo");
12
- strict_1.default.equal((0, paths_js_1.normalizePath)("C:\\Users\\ana\\\\repo\\"), "C:/Users/ana/repo");
13
- strict_1.default.equal((0, paths_js_1.normalizePath)("C:\\"), "C:/");
14
- strict_1.default.equal((0, paths_js_1.normalizePath)("\\\\servidor\\equipo\\repo"), "//servidor/equipo/repo");
15
- // macOS y Linux no se tocan, ni siquiera la barra del final.
16
- strict_1.default.equal((0, paths_js_1.normalizePath)("/Users/ana/repo"), "/Users/ana/repo");
17
- strict_1.default.equal((0, paths_js_1.normalizePath)("/home/ana/mi\\carpeta"), "/home/ana/mi\\carpeta");
18
- });
19
- (0, node_test_1.test)("dentro de un repo, con barras y mayúsculas de Windows mezcladas", () => {
20
- strict_1.default.ok((0, paths_js_1.isSameOrInside)("C:\\Users\\Ana\\repo\\src\\UI", "C:/Users/ana/repo"));
21
- strict_1.default.ok((0, paths_js_1.isSameOrInside)("c:\\users\\ana\\repo", "C:/Users/Ana/repo"));
22
- strict_1.default.ok(!(0, paths_js_1.isSameOrInside)("C:\\Users\\ana\\repo2", "C:/Users/ana/repo"));
23
- // En macOS y Linux las mayúsculas sí cuentan.
24
- strict_1.default.ok((0, paths_js_1.isSameOrInside)("/Users/ana/repo/src", "/Users/ana/repo"));
25
- strict_1.default.ok(!(0, paths_js_1.isSameOrInside)("/Users/ana/Repo", "/Users/ana/repo"));
26
- strict_1.default.ok(!(0, paths_js_1.isSameOrInside)("/Users/ana/repo2", "/Users/ana/repo"));
27
- });
28
- (0, node_test_1.test)("el nombre de un repositorio, en cualquier sistema", () => {
29
- strict_1.default.equal((0, paths_js_1.baseName)("C:\\Users\\ana\\tienda-acme"), "tienda-acme");
30
- strict_1.default.equal((0, paths_js_1.baseName)("/home/ana/tienda-acme/"), "tienda-acme");
31
- });
32
- //# sourceMappingURL=paths.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paths.test.js","sourceRoot":"","sources":["../src/paths.test.ts"],"names":[],"mappings":";;;;;AAAA,gEAAwC;AACxC,yCAAiC;AAEjC,yCAAqE;AAErE,IAAA,gBAAI,EAAC,2DAA2D,EAAE,GAAG,EAAE;IACrE,gBAAM,CAAC,KAAK,CAAC,IAAA,wBAAa,EAAC,sBAAsB,CAAC,EAAE,mBAAmB,CAAC,CAAC;IACzE,gBAAM,CAAC,KAAK,CAAC,IAAA,wBAAa,EAAC,oBAAoB,CAAC,EAAE,mBAAmB,CAAC,CAAC;IACvE,gBAAM,CAAC,KAAK,CAAC,IAAA,wBAAa,EAAC,0BAA0B,CAAC,EAAE,mBAAmB,CAAC,CAAC;IAC7E,gBAAM,CAAC,KAAK,CAAC,IAAA,wBAAa,EAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3C,gBAAM,CAAC,KAAK,CAAC,IAAA,wBAAa,EAAC,4BAA4B,CAAC,EAAE,wBAAwB,CAAC,CAAC;IACpF,6DAA6D;IAC7D,gBAAM,CAAC,KAAK,CAAC,IAAA,wBAAa,EAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAClE,gBAAM,CAAC,KAAK,CAAC,IAAA,wBAAa,EAAC,uBAAuB,CAAC,EAAE,uBAAuB,CAAC,CAAC;AAChF,CAAC,CAAC,CAAC;AAEH,IAAA,gBAAI,EAAC,iEAAiE,EAAE,GAAG,EAAE;IAC3E,gBAAM,CAAC,EAAE,CAAC,IAAA,yBAAc,EAAC,+BAA+B,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAChF,gBAAM,CAAC,EAAE,CAAC,IAAA,yBAAc,EAAC,sBAAsB,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACvE,gBAAM,CAAC,EAAE,CAAC,CAAC,IAAA,yBAAc,EAAC,uBAAuB,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACzE,8CAA8C;IAC9C,gBAAM,CAAC,EAAE,CAAC,IAAA,yBAAc,EAAC,qBAAqB,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACpE,gBAAM,CAAC,EAAE,CAAC,CAAC,IAAA,yBAAc,EAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACjE,gBAAM,CAAC,EAAE,CAAC,CAAC,IAAA,yBAAc,EAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC,CAAC;AACpE,CAAC,CAAC,CAAC;AAEH,IAAA,gBAAI,EAAC,mDAAmD,EAAE,GAAG,EAAE;IAC7D,gBAAM,CAAC,KAAK,CAAC,IAAA,mBAAQ,EAAC,6BAA6B,CAAC,EAAE,aAAa,CAAC,CAAC;IACrE,gBAAM,CAAC,KAAK,CAAC,IAAA,mBAAQ,EAAC,wBAAwB,CAAC,EAAE,aAAa,CAAC,CAAC;AAClE,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/pricing/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,UAAU;IACzB,uDAAuD;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,uDAAuD;IACvD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,0CAA0C;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;CACzC;AAQD;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,UAAU,EAuC9C,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,GAAG,UAAU,GAAG,IAAI,CAWvE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/pricing/catalog.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../src/pricing/cost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGzD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAapF;AAED,mFAAmF;AACnF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,GAAG,aAAa,GAAG,IAAI,CAuBhG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cost.js","sourceRoot":"","sources":["../../src/pricing/cost.ts"],"names":[],"mappings":";;AAcA,gCAaC;AAaD,0CAuBC;AA9DD,6CAA4C;AAE5C;;;;;;;;;;GAUG;AACH,SAAgB,UAAU,CAAC,KAAiB,EAAE,KAAa,EAAE,EAAQ;IACnE,MAAM,KAAK,GAAG,IAAA,yBAAY,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC;IAChD,MAAM,GAAG,GACP,KAAK,CAAC,KAAK,GAAG,QAAQ;QACtB,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;QAChD,KAAK,CAAC,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC,mBAAmB;QACtD,KAAK,CAAC,YAAY,GAAG,QAAQ,GAAG,KAAK,CAAC,sBAAsB;QAC5D,KAAK,CAAC,YAAY,GAAG,QAAQ,GAAG,KAAK,CAAC,sBAAsB,CAAC;IAE/D,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC;AACnD,CAAC;AAaD,SAAgB,eAAe,CAAC,KAAiB,EAAE,KAAa,EAAE,EAAQ;IACxE,MAAM,KAAK,GAAG,IAAA,yBAAY,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC;IAChD,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;IAE3D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAChF,MAAM,UAAU,GAAG,KAAK,CACtB,KAAK,CAAC,YAAY,GAAG,QAAQ,GAAG,KAAK,CAAC,sBAAsB;QAC5D,KAAK,CAAC,YAAY,GAAG,QAAQ,GAAG,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAEhE,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IACtD,OAAO;QACL,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC1B,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;QAC5B,SAAS,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;QAClC,UAAU,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE;QACpC,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC1B,UAAU,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,KAAK;KAC/D,CAAC;AACJ,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=cost.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cost.test.d.ts","sourceRoot":"","sources":["../../src/pricing/cost.test.ts"],"names":[],"mappings":""}
@@ -1,100 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const strict_1 = __importDefault(require("node:assert/strict"));
7
- const node_test_1 = require("node:test");
8
- const cost_js_1 = require("./cost.js");
9
- const catalog_js_1 = require("./catalog.js");
10
- const AT = new Date("2026-08-21T12:27:42.626Z");
11
- /**
12
- * Caso dorado, medido sobre un transcript real de Claude Code (445 líneas,
13
- * 186 filas `assistant`, 65 turnos únicos). Estos totales son los deduplicados.
14
- *
15
- * Si este test se cae, o cambió el catálogo de precios o cambió el parser: en
16
- * ambos casos hay que revisarlo antes de emitir una factura.
17
- */
18
- const GOLDEN = {
19
- input: 130,
20
- output: 59_962,
21
- cacheRead: 5_713_309,
22
- cacheWrite5m: 0,
23
- cacheWrite1h: 366_030,
24
- };
25
- (0, node_test_1.test)("coste dorado de una sesión real de Opus 5", () => {
26
- const cost = (0, cost_js_1.costOfTurn)(GOLDEN, "claude-opus-5", AT);
27
- strict_1.default.ok(cost);
28
- // input 130 * $5/1M = $0.0006500
29
- // output 59.962 * $25/1M = $1.4990500
30
- // cacheRead 5.713.309 * $5/1M * 0.1 = $2.8566545
31
- // cacheWrite1h 366.030 * $5/1M * 2 = $3.6603000
32
- // = $8.0166545
33
- strict_1.default.equal(cost.microUsd, 8_016_655);
34
- strict_1.default.equal((cost.microUsd / 1e6).toFixed(2), "8.02");
35
- });
36
- (0, node_test_1.test)("ignorar la caché infravalora el coste más de 5x", () => {
37
- const real = (0, cost_js_1.costOfTurn)(GOLDEN, "claude-opus-5", AT);
38
- const naive = (0, cost_js_1.costOfTurn)({ ...GOLDEN, cacheRead: 0, cacheWrite5m: 0, cacheWrite1h: 0 }, "claude-opus-5", AT);
39
- strict_1.default.equal((naive.microUsd / 1e6).toFixed(2), "1.50");
40
- strict_1.default.ok(real.microUsd / naive.microUsd > 5, `esperado >5x, obtenido ${(real.microUsd / naive.microUsd).toFixed(1)}x`);
41
- });
42
- (0, node_test_1.test)("la caché es la mayor parte del gasto", () => {
43
- const b = (0, cost_js_1.breakdownOfTurn)(GOLDEN, "claude-opus-5", AT);
44
- strict_1.default.ok(b);
45
- strict_1.default.ok(b.cacheShare > 0.8, `esperado >80%, obtenido ${(b.cacheShare * 100).toFixed(1)}%`);
46
- strict_1.default.equal(b.total.microUsd, b.input.microUsd + b.output.microUsd + b.cacheRead.microUsd + b.cacheWrite.microUsd);
47
- });
48
- (0, node_test_1.test)("escribir caché a 1h cuesta el doble que a 5m", () => {
49
- const base = { input: 0, output: 0, cacheRead: 0 };
50
- const w5m = (0, cost_js_1.costOfTurn)({ ...base, cacheWrite5m: 1_000_000, cacheWrite1h: 0 }, "claude-opus-5", AT);
51
- const w1h = (0, cost_js_1.costOfTurn)({ ...base, cacheWrite5m: 0, cacheWrite1h: 1_000_000 }, "claude-opus-5", AT);
52
- strict_1.default.equal(w5m.microUsd, 6_250_000); // $5 * 1.25
53
- strict_1.default.equal(w1h.microUsd, 10_000_000); // $5 * 2
54
- strict_1.default.equal(w1h.microUsd, w5m.microUsd * 1.6);
55
- });
56
- (0, node_test_1.test)("un modelo desconocido devuelve null en vez de inventar un precio", () => {
57
- strict_1.default.equal((0, cost_js_1.costOfTurn)(GOLDEN, "modelo-que-no-existe", AT), null);
58
- strict_1.default.equal((0, catalog_js_1.resolvePrice)("modelo-que-no-existe", AT), null);
59
- });
60
- (0, node_test_1.test)("gana el prefijo más específico", () => {
61
- const opus5 = (0, catalog_js_1.resolvePrice)("claude-opus-5", AT);
62
- const sonnet46 = (0, catalog_js_1.resolvePrice)("claude-sonnet-4-6", AT);
63
- strict_1.default.equal(opus5?.modelPrefix, "claude-opus-5");
64
- strict_1.default.equal(opus5?.inputPerMTok, 5);
65
- strict_1.default.equal(sonnet46?.modelPrefix, "claude-sonnet-4-6");
66
- strict_1.default.equal(sonnet46?.inputPerMTok, 3);
67
- });
68
- (0, node_test_1.test)("precios distintos por familia de modelo", () => {
69
- const usage = { input: 1_000_000, output: 0, cacheRead: 0, cacheWrite5m: 0, cacheWrite1h: 0 };
70
- strict_1.default.equal((0, cost_js_1.costOfTurn)(usage, "claude-opus-5", AT).microUsd, 5_000_000);
71
- strict_1.default.equal((0, cost_js_1.costOfTurn)(usage, "claude-sonnet-5", AT).microUsd, 2_000_000);
72
- strict_1.default.equal((0, cost_js_1.costOfTurn)(usage, "claude-haiku-4-5", AT).microUsd, 1_000_000);
73
- });
74
- /**
75
- * Codex. Tarifas de la página oficial de OpenAI, consultadas el 23/09/2026:
76
- * gpt-5.6-terra a $2.00 de entrada y $12.00 de salida por millón, con la caché
77
- * a $0.20 (0.1x) y la escritura a $2.50 (1.25x) — los mismos multiplicadores
78
- * que Anthropic, así que STANDARD_CACHE vale para los dos.
79
- */
80
- (0, node_test_1.test)("coste de un turno de Codex con gpt-5.6-terra", () => {
81
- const uso = {
82
- input: 1_000_000, output: 1_000_000,
83
- cacheRead: 1_000_000, cacheWrite5m: 1_000_000, cacheWrite1h: 0,
84
- };
85
- const cost = (0, cost_js_1.costOfTurn)(uso, "gpt-5.6-terra", AT);
86
- strict_1.default.ok(cost, "gpt-5.6-terra tiene que estar en el catálogo");
87
- // input 1M * $2/1M = $ 2.00
88
- // output 1M * $12/1M = $12.00
89
- // caché 1M * $2/1M * 0.1 = $ 0.20
90
- // escrit. 1M * $2/1M * 1.25 = $ 2.50
91
- strict_1.default.equal(cost.microUsd, 16_700_000);
92
- });
93
- (0, node_test_1.test)("los modelos de OpenAI que no están en el catálogo no se inventan", () => {
94
- // La regla del fichero: un coste ausente se ve, uno inventado no. Sin
95
- // comodín por familia, porque entre sol, terra y luna hay 20x de diferencia
96
- // y un prefijo corto los mal-tarifaría en silencio.
97
- strict_1.default.equal((0, catalog_js_1.resolvePrice)("gpt-5.6-inventado", AT), null);
98
- strict_1.default.equal((0, cost_js_1.costOfTurn)({ input: 1, output: 1, cacheRead: 0, cacheWrite5m: 0, cacheWrite1h: 0 }, "gpt-5.6-inventado", AT), null);
99
- });
100
- //# sourceMappingURL=cost.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cost.test.js","sourceRoot":"","sources":["../../src/pricing/cost.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"project-of.d.ts","sourceRoot":"","sources":["../src/project-of.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKhD;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,KAAK,GACb;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAC1D;;;GAGG;GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAClG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9B,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,EAAE,EAAE,YAAY,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,KAAK,CAW7E;AAcD,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiBlD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"project-of.js","sourceRoot":"","sources":["../src/project-of.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=project-of.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"project-of.test.d.ts","sourceRoot":"","sources":["../src/project-of.test.ts"],"names":[],"mappings":""}
@@ -1,203 +0,0 @@
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
- const strict_1 = __importDefault(require("node:assert/strict"));
40
- const node_child_process_1 = require("node:child_process");
41
- const node_fs_1 = require("node:fs");
42
- const node_os_1 = require("node:os");
43
- const node_path_1 = require("node:path");
44
- const node_test_1 = require("node:test");
45
- const schema_js_1 = require("./db/schema.js");
46
- const store = __importStar(require("./db/store.js"));
47
- const quota_js_1 = require("./metrics/quota.js");
48
- const quota_js_2 = require("./quota.js");
49
- const paths_js_1 = require("./paths.js");
50
- const project_of_js_1 = require("./project-of.js");
51
- /**
52
- * A qué proyecto va una sesión según su carpeta. El fallo de antes: una sesión
53
- * en `repo/src` de un repo sin registrar salía como "src", y una en un
54
- * worktree (que vive al lado del repo) no contaba para su proyecto.
55
- */
56
- /** Un directorio temporal con la ruta real (en macOS /var es un enlace a /private/var). */
57
- function tmp() {
58
- return (0, node_fs_1.realpathSync)((0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), "estela-root-")));
59
- }
60
- /** Un repo de mentira: basta la carpeta .git, no hace falta git. */
61
- function repo(base, name) {
62
- const r = (0, node_path_1.join)(base, name);
63
- (0, node_fs_1.mkdirSync)((0, node_path_1.join)(r, ".git", "worktrees"), { recursive: true });
64
- (0, node_fs_1.mkdirSync)((0, node_path_1.join)(r, "src"), { recursive: true });
65
- (0, node_fs_1.mkdirSync)((0, node_path_1.join)(r, "packages", "x", "src"), { recursive: true });
66
- return r;
67
- }
68
- /** Un worktree como lo deja `git worktree add`: un fichero .git que apunta al principal. */
69
- function worktree(main, at, name, relative = false) {
70
- const meta = (0, node_path_1.join)(main, ".git", "worktrees", name);
71
- (0, node_fs_1.mkdirSync)(meta, { recursive: true });
72
- (0, node_fs_1.writeFileSync)((0, node_path_1.join)(meta, "commondir"), "../..\n");
73
- (0, node_fs_1.mkdirSync)((0, node_path_1.join)(at, "lib"), { recursive: true });
74
- const gitdir = relative ? (0, node_path_1.join)("..", "web", ".git", "worktrees", name) : meta;
75
- (0, node_fs_1.writeFileSync)((0, node_path_1.join)(at, ".git"), `gitdir: ${gitdir}\n`);
76
- return at;
77
- }
78
- const n = (p) => (0, paths_js_1.normalizePath)(p);
79
- // ── gitRoot ─────────────────────────────────────────────────────────────
80
- (0, node_test_1.test)("subcarpetas: repo/src y repo/packages/x llevan a la raíz del repo", () => {
81
- const base = tmp();
82
- const r = repo(base, "web");
83
- strict_1.default.equal((0, project_of_js_1.gitRoot)(r), n(r));
84
- strict_1.default.equal((0, project_of_js_1.gitRoot)((0, node_path_1.join)(r, "src")), n(r));
85
- strict_1.default.equal((0, project_of_js_1.gitRoot)((0, node_path_1.join)(r, "packages", "x", "src")), n(r));
86
- });
87
- (0, node_test_1.test)("worktree: lleva al repositorio principal, con gitdir absoluto o relativo", () => {
88
- const base = tmp();
89
- const main = repo(base, "web");
90
- const wt = worktree(main, (0, node_path_1.join)(base, "web-feature"), "web-feature");
91
- strict_1.default.equal((0, project_of_js_1.gitRoot)(wt), n(main));
92
- strict_1.default.equal((0, project_of_js_1.gitRoot)((0, node_path_1.join)(wt, "lib")), n(main));
93
- const rel = worktree(main, (0, node_path_1.join)(base, "web-fix"), "web-fix", true);
94
- strict_1.default.equal((0, project_of_js_1.gitRoot)(rel), n(main));
95
- });
96
- (0, node_test_1.test)("submódulo: un .git fichero sin commondir es su propio repositorio", () => {
97
- const base = tmp();
98
- const main = repo(base, "web");
99
- const sub = (0, node_path_1.join)(main, "vendor", "lib");
100
- (0, node_fs_1.mkdirSync)((0, node_path_1.join)(main, ".git", "modules", "lib"), { recursive: true });
101
- (0, node_fs_1.mkdirSync)(sub, { recursive: true });
102
- (0, node_fs_1.writeFileSync)((0, node_path_1.join)(sub, ".git"), `gitdir: ${(0, node_path_1.join)(main, ".git", "modules", "lib")}\n`);
103
- strict_1.default.equal((0, project_of_js_1.gitRoot)(sub), n(sub));
104
- });
105
- (0, node_test_1.test)("fuera de git: null; y una carpeta que ya no existe no rompe nada", () => {
106
- const base = tmp();
107
- (0, node_fs_1.mkdirSync)((0, node_path_1.join)(base, "suelta"), { recursive: true });
108
- strict_1.default.equal((0, project_of_js_1.gitRoot)((0, node_path_1.join)(base, "suelta")), null);
109
- const r = repo(base, "web");
110
- strict_1.default.equal((0, project_of_js_1.gitRoot)((0, node_path_1.join)(r, "borrada", "hace", "tiempo")), n(r), "sube aunque la carpeta no exista");
111
- });
112
- (0, node_test_1.test)("una ruta relativa o con ~ no busca raíz git: no puede caer en el repo de quien ejecuta", () => {
113
- strict_1.default.equal((0, project_of_js_1.gitRoot)("~/code/web"), null);
114
- strict_1.default.equal((0, project_of_js_1.gitRoot)("src"), null);
115
- });
116
- (0, node_test_1.test)("con git de verdad: un worktree creado con git worktree add", (t) => {
117
- if ((0, node_child_process_1.spawnSync)("git", ["--version"]).status !== 0) {
118
- t.skip("sin git");
119
- return;
120
- }
121
- const base = tmp();
122
- const main = (0, node_path_1.join)(base, "app");
123
- const git = (...args) => {
124
- const r = (0, node_child_process_1.spawnSync)("git", args, { cwd: main, encoding: "utf8" });
125
- strict_1.default.equal(r.status, 0, r.stderr);
126
- };
127
- (0, node_fs_1.mkdirSync)(main);
128
- git("init", "-q");
129
- git("-c", "user.email=t@t", "-c", "user.name=t", "commit", "-q", "--allow-empty", "-m", "x");
130
- git("worktree", "add", "-q", (0, node_path_1.join)(base, "app-feature"));
131
- strict_1.default.equal((0, project_of_js_1.gitRoot)((0, node_path_1.join)(base, "app-feature")), n(main));
132
- });
133
- // ── A qué proyecto va ───────────────────────────────────────────────────
134
- function base() {
135
- const b = tmp();
136
- const web = repo(b, "web");
137
- const db = (0, schema_js_1.openDatabase)(":memory:");
138
- store.upsertClient(db, { id: "c", name: "C", currency: "EUR" });
139
- store.upsertProject(db, { id: "web", clientId: "c", name: "Web", repoPaths: [n(web)], billable: true,
140
- roundingMinutes: 0, aiCostPolicy: "absorbed", kind: "client" });
141
- return { b, web, db };
142
- }
143
- (0, node_test_1.test)("una sesión en una subcarpeta o en un worktree cuenta para el proyecto del repo", () => {
144
- const { b, web, db } = base();
145
- try {
146
- const owner = (0, project_of_js_1.ownerResolver)(db);
147
- const wt = worktree(web, (0, node_path_1.join)(b, "web-feature"), "web-feature");
148
- for (const dir of [web, (0, node_path_1.join)(web, "src"), (0, node_path_1.join)(web, "packages", "x"), wt, (0, node_path_1.join)(wt, "lib")]) {
149
- strict_1.default.deepEqual(owner(n(dir)), { kind: "project", projectId: "web" }, dir);
150
- }
151
- }
152
- finally {
153
- db.close();
154
- }
155
- });
156
- (0, node_test_1.test)("un subproyecto registrado dentro del monorepo no se pierde al subir a la raíz", () => {
157
- const { web, db } = base();
158
- try {
159
- store.upsertProject(db, { id: "x", clientId: "c", name: "X", repoPaths: [n((0, node_path_1.join)(web, "packages", "x"))],
160
- billable: true, roundingMinutes: 0, aiCostPolicy: "absorbed", kind: "client" });
161
- const owner = (0, project_of_js_1.ownerResolver)(db);
162
- strict_1.default.deepEqual(owner(n((0, node_path_1.join)(web, "packages", "x", "src"))), { kind: "project", projectId: "x" });
163
- strict_1.default.deepEqual(owner(n((0, node_path_1.join)(web, "src"))), { kind: "project", projectId: "web" });
164
- }
165
- finally {
166
- db.close();
167
- }
168
- });
169
- (0, node_test_1.test)("sin proyecto: el nombre de la raíz git, nunca el de una subcarpeta; fuera de git, la carpeta", () => {
170
- const { b, db } = base();
171
- try {
172
- const otro = repo(b, "otro-repo");
173
- const owner = (0, project_of_js_1.ownerResolver)(db);
174
- strict_1.default.deepEqual(owner(n((0, node_path_1.join)(otro, "packages", "x", "src"))), { kind: "folder", path: n(otro), name: "otro-repo", inGit: true });
175
- (0, node_fs_1.mkdirSync)((0, node_path_1.join)(b, "notas"));
176
- strict_1.default.deepEqual(owner(n((0, node_path_1.join)(b, "notas"))), { kind: "folder", path: n((0, node_path_1.join)(b, "notas")), name: "notas", inGit: false });
177
- }
178
- finally {
179
- db.close();
180
- }
181
- });
182
- (0, node_test_1.test)("en quota, las subcarpetas de un repo sin registrar son una sola fila con su nombre", () => {
183
- const { b, db } = base();
184
- try {
185
- const otro = repo(b, "otro-repo");
186
- // Dentro de esta semana a cualquier hora, también un lunes a las 00:05.
187
- const at = new Date(Math.max((0, quota_js_1.weekStart)(new Date()).getTime(), Date.now() - 10 * 60_000));
188
- const turno = (id, cwd) => ({
189
- agent: "claude-code", turnId: id, sessionId: "s", at, model: "claude-sonnet-4-6",
190
- repoPath: n(cwd), branch: null, producerVersion: null,
191
- tokens: { input: 0, output: 0, cacheRead: 100, cacheWrite5m: 0, cacheWrite1h: 0 },
192
- });
193
- store.saveTurns(db, [turno("a", (0, node_path_1.join)(otro, "src")), turno("b", (0, node_path_1.join)(otro, "packages", "x")), turno("c", otro)]);
194
- const filas = (0, quota_js_2.loadQuotaReport)(db).agents[0].week.rows;
195
- strict_1.default.equal(filas.length, 1);
196
- strict_1.default.deepEqual(filas[0].bucket, { kind: "folder", folder: "otro-repo", path: n(otro) });
197
- strict_1.default.equal(filas[0].usage.total, 300);
198
- }
199
- finally {
200
- db.close();
201
- }
202
- });
203
- //# sourceMappingURL=project-of.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"project-of.test.js","sourceRoot":"","sources":["../src/project-of.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAahD,OAAO,EAA8B,KAAK,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAExE;;;;;;;;;;GAUG;AAEH,qBAAa,cAAe,SAAQ,KAAK;CAAG;AAE5C,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;IACzB,sGAAsG;IACtG,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAwBD,wBAAsB,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAmEpG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=publish.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"publish.test.d.ts","sourceRoot":"","sources":["../src/publish.test.ts"],"names":[],"mappings":""}
@@ -1,113 +0,0 @@
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
- const strict_1 = __importDefault(require("node:assert/strict"));
40
- const node_test_1 = require("node:test");
41
- const schema_js_1 = require("./db/schema.js");
42
- const store = __importStar(require("./db/store.js"));
43
- const publish_js_1 = require("./publish.js");
44
- /**
45
- * Sin cuenta vinculada o sin proyecto, `publishPanel()` falla ANTES de tocar
46
- * la red — son las dos rutas que se pueden probar sin un servidor real
47
- * detrás. El resto (subir de verdad, la cuota) ya lo cubren los tests de
48
- * `packages/api`, que es donde vive esa lógica.
49
- */
50
- function fresh() {
51
- const db = (0, schema_js_1.openDatabase)(":memory:");
52
- store.upsertClient(db, { id: "acme", name: "ACME", currency: "EUR" });
53
- store.upsertProject(db, {
54
- id: "web", clientId: "acme", name: "Web de ACME", repoPaths: [],
55
- billable: true, roundingMinutes: 0, aiCostPolicy: "absorbed", kind: "client",
56
- });
57
- return db;
58
- }
59
- (0, node_test_1.test)("sin proyecto, falla con un mensaje claro y no llega a la cuenta", async () => {
60
- // `finally` tiene que esperar a la promesa: cerrar la base antes de que
61
- // `publishPanel` termine su primer `await` la deja a medio trabajar sobre
62
- // una conexión ya cerrada, y el fallo que sale ya no es el que se prueba.
63
- const db = fresh();
64
- try {
65
- await strict_1.default.rejects((0, publish_js_1.publishPanel)(db, { projectId: "no-existe" }), (error) => {
66
- strict_1.default.match(error.message, /No existe el proyecto/);
67
- return true;
68
- });
69
- }
70
- finally {
71
- db.close();
72
- }
73
- });
74
- (0, node_test_1.test)("sin cuenta vinculada, pide login con el comando exacto", async () => {
75
- // El mismo mensaje debe servir tanto a quien lo ve en la terminal como a
76
- // quien lo ve en el panel local: es lo que permite que ambos lo reutilicen
77
- // sin reescribirlo cada uno a su manera, que es como se desincronizaron
78
- // antes.
79
- const db = fresh();
80
- try {
81
- await strict_1.default.rejects((0, publish_js_1.publishPanel)(db, { projectId: "web" }), (error) => {
82
- strict_1.default.ok(error instanceof publish_js_1.NoAccountError);
83
- strict_1.default.match(error.message, /estela login --email/);
84
- return true;
85
- });
86
- }
87
- finally {
88
- db.close();
89
- }
90
- });
91
- (0, node_test_1.test)("getPublicationToken: null sin publicación previa, y el token real cuando la hay", () => {
92
- // El fallo real que esto cierra: `cmdPublish` en cli.ts generaba un token
93
- // nuevo cada vez que --token no se pasaba a mano, aunque el proyecto ya se
94
- // hubiera publicado desde esta misma máquina — el servidor veía un token
95
- // que nunca había visto, lo trataba como panel nuevo de verdad, y en plan
96
- // Free podía rechazar de plano una republicación legítima. Esta es la
97
- // fuente de verdad que cli.ts debe consultar antes de inventar uno.
98
- const db = fresh();
99
- try {
100
- strict_1.default.equal(store.getPublicationToken(db, "web"), null);
101
- store.recordPublication(db, "web", "tok_primera_vez", "https://getestela.dev");
102
- strict_1.default.equal(store.getPublicationToken(db, "web"), "tok_primera_vez");
103
- // Publicar de nuevo con OTRO token (lo que hace hoy un `--token` explícito,
104
- // o una versión sin este arreglo) tiene que dejar el más reciente, no los
105
- // dos: `project_id` es único en `publications`.
106
- store.recordPublication(db, "web", "tok_republicado", "https://getestela.dev");
107
- strict_1.default.equal(store.getPublicationToken(db, "web"), "tok_republicado");
108
- }
109
- finally {
110
- db.close();
111
- }
112
- });
113
- //# sourceMappingURL=publish.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"publish.test.js","sourceRoot":"","sources":["../src/publish.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../src/quota.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,EAA4D,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAKhH;;;GAGG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,GAAE,IAAiB,EAAE,OAAO,GAAE,gBAAqB,GAAG,WAAW,CAsBrH;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAGtF"}
package/dist/quota.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"quota.js","sourceRoot":"","sources":["../src/quota.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,0CAsBC;AAWD,8CAGC;AAzDD,qDAAuC;AACvC,iDAAgH;AAChH,mDAAgD;AAChD,+DAA0D;AAC1D,oDAAkD;AAiBlD,SAAgB,eAAe,CAAC,EAAgB,EAAE,MAAY,IAAI,IAAI,EAAE,EAAE,UAA4B,EAAE;IACtG,MAAM,KAAK,GAAG,IAAA,qBAAU,EAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEzE,uEAAuE;IACvE,uEAAuE;IACvE,MAAM,OAAO,GAAG,IAAA,6BAAa,EAAC,EAAE,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,CAAC,QAAuB,EAAe,EAAE;QACxD,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;QACjI,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACjF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC,CAAC;IAEF,OAAO,IAAA,qBAAU,EAAC;QAChB,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;QACnD,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACvC,GAAG;QACH,QAAQ;QACR,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,IAAI;QACnC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAA,yBAAc,EAAC,IAAA,uCAAiB,EAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;KAC7F,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,iBAAiB,CAAC,EAAgB,EAAE,KAAW;IACnE,MAAM,KAAK,GAAG,MAAM,IAAA,sBAAU,EAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1C,OAAO,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,MAAM,EAAuB,MAAM,WAAW,CAAC;AA2EjG,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,8CAA8C;IAC9C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,qEAAqE;IACrE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AA0DD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gFAAgF;IAChF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAcD,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD;AA2CD,wBAAgB,WAAW,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA6CxE"}