@optimizely/ocp-local-env 1.0.0-beta.8 → 1.0.1

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 (196) hide show
  1. package/README.md +18 -133
  2. package/dist/package.json +17 -9
  3. package/dist/public/bundle.fa87c838198caf8c051a.js +3 -0
  4. package/dist/public/{bundle.0a495807b6ef336cb500.js.LICENSE.txt → bundle.fa87c838198caf8c051a.js.LICENSE.txt} +13 -3
  5. package/dist/public/bundle.fa87c838198caf8c051a.js.map +1 -0
  6. package/dist/public/index.html +1 -1
  7. package/dist/src/cli.js +2 -2
  8. package/dist/src/cli.js.map +1 -1
  9. package/dist/src/executor/FunctionExecutor.js +8 -5
  10. package/dist/src/executor/FunctionExecutor.js.map +1 -1
  11. package/dist/src/executor/JobExecutor.js +0 -17
  12. package/dist/src/executor/JobExecutor.js.map +1 -1
  13. package/dist/src/executor/LifecycleExecutor.js +11 -2
  14. package/dist/src/executor/LifecycleExecutor.js.map +1 -1
  15. package/dist/src/executor/watcher.d.ts +6 -0
  16. package/dist/src/executor/watcher.js +45 -0
  17. package/dist/src/executor/watcher.js.map +1 -1
  18. package/dist/src/local_engine/LocalJobApi.d.ts +31 -2
  19. package/dist/src/local_engine/LocalJobApi.js +42 -17
  20. package/dist/src/local_engine/LocalJobApi.js.map +1 -1
  21. package/dist/src/local_engine/LocalNotifier.d.ts +3 -2
  22. package/dist/src/local_engine/LocalNotifier.js +7 -0
  23. package/dist/src/local_engine/LocalNotifier.js.map +1 -1
  24. package/dist/src/local_engine/LocalSourceApi.d.ts +40 -0
  25. package/dist/src/local_engine/LocalSourceApi.js +69 -0
  26. package/dist/src/local_engine/LocalSourceApi.js.map +1 -0
  27. package/dist/src/local_engine/local-engine-child-base.d.ts +0 -12
  28. package/dist/src/local_engine/local-engine-child-base.js +0 -127
  29. package/dist/src/local_engine/local-engine-child-base.js.map +1 -1
  30. package/dist/src/local_engine/local-engine-client.d.ts +19 -29
  31. package/dist/src/local_engine/local-engine-client.js +45 -94
  32. package/dist/src/local_engine/local-engine-client.js.map +1 -1
  33. package/dist/src/local_engine/local-engine-types.d.ts +13 -50
  34. package/dist/src/local_engine/local-engine-unified.d.ts +6 -13
  35. package/dist/src/local_engine/local-engine-unified.js +108 -222
  36. package/dist/src/local_engine/local-engine-unified.js.map +1 -1
  37. package/dist/src/local_engine/localSDKConfig.d.ts +6 -0
  38. package/dist/src/local_engine/localSDKConfig.js +66 -1
  39. package/dist/src/local_engine/localSDKConfig.js.map +1 -1
  40. package/dist/src/local_engine/storage/BaseKVStoreWrapper.d.ts +1 -2
  41. package/dist/src/local_engine/storage/BaseKVStoreWrapper.js.map +1 -1
  42. package/dist/src/local_engine/storage/LocalConfigStore.d.ts +7 -13
  43. package/dist/src/local_engine/storage/LocalConfigStore.js +9 -31
  44. package/dist/src/local_engine/storage/LocalConfigStore.js.map +1 -1
  45. package/dist/src/local_engine/storage/LocalKVStore.d.ts +4 -0
  46. package/dist/src/local_engine/storage/LocalKVStore.js +23 -0
  47. package/dist/src/local_engine/storage/LocalKVStore.js.map +1 -1
  48. package/dist/src/local_engine/storage/LocalSettingsStore.d.ts +7 -1
  49. package/dist/src/local_engine/storage/LocalSettingsStore.js +46 -4
  50. package/dist/src/local_engine/storage/LocalSettingsStore.js.map +1 -1
  51. package/dist/src/local_engine/storage/SourceDataStore.d.ts +16 -14
  52. package/dist/src/local_engine/storage/SourceDataStore.js +57 -57
  53. package/dist/src/local_engine/storage/SourceDataStore.js.map +1 -1
  54. package/dist/src/local_engine/utils.d.ts +2 -0
  55. package/dist/src/local_engine/utils.js +4 -2
  56. package/dist/src/local_engine/utils.js.map +1 -1
  57. package/dist/src/server/api/deploy.d.ts +20 -0
  58. package/dist/src/server/api/deploy.js +399 -0
  59. package/dist/src/server/api/deploy.js.map +1 -0
  60. package/dist/src/server/api/destinations.js +1 -1
  61. package/dist/src/server/api/destinations.js.map +1 -1
  62. package/dist/src/server/api/env.d.ts +2 -0
  63. package/dist/src/server/api/env.js +28 -0
  64. package/dist/src/server/api/env.js.map +1 -0
  65. package/dist/src/server/api/functions.js +13 -12
  66. package/dist/src/server/api/functions.js.map +1 -1
  67. package/dist/src/server/api/opalTools.d.ts +4 -0
  68. package/dist/src/server/api/opalTools.js +81 -0
  69. package/dist/src/server/api/opalTools.js.map +1 -0
  70. package/dist/src/server/api/schema.d.ts +6 -0
  71. package/dist/src/server/api/schema.js +95 -0
  72. package/dist/src/server/api/schema.js.map +1 -0
  73. package/dist/src/server/api/sources.d.ts +1 -2
  74. package/dist/src/server/api/sources.js +16 -275
  75. package/dist/src/server/api/sources.js.map +1 -1
  76. package/dist/src/server/api/v1.js +67 -70
  77. package/dist/src/server/api/v1.js.map +1 -1
  78. package/dist/src/server/api.d.ts +4 -0
  79. package/dist/src/server/api.js +133 -11
  80. package/dist/src/server/api.js.map +1 -1
  81. package/dist/src/server/app-discovery.js +37 -4
  82. package/dist/src/server/app-discovery.js.map +1 -1
  83. package/dist/src/server/app-env.d.ts +21 -0
  84. package/dist/src/server/app-env.js +122 -0
  85. package/dist/src/server/app-env.js.map +1 -0
  86. package/dist/src/server/browserFocus.d.ts +5 -0
  87. package/dist/src/server/browserFocus.js +39 -0
  88. package/dist/src/server/browserFocus.js.map +1 -0
  89. package/dist/src/server/config.d.ts +3 -0
  90. package/dist/src/server/config.js +7 -0
  91. package/dist/src/server/config.js.map +1 -1
  92. package/dist/src/server/mockDataGenerator.d.ts +1 -2
  93. package/dist/src/server/mockDataGenerator.js +77 -35
  94. package/dist/src/server/mockDataGenerator.js.map +1 -1
  95. package/dist/src/server/mockToolDataGenerator.d.ts +12 -0
  96. package/dist/src/server/mockToolDataGenerator.js +393 -0
  97. package/dist/src/server/mockToolDataGenerator.js.map +1 -0
  98. package/dist/src/server.js +152 -168
  99. package/dist/src/server.js.map +1 -1
  100. package/dist/src/types/app.d.ts +1 -3
  101. package/dist/src/types/app.js.map +1 -1
  102. package/dist/src/ui/components/App.js +311 -50
  103. package/dist/src/ui/components/App.js.map +1 -1
  104. package/dist/src/ui/components/DeployModal.d.ts +16 -0
  105. package/dist/src/ui/components/DeployModal.js +75 -0
  106. package/dist/src/ui/components/DeployModal.js.map +1 -0
  107. package/dist/src/ui/components/DestinationBatchEditor.d.ts +9 -1
  108. package/dist/src/ui/components/DestinationBatchEditor.js +30 -16
  109. package/dist/src/ui/components/DestinationBatchEditor.js.map +1 -1
  110. package/dist/src/ui/components/DestinationsView.js +5 -1
  111. package/dist/src/ui/components/DestinationsView.js.map +1 -1
  112. package/dist/src/ui/components/EntityNotAvailable.d.ts +15 -0
  113. package/dist/src/ui/components/EntityNotAvailable.js +27 -0
  114. package/dist/src/ui/components/EntityNotAvailable.js.map +1 -0
  115. package/dist/src/ui/components/EnvViewer.d.ts +8 -0
  116. package/dist/src/ui/components/EnvViewer.js +35 -0
  117. package/dist/src/ui/components/EnvViewer.js.map +1 -0
  118. package/dist/src/ui/components/FunctionsView.d.ts +2 -6
  119. package/dist/src/ui/components/FunctionsView.js +106 -124
  120. package/dist/src/ui/components/FunctionsView.js.map +1 -1
  121. package/dist/src/ui/components/JobsView.js +28 -5
  122. package/dist/src/ui/components/JobsView.js.map +1 -1
  123. package/dist/src/ui/components/KVStoreViewer.js +5 -5
  124. package/dist/src/ui/components/KVStoreViewer.js.map +1 -1
  125. package/dist/src/ui/components/KeyValueEditor.d.ts +15 -0
  126. package/dist/src/ui/components/KeyValueEditor.js +12 -0
  127. package/dist/src/ui/components/KeyValueEditor.js.map +1 -0
  128. package/dist/src/ui/components/NotificationViewer.d.ts +2 -11
  129. package/dist/src/ui/components/NotificationViewer.js +69 -15
  130. package/dist/src/ui/components/NotificationViewer.js.map +1 -1
  131. package/dist/src/ui/components/OdpSchemaView.d.ts +3 -0
  132. package/dist/src/ui/components/OdpSchemaView.js +58 -0
  133. package/dist/src/ui/components/OdpSchemaView.js.map +1 -0
  134. package/dist/src/ui/components/OpalToolsView.d.ts +9 -0
  135. package/dist/src/ui/components/OpalToolsView.js +399 -0
  136. package/dist/src/ui/components/OpalToolsView.js.map +1 -0
  137. package/dist/src/ui/components/ResponseViewer.d.ts +39 -0
  138. package/dist/src/ui/components/ResponseViewer.js +43 -0
  139. package/dist/src/ui/components/ResponseViewer.js.map +1 -0
  140. package/dist/src/ui/components/SecretsStoreViewer.js +3 -2
  141. package/dist/src/ui/components/SecretsStoreViewer.js.map +1 -1
  142. package/dist/src/ui/components/SettingsStoreViewer.js +3 -2
  143. package/dist/src/ui/components/SettingsStoreViewer.js.map +1 -1
  144. package/dist/src/ui/components/SourceEmittedDataPanel.d.ts +8 -0
  145. package/dist/src/ui/components/SourceEmittedDataPanel.js +103 -0
  146. package/dist/src/ui/components/SourceEmittedDataPanel.js.map +1 -0
  147. package/dist/src/ui/components/SourcesView.js +4 -8
  148. package/dist/src/ui/components/SourcesView.js.map +1 -1
  149. package/dist/src/ui/components/StoreViewer.js +2 -1
  150. package/dist/src/ui/components/StoreViewer.js.map +1 -1
  151. package/dist/src/ui/components/TabbedConsole.d.ts +11 -0
  152. package/dist/src/ui/components/TabbedConsole.js +134 -44
  153. package/dist/src/ui/components/TabbedConsole.js.map +1 -1
  154. package/dist/src/ui/components/ToolSettingsView.d.ts +7 -0
  155. package/dist/src/ui/components/ToolSettingsView.js +25 -0
  156. package/dist/src/ui/components/ToolSettingsView.js.map +1 -0
  157. package/dist/src/ui/components/common/EyeIcon.js +2 -1
  158. package/dist/src/ui/components/common/EyeIcon.js.map +1 -1
  159. package/dist/src/ui/hooks/useKeyValuePairs.d.ts +52 -0
  160. package/dist/src/ui/hooks/useKeyValuePairs.js +66 -0
  161. package/dist/src/ui/hooks/useKeyValuePairs.js.map +1 -0
  162. package/dist/src/ui/index.js +4 -2
  163. package/dist/src/ui/index.js.map +1 -1
  164. package/dist/src/ui/store/formStateSlice.d.ts +71 -0
  165. package/dist/src/ui/store/formStateSlice.js +159 -0
  166. package/dist/src/ui/store/formStateSlice.js.map +1 -0
  167. package/dist/src/ui/store/hooks.d.ts +6 -0
  168. package/dist/src/ui/store/hooks.js +8 -0
  169. package/dist/src/ui/store/hooks.js.map +1 -0
  170. package/dist/src/ui/store/index.d.ts +11 -0
  171. package/dist/src/ui/store/index.js +107 -0
  172. package/dist/src/ui/store/index.js.map +1 -0
  173. package/dist/src/ui/types/common.d.ts +33 -0
  174. package/dist/src/ui/types/common.js +6 -0
  175. package/dist/src/ui/types/common.js.map +1 -0
  176. package/package.json +17 -9
  177. package/dist/public/bundle.0a495807b6ef336cb500.js +0 -3
  178. package/dist/public/bundle.0a495807b6ef336cb500.js.map +0 -1
  179. package/dist/src/executor/SourceExecutor.d.ts +0 -32
  180. package/dist/src/executor/SourceExecutor.js +0 -163
  181. package/dist/src/executor/SourceExecutor.js.map +0 -1
  182. package/dist/src/local_engine/storage/SourceJobExecutionStore.d.ts +0 -25
  183. package/dist/src/local_engine/storage/SourceJobExecutionStore.js +0 -61
  184. package/dist/src/local_engine/storage/SourceJobExecutionStore.js.map +0 -1
  185. package/dist/src/ui/components/SourceDataViewer.d.ts +0 -8
  186. package/dist/src/ui/components/SourceDataViewer.js +0 -84
  187. package/dist/src/ui/components/SourceDataViewer.js.map +0 -1
  188. package/dist/src/ui/components/SourceJobsSection.d.ts +0 -8
  189. package/dist/src/ui/components/SourceJobsSection.js +0 -99
  190. package/dist/src/ui/components/SourceJobsSection.js.map +0 -1
  191. package/dist/src/ui/components/SourceLifecycleSection.d.ts +0 -7
  192. package/dist/src/ui/components/SourceLifecycleSection.js +0 -58
  193. package/dist/src/ui/components/SourceLifecycleSection.js.map +0 -1
  194. package/dist/src/ui/components/SourceWebhookEditor.d.ts +0 -8
  195. package/dist/src/ui/components/SourceWebhookEditor.js +0 -168
  196. package/dist/src/ui/components/SourceWebhookEditor.js.map +0 -1
