@kadi.build/core 0.0.1-alpha.12 → 0.0.1-alpha.14

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 (45) hide show
  1. package/dist/abilities/AbilityLoader.d.ts +136 -12
  2. package/dist/abilities/AbilityLoader.d.ts.map +1 -1
  3. package/dist/abilities/AbilityLoader.js +432 -64
  4. package/dist/abilities/AbilityLoader.js.map +1 -1
  5. package/dist/abilities/types.d.ts +119 -4
  6. package/dist/abilities/types.d.ts.map +1 -1
  7. package/dist/api/index.d.ts +1 -40
  8. package/dist/api/index.d.ts.map +1 -1
  9. package/dist/api/index.js +0 -57
  10. package/dist/api/index.js.map +1 -1
  11. package/dist/client/KadiClient.d.ts.map +1 -1
  12. package/dist/client/KadiClient.js +65 -4
  13. package/dist/client/KadiClient.js.map +1 -1
  14. package/dist/config/ConfigLoader.d.ts.map +1 -1
  15. package/dist/config/ConfigLoader.js +1 -0
  16. package/dist/config/ConfigLoader.js.map +1 -1
  17. package/dist/config/ConfigResolver.d.ts.map +1 -1
  18. package/dist/config/ConfigResolver.js +1 -0
  19. package/dist/config/ConfigResolver.js.map +1 -1
  20. package/dist/index.d.ts +2 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +2 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/transports/NativeTransport.d.ts.map +1 -1
  25. package/dist/transports/NativeTransport.js +22 -0
  26. package/dist/transports/NativeTransport.js.map +1 -1
  27. package/dist/transports/StdioTransport.d.ts +17 -2
  28. package/dist/transports/StdioTransport.d.ts.map +1 -1
  29. package/dist/transports/StdioTransport.js +45 -10
  30. package/dist/transports/StdioTransport.js.map +1 -1
  31. package/dist/types/config.d.ts +48 -33
  32. package/dist/types/config.d.ts.map +1 -1
  33. package/dist/types/config.js.map +1 -1
  34. package/dist/types/index.d.ts +1 -1
  35. package/dist/types/index.d.ts.map +1 -1
  36. package/dist/types/index.js.map +1 -1
  37. package/dist/utils/LockfileResolver.d.ts +179 -28
  38. package/dist/utils/LockfileResolver.d.ts.map +1 -1
  39. package/dist/utils/LockfileResolver.js +380 -39
  40. package/dist/utils/LockfileResolver.js.map +1 -1
  41. package/dist/utils/legacyHelpers.d.ts +82 -0
  42. package/dist/utils/legacyHelpers.d.ts.map +1 -0
  43. package/dist/utils/legacyHelpers.js +226 -0
  44. package/dist/utils/legacyHelpers.js.map +1 -0
  45. package/package.json +1 -1
