@hoox-sh/hoox-shared 1.3.0 → 1.5.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.
- package/README.md +6 -0
- package/dist/agent-config-fields.js +23 -29
- package/dist/analytics.d.ts +3 -4
- package/dist/analytics.d.ts.map +1 -1
- package/dist/analytics.js +56 -16
- package/dist/api-client.js +12 -21
- package/dist/colors.js +5 -21
- package/dist/config.js +11 -27
- package/dist/cron-handler.js +0 -16
- package/dist/d1/index.js +12 -27
- package/dist/d1/repository.js +7 -21
- package/dist/d1/schemas.js +4 -20
- package/dist/dashboard-manifest.d.ts +2 -1
- package/dist/dashboard-manifest.d.ts.map +1 -1
- package/dist/dashboard-manifest.js +37 -33
- package/dist/entitlements.d.ts +46 -0
- package/dist/entitlements.d.ts.map +1 -0
- package/dist/entitlements.js +15 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +11 -25
- package/dist/exchange-client.js +2 -18
- package/dist/exchanges/base-exchange-client.js +0 -16
- package/dist/exchanges/index.js +0 -16
- package/dist/format-time.js +2 -18
- package/dist/formatters.js +12 -28
- package/dist/health.js +7 -21
- package/dist/index.d.ts +8 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3895 -3653
- package/dist/kill-switch.js +14 -20
- package/dist/kvKeys.d.ts +11 -0
- package/dist/kvKeys.d.ts.map +1 -1
- package/dist/kvKeys.js +44 -45
- package/dist/kvUtils.d.ts +34 -1
- package/dist/kvUtils.d.ts.map +1 -1
- package/dist/kvUtils.js +60 -23
- package/dist/legal.js +5 -21
- package/dist/middleware/auth.d.ts +6 -3
- package/dist/middleware/auth.d.ts.map +1 -1
- package/dist/middleware/auth.js +27 -29
- package/dist/middleware/cors.js +4 -20
- package/dist/middleware/index.d.ts +3 -2
- package/dist/middleware/index.d.ts.map +1 -1
- package/dist/middleware/index.js +222 -164
- package/dist/middleware/logger.js +13 -27
- package/dist/middleware/rate-limit.js +2 -18
- package/dist/middleware/security-headers.js +2 -18
- package/dist/middleware/validate.d.ts +16 -0
- package/dist/middleware/validate.d.ts.map +1 -1
- package/dist/middleware/validate.js +39 -19
- package/dist/middleware/wait-until.d.ts +32 -0
- package/dist/middleware/wait-until.d.ts.map +1 -0
- package/dist/middleware/wait-until.js +30 -0
- package/dist/operator-transport.js +13 -17
- package/dist/path-utils.js +15 -31
- package/dist/queue-handler.d.ts +6 -0
- package/dist/queue-handler.d.ts.map +1 -1
- package/dist/queue-handler.js +51 -36
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +12 -18
- package/dist/schemas/index.d.ts +2 -1
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +91 -38
- package/dist/schemas/registry.d.ts +13 -0
- package/dist/schemas/registry.d.ts.map +1 -1
- package/dist/schemas/registry.js +82 -30
- package/dist/schemas/types.d.ts +5 -0
- package/dist/schemas/types.d.ts.map +1 -1
- package/dist/schemas/validators.d.ts.map +1 -1
- package/dist/schemas/validators.js +8 -22
- package/dist/service-bindings.js +31 -34
- package/dist/session.js +2 -18
- package/dist/sse.js +10 -18
- package/dist/stores/config-store.js +8 -22
- package/dist/stores/service-store.js +17 -30
- package/dist/stores/ui-store.js +0 -16
- package/dist/tenant.d.ts +61 -0
- package/dist/tenant.d.ts.map +1 -0
- package/dist/tenant.js +56 -0
- package/dist/test-utils.js +11 -27
- package/dist/types.d.ts +26 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +16 -26
- package/dist/wizard/engine.d.ts.map +1 -1
- package/dist/wizard/engine.js +39 -56
- package/dist/wizard/index.d.ts +1 -0
- package/dist/wizard/index.d.ts.map +1 -1
- package/dist/wizard/index.js +54 -68
- package/dist/wizard/persistence.d.ts +4 -0
- package/dist/wizard/persistence.d.ts.map +1 -1
- package/dist/wizard/persistence.js +7 -19
- package/dist/wizard/presets.d.ts.map +1 -1
- package/dist/wizard/presets.js +16 -54
- package/dist/wizard/types.d.ts +6 -0
- package/dist/wizard/types.d.ts.map +1 -1
- package/dist/wizard/types.js +5 -0
- package/package.json +7 -2
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026 HOOX · HOOX · jango-blockchained (hoox-sh)
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Open-core tenant entitlement types (verify-prep, NO enforcement).
|
|
7
|
+
*
|
|
8
|
+
* This module is intentionally thin: pure types + pure helpers only.
|
|
9
|
+
* No fetch, no KV/D1, no Stripe, no secrets. It lives in the open core so
|
|
10
|
+
* self-hosted single-tenant deployments keep working unchanged, while the
|
|
11
|
+
* commercial layer can build `verifyTenant` (hx_live_…) on top of these
|
|
12
|
+
* shapes (see OPEN_CORE_FEATURE_SPLIT.md: tenant billing/metering/quotas
|
|
13
|
+
* are commercial; basic `TenantContext` stays open).
|
|
14
|
+
*
|
|
15
|
+
* Enforcement (cache lookup, quota checks, 401/402/429) does NOT live here.
|
|
16
|
+
*/
|
|
17
|
+
import type { TenantContext } from "./types";
|
|
18
|
+
/** Billable capability scopes — one account, one key format, per-service-kind. */
|
|
19
|
+
export type EntitlementScope = "trade" | "signal" | "pyne:run" | "agent:chat" | "axis:stream" | "axis:run";
|
|
20
|
+
/**
|
|
21
|
+
* Tenant context enriched with commercial entitlement data.
|
|
22
|
+
* Produced by the commercial `verifyTenant` hook; open self-host paths
|
|
23
|
+
* simply never attach scopes and keep working as before.
|
|
24
|
+
*/
|
|
25
|
+
export interface EntitledContext extends TenantContext {
|
|
26
|
+
/** Granted capability scopes for this tenant/key. */
|
|
27
|
+
scopes: EntitlementScope[];
|
|
28
|
+
/** Plan id from the console system-of-record (e.g. "edge", "pro"). */
|
|
29
|
+
plan: string;
|
|
30
|
+
/** Optional per-scope/meter numeric caps (e.g. { "pyne_calls": 500000 }). */
|
|
31
|
+
limits?: Record<string, number>;
|
|
32
|
+
/** True when the caller presented a hosted `hx_live_…` tenant key. */
|
|
33
|
+
tenantPassthrough?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Pure scope check — no I/O.
|
|
37
|
+
* Returns false for missing/empty scope lists (fail-closed, no throw).
|
|
38
|
+
*/
|
|
39
|
+
export declare function hasScope(ctx: Pick<EntitledContext, "scopes"> | null | undefined, scope: EntitlementScope): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Pure edge-cache key builder — no I/O, no secrets.
|
|
42
|
+
* Takes an already-hashed key prefix (never the raw bearer) and returns
|
|
43
|
+
* the KV/D1 lookup key (`hx:<hashPrefix>`, 60s TTL at the edge).
|
|
44
|
+
*/
|
|
45
|
+
export declare function verifyCacheKey(keyHashPrefix: string): string;
|
|
46
|
+
//# sourceMappingURL=entitlements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entitlements.d.ts","sourceRoot":"","sources":["../src/entitlements.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,kFAAkF;AAClF,MAAM,MAAM,gBAAgB,GACxB,OAAO,GACP,QAAQ,GACR,UAAU,GACV,YAAY,GACZ,aAAa,GACb,UAAU,CAAC;AAEf;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,qDAAqD;IACrD,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG,IAAI,GAAG,SAAS,EACvD,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAGT;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAG5D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
// src/entitlements.ts
|
|
3
|
+
function hasScope(ctx, scope) {
|
|
4
|
+
if (!ctx || !Array.isArray(ctx.scopes))
|
|
5
|
+
return false;
|
|
6
|
+
return ctx.scopes.includes(scope);
|
|
7
|
+
}
|
|
8
|
+
function verifyCacheKey(keyHashPrefix) {
|
|
9
|
+
const clean = (keyHashPrefix ?? "").trim();
|
|
10
|
+
return `hx:${clean}`;
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
hasScope,
|
|
14
|
+
verifyCacheKey
|
|
15
|
+
};
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEzB;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,SAAkB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEzB;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,SAAkB,GAAG,MAAM,CAcxE;AA4FD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,SAAM,GAAG,QAAQ,CAKxE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,CAEhE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,QAAQ,GAAG,MAAM,EACxB,MAAM,CAAC,EAAE,MAAM,GACd,QAAQ,CAcV;AAED;;GAEG;AACH,eAAO,MAAM,MAAM;0BACK,MAAM;;;;;+BAUD,MAAM;qBAShB,OAAO;CAUzB,CAAC"}
|
package/dist/errors.js
CHANGED
|
@@ -1,28 +1,14 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __returnValue = (v) => v;
|
|
4
|
-
function __exportSetter(name, newValue) {
|
|
5
|
-
this[name] = __returnValue.bind(null, newValue);
|
|
6
|
-
}
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, {
|
|
10
|
-
get: all[name],
|
|
11
|
-
enumerable: true,
|
|
12
|
-
configurable: true,
|
|
13
|
-
set: __exportSetter.bind(all, name)
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
17
|
-
|
|
18
2
|
// src/errors.ts
|
|
19
3
|
function toError(err, fallback = "Unknown error") {
|
|
20
4
|
if (err instanceof Error)
|
|
21
5
|
return err.message;
|
|
22
6
|
if (typeof err === "string")
|
|
23
7
|
return err;
|
|
24
|
-
if (err && typeof err === "object" && "message" in err
|
|
25
|
-
|
|
8
|
+
if (err && typeof err === "object" && "message" in err) {
|
|
9
|
+
const message = err.message;
|
|
10
|
+
if (typeof message === "string")
|
|
11
|
+
return message;
|
|
26
12
|
}
|
|
27
13
|
if (err === null || err === undefined)
|
|
28
14
|
return fallback;
|
|
@@ -70,14 +56,14 @@ function sanitizeOutput(data) {
|
|
|
70
56
|
const obj = data;
|
|
71
57
|
const keys = Object.keys(obj);
|
|
72
58
|
if (keys.length < 10) {
|
|
73
|
-
const
|
|
59
|
+
const sanitized = {};
|
|
74
60
|
for (const k of keys) {
|
|
75
61
|
if (k === "stack" || k === "cause")
|
|
76
62
|
continue;
|
|
77
63
|
const v = obj[k];
|
|
78
|
-
|
|
64
|
+
sanitized[k] = v instanceof Error ? { name: v.name, message: v.message } : sanitizeOutput(v);
|
|
79
65
|
}
|
|
80
|
-
return
|
|
66
|
+
return sanitized;
|
|
81
67
|
}
|
|
82
68
|
if (!hasSensitiveFields(obj) && !hasErrorValues(obj)) {
|
|
83
69
|
return obj;
|
|
@@ -141,9 +127,9 @@ var Errors = {
|
|
|
141
127
|
}
|
|
142
128
|
};
|
|
143
129
|
export {
|
|
144
|
-
|
|
145
|
-
createSuccessResponse,
|
|
146
|
-
createJsonResponse,
|
|
130
|
+
Errors,
|
|
147
131
|
createErrorResponse,
|
|
148
|
-
|
|
132
|
+
createJsonResponse,
|
|
133
|
+
createSuccessResponse,
|
|
134
|
+
toError
|
|
149
135
|
};
|
package/dist/exchange-client.js
CHANGED
|
@@ -1,20 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __returnValue = (v) => v;
|
|
4
|
-
function __exportSetter(name, newValue) {
|
|
5
|
-
this[name] = __returnValue.bind(null, newValue);
|
|
6
|
-
}
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, {
|
|
10
|
-
get: all[name],
|
|
11
|
-
enumerable: true,
|
|
12
|
-
configurable: true,
|
|
13
|
-
set: __exportSetter.bind(all, name)
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
17
|
-
|
|
18
2
|
// src/exchange-client.ts
|
|
19
3
|
class ExchangeRouter {
|
|
20
4
|
providers = new Map;
|
|
@@ -102,6 +86,6 @@ class BaseExchangeClient {
|
|
|
102
86
|
}
|
|
103
87
|
}
|
|
104
88
|
export {
|
|
105
|
-
|
|
106
|
-
|
|
89
|
+
BaseExchangeClient,
|
|
90
|
+
ExchangeRouter
|
|
107
91
|
};
|
|
@@ -1,20 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __returnValue = (v) => v;
|
|
4
|
-
function __exportSetter(name, newValue) {
|
|
5
|
-
this[name] = __returnValue.bind(null, newValue);
|
|
6
|
-
}
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, {
|
|
10
|
-
get: all[name],
|
|
11
|
-
enumerable: true,
|
|
12
|
-
configurable: true,
|
|
13
|
-
set: __exportSetter.bind(all, name)
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
17
|
-
|
|
18
2
|
// src/exchanges/base-exchange-client.ts
|
|
19
3
|
class BaseExchangeClient {
|
|
20
4
|
apiKey;
|
package/dist/exchanges/index.js
CHANGED
|
@@ -1,20 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __returnValue = (v) => v;
|
|
4
|
-
function __exportSetter(name, newValue) {
|
|
5
|
-
this[name] = __returnValue.bind(null, newValue);
|
|
6
|
-
}
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, {
|
|
10
|
-
get: all[name],
|
|
11
|
-
enumerable: true,
|
|
12
|
-
configurable: true,
|
|
13
|
-
set: __exportSetter.bind(all, name)
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
17
|
-
|
|
18
2
|
// src/exchanges/base-exchange-client.ts
|
|
19
3
|
class BaseExchangeClient {
|
|
20
4
|
apiKey;
|
package/dist/format-time.js
CHANGED
|
@@ -1,20 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __returnValue = (v) => v;
|
|
4
|
-
function __exportSetter(name, newValue) {
|
|
5
|
-
this[name] = __returnValue.bind(null, newValue);
|
|
6
|
-
}
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, {
|
|
10
|
-
get: all[name],
|
|
11
|
-
enumerable: true,
|
|
12
|
-
configurable: true,
|
|
13
|
-
set: __exportSetter.bind(all, name)
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
17
|
-
|
|
18
2
|
// src/format-time.ts
|
|
19
3
|
function formatRelativeTime(timestampMs, nowMs) {
|
|
20
4
|
const now = nowMs ?? Date.now();
|
|
@@ -52,6 +36,6 @@ function formatDuration(durationMs) {
|
|
|
52
36
|
return `${seconds}s`;
|
|
53
37
|
}
|
|
54
38
|
export {
|
|
55
|
-
|
|
56
|
-
|
|
39
|
+
formatDuration,
|
|
40
|
+
formatRelativeTime
|
|
57
41
|
};
|
package/dist/formatters.js
CHANGED
|
@@ -1,20 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __returnValue = (v) => v;
|
|
4
|
-
function __exportSetter(name, newValue) {
|
|
5
|
-
this[name] = __returnValue.bind(null, newValue);
|
|
6
|
-
}
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, {
|
|
10
|
-
get: all[name],
|
|
11
|
-
enumerable: true,
|
|
12
|
-
configurable: true,
|
|
13
|
-
set: __exportSetter.bind(all, name)
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
17
|
-
|
|
18
2
|
// src/formatters.ts
|
|
19
3
|
function formatNumber(n) {
|
|
20
4
|
if (!isFinite(n))
|
|
@@ -139,17 +123,17 @@ function formatCpu(ms) {
|
|
|
139
123
|
return `${ms.toFixed(1)}ms`;
|
|
140
124
|
}
|
|
141
125
|
export {
|
|
142
|
-
|
|
143
|
-
formatTimestamp,
|
|
144
|
-
formatRequests,
|
|
145
|
-
formatRelativeTime,
|
|
146
|
-
formatPercent,
|
|
147
|
-
formatNumber,
|
|
148
|
-
formatMemory,
|
|
149
|
-
formatLatency,
|
|
150
|
-
formatDurationCompact,
|
|
151
|
-
formatDuration,
|
|
152
|
-
formatCurrency,
|
|
126
|
+
formatCompactCurrency,
|
|
153
127
|
formatCpu,
|
|
154
|
-
|
|
128
|
+
formatCurrency,
|
|
129
|
+
formatDuration,
|
|
130
|
+
formatDurationCompact,
|
|
131
|
+
formatLatency,
|
|
132
|
+
formatMemory,
|
|
133
|
+
formatNumber,
|
|
134
|
+
formatPercent,
|
|
135
|
+
formatRelativeTime,
|
|
136
|
+
formatRequests,
|
|
137
|
+
formatTimestamp,
|
|
138
|
+
formatUptime
|
|
155
139
|
};
|
package/dist/health.js
CHANGED
|
@@ -1,28 +1,14 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __returnValue = (v) => v;
|
|
4
|
-
function __exportSetter(name, newValue) {
|
|
5
|
-
this[name] = __returnValue.bind(null, newValue);
|
|
6
|
-
}
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, {
|
|
10
|
-
get: all[name],
|
|
11
|
-
enumerable: true,
|
|
12
|
-
configurable: true,
|
|
13
|
-
set: __exportSetter.bind(all, name)
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
17
|
-
|
|
18
2
|
// src/errors.ts
|
|
19
3
|
function toError(err, fallback = "Unknown error") {
|
|
20
4
|
if (err instanceof Error)
|
|
21
5
|
return err.message;
|
|
22
6
|
if (typeof err === "string")
|
|
23
7
|
return err;
|
|
24
|
-
if (err && typeof err === "object" && "message" in err
|
|
25
|
-
|
|
8
|
+
if (err && typeof err === "object" && "message" in err) {
|
|
9
|
+
const message = err.message;
|
|
10
|
+
if (typeof message === "string")
|
|
11
|
+
return message;
|
|
26
12
|
}
|
|
27
13
|
if (err === null || err === undefined)
|
|
28
14
|
return fallback;
|
|
@@ -70,14 +56,14 @@ function sanitizeOutput(data) {
|
|
|
70
56
|
const obj = data;
|
|
71
57
|
const keys = Object.keys(obj);
|
|
72
58
|
if (keys.length < 10) {
|
|
73
|
-
const
|
|
59
|
+
const sanitized = {};
|
|
74
60
|
for (const k of keys) {
|
|
75
61
|
if (k === "stack" || k === "cause")
|
|
76
62
|
continue;
|
|
77
63
|
const v = obj[k];
|
|
78
|
-
|
|
64
|
+
sanitized[k] = v instanceof Error ? { name: v.name, message: v.message } : sanitizeOutput(v);
|
|
79
65
|
}
|
|
80
|
-
return
|
|
66
|
+
return sanitized;
|
|
81
67
|
}
|
|
82
68
|
if (!hasSensitiveFields(obj) && !hasErrorValues(obj)) {
|
|
83
69
|
return obj;
|
package/dist/index.d.ts
CHANGED
|
@@ -14,10 +14,12 @@
|
|
|
14
14
|
* See: /OPEN_CORE.md and /OPEN_CORE_FEATURE_SPLIT.md
|
|
15
15
|
*/
|
|
16
16
|
export { COPYRIGHT, TRADEMARKS, TRADEMARK_NOTICE, DISCLAIMER, FULL_LEGAL_NOTICE, DISCLAIMER_HEADER, } from "./legal";
|
|
17
|
-
export type { StandardResponse, ApiSuccessResponse, ApiErrorResponse, ApiResponse, WorkerServiceBinding, WorkerD1Binding, WorkerSecretsStoreBinding, WorkerQueueConfig, HousekeepingCheck, HousekeepingPayload, HousekeepingSummary, SettingsPayload, ProcessRequestBody, BaseEnv, Result, } from "./types";
|
|
17
|
+
export type { StandardResponse, ApiSuccessResponse, ApiErrorResponse, ApiResponse, WorkerServiceBinding, WorkerD1Binding, WorkerSecretsStoreBinding, WorkerQueueConfig, HousekeepingCheck, HousekeepingIssue, HousekeepingPayload, HousekeepingSummary, SettingsPayload, ProcessRequestBody, BaseEnv, Result, } from "./types";
|
|
18
18
|
export { TradeActionSchema, WebhookPayloadSchema, TradeQueueMessageSchema, TradeSignalSchema, PositionSchema, BalanceSchema, } from "./types";
|
|
19
19
|
export type { TradeAction, WebhookPayload, TradeQueueMessage, TradeSignal, } from "./types";
|
|
20
20
|
export { KVKeys } from "./kvKeys";
|
|
21
|
+
export { effectiveTenantId, isTenantFlagOn, isTenantMode, scopeKey, scopeR2Key, tenantContextOf, tenantScope, withTenantId, } from "./tenant";
|
|
22
|
+
export type { TenantEnv, TenantScope } from "./tenant";
|
|
21
23
|
export { KILL_SWITCH_KEYS, KILL_SWITCH_ACTIVE_PREFIX, isTruthyKillSwitchFlag, checkKillSwitch, isTradingPaused, } from "./kill-switch";
|
|
22
24
|
export type { KillSwitchFailMode, KillSwitchResult, CheckKillSwitchOptions, KillSwitchKv, } from "./kill-switch";
|
|
23
25
|
export { toError, Errors, createJsonResponse, createSuccessResponse, createErrorResponse, } from "./errors";
|
|
@@ -25,8 +27,8 @@ export { ExchangeRouter } from "./exchange-client";
|
|
|
25
27
|
export type { ExchangeName, ExchangeConfig, TradeParams, OrderResponse, Position, IExchangeProvider, ClientCreateOptions, } from "./exchange-client";
|
|
26
28
|
export { BaseExchangeClient } from "./exchanges";
|
|
27
29
|
export type { SupportedExchange } from "./exchanges";
|
|
28
|
-
export { logKvTimestamp, headersToObject } from "./kvUtils";
|
|
29
|
-
export type { EnvWithKV } from "./kvUtils";
|
|
30
|
+
export { logKvTimestamp, headersToObject, kvGetMany, kvGetManyAsRecord, KV_BULK_GET_MAX_KEYS, kvPutMany, } from "./kvUtils";
|
|
31
|
+
export type { EnvWithKV, KvPutEntry } from "./kvUtils";
|
|
30
32
|
export { trackAnalytics } from "./analytics";
|
|
31
33
|
export type { AnalyticsEnv } from "./analytics";
|
|
32
34
|
export { healthCheck } from "./health";
|
|
@@ -55,6 +57,8 @@ export { restoreSession, saveSession } from "./session";
|
|
|
55
57
|
export type { SessionState } from "./session";
|
|
56
58
|
export { formatRelativeTime as formatRelativeTimeFromTime } from "./format-time";
|
|
57
59
|
export type { ViewId, ModalState, WorkerStatus, WorkerInfo, TradeSide, Trade, AlertSeverity, Alert, LogLevel, LogEntry, SystemMetrics, ConnectionStatus, LogFilter, NotificationPreferences, CliErrorType, CliErrorDetails, } from "./types";
|
|
60
|
+
export type { EntitledContext, EntitlementScope } from "./entitlements";
|
|
61
|
+
export { hasScope, verifyCacheKey } from "./entitlements";
|
|
58
62
|
export { getHooxHome, resolveHooxPath, isWithinHooxHome, getRelativeHooxPath, getHooxRepoPath, getHooxConfigDir, getHooxDataDir, getHooxWranglerPath, getHooxStatePath, isHooxSetupRoot, findHooxSetupRoot, resolveHooxRuntimeRoot, getTuiEntryCandidates, getRememberedMonorepoPath, getRememberedMonorepoRoot, rememberMonorepoRoot, } from "./path-utils";
|
|
59
63
|
export type { HooxPath, RuntimeRootSource, RuntimeRootResult, RememberedMonorepo, } from "./path-utils";
|
|
60
64
|
export { DASHBOARD_WORKER_PREFIX, DASHBOARD_SECTION_PREFIX, DASHBOARD_FIELD_KV_OVERRIDES, DASHBOARD_SECTIONS_NOT_FLAT_KV, DASHBOARD_SECTIONS_UI_SKIP, DASHBOARD_WORKER_IDS, buildDashboardKvKey, isDashboardSectionFlatKv, isDashboardSectionEditable, stripJsonc, parseDashboardManifest, dashboardWorkerDir, kvManifestFromDashboardManifests, loadDashboardKvManifestFromRoot, loadDashboardManifestsFromRoot, } from "./dashboard-manifest";
|
|
@@ -63,7 +67,7 @@ export { AGENT_CONFIG_KV_KEY, AGENT_CONFIG_EMBEDDED_FIELDS, DASHBOARD_SECTIONS_A
|
|
|
63
67
|
export type { AgentConfigFieldSpec } from "./agent-config-fields";
|
|
64
68
|
export type { StepId, WorkerPresetName, WorkerPreset, WorkerConfig, WorkersJsonConfig, IntegratedService, ProvisioningPlan, ProvisionResult, WizardCloudflareConfig, WizardState, StepDefinition, } from "./wizard";
|
|
65
69
|
export type { Provisioner } from "./wizard";
|
|
66
|
-
export { WizardEngine, PRESETS, WORKER_DEPENDENCIES, INTEGRATIONS, resolveDependencies, serializeState, deserializeState, WIZARD_STATE_PATH, } from "./wizard";
|
|
70
|
+
export { WizardEngine, PRESETS, WORKER_DEPENDENCIES, INTEGRATIONS, resolveDependencies, serializeState, deserializeState, WIZARD_STATE_PATH, CLOUDFLARE_API_TOKEN_PLACEHOLDER, } from "./wizard";
|
|
67
71
|
export * from "./schemas/index.js";
|
|
68
72
|
export { useUIStore } from "./stores/ui-store";
|
|
69
73
|
export { useServiceStore } from "./stores/service-store";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;GAUG;AAIH,OAAO,EACL,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAIjB,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,OAAO,EACP,MAAM,GACP,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,cAAc,EACd,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,WAAW,GACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,sBAAsB,EACtB,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,OAAO,EACP,MAAM,EACN,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EACV,YAAY,EACZ,cAAc,EACd,WAAW,EACX,aAAa,EACb,QAAQ,EACR,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|