@@ -0,0 +1,20 @@
1
+ import express from 'express';
2
+ import { App } from '../../types/app';
3
+ /**
4
+ * Query Rivendell to determine initial deploy status for the button.
5
+ * Uses versions/search to find the current version's state.
6
+ * Called at startup, non-blocking.
7
+ */
8
+ export declare function queryInitialDeployStatus(appId: string, version: string): Promise<{
9
+ deployInProgress: boolean;
10
+ lastDeploySuccess: boolean | null;
11
+ }>;
12
+ interface DeployRoutes {
13
+ router: express.Router;
14
+ getDeployStatus: () => {
15
+ deployInProgress: boolean;
16
+ lastDeploySuccess: boolean | null;
17
+ };
18
+ }
19
+ export declare function createDeployRoutes(app: App): DeployRoutes;
20
+ export {};
@@ -0,0 +1,399 @@
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
+ exports.queryInitialDeployStatus = queryInitialDeployStatus;
40
+ exports.createDeployRoutes = createDeployRoutes;
41
+ const express_1 = __importDefault(require("express"));
42
+ const child_process_1 = require("child_process");
43
+ const fs_1 = __importDefault(require("fs"));
44
+ const path_1 = __importDefault(require("path"));
45
+ const os_1 = __importDefault(require("os"));
46
+ const semver = __importStar(require("semver"));
47
+ const jsYaml = __importStar(require("js-yaml"));
48
+ const api_1 = require("../api");
49
+ const dotenv = __importStar(require("dotenv"));
50
+ // Load ~/.ocp/.env for RIVENDELL env var (same as ocp-cli Config.ts:8)
51
+ dotenv.config({ path: path_1.default.join(os_1.default.homedir(), '.ocp/.env') });
52
+ const RIVENDELL_URL = process.env.RIVENDELL || 'https://rivendell.zaius.com';
53
+ const CREDENTIALS_PATH = path_1.default.join(os_1.default.homedir(), '.ocp/credentials.json');
54
+ const VERSION_FORMAT = /^\d+\.\d+\.\d+(-(((dev|beta)(\.\d+)?)|private))?$/;
55
+ /**
56
+ * Load API key from ~/.ocp/credentials.json
57
+ * Pattern from ocp-cli Config.ts:44-60
58
+ */
59
+ function loadApiKey() {
60
+ try {
61
+ if (!fs_1.default.existsSync(CREDENTIALS_PATH)) {
62
+ return null;
63
+ }
64
+ const content = fs_1.default.readFileSync(CREDENTIALS_PATH, 'utf8');
65
+ // Credentials file is YAML despite .json extension (matches ocp-cli Config.ts:52)
66
+ const creds = jsYaml.load(content);
67
+ return creds?.apiKey || null;
68
+ }
69
+ catch {
70
+ return null;
71
+ }
72
+ }
73
+ /**
74
+ * Make a request to the Rivendell API.
75
+ * Pattern from ocp-cli RivendellApi.ts:71-135
76
+ */
77
+ async function rivendellRequest(method, uri, body) {
78
+ const apiKey = loadApiKey();
79
+ if (!apiKey) {
80
+ throw new Error('API key not found. Run `ocp login` to configure credentials in ~/.ocp/credentials.json');
81
+ }
82
+ const url = `${RIVENDELL_URL}/${uri}`;
83
+ const headers = {
84
+ 'x-api-key': apiKey,
85
+ };
86
+ const init = { method, headers };
87
+ if (body && method !== 'GET') {
88
+ headers['content-type'] = 'application/json';
89
+ init.body = JSON.stringify(body);
90
+ }
91
+ const response = await fetch(url, init);
92
+ if (!response.ok) {
93
+ const text = await response.text();
94
+ throw new Error(`Rivendell returned ${response.status}: ${text}`);
95
+ }
96
+ const text = await response.text();
97
+ return text ? JSON.parse(text) : '';
98
+ }
99
+ /**
100
+ * Search for app versions via POST {shard}/versions/search.
101
+ * Pattern from ocp-cli Rivendell.ts:379-382
102
+ */
103
+ async function searchAppVersions(criteria, shard) {
104
+ return rivendellRequest('POST', `${shard}/versions/search`, criteria);
105
+ }
106
+ /**
107
+ * Fetch a specific app version via GET {shard}/versions/{appId}@{version}.
108
+ * Pattern from ocp-cli Rivendell.ts:388-391
109
+ */
110
+ async function fetchAppVersion(appId, version, shard) {
111
+ return rivendellRequest('GET', `${shard}/versions/${appId}@${version}`);
112
+ }
113
+ /**
114
+ * Determine if a version string is a dev version.
115
+ * Pattern from ocp-cli BaseBuildCommand.ts:145-147
116
+ */
117
+ function isDevVersion(version) {
118
+ return version.includes('-dev');
119
+ }
120
+ /**
121
+ * Extract the base version (major.minor.patch) from a semver string.
122
+ */
123
+ function getBaseVersion(version) {
124
+ const parsed = semver.parse(version);
125
+ if (!parsed)
126
+ return null;
127
+ return `${parsed.major}.${parsed.minor}.${parsed.patch}`;
128
+ }
129
+ /**
130
+ * Find dev versions matching a given base version, sorted by semver descending.
131
+ * Pattern from ocp-cli Publish.ts:107-108
132
+ */
133
+ function findDevVersionsForBase(allVersions, baseVersion) {
134
+ return allVersions
135
+ .filter(v => isDevVersion(v.id.version))
136
+ .filter(v => getBaseVersion(v.id.version) === baseVersion)
137
+ .sort((a, b) => semver.rcompare(a.id.version, b.id.version));
138
+ }
139
+ /**
140
+ * Find the highest existing version for this app from Rivendell using versions/search,
141
+ * then compute the next available version.
142
+ *
143
+ * Logic:
144
+ * - Search Rivendell for all versions of this app (sorted by createdAt DESC)
145
+ * - Sort results by semver to find the highest version
146
+ * - For dev versions: find the highest dev prerelease and bump it
147
+ * e.g., if 1.0.0-dev.3 is the highest, suggest 1.0.0-dev.4
148
+ * - For non-dev versions: suggest bumping patch + adding -dev.0 tag
149
+ * - If no versions exist in Rivendell, use the current version as-is
150
+ */
151
+ async function fetchAppVersions(appId) {
152
+ return searchAppVersions({ appId, sorts: [{ field: 'createdAt', direction: 'DESC' }] }, 'us');
153
+ }
154
+ function resolveDevVersion(allVersions, baseVersion) {
155
+ const devVersions = findDevVersionsForBase(allVersions, baseVersion);
156
+ if (devVersions.length === 0) {
157
+ return { suggested: `${baseVersion}-dev.0`, highestExisting: null };
158
+ }
159
+ const highest = devVersions[0];
160
+ const bumped = semver.parse(highest.id.version)?.inc('prerelease', 'dev').format()
161
+ || `${baseVersion}-dev.0`;
162
+ return { suggested: bumped, highestExisting: highest };
163
+ }
164
+ async function resolveNextVersion(appId, currentVersion) {
165
+ const isDev = isDevVersion(currentVersion);
166
+ let allVersions;
167
+ try {
168
+ allVersions = await fetchAppVersions(appId);
169
+ }
170
+ catch (err) {
171
+ if (err.message?.includes('API key not found')) {
172
+ throw err;
173
+ }
174
+ const bumped = isDev
175
+ ? semver.parse(currentVersion)?.inc('prerelease', 'dev').format()
176
+ : `${semver.parse(currentVersion)?.inc('patch').format() || currentVersion}-dev.0`;
177
+ return {
178
+ suggestedVersion: bumped || currentVersion,
179
+ currentVersion,
180
+ isDevVersion: isDev,
181
+ latestRivendellVersion: null,
182
+ rivendellState: null,
183
+ searchError: err.message || String(err)
184
+ };
185
+ }
186
+ if (isDev) {
187
+ return resolveNextDevVersion(allVersions, currentVersion);
188
+ }
189
+ return resolveNextReleaseVersion(allVersions, currentVersion);
190
+ }
191
+ function resolveNextDevVersion(allVersions, currentVersion) {
192
+ const baseVersion = getBaseVersion(currentVersion);
193
+ if (!baseVersion) {
194
+ return { suggestedVersion: currentVersion, currentVersion, isDevVersion: true, latestRivendellVersion: null, rivendellState: null };
195
+ }
196
+ const { suggested, highestExisting } = resolveDevVersion(allVersions, baseVersion);
197
+ // Ensure suggested > currentVersion (Rivendell may not have indexed the last deploy yet)
198
+ const safe = semver.valid(suggested) && semver.lte(suggested, currentVersion)
199
+ ? semver.parse(currentVersion)?.inc('prerelease', 'dev').format() || suggested
200
+ : suggested;
201
+ return {
202
+ suggestedVersion: safe,
203
+ currentVersion,
204
+ isDevVersion: true,
205
+ latestRivendellVersion: highestExisting?.id.version || null,
206
+ rivendellState: highestExisting?.state || null
207
+ };
208
+ }
209
+ function resolveNextReleaseVersion(allVersions, currentVersion) {
210
+ const parsed = semver.parse(currentVersion);
211
+ if (!parsed) {
212
+ return { suggestedVersion: currentVersion, currentVersion, isDevVersion: false, latestRivendellVersion: null, rivendellState: null };
213
+ }
214
+ const bumpedBase = `${parsed.major}.${parsed.minor}.${parsed.patch + 1}`;
215
+ const { suggested } = resolveDevVersion(allVersions, bumpedBase);
216
+ const currentInRivendell = allVersions.find(v => v.id.version === currentVersion);
217
+ return {
218
+ suggestedVersion: suggested,
219
+ currentVersion,
220
+ isDevVersion: false,
221
+ latestRivendellVersion: currentInRivendell?.id.version || null,
222
+ rivendellState: currentInRivendell?.state || null
223
+ };
224
+ }
225
+ /**
226
+ * Query Rivendell to determine initial deploy status for the button.
227
+ * Uses versions/search to find the current version's state.
228
+ * Called at startup, non-blocking.
229
+ */
230
+ async function queryInitialDeployStatus(appId, version) {
231
+ try {
232
+ // Use fetchAppVersion for a direct lookup of the specific version
233
+ const appVersion = await fetchAppVersion(appId, version, 'us');
234
+ switch (appVersion.state) {
235
+ case 'RUNNING':
236
+ return { deployInProgress: false, lastDeploySuccess: true };
237
+ case 'STARTING':
238
+ return { deployInProgress: true, lastDeploySuccess: null };
239
+ case 'START_FAILED':
240
+ return { deployInProgress: false, lastDeploySuccess: false };
241
+ default:
242
+ return { deployInProgress: false, lastDeploySuccess: null };
243
+ }
244
+ }
245
+ catch {
246
+ // Silent failure — button starts in idle state
247
+ return { deployInProgress: false, lastDeploySuccess: null };
248
+ }
249
+ }
250
+ /**
251
+ * Read the current version from app.yml on disk.
252
+ * This avoids stale in-memory values after the CLI modifies app.yml.
253
+ */
254
+ function readVersionFromAppYml(appPath) {
255
+ const appYmlPath = path_1.default.join(appPath, 'app.yml');
256
+ const content = fs_1.default.readFileSync(appYmlPath, 'utf8');
257
+ const manifest = jsYaml.load(content);
258
+ return manifest?.meta?.version || '';
259
+ }
260
+ function createDeployRoutes(app) {
261
+ const router = express_1.default.Router();
262
+ // Deploy state tracking
263
+ let deployInProgress = false;
264
+ let lastDeploySuccess = null;
265
+ // Query Rivendell for initial deploy status (non-blocking)
266
+ queryInitialDeployStatus(app.manifest.meta.app_id, app.manifest.meta.version)
267
+ .then(status => {
268
+ deployInProgress = status.deployInProgress;
269
+ lastDeploySuccess = status.lastDeploySuccess;
270
+ });
271
+ // POST /deploy/resolve-version
272
+ // Searches Rivendell for all versions of this app, finds the most recent,
273
+ // and computes the suggested next version.
274
+ router.post('/resolve-version', async (req, res) => {
275
+ try {
276
+ const appId = app.manifest.meta.app_id;
277
+ const currentVersion = readVersionFromAppYml(app.path);
278
+ const result = await resolveNextVersion(appId, currentVersion);
279
+ res.json(result);
280
+ }
281
+ catch (error) {
282
+ res.status(500).json({
283
+ error: error instanceof Error ? error.message : String(error)
284
+ });
285
+ }
286
+ });
287
+ // POST /deploy/start
288
+ // Writes version to app.yml, spawns ocp app prepare --publish, streams output via SSE
289
+ router.post('/start', async (req, res) => {
290
+ if (deployInProgress) {
291
+ return res.status(409).json({ error: 'Deploy already in progress' });
292
+ }
293
+ const { version } = req.body;
294
+ if (!version) {
295
+ return res.status(400).json({ error: 'Version is required' });
296
+ }
297
+ if (!VERSION_FORMAT.test(version)) {
298
+ return res.status(400).json({ error: 'Invalid version format' });
299
+ }
300
+ const appYmlPath = path_1.default.join(app.path, 'app.yml');
301
+ // Read version fresh from disk — the CLI may have modified app.yml since last deploy
302
+ const currentVersion = readVersionFromAppYml(app.path);
303
+ try {
304
+ const appYmlContent = fs_1.default.readFileSync(appYmlPath, 'utf8');
305
+ // Write version to app.yml using regex replacement
306
+ // Handle both quoted and unquoted versions: version: 1.0.0 or version: "1.0.0" or version: '1.0.0'
307
+ const escapedVersion = currentVersion.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
308
+ const versionRegex = new RegExp(`(version\\s*:\\s*['"]?)${escapedVersion}(['"]?)`);
309
+ if (!versionRegex.test(appYmlContent)) {
310
+ return res.status(500).json({
311
+ error: `Could not find version "${currentVersion}" in app.yml. Expected a line like "version: ${currentVersion}".`
312
+ });
313
+ }
314
+ const updatedContent = appYmlContent.replace(versionRegex, `$1${version}$2`);
315
+ fs_1.default.writeFileSync(appYmlPath, updatedContent);
316
+ // Update in-memory app manifest version
317
+ app.manifest.meta.version = version;
318
+ }
319
+ catch (error) {
320
+ return res.status(500).json({
321
+ error: `Failed to update app.yml: ${error instanceof Error ? error.message : String(error)}`
322
+ });
323
+ }
324
+ // Mark deploy as in progress
325
+ deployInProgress = true;
326
+ lastDeploySuccess = null;
327
+ // Broadcast deploy start
328
+ (0, api_1.broadcastSSE)({ type: 'deployStart', version, timestamp: new Date().toISOString() });
329
+ // Log version transition to deploy output (after deployStart so logs aren't cleared)
330
+ (0, api_1.broadcastSSE)({ type: 'deployLog', line: `Deploying: ${currentVersion} → ${version}`, timestamp: new Date().toISOString() });
331
+ // Respond immediately — output streams via SSE
332
+ res.json({ success: true, version });
333
+ // Spawn ocp app prepare --publish
334
+ const cliProcess = (0, child_process_1.spawn)('ocp', ['app', 'prepare', '--publish'], {
335
+ cwd: app.path,
336
+ env: { ...process.env },
337
+ stdio: ['ignore', 'pipe', 'pipe']
338
+ });
339
+ let lastEmittedLine = '';
340
+ const broadcastOutputLines = (data) => {
341
+ const lines = data.toString().split('\n').filter(line => line.length > 0);
342
+ for (const rawLine of lines) {
343
+ // Strip ANSI escape codes, carriage returns, and leading spinner characters (braille U+2800-U+28FF)
344
+ const line = rawLine.replace(/\x1b\[[0-9;]*[a-zA-Z]|\r/g, '').replace(/^[\u2800-\u28ff\s]+/, '').trim();
345
+ // Skip empty lines and lines that are only spinner characters
346
+ if (!line || /^[\u2800-\u28ff\s]+$/.test(line))
347
+ continue;
348
+ // Deduplicate consecutive identical lines (e.g. repeated "Status: BUILDING")
349
+ if (line === lastEmittedLine)
350
+ continue;
351
+ lastEmittedLine = line;
352
+ (0, api_1.broadcastSSE)({ type: 'deployLog', line, timestamp: new Date().toISOString() });
353
+ }
354
+ };
355
+ cliProcess.stdout.on('data', broadcastOutputLines);
356
+ cliProcess.stderr.on('data', broadcastOutputLines);
357
+ cliProcess.on('close', (code) => {
358
+ deployInProgress = false;
359
+ if (code === 0) {
360
+ lastDeploySuccess = true;
361
+ (0, api_1.broadcastSSE)({ type: 'deploySuccess', version, timestamp: new Date().toISOString() });
362
+ }
363
+ else {
364
+ lastDeploySuccess = false;
365
+ (0, api_1.broadcastSSE)({
366
+ type: 'deployError',
367
+ error: `CLI exited with code ${code}`,
368
+ version,
369
+ timestamp: new Date().toISOString()
370
+ });
371
+ }
372
+ });
373
+ cliProcess.on('error', (error) => {
374
+ deployInProgress = false;
375
+ lastDeploySuccess = false;
376
+ const errorMsg = error.message.includes('ENOENT')
377
+ ? 'ocp CLI not found. Make sure "ocp" is installed and on your PATH.'
378
+ : error.message;
379
+ (0, api_1.broadcastSSE)({
380
+ type: 'deployError',
381
+ error: errorMsg,
382
+ version,
383
+ timestamp: new Date().toISOString()
384
+ });
385
+ });
386
+ });
387
+ // GET /deploy/status
388
+ router.get('/status', (req, res) => {
389
+ res.json({
390
+ deployInProgress,
391
+ lastDeploySuccess
392
+ });
393
+ });
394
+ return {
395
+ router,
396
+ getDeployStatus: () => ({ deployInProgress, lastDeploySuccess })
397
+ };
398
+ }
399
+ //# sourceMappingURL=deploy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../../src/server/api/deploy.ts"],"names":[],"mappings":"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"}
@@ -149,7 +149,7 @@ function createDestinationRoutes(app, watcher) {
149
149
  }
150
150
  // Always delegate to local-engine via IPC (no duplication!)
151
151
  const schema = await localEngineClient.executeDestinationSchema(destinationId, createAppConfig(app));
152
- const mockBatch = (0, mockDataGenerator_1.generateMockBatch)(schema, itemCount);
152
+ const mockBatch = await (0, mockDataGenerator_1.generateMockBatch)(schema, itemCount);
153
153
  res.json({ batch: mockBatch });
154
154
  }
