@timecell/api 0.1.1 → 0.2.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 (34) hide show
  1. package/dist/routes/action-plan.d.ts +3 -0
  2. package/dist/routes/action-plan.d.ts.map +1 -0
  3. package/dist/routes/action-plan.js +58 -0
  4. package/dist/routes/action-plan.js.map +1 -0
  5. package/dist/routes/portfolio.d.ts.map +1 -1
  6. package/dist/routes/portfolio.js.map +1 -1
  7. package/dist/routes/position-sizing.d.ts +3 -0
  8. package/dist/routes/position-sizing.d.ts.map +1 -0
  9. package/dist/routes/position-sizing.js +7 -0
  10. package/dist/routes/position-sizing.js.map +1 -0
  11. package/dist/routes/temperature.d.ts +3 -0
  12. package/dist/routes/temperature.d.ts.map +1 -0
  13. package/dist/routes/temperature.js +18 -0
  14. package/dist/routes/temperature.js.map +1 -0
  15. package/dist/server.d.ts.map +1 -1
  16. package/dist/server.js +8 -2
  17. package/dist/server.js.map +1 -1
  18. package/dist/web/dist/assets/index-BWWPrioD.js +113 -0
  19. package/dist/web/dist/assets/index-BY7xE2ch.css +1 -0
  20. package/dist/web/dist/assets/index-BdFQ7jf3.js +113 -0
  21. package/dist/web/dist/assets/index-C-dwRA62.js +113 -0
  22. package/dist/web/dist/assets/index-CAfGfEA4.css +1 -0
  23. package/dist/web/dist/assets/index-Csq6J4e2.js +113 -0
  24. package/dist/web/dist/assets/index-D2dZfIwA.css +1 -0
  25. package/dist/web/dist/assets/index-DISMfP4S.js +113 -0
  26. package/dist/web/dist/assets/index-DK51rASe.css +1 -0
  27. package/dist/web/dist/assets/index-DhhFLqcu.js +113 -0
  28. package/dist/web/dist/assets/index-FbkZPqxI.js +113 -0
  29. package/dist/web/dist/assets/index-_y4hFJfB.css +1 -0
  30. package/dist/web/dist/assets/index-yH4zur2Y.css +1 -0
  31. package/dist/web/dist/index.html +14 -0
  32. package/dist/web/dist/logo.png +0 -0
  33. package/dist/web/dist/timecell.svg +4 -0
  34. package/package.json +1 -1
