@jango-blockchained/hoox-shared 1.0.9 → 1.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 (74) hide show
  1. package/README.md +17 -0
  2. package/dist/analytics.d.ts +23 -1
  3. package/dist/analytics.d.ts.map +1 -1
  4. package/dist/analytics.js +14 -3
  5. package/dist/api-client.d.ts +12 -2
  6. package/dist/api-client.d.ts.map +1 -1
  7. package/dist/api-client.js +74 -7
  8. package/dist/colors.d.ts +63 -24
  9. package/dist/colors.d.ts.map +1 -1
  10. package/dist/colors.js +60 -19
  11. package/dist/config.d.ts +34 -1
  12. package/dist/config.d.ts.map +1 -1
  13. package/dist/config.js +61 -6
  14. package/dist/cron-handler.d.ts +2 -2
  15. package/dist/cron-handler.d.ts.map +1 -1
  16. package/dist/d1/index.js +1 -0
  17. package/dist/d1/repository.js +297 -0
  18. package/dist/d1/schemas.js +81 -0
  19. package/dist/exchanges/base-exchange-client.js +120 -0
  20. package/dist/exchanges/types.js +1 -0
  21. package/dist/index.d.ts +21 -11
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +580 -60
  24. package/dist/middleware/auth.d.ts +42 -6
  25. package/dist/middleware/auth.d.ts.map +1 -1
  26. package/dist/middleware/auth.js +151 -0
  27. package/dist/middleware/cors.d.ts +28 -2
  28. package/dist/middleware/cors.d.ts.map +1 -1
  29. package/dist/middleware/cors.js +77 -0
  30. package/dist/middleware/index.d.ts +2 -2
  31. package/dist/middleware/index.d.ts.map +1 -1
  32. package/dist/middleware/index.js +192 -107
  33. package/dist/middleware/logger.js +202 -0
  34. package/dist/middleware/rate-limit.d.ts.map +1 -1
  35. package/dist/middleware/rate-limit.js +181 -0
  36. package/dist/middleware/security-headers.js +58 -0
  37. package/dist/middleware/validate.js +56 -0
  38. package/dist/operator-transport.d.ts +61 -0
  39. package/dist/operator-transport.d.ts.map +1 -0
  40. package/dist/operator-transport.js +87 -0
  41. package/dist/path-utils.d.ts +59 -1
  42. package/dist/path-utils.d.ts.map +1 -1
  43. package/dist/path-utils.js +89 -2
  44. package/dist/queue-handler.d.ts +3 -3
  45. package/dist/queue-handler.d.ts.map +1 -1
  46. package/dist/router.d.ts +2 -2
  47. package/dist/router.d.ts.map +1 -1
  48. package/dist/schemas/index.js +7 -4
  49. package/dist/schemas/registry.js +387 -0
  50. package/dist/schemas/types.js +1 -0
  51. package/dist/schemas/validators.d.ts.map +1 -1
  52. package/dist/schemas/validators.js +290 -0
  53. package/dist/service-bindings.d.ts +65 -0
  54. package/dist/service-bindings.d.ts.map +1 -1
  55. package/dist/service-bindings.js +216 -1
  56. package/dist/session.d.ts.map +1 -1
  57. package/dist/session.js +97 -2
  58. package/dist/sse.d.ts +12 -3
  59. package/dist/sse.d.ts.map +1 -1
  60. package/dist/sse.js +70 -7
  61. package/dist/stores/config-store.d.ts.map +1 -1
  62. package/dist/stores/config-store.js +129 -6
  63. package/dist/stores/service-store.d.ts.map +1 -1
  64. package/dist/stores/service-store.js +96 -25
  65. package/dist/types.d.ts +66 -1
  66. package/dist/types.d.ts.map +1 -1
  67. package/dist/types.js +11 -0
  68. package/dist/wizard/engine.js +501 -0
  69. package/dist/wizard/index.js +2 -1
  70. package/dist/wizard/persistence.js +31 -0
  71. package/dist/wizard/presets.js +199 -0
  72. package/dist/wizard/provisioner.js +1 -0
  73. package/dist/wizard/types.js +1 -0
  74. package/package.json +38 -12