155
155
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"destinations.js","sourceRoot":"","sources":["../../../../src/server/api/destinations.ts"],"names":[],"mappings":";;;;;AA2BA,0DAgKC;AA3LD,sDAAqD;AAErD,yDAA8E;AAC9E,4EAAyE;AACzE,gFAA2E;AAC3E,4DAAyD;AAEzD,sCAAmC;AAEnC,MAAM,MAAM,GAAG,uBAAU,CAAC,WAAW,EAAE,CAAC;AAExC;;GAEG;AACH,SAAS,eAAe,CAAC,GAAQ;IAC/B,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,UAAU,eAAM,CAAC,MAAM,CAAC,IAAI,IAAI,eAAM,CAAC,MAAM,CAAC,IAAI,EAAE;KAC9D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB,CACrC,GAAQ,EACR,OAAoB;IACpB,MAAM,MAAM,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAC;IAChC,MAAM,mBAAmB,GAAG,IAAI,yCAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAClE,MAAM,iBAAiB,GAAG,uCAAiB,CAAC,WAAW,EAAE,CAAC;IAE1D;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;QAC9C,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC;YACrD,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC3D,EAAE;gBACF,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,WAAW;gBACzC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,WAAW;gBACzC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,MAAM;aAChC,CAAC,CAAC,CAAC;YACJ,GAAG,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,sBAAS,CAAC,MAAM,EAAE,wBAAW,CAAC,WAAW,EAAE,8BAA8B,EAAE;gBACtF,EAAE,EAAE,SAAS;gBACb,SAAS,EAAE,OAAO;gBAClB,KAAK;aACN,CAAC,CAAC;YACH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QACzE,IAAI,CAAC;YACH,MAAM,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;YACrC,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC;YAErD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;gBACjC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,aAAa,YAAY,EAAE,CAAC,CAAC;YACnF,CAAC;YAED,0CAA0C;YAC1C,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,wBAAwB,CAC7D,aAAa,EACb,eAAe,CAAC,GAAG,CAAC,CACrB,CAAC;YAEF,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,sBAAS,CAAC,MAAM,EAAE,wBAAW,CAAC,WAAW,EAAE,oCAAoC,EAAE;gBAC5F,EAAE,EAAE,aAAa;gBACjB,SAAS,EAAE,QAAQ;gBACnB,KAAK;aACN,CAAC,CAAC;YACH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,KAAK,EAAE,oCAAoC;gBAC3C,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QACzE,IAAI,CAAC;YACH,MAAM,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;YACrC,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC;YAErD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;gBACjC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,aAAa,YAAY,EAAE,CAAC,CAAC;YACnF,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YACrE,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,sBAAS,CAAC,MAAM,EAAE,wBAAW,CAAC,WAAW,EAAE,qCAAqC,EAAE;gBAC7F,EAAE,EAAE,aAAa;gBACjB,SAAS,EAAE,OAAO;gBAClB,KAAK;aACN,CAAC,CAAC;YACH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,KAAK,EAAE,qCAAqC;gBAC5C,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QAC3E,IAAI,CAAC;YACH,MAAM,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;YACrC,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAC3B,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC;YAErD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;gBACjC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,aAAa,YAAY,EAAE,CAAC,CAAC;YACnF,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC,CAAC;YAC1E,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,cAAc,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YAC9E,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,sBAAS,CAAC,MAAM,EAAE,wBAAW,CAAC,WAAW,EAAE,wCAAwC,EAAE;gBAChG,EAAE,EAAE,aAAa;gBACjB,SAAS,EAAE,SAAS;gBACpB,KAAK;aACN,CAAC,CAAC;YACH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,KAAK,EAAE,yBAAyB;gBAChC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QACjF,IAAI,CAAC;YACH,MAAM,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;YACrC,MAAM,EAAE,SAAS,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YACnC,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC;YAErD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;gBACjC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,aAAa,YAAY,EAAE,CAAC,CAAC;YACnF,CAAC;YAED,4DAA4D;YAC5D,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,wBAAwB,CAC7D,aAAa,EACb,eAAe,CAAC,GAAG,CAAC,CACrB,CAAC;YAEF,MAAM,SAAS,GAAG,IAAA,qCAAiB,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACvD,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,sBAAS,CAAC,MAAM,EAAE,wBAAW,CAAC,WAAW,EAAE,+BAA+B,EAAE;gBACvF,EAAE,EAAE,aAAa;gBACjB,SAAS,EAAE,QAAQ;gBACnB,KAAK;aACN,CAAC,CAAC;YACH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,KAAK,EAAE,+BAA+B;gBACtC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"destinations.js","sourceRoot":"","sources":["../../../../src/server/api/destinations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ declare const router: import("express-serve-static-core").Router;
2
+ export default router;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const express_1 = require("express");
4
+ const app_env_1 = require("../app-env");
5
+ const config_1 = require("../config");
6
+ const router = (0, express_1.Router)();
7
+ /**
8
+ * GET /api/env - Get effective environment variables with metadata
9
+ */
10
+ router.get('/', (req, res) => {
11
+ try {
12
+ const appEnv = app_env_1.AppEnv.getInstance(config_1.config.app.rootDir);
13
+ res.json({
14
+ variables: appEnv.getEnvWithMetadata(),
15
+ declaredVars: appEnv.getDeclaredVars(),
16
+ missingVars: appEnv.getMissingVars()
17
+ });
18
+ }
19
+ catch (error) {
20
+ console.error('Error fetching env data:', error);
21
+ res.status(500).json({
22
+ error: 'Failed to fetch environment data',
23
+ details: error instanceof Error ? error.message : String(error)
24
+ });
25
+ }
26
+ });
27
+ exports.default = router;
28
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../../../src/server/api/env.ts"],"names":[],"mappings":";;AAAA,qCAAoD;AACpD,wCAAoC;AACpC,sCAAmC;AAEnC,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,gBAAM,CAAC,WAAW,CAAC,eAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEtD,GAAG,CAAC,IAAI,CAAC;YACP,SAAS,EAAE,MAAM,CAAC,kBAAkB,EAAE;YACtC,YAAY,EAAE,MAAM,CAAC,eAAe,EAAE;YACtC,WAAW,EAAE,MAAM,CAAC,cAAc,EAAE;SACrC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QACjD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,kCAAkC;YACzC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAChE,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,kBAAe,MAAM,CAAC"}
@@ -11,23 +11,24 @@ const config_1 = require("../config");
11
11
  */