@@ -0,0 +1,226 @@
1
+ /**
2
+ * Legacy Helper Functions from kadi-core alpha.2
3
+ *
4
+ * TODO: These functions are temporary and will be replaced by the config.json
5
+ * approach described in CLI-REVAMP-PLAN.md
6
+ *
7
+ * The new architecture will use:
8
+ * - ~/.kadi/config.json for configuration
9
+ * - Environment variables: KADI_HOME, KADI_CONFIG, KADI_BROKER_URL
10
+ * - Simple discovery functions implemented in CLI itself
11
+ *
12
+ * These functions are copied here ONLY to unblock development and testing.
13
+ * DO NOT rely on these for new features - they will be removed.
14
+ *
15
+ * @deprecated Will be removed once config.json approach is implemented
16
+ */
17
+ import path from 'path';
18
+ import fs from 'fs';
19
+ import { execSync } from 'child_process';
20
+ import { fileURLToPath } from 'url';
21
+ // Cache the resolved paths
22
+ let kadiRootDir = null;
23
+ let kadiBrokers = {};
24
+ let defaultBrokerName = null;
25
+ let activeBrokerName = null;
26
+ /**
27
+ * Resolve KADI CLI installation path
28
+ *
29
+ * TODO: Replace with config.json approach where CLI path is stored in
30
+ * ~/.kadi/config.json and accessible via KADI_HOME environment variable
31
+ *
32
+ * @deprecated Use config.json approach instead
33
+ * @returns The KADI CLI installation directory
34
+ */
35
+ function resolveKadiInstallPath() {
36
+ // Use cached value if available
37
+ if (kadiRootDir) {
38
+ return kadiRootDir;
39
+ }
40
+ /* Strategy 1: Use import.meta.resolve for @kadi.build/cli */
41
+ try {
42
+ // @ts-ignore - import.meta.resolve may not be available in all environments
43
+ if (typeof import.meta.resolve === 'function') {
44
+ // @ts-ignore
45
+ const resolved = import.meta.resolve('@kadi.build/cli/package.json');
46
+ if (resolved) {
47
+ const url = new URL(resolved);
48
+ kadiRootDir = path.dirname(fileURLToPath(url));
49
+ return kadiRootDir;
50
+ }
51
+ }
52
+ }
53
+ catch {
54
+ // Fall through to next strategy
55
+ }
56
+ /* Strategy 2: Follow the kadi executable (legacy) */
57
+ try {
58
+ const cmd = process.platform === 'win32' ? 'where kadi' : 'which kadi';
59
+ const kadiBinaryPath = execSync(cmd, { encoding: 'utf8' }).trim();
60
+ if (!kadiBinaryPath) {
61
+ throw new Error('Kadi CLI tool not found in the system PATH');
62
+ }
63
+ // Resolve symlinks to get the real path
64
+ const realKadiBinaryPath = fs.realpathSync(kadiBinaryPath);
65
+ let kadiDir = path.dirname(realKadiBinaryPath);
66
+ // Look for package.json to confirm this is the CLI
67
+ const kadiPackageJsonPath = path.join(kadiDir, 'package.json');
68
+ if (fs.existsSync(kadiPackageJsonPath)) {
69
+ const kadiPackageJson = JSON.parse(fs.readFileSync(kadiPackageJsonPath, 'utf8'));
70
+ if (kadiPackageJson.name === '@kadi.build/cli' ||
71
+ (kadiPackageJson.bin && kadiPackageJson.bin.kadi)) {
72
+ kadiRootDir = kadiDir;
73
+ return kadiRootDir;
74
+ }
75
+ }
76
+ // If not found in immediate directory, check parent (for bin/ structure)
77
+ const parentDir = path.dirname(kadiDir);
78
+ const parentPackageJsonPath = path.join(parentDir, 'package.json');
79
+ if (fs.existsSync(parentPackageJsonPath)) {
80
+ const parentPackageJson = JSON.parse(fs.readFileSync(parentPackageJsonPath, 'utf8'));
81
+ if (parentPackageJson.name === '@kadi.build/cli' ||
82
+ (parentPackageJson.bin && parentPackageJson.bin.kadi)) {
83
+ kadiRootDir = parentDir;
84
+ return kadiRootDir;
85
+ }
86
+ }
87
+ throw new Error('@kadi.build/cli package.json not found in the resolved path');
88
+ }
89
+ catch {
90
+ // Fall through to error
91
+ }
92
+ /* Strategy 3: Give up */
93
+ throw new Error('Could not locate @kadi.build/cli installation. ' +
94
+ 'Make sure the CLI is installed (`npm i -g @kadi.build/cli`) ' +
95
+ 'or run commands from inside the CLI repository during development.\n' +
96
+ 'TODO: This will be replaced with config.json approach from CLI-REVAMP-PLAN.md');
97
+ }
98
+ /**
99
+ * Load broker configuration from KADI's agent.json
100
+ *
101
+ * TODO: Replace with config.json approach where brokers are stored in
102
+ * ~/.kadi/config.json
103
+ *
104
+ * @deprecated Use config.json approach instead
105
+ */
106
+ function loadBrokerConfig() {
107
+ if (Object.keys(kadiBrokers).length > 0) {
108
+ return; // Already loaded
109
+ }
110
+ try {
111
+ const kadiRoot = resolveKadiInstallPath();
112
+ const agentJsonPath = path.join(kadiRoot, 'agent.json');
113
+ if (fs.existsSync(agentJsonPath)) {
114
+ const agentJson = JSON.parse(fs.readFileSync(agentJsonPath, 'utf8'));
115
+ if (agentJson.brokers && typeof agentJson.brokers === 'object') {
116
+ for (const [name, url] of Object.entries(agentJson.brokers)) {
117
+ const brokerUrl = new URL(url);
118
+ kadiBrokers[name] =
119
+ `${brokerUrl.hostname}:${brokerUrl.port}${brokerUrl.pathname}`;
120
+ }
121
+ // Set default broker (first one defined)
122
+ const brokerNames = Object.keys(kadiBrokers);
123
+ if (brokerNames.length > 0) {
124
+ defaultBrokerName = brokerNames[0] ?? null;
125
+ activeBrokerName = defaultBrokerName;
126
+ }
127
+ }
128
+ }
129
+ }
130
+ catch (error) {
131
+ // Silently fail - brokers may not be configured
132
+ }
133
+ }
134
+ /**
135
+ * Get KADI CLI installation path
136
+ *
137
+ * TODO: Replace with KADI_HOME environment variable or ~/.kadi/config.json
138
+ *
139
+ * @deprecated Use config.json approach instead
140
+ * @returns The KADI CLI installation directory
141
+ */
142
+ export function getKadiInstallPath() {
143
+ if (!kadiRootDir) {
144
+ kadiRootDir = resolveKadiInstallPath();
145
+ }
146
+ return kadiRootDir;
147
+ }
148
+ /**
149
+ * Get broker URL by name
150
+ *
151
+ * TODO: Replace with ~/.kadi/config.json brokers section
152
+ *
153
+ * @deprecated Use config.json approach instead
154
+ * @param brokerName - Name of the broker
155
+ * @returns Broker URL or null if not found
156
+ */
157
+ export function getBrokerUrl(brokerName) {
158
+ loadBrokerConfig();
159
+ return kadiBrokers[brokerName] || null;
160
+ }
161
+ /**
162
+ * Get all broker names
163
+ *
164
+ * TODO: Replace with ~/.kadi/config.json brokers section
165
+ *
166
+ * @deprecated Use config.json approach instead
167
+ * @returns Array of broker names
168
+ */
169
+ export function getBrokerNames() {
170
+ loadBrokerConfig();
171
+ return Object.keys(kadiBrokers);
172
+ }
173
+ /**
174
+ * Get default broker name
175
+ *
176
+ * TODO: Replace with ~/.kadi/config.json default broker setting
177
+ *
178
+ * @deprecated Use config.json approach instead
179
+ * @returns Default broker name or null
180
+ */
181
+ export function getDefaultBrokerName() {
182
+ loadBrokerConfig();
183
+ return defaultBrokerName;
184
+ }
185
+ /**
186
+ * Set active broker
187
+ *
188
+ * TODO: Replace with ~/.kadi/config.json active broker setting
189
+ *
190
+ * @deprecated Use config.json approach instead
191
+ * @param brokerName - Name of the broker to set as active
192
+ * @returns True if broker exists and was set, false otherwise
193
+ */
194
+ export function setActiveBroker(brokerName) {
195
+ loadBrokerConfig();
196
+ if (kadiBrokers[brokerName]) {
197
+ activeBrokerName = brokerName;
198
+ return true;
199
+ }
200
+ return false;
201
+ }
202
+ /**
203
+ * Get active broker name
204
+ *
205
+ * TODO: Replace with ~/.kadi/config.json active broker setting
206
+ *
207
+ * @deprecated Use config.json approach instead
208
+ * @returns Active broker name or null
209
+ */
210
+ export function getActiveBrokerName() {
211
+ loadBrokerConfig();
212
+ return activeBrokerName;
213
+ }
214
+ /**
215
+ * Get active broker URL
216
+ *
217
+ * TODO: Replace with ~/.kadi/config.json active broker setting
218
+ *
219
+ * @deprecated Use config.json approach instead
220
+ * @returns Active broker URL or null
221
+ */
222
+ export function getActiveBrokerUrl() {
223
+ loadBrokerConfig();
224
+ return activeBrokerName ? (kadiBrokers[activeBrokerName] ?? null) : null;
225
+ }
226
+ //# sourceMappingURL=legacyHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacyHelpers.js","sourceRoot":"","sources":["../../src/utils/legacyHelpers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kadi.build/core",
3
- "version": "0.0.1-alpha.12",
3
+ "version": "0.0.1-alpha.14",
4
4
  "description": "A module that is a comprehensive toolkit for developers integrating with the KADI infrastructure.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",