@@ -0,0 +1,199 @@
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
+ // src/wizard/presets.ts
19
+ var PRESETS = [
20
+ {
21
+ name: "minimal",
22
+ label: "Minimal",
23
+ description: "Gateway + D1 database \u2014 webhook processing only",
24
+ workers: ["hoox", "d1-worker", "analytics-worker"],
25
+ integrations: []
26
+ },
27
+ {
28
+ name: "standard",
29
+ label: "Standard",
30
+ description: "Trading + analytics + Telegram notifications",
31
+ workers: [
32
+ "hoox",
33
+ "d1-worker",
34
+ "trade-worker",
35
+ "analytics-worker",
36
+ "telegram-worker"
37
+ ],
38
+ integrations: ["binance", "telegram"]
39
+ },
40
+ {
41
+ name: "full",
42
+ label: "Full",
43
+ description: "All workers + AI agent + DeFi + email",
44
+ workers: [
45
+ "hoox",
46
+ "d1-worker",
47
+ "trade-worker",
48
+ "agent-worker",
49
+ "telegram-worker",
50
+ "analytics-worker",
51
+ "email-worker",
52
+ "web3-wallet-worker"
53
+ ],
54
+ integrations: ["binance", "bybit", "mexc", "telegram", "openai", "wallet"]
55
+ }
56
+ ];
57
+ var WORKER_DEPENDENCIES = {
58
+ "trade-worker": ["d1-worker"],
59
+ "agent-worker": ["d1-worker"],
60
+ "email-worker": ["d1-worker"],
61
+ "analytics-worker": ["d1-worker"],
62
+ "web3-wallet-worker": ["d1-worker", "hoox"]
63
+ };
64
+ function resolveDependencies(selected) {
65
+ const result = new Set(selected);
66
+ let changed = true;
67
+ while (changed) {
68
+ changed = false;
69
+ for (const worker of [...result]) {
70
+ const deps = WORKER_DEPENDENCIES[worker];
71
+ if (deps) {
72
+ for (const dep of deps) {
73
+ if (!result.has(dep)) {
74
+ result.add(dep);
75
+ changed = true;
76
+ }
77
+ }
78
+ }
79
+ }
80
+ }
81
+ return [...result];
82
+ }
83
+ var INTEGRATIONS = [
84
+ {
85
+ key: "binance",
86
+ label: "Binance Exchange",
87
+ workerName: "trade-worker",
88
+ secrets: {
89
+ BINANCE_KEY_BINDING: "Binance API Key",
90
+ BINANCE_SECRET_BINDING: "Binance API Secret"
91
+ }
92
+ },
93
+ {
94
+ key: "mexc",
95
+ label: "MEXC Exchange",
96
+ workerName: "trade-worker",
97
+ secrets: {
98
+ MEXC_KEY_BINDING: "MEXC API Key",
99
+ MEXC_SECRET_BINDING: "MEXC API Secret"
100
+ }
101
+ },
102
+ {
103
+ key: "bybit",
104
+ label: "Bybit Exchange",
105
+ workerName: "trade-worker",
106
+ secrets: {
107
+ BYBIT_KEY_BINDING: "Bybit API Key",
108
+ BYBIT_SECRET_BINDING: "Bybit API Secret"
109
+ }
110
+ },
111
+ {
112
+ key: "wallet",
113
+ label: "Web3 Wallet (on-chain execution)",
114
+ workerName: "web3-wallet-worker",
115
+ secrets: {
116
+ WALLET_MNEMONIC_SECRET: "Wallet Mnemonic Phrase",
117
+ WALLET_PK_SECRET: "Wallet Private Key"
118
+ }
119
+ },
120
+ {
121
+ key: "email",
122
+ label: "Email Signal Parsing",
123
+ workerName: "email-worker",
124
+ secrets: {
125
+ INTERNAL_KEY_BINDING: "Internal Auth Key",
126
+ EMAIL_HOST_BINDING: "Email Host (IMAP server)",
127
+ EMAIL_USER_BINDING: "Email Username",
128
+ EMAIL_PASS_BINDING: "Email Password"
129
+ },
130
+ vars: { USE_IMAP: "false" }
131
+ },
132
+ {
133
+ key: "telegram",
134
+ label: "Telegram Notifications",
135
+ workerName: "telegram-worker",
136
+ secrets: {
137
+ TG_BOT_TOKEN_BINDING: "Telegram Bot Token"
138
+ }
139
+ },
140
+ {
141
+ key: "openai",
142
+ label: "OpenAI (AI Agent)",
143
+ workerName: "agent-worker",
144
+ secrets: {
145
+ AGENT_INTERNAL_KEY: "OpenAI API Key"
146
+ }
147
+ },
148
+ {
149
+ key: "anthropic",
150
+ label: "Anthropic (AI Agent)",
151
+ workerName: "agent-worker",
152
+ secrets: {
153
+ AGENT_INTERNAL_KEY: "Anthropic API Key"
154
+ }
155
+ },
156
+ {
157
+ key: "google-ai",
158
+ label: "Google AI (AI Agent)",
159
+ workerName: "agent-worker",
160
+ secrets: {
161
+ AGENT_INTERNAL_KEY: "Google AI API Key"
162
+ }
163
+ },
164
+ {
165
+ key: "home-assistant",
166
+ label: "Home Assistant (Smart Home)",
167
+ workerName: "hoox",
168
+ secrets: {
169
+ HA_TOKEN_BINDING: "Home Assistant Token"
170
+ }
171
+ }
172
+ ];
173
+ var BASE_WORKERS = {
174
+ "d1-worker": {
175
+ enabled: true,
176
+ path: "workers/d1-worker",
177
+ vars: { database_name: "hoox-db" }
178
+ },
179
+ hoox: { enabled: true, path: "workers/hoox-worker", vars: {} },
180
+ "agent-worker": { enabled: true, path: "workers/agent-worker", vars: {} },
181
+ "analytics-worker": {
182
+ enabled: true,
183
+ path: "workers/analytics-worker",
184
+ vars: {}
185
+ }
186
+ };
187
+ var BASE_SECRETS = {
188
+ hoox: ["WEBHOOK_API_KEY_BINDING"],
189
+ "agent-worker": ["AGENT_INTERNAL_KEY", "INTERNAL_KEY_BINDING"],
190
+ "analytics-worker": ["CLOUDFLARE_API_TOKEN"]
191
+ };
192
+ export {
193
+ resolveDependencies,
194
+ WORKER_DEPENDENCIES,
195
+ PRESETS,
196
+ INTEGRATIONS,
197
+ BASE_WORKERS,
198
+ BASE_SECRETS
199
+ };
@@ -0,0 +1 @@
1
+ // @bun
@@ -0,0 +1 @@
1
+ // @bun
package/package.json CHANGED
@@ -1,49 +1,74 @@
1
1
  {
2
2
  "name": "@jango-blockchained/hoox-shared",
3
- "version": "1.0.9",
3
+ "version": "1.1.0",
4
4
  "description": "Shared utilities, types, and stores for HOOX CLI, TUI, and Cloudflare Workers",
5
5
  "type": "module",
6
- "main": "./src/index.ts",
7
- "types": "./src/index.ts",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
8
  "exports": {
9
9
  ".": {
10
10
  "types": "./dist/index.d.ts",
11
- "import": "./src/index.ts",
11
+ "import": "./dist/index.js",
12
12
  "default": "./dist/index.js"
13
13
  },
14
14
  "./middleware": {
15
15
  "types": "./dist/middleware/index.d.ts",
16
- "import": "./src/middleware/index.ts",
16
+ "import": "./dist/middleware/index.js",
17
17
  "default": "./dist/middleware/index.js"
18
18
  },
19
+ "./middleware/*": {
20
+ "types": "./dist/middleware/*.d.ts",
21
+ "import": "./dist/middleware/*.js",
22
+ "default": "./dist/middleware/*.js"
23
+ },
19
24
  "./d1": {
20
25
  "types": "./dist/d1/index.d.ts",
21
- "import": "./src/d1/index.ts",
26
+ "import": "./dist/d1/index.js",
22
27
  "default": "./dist/d1/index.js"
23
28
  },
29
+ "./d1/*": {
30
+ "types": "./dist/d1/*.d.ts",
31
+ "import": "./dist/d1/*.js",
32
+ "default": "./dist/d1/*.js"
33
+ },
24
34
  "./schemas": {
25
35
  "types": "./dist/schemas/index.d.ts",
26
- "import": "./src/schemas/index.ts",
36
+ "import": "./dist/schemas/index.js",
27
37
  "default": "./dist/schemas/index.js"
28
38
  },
39
+ "./schemas/*": {
40
+ "types": "./dist/schemas/*.d.ts",
41
+ "import": "./dist/schemas/*.js",
42
+ "default": "./dist/schemas/*.js"
43
+ },
29
44
  "./wizard": {
30
45
  "types": "./dist/wizard/index.d.ts",
31
- "import": "./src/wizard/index.ts",
46
+ "import": "./dist/wizard/index.js",
32
47
  "default": "./dist/wizard/index.js"
33
48
  },
49
+ "./wizard/*": {
50
+ "types": "./dist/wizard/*.d.ts",
51
+ "import": "./dist/wizard/*.js",
52
+ "default": "./dist/wizard/*.js"
53
+ },
34
54
  "./exchanges": {
35
55
  "types": "./dist/exchanges/index.d.ts",
36
- "import": "./src/exchanges/index.ts",
56
+ "import": "./dist/exchanges/index.js",
37
57
  "default": "./dist/exchanges/index.js"
38
58
  },
59
+ "./exchanges/*": {
60
+ "types": "./dist/exchanges/*.d.ts",
61
+ "import": "./dist/exchanges/*.js",
62
+ "default": "./dist/exchanges/*.js"
63
+ },
39
64
  "./stores/*": {
40
65
  "types": "./dist/stores/*.d.ts",
41
- "import": "./src/stores/*.ts",
66
+ "import": "./dist/stores/*.js",
42
67
  "default": "./dist/stores/*.js"
43
68
  },
44
69
  "./*": {
45
70
  "types": "./dist/*.d.ts",
46
- "import": "./src/*.ts",
71
+ "import": "./dist/*.js",
47
72
  "default": "./dist/*.js"
48
73
  }
49
74
  },
@@ -81,8 +106,9 @@
81
106
  "hoox"
82
107
  ],
83
108
  "author": "jango-blockchained",
84
- "license": "CC-BY-4.0",
109
+ "license": "Apache-2.0",
85
110
  "devDependencies": {
111
+ "@cloudflare/workers-types": "^5.20260708.1",
86
112
  "typescript": "^6.0.3"
87
113
  },
88
114
  "engines": {