12
12
  function createFunctionRoutes(app, configStore) {
13
13
  const router = express_1.default.Router();
14
- // List all functions
14
+ // List all functions (excluding opal_tool functions)
15
15
  router.get('/', (req, res) => {
16
16
  const functions = app.manifest.functions || {};
17
17
  const protocol = req.secure ? 'https' : 'http';
18
18
  const host = req.get('host') || `${config_1.config.server.host}:${config_1.config.server.port}`;
19
- const result = Object.entries(functions).map(([id, func]) => {
19
+ // Filter out opal_tool functions - they are shown in the Opal Tools view
20
+ const result = Object.entries(functions)
21
+ .filter(([id, func]) => !func.opal_tool)
22
+ .map(([id, func]) => {
20
23
  let functionUrl = '';
21
- if (configStore && configStore.isInstalled()) {
22
- if (func.global) {
23
- // Global functions don't have GUID in the URL
24
- functionUrl = `${protocol}://${host}/functions/${app.manifest.meta.app_id}/${id}`;
25
- }
26
- else {
27
- // Non-global functions have GUID in the URL
28
- const guid = configStore.getFunctionGuid(id);
29
- functionUrl = `${protocol}://${host}/functions/${app.manifest.meta.app_id}/${id}/${guid}`;
30
- }
24
+ if (func.global) {
25
+ // Global functions don't need installation - URL has no GUID
26
+ functionUrl = `${protocol}://${host}/functions/${app.manifest.meta.app_id}/${id}`;
27
+ }
28
+ else if (configStore && configStore.isInstalled()) {
29
+ // Non-global functions need installation for GUID
30
+ const guid = configStore.getFunctionGuid(id);
31
+ functionUrl = `${protocol}://${host}/functions/${app.manifest.meta.app_id}/${id}/${guid}`;
31
32
  }
32
33
  return {
33
34
  id,
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../../src/server/api/functions.ts"],"names":[],"mappings":";;;;;AAQA,oDA8EC;AAtFD,sDAA8B;AAG9B,sCAAmC;AAEnC;;GAEG;AACH,SAAgB,oBAAoB,CAAC,GAAQ,EAAE,WAA8B;IAC3E,MAAM,MAAM,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAC;IAEhC,qBAAqB;IACrB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3B,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAC/C,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,eAAM,CAAC,MAAM,CAAC,IAAI,IAAI,eAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAE9E,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;YAC1D,IAAI,WAAW,GAAG,EAAE,CAAC;YAErB,IAAI,WAAW,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC7C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,8CAA8C;oBAC9C,WAAW,GAAG,GAAG,QAAQ,MAAM,IAAI,cAAc,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;gBACpF,CAAC;qBAAM,CAAC;oBACN,4CAA4C;oBAC5C,MAAM,IAAI,GAAG,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;oBAC7C,WAAW,GAAG,GAAG,QAAQ,MAAM,IAAI,cAAc,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;gBAC5F,CAAC;YACH,CAAC;YAED,OAAO;gBACL,EAAE;gBACF,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;gBAC5B,GAAG,EAAE,WAAW;aACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,uBAAuB;IACvB,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACtC,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAClC,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC;QAE/C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,KAAK,EAAE,aAAa,UAAU,aAAa;aAC5C,CAAC,CAAC;QACL,CAAC;QAED,GAAG,CAAC,IAAI,CAAC;YACP,EAAE,EAAE,UAAU;YACd,GAAG,SAAS,CAAC,UAAU,CAAC;SACzB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,mBAAmB;IACnB,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACrD,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAClC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;QACzB,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC;QAE/C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,KAAK,EAAE,aAAa,UAAU,aAAa;aAC5C,CAAC,CAAC;QACL,CAAC;QAED,8CAA8C;QAC9C,yDAAyD;QACzD,GAAG,CAAC,IAAI,CAAC;YACP,MAAM,EAAE,aAAa,UAAU,0BAA0B;YACzD,KAAK,EAAE,OAAO;YACd,IAAI,EAAE;gBACJ,YAAY,UAAU,oBAAoB;gBAC1C,YAAY,UAAU,sBAAsB;aAC7C;YACD,aAAa,EAAE,CAAC;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../../src/server/api/functions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import express from 'express';
2
+ import { App } from '../../types/app';
3
+ import { LocalConfigStore } from '../../local_engine/storage/LocalConfigStore';
4
+ export declare function createOpalToolRoutes(app: App, configStore?: LocalConfigStore): express.Router;