@@ -0,0 +1,3 @@
1
+ import type { FastifyInstance } from "fastify";
2
+ export declare function actionPlanRoutes(fastify: FastifyInstance): Promise<void>;
3
+ //# sourceMappingURL=action-plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-plan.d.ts","sourceRoot":"","sources":["../../src/routes/action-plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA2D/C,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,eAAe,iBAS9D"}
@@ -0,0 +1,58 @@
1
+ import { generateActionPlan } from "@timecell/engine";
2
+ function validateActionPlanInput(body) {
3
+ if (!body || typeof body !== "object") {
4
+ return { valid: false, error: "Request body must be a JSON object" };
5
+ }
6
+ const b = body;
7
+ // btcPercentage: number 0-100
8
+ if (typeof b.btcPercentage !== "number" || b.btcPercentage < 0 || b.btcPercentage > 100) {
9
+ return { valid: false, error: "btcPercentage must be a number between 0 and 100" };
10
+ }
11
+ // ruinTestPassed: boolean
12
+ if (typeof b.ruinTestPassed !== "boolean") {
13
+ return { valid: false, error: "ruinTestPassed must be a boolean" };
14
+ }
15
+ // runwayMonths: number >= 0 (Infinity is allowed)
16
+ if (typeof b.runwayMonths !== "number" || b.runwayMonths < 0) {
17
+ return { valid: false, error: "runwayMonths must be a number >= 0" };
18
+ }
19
+ // temperatureScore: number 0-100
20
+ if (typeof b.temperatureScore !== "number" || b.temperatureScore < 0 || b.temperatureScore > 100) {
21
+ return { valid: false, error: "temperatureScore must be a number between 0 and 100" };
22
+ }
23
+ // liquidReserveUsd: number >= 0
24
+ if (typeof b.liquidReserveUsd !== "number" || b.liquidReserveUsd < 0) {
25
+ return { valid: false, error: "liquidReserveUsd must be a number >= 0" };
26
+ }
27
+ // monthlyBurnUsd: number >= 0
28
+ if (typeof b.monthlyBurnUsd !== "number" || b.monthlyBurnUsd < 0) {
29
+ return { valid: false, error: "monthlyBurnUsd must be a number >= 0" };
30
+ }
31
+ // totalValueUsd: number >= 0
32
+ if (typeof b.totalValueUsd !== "number" || b.totalValueUsd < 0) {
33
+ return { valid: false, error: "totalValueUsd must be a number >= 0" };
34
+ }
35
+ return {
36
+ valid: true,
37
+ data: {
38
+ btcPercentage: b.btcPercentage,
39
+ ruinTestPassed: b.ruinTestPassed,
40
+ runwayMonths: b.runwayMonths,
41
+ temperatureScore: b.temperatureScore,
42
+ liquidReserveUsd: b.liquidReserveUsd,
43
+ monthlyBurnUsd: b.monthlyBurnUsd,
44
+ totalValueUsd: b.totalValueUsd,
45
+ },
46
+ };
47
+ }
48
+ export async function actionPlanRoutes(fastify) {
49
+ fastify.post("/action-plan", async (request, reply) => {
50
+ const validation = validateActionPlanInput(request.body);
51
+ if (!validation.valid) {
52
+ reply.status(400).send({ error: validation.error });
53
+ return;
54
+ }
55
+ return generateActionPlan(validation.data);
56
+ });
57
+ }
58
+ //# sourceMappingURL=action-plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-plan.js","sourceRoot":"","sources":["../../src/routes/action-plan.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"portfolio.d.ts","sourceRoot":"","sources":["../../src/routes/portfolio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA4B/C,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,iBAS7D"}
1
+ {"version":3,"file":"portfolio.d.ts","sourceRoot":"","sources":["../../src/routes/portfolio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA6B/C,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,iBAS7D"}
@@ -1 +1 @@
1
- {"version":3,"file":"portfolio.js","sourceRoot":"","sources":["../../src/routes/portfolio.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAA2C,MAAM,kBAAkB,CAAC;AACjH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AAChD,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;AAO1D,KAAK,UAAU,aAAa;IAC3B,IAAI,CAAC;QACJ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,CAAC;IAC5E,CAAC;AACF,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAoB;IAChD,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAwB;IAC7D,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;QACpC,OAAO,aAAa,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAA2B,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACtE,MAAM,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"portfolio.js","sourceRoot":"","sources":["../../src/routes/portfolio.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAA2C,MAAM,kBAAkB,CAAC;AACjH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AAChD,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;AAQ1D,KAAK,UAAU,aAAa;IAC3B,IAAI,CAAC;QACJ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,CAAC;IAC5E,CAAC;AACF,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAoB;IAChD,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAwB;IAC7D,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;QACpC,OAAO,aAAa,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAA2B,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACtE,MAAM,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { FastifyInstance } from "fastify";
2
+ export declare function positionSizingRoutes(fastify: FastifyInstance): Promise<void>;
3
+ //# sourceMappingURL=position-sizing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"position-sizing.d.ts","sourceRoot":"","sources":["../../src/routes/position-sizing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/C,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,eAAe,iBAIlE"}
@@ -0,0 +1,7 @@
1
+ import { calculatePositionSizing } from "@timecell/engine";
2
+ export async function positionSizingRoutes(fastify) {
3
+ fastify.post("/position-sizing", async (request) => {
4
+ return calculatePositionSizing(request.body);
5
+ });
6
+ }
7
+ //# sourceMappingURL=position-sizing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"position-sizing.js","sourceRoot":"","sources":["../../src/routes/position-sizing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAA4B,MAAM,kBAAkB,CAAC;AAErF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAAwB;IAClE,OAAO,CAAC,IAAI,CAAgC,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACjF,OAAO,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { FastifyInstance } from "fastify";
2
+ export declare function temperatureRoutes(fastify: FastifyInstance): Promise<void>;
3
+ //# sourceMappingURL=temperature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"temperature.d.ts","sourceRoot":"","sources":["../../src/routes/temperature.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAU/C,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,eAAe,iBAS/D"}
@@ -0,0 +1,18 @@
1
+ import { calculateTemperature } from "@timecell/engine";
2
+ // ---------------------------------------------------------------------------
3
+ // Mock data — will be replaced with live MVRV/RHODL feeds in a future release.
4
+ // MVRV ~1.8 and RHODL ~1.6 are representative of mid-cycle neutral territory.
5
+ // ---------------------------------------------------------------------------
6
+ const MOCK_MVRV = 1.8;
7
+ const MOCK_RHODL = 1.6;
8
+ export async function temperatureRoutes(fastify) {
9
+ fastify.get("/temperature", async () => {
10
+ const result = calculateTemperature(MOCK_MVRV, MOCK_RHODL);
11
+ return {
12
+ ...result,
13
+ dataSource: "mock",
14
+ note: "Live MVRV/RHODL feeds coming soon",
15
+ };
16
+ });
17
+ }
18
+ //# sourceMappingURL=temperature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"temperature.js","sourceRoot":"","sources":["../../src/routes/temperature.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,8EAA8E;AAC9E,+EAA+E;AAC/E,8EAA8E;AAC9E,8EAA8E;AAC9E,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,UAAU,GAAG,GAAG,CAAC;AAEvB,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAwB;IAC/D,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC3D,OAAO;YACN,GAAG,MAAM;YACT,UAAU,EAAE,MAAM;YAClB,IAAI,EAAE,mCAAmC;SACzC,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAyBA,wBAAsB,WAAW,mWAgChC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AA4BA,wBAAsB,WAAW,mWAmChC"}
package/dist/server.js CHANGED
@@ -7,6 +7,9 @@ import fastifyStatic from "@fastify/static";
7
7
  import { crashRoutes } from "./routes/crash.js";
8
8
  import { portfolioRoutes } from "./routes/portfolio.js";
9
9
  import { priceRoutes } from "./routes/price.js";
10
+ import { temperatureRoutes } from "./routes/temperature.js";
11
+ import { positionSizingRoutes } from "./routes/position-sizing.js";
12
+ import { actionPlanRoutes } from "./routes/action-plan.js";
10
13
  function findWebDist() {
11
14
  const candidates = [
12
15
  // Bundled inside API package (npm published)
@@ -23,14 +26,17 @@ function findWebDist() {
23
26
  return null;
24
27
  }
25
28
  export async function buildServer() {
26
- const fastify = Fastify({ logger: true });
29
+ const fastify = Fastify({ logger: false });
27
30
  await fastify.register(cors, { origin: true });
28
31
  // API routes
29
32
  await fastify.register(crashRoutes, { prefix: "/api" });
30
33
  await fastify.register(portfolioRoutes, { prefix: "/api" });
31
34
  await fastify.register(priceRoutes, { prefix: "/api" });
35
+ await fastify.register(temperatureRoutes, { prefix: "/api" });
36
+ await fastify.register(positionSizingRoutes, { prefix: "/api" });
37
+ await fastify.register(actionPlanRoutes, { prefix: "/api" });
32
38
  // Health check
33
- fastify.get("/api/health", async () => ({ status: "ok", version: "0.1.0" }));
39
+ fastify.get("/api/health", async () => ({ status: "ok", version: "0.2.0" }));
34
40
  // Serve built web dashboard if available
35
41
  const webDist = findWebDist();
36
42
  if (webDist) {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}