@optimizely/ocp-local-env 1.0.0-beta.4

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 (160) hide show
  1. package/README.md +165 -0
  2. package/dist/package.json +104 -0
  3. package/dist/public/bundle.da978bb5437cd82e6d37.js +3 -0
  4. package/dist/public/bundle.da978bb5437cd82e6d37.js.LICENSE.txt +49 -0
  5. package/dist/public/bundle.da978bb5437cd82e6d37.js.map +1 -0
  6. package/dist/public/index.html +1 -0
  7. package/dist/src/cli.d.ts +2 -0
  8. package/dist/src/cli.js +88 -0
  9. package/dist/src/cli.js.map +1 -0
  10. package/dist/src/executor/FunctionExecutor.d.ts +56 -0
  11. package/dist/src/executor/FunctionExecutor.js +175 -0
  12. package/dist/src/executor/FunctionExecutor.js.map +1 -0
  13. package/dist/src/executor/JobExecutor.d.ts +60 -0
  14. package/dist/src/executor/JobExecutor.js +203 -0
  15. package/dist/src/executor/JobExecutor.js.map +1 -0
  16. package/dist/src/executor/LifecycleExecutor.d.ts +45 -0
  17. package/dist/src/executor/LifecycleExecutor.js +153 -0
  18. package/dist/src/executor/LifecycleExecutor.js.map +1 -0
  19. package/dist/src/executor/watcher.d.ts +63 -0
  20. package/dist/src/executor/watcher.js +213 -0
  21. package/dist/src/executor/watcher.js.map +1 -0
  22. package/dist/src/functions/hello.d.ts +4 -0
  23. package/dist/src/functions/hello.js +8 -0
  24. package/dist/src/functions/hello.js.map +1 -0
  25. package/dist/src/index.d.ts +1 -0
  26. package/dist/src/index.js +9 -0
  27. package/dist/src/index.js.map +1 -0
  28. package/dist/src/jobs/dailyJob.d.ts +4 -0
  29. package/dist/src/jobs/dailyJob.js +8 -0
  30. package/dist/src/jobs/dailyJob.js.map +1 -0
  31. package/dist/src/local_engine/LocalNotifier.d.ts +10 -0
  32. package/dist/src/local_engine/LocalNotifier.js +26 -0
  33. package/dist/src/local_engine/LocalNotifier.js.map +1 -0
  34. package/dist/src/local_engine/local-engine-child-base.d.ts +79 -0
  35. package/dist/src/local_engine/local-engine-child-base.js +304 -0
  36. package/dist/src/local_engine/local-engine-child-base.js.map +1 -0
  37. package/dist/src/local_engine/local-engine-client.d.ts +80 -0
  38. package/dist/src/local_engine/local-engine-client.js +333 -0
  39. package/dist/src/local_engine/local-engine-client.js.map +1 -0
  40. package/dist/src/local_engine/local-engine-types.d.ts +132 -0
  41. package/dist/src/local_engine/local-engine-types.js +6 -0
  42. package/dist/src/local_engine/local-engine-types.js.map +1 -0
  43. package/dist/src/local_engine/local-engine-unified.d.ts +40 -0
  44. package/dist/src/local_engine/local-engine-unified.js +406 -0
  45. package/dist/src/local_engine/local-engine-unified.js.map +1 -0
  46. package/dist/src/local_engine/local-engine-utils.d.ts +70 -0
  47. package/dist/src/local_engine/local-engine-utils.js +192 -0
  48. package/dist/src/local_engine/local-engine-utils.js.map +1 -0
  49. package/dist/src/local_engine/localSDKConfig.d.ts +30 -0
  50. package/dist/src/local_engine/localSDKConfig.js +392 -0
  51. package/dist/src/local_engine/localSDKConfig.js.map +1 -0
  52. package/dist/src/local_engine/storage/LocalConfigStore.d.ts +56 -0
  53. package/dist/src/local_engine/storage/LocalConfigStore.js +129 -0
  54. package/dist/src/local_engine/storage/LocalConfigStore.js.map +1 -0
  55. package/dist/src/local_engine/storage/LocalJobStore.d.ts +110 -0
  56. package/dist/src/local_engine/storage/LocalJobStore.js +239 -0
  57. package/dist/src/local_engine/storage/LocalJobStore.js.map +1 -0
  58. package/dist/src/local_engine/storage/LocalKVStore.d.ts +105 -0
  59. package/dist/src/local_engine/storage/LocalKVStore.js +1002 -0
  60. package/dist/src/local_engine/storage/LocalKVStore.js.map +1 -0
  61. package/dist/src/local_engine/storage/LocalNotificationStore.d.ts +27 -0
  62. package/dist/src/local_engine/storage/LocalNotificationStore.js +125 -0
  63. package/dist/src/local_engine/storage/LocalNotificationStore.js.map +1 -0
  64. package/dist/src/local_engine/storage/LocalSecretsStore.d.ts +114 -0
  65. package/dist/src/local_engine/storage/LocalSecretsStore.js +319 -0
  66. package/dist/src/local_engine/storage/LocalSecretsStore.js.map +1 -0
  67. package/dist/src/local_engine/storage/LocalSettingsStore.d.ts +161 -0
  68. package/dist/src/local_engine/storage/LocalSettingsStore.js +417 -0
  69. package/dist/src/local_engine/storage/LocalSettingsStore.js.map +1 -0
  70. package/dist/src/local_engine/storage/NumberSet.d.ts +21 -0
  71. package/dist/src/local_engine/storage/NumberSet.js +32 -0
  72. package/dist/src/local_engine/storage/NumberSet.js.map +1 -0
  73. package/dist/src/local_engine/storage/StringSet.d.ts +21 -0
  74. package/dist/src/local_engine/storage/StringSet.js +32 -0
  75. package/dist/src/local_engine/storage/StringSet.js.map +1 -0
  76. package/dist/src/local_engine/types.d.ts +52 -0
  77. package/dist/src/local_engine/types.js +6 -0
  78. package/dist/src/local_engine/types.js.map +1 -0
  79. package/dist/src/local_engine/utils.d.ts +31 -0
  80. package/dist/src/local_engine/utils.js +126 -0
  81. package/dist/src/local_engine/utils.js.map +1 -0
  82. package/dist/src/logging/LogManager.d.ts +89 -0
  83. package/dist/src/logging/LogManager.js +237 -0
  84. package/dist/src/logging/LogManager.js.map +1 -0
  85. package/dist/src/server/api/functions.d.ts +7 -0
  86. package/dist/src/server/api/functions.js +80 -0
  87. package/dist/src/server/api/functions.js.map +1 -0
  88. package/dist/src/server/api/jobs.d.ts +8 -0
  89. package/dist/src/server/api/jobs.js +242 -0
  90. package/dist/src/server/api/jobs.js.map +1 -0
  91. package/dist/src/server/api/lifecycle.d.ts +6 -0
  92. package/dist/src/server/api/lifecycle.js +73 -0
  93. package/dist/src/server/api/lifecycle.js.map +1 -0
  94. package/dist/src/server/api/settings.d.ts +6 -0
  95. package/dist/src/server/api/settings.js +117 -0
  96. package/dist/src/server/api/settings.js.map +1 -0
  97. package/dist/src/server/api/stores.d.ts +2 -0
  98. package/dist/src/server/api/stores.js +341 -0
  99. package/dist/src/server/api/stores.js.map +1 -0
  100. package/dist/src/server/api/v1.d.ts +10 -0
  101. package/dist/src/server/api/v1.js +711 -0
  102. package/dist/src/server/api/v1.js.map +1 -0
  103. package/dist/src/server/api.d.ts +8 -0
  104. package/dist/src/server/api.js +154 -0
  105. package/dist/src/server/api.js.map +1 -0
  106. package/dist/src/server/app-discovery.d.ts +5 -0
  107. package/dist/src/server/app-discovery.js +81 -0
  108. package/dist/src/server/app-discovery.js.map +1 -0
  109. package/dist/src/server/config.d.ts +21 -0
  110. package/dist/src/server/config.js +100 -0
  111. package/dist/src/server/config.js.map +1 -0
  112. package/dist/src/server/websocket.d.ts +0 -0
  113. package/dist/src/server/websocket.js +2 -0
  114. package/dist/src/server/websocket.js.map +1 -0
  115. package/dist/src/server.d.ts +2 -0
  116. package/dist/src/server.js +546 -0
  117. package/dist/src/server.js.map +1 -0
  118. package/dist/src/types/app.d.ts +155 -0
  119. package/dist/src/types/app.js +24 -0
  120. package/dist/src/types/app.js.map +1 -0
  121. package/dist/src/types/kvstore.d.ts +320 -0
  122. package/dist/src/types/kvstore.js +5 -0
  123. package/dist/src/types/kvstore.js.map +1 -0
  124. package/dist/src/ui/components/App.d.ts +6 -0
  125. package/dist/src/ui/components/App.js +255 -0
  126. package/dist/src/ui/components/App.js.map +1 -0
  127. package/dist/src/ui/components/FunctionsView.d.ts +6 -0
  128. package/dist/src/ui/components/FunctionsView.js +217 -0
  129. package/dist/src/ui/components/FunctionsView.js.map +1 -0
  130. package/dist/src/ui/components/JobsView.d.ts +6 -0
  131. package/dist/src/ui/components/JobsView.js +257 -0
  132. package/dist/src/ui/components/JobsView.js.map +1 -0
  133. package/dist/src/ui/components/KVStoreViewer.d.ts +11 -0
  134. package/dist/src/ui/components/KVStoreViewer.js +168 -0
  135. package/dist/src/ui/components/KVStoreViewer.js.map +1 -0
  136. package/dist/src/ui/components/NotificationViewer.d.ts +16 -0
  137. package/dist/src/ui/components/NotificationViewer.js +69 -0
  138. package/dist/src/ui/components/NotificationViewer.js.map +1 -0
  139. package/dist/src/ui/components/SecretsStoreViewer.d.ts +11 -0
  140. package/dist/src/ui/components/SecretsStoreViewer.js +179 -0
  141. package/dist/src/ui/components/SecretsStoreViewer.js.map +1 -0
  142. package/dist/src/ui/components/SettingsStoreViewer.d.ts +24 -0
  143. package/dist/src/ui/components/SettingsStoreViewer.js +132 -0
  144. package/dist/src/ui/components/SettingsStoreViewer.js.map +1 -0
  145. package/dist/src/ui/components/StoreViewer.d.ts +16 -0
  146. package/dist/src/ui/components/StoreViewer.js +86 -0
  147. package/dist/src/ui/components/StoreViewer.js.map +1 -0
  148. package/dist/src/ui/components/TabbedConsole.d.ts +15 -0
  149. package/dist/src/ui/components/TabbedConsole.js +93 -0
  150. package/dist/src/ui/components/TabbedConsole.js.map +1 -0
  151. package/dist/src/ui/components/common/DataTree.d.ts +15 -0
  152. package/dist/src/ui/components/common/DataTree.js +95 -0
  153. package/dist/src/ui/components/common/DataTree.js.map +1 -0
  154. package/dist/src/ui/components/common/EyeIcon.d.ts +11 -0
  155. package/dist/src/ui/components/common/EyeIcon.js +11 -0
  156. package/dist/src/ui/components/common/EyeIcon.js.map +1 -0
  157. package/dist/src/ui/index.d.ts +1 -0
  158. package/dist/src/ui/index.js +20 -0
  159. package/dist/src/ui/index.js.map +1 -0
  160. package/package.json +104 -0
@@ -0,0 +1,333 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LocalEngineClient = void 0;
7
+ /**
8
+ * IPC Client for managing child process communication
9
+ */
10
+ const child_process_1 = require("child_process");
11
+ const path_1 = __importDefault(require("path"));
12
+ const local_engine_utils_1 = require("./local-engine-utils");
13
+ class LocalEngineClient {
14
+ constructor() {
15
+ this.connections = new Map();
16
+ }
17
+ /**
18
+ * Get or create a connection for the specified app
19
+ */
20
+ async getConnection(appConfig, appDir) {
21
+ const connectionKey = appConfig.manifest.meta?.app_id || 'unknown';
22
+ let connection = this.connections.get(connectionKey);
23
+ // Check if existing connection is healthy
24
+ if (connection && (0, local_engine_utils_1.isConnectionHealthy)(connection)) {
25
+ connection.lastActivity = Date.now();
26
+ return connection;
27
+ }
28
+ // Clean up old connection if it exists
29
+ if (connection) {
30
+ await this.closeConnection(connectionKey);
31
+ }
32
+ // Create new connection
33
+ connection = await this.createConnection(appConfig, appDir);
34
+ this.connections.set(connectionKey, connection);
35
+ return connection;
36
+ }
37
+ /**
38
+ * Create a new IPC connection using the unified wrapper
39
+ */
40
+ async createConnection(appConfig, appDir) {
41
+ const wrapperScript = path_1.default.join(__dirname, 'local-engine-unified.js');
42
+ console.log(`[IPC Client] Starting unified wrapper for app ${appConfig.manifest.meta?.app_id}: ${wrapperScript}`);
43
+ const childProcess = (0, child_process_1.spawn)('node', [wrapperScript], {
44
+ cwd: appDir,
45
+ stdio: ['pipe', 'pipe', 'pipe', 'ipc'],
46
+ env: { ...process.env }
47
+ });
48
+ const connection = {
49
+ process: childProcess,
50
+ ready: false,
51
+ pendingRequests: new Map(),
52
+ lastActivity: Date.now()
53
+ };
54
+ // Set up message handling
55
+ this.setupMessageHandlers(connection);
56
+ // Set up error handling
57
+ this.setupErrorHandlers(connection);
58
+ // Initialize the child process
59
+ await this.initializeChild(connection, appConfig, appDir);
60
+ return connection;
61
+ }
62
+ /**
63
+ * Set up message handlers for a connection
64
+ */
65
+ setupMessageHandlers(connection) {
66
+ connection.process.on('message', (message) => {
67
+ try {
68
+ (0, local_engine_utils_1.logIPCMessage)('RECV', message, '[IPC Client]');
69
+ if (!(0, local_engine_utils_1.validateMessage)(message)) {
70
+ console.error('[IPC Client] Received invalid message:', message);
71
+ return;
72
+ }
73
+ this.handleChildMessage(connection, message);
74
+ }
75
+ catch (error) {
76
+ console.error('[IPC Client] Error handling child message:', error);
77
+ }
78
+ });
79
+ // Handle stdout/stderr for debugging
80
+ connection.process.stdout?.on('data', (data) => {
81
+ const output = data.toString().trim();
82
+ if (output) {
83
+ console.log(`[IPC Child STDOUT] ${output}`);
84
+ }
85
+ });
86
+ connection.process.stderr?.on('data', (data) => {
87
+ const error = data.toString().trim();
88
+ if (error) {
89
+ console.error(`[IPC Child STDERR] ${error}`);
90
+ }
91
+ });
92
+ }
93
+ /**
94
+ * Set up error handlers for a connection
95
+ */
96
+ setupErrorHandlers(connection) {
97
+ connection.process.on('error', (error) => {
98
+ console.error('[IPC Client] Child process error:', error);
99
+ this.handleConnectionError(connection, error);
100
+ });
101
+ connection.process.on('exit', (code, signal) => {
102
+ console.log(`[IPC Client] Child process exited with code ${code}, signal ${signal}`);
103
+ this.handleConnectionExit(connection, code, signal);
104
+ });
105
+ connection.process.on('close', () => {
106
+ console.log('[IPC Client] Child process closed');
107
+ connection.ready = false;
108
+ });
109
+ }
110
+ /**
111
+ * Handle messages from child process
112
+ */
113
+ handleChildMessage(connection, message) {
114
+ connection.lastActivity = Date.now();
115
+ switch (message.type) {
116
+ case 'ready':
117
+ this.handleReadyMessage(connection);
118
+ break;
119
+ case 'progress':
120
+ this.handleProgressMessage(connection, message);
121
+ break;
122
+ case 'log':
123
+ this.handleLogMessage(connection, message);
124
+ break;
125
+ case 'success':
126
+ this.handleSuccessMessage(connection, message);
127
+ break;
128
+ case 'error':
129
+ this.handleErrorMessage(connection, message);
130
+ break;
131
+ default:
132
+ console.warn(`[IPC Client] Unknown message type: ${message.type}`);
133
+ }
134
+ }
135
+ /**
136
+ * Handle ready message from child
137
+ */
138
+ handleReadyMessage(connection) {
139
+ console.log('[IPC Client] Child process is ready');
140
+ connection.ready = true;
141
+ }
142
+ /**
143
+ * Handle progress message from child
144
+ */
145
+ handleProgressMessage(connection, message) {
146
+ const { requestId, message: progressMsg, progress } = message.data;
147
+ console.log(`[IPC Client] Progress for ${requestId}: ${progressMsg} (${progress || 'N/A'}%)`);
148
+ }
149
+ /**
150
+ * Handle log message from child
151
+ */
152
+ handleLogMessage(connection, message) {
153
+ const { level, message: logMsg, requestId } = message.data;
154
+ const prefix = requestId ? `[${requestId.slice(0, 8)}]` : '[IPC Child]';
155
+ console.log(`${prefix} [${level.toUpperCase()}] ${logMsg}`);
156
+ }
157
+ /**
158
+ * Handle success message from child
159
+ */
160
+ handleSuccessMessage(connection, message) {
161
+ const { requestId, result } = message.data;
162
+ const pendingRequest = connection.pendingRequests.get(requestId);
163
+ if (pendingRequest) {
164
+ (0, local_engine_utils_1.cleanupPendingRequest)(pendingRequest);
165
+ connection.pendingRequests.delete(requestId);
166
+ pendingRequest.resolve(result);
167
+ }
168
+ else {
169
+ console.warn(`[IPC Client] Received success for unknown request: ${requestId}`);
170
+ }
171
+ }
172
+ /**
173
+ * Handle error message from child
174
+ */
175
+ handleErrorMessage(connection, message) {
176
+ const { requestId, error: errorMsg, stack } = message.data;
177
+ const pendingRequest = connection.pendingRequests.get(requestId);
178
+ if (pendingRequest) {
179
+ (0, local_engine_utils_1.cleanupPendingRequest)(pendingRequest);
180
+ connection.pendingRequests.delete(requestId);
181
+ const error = (0, local_engine_utils_1.deserializeError)({ message: errorMsg, stack });
182
+ pendingRequest.reject(error);
183
+ }
184
+ else {
185
+ console.warn(`[IPC Client] Received error for unknown request: ${requestId} - ${errorMsg}`);
186
+ }
187
+ }
188
+ /**
189
+ * Handle connection errors
190
+ */
191
+ handleConnectionError(connection, error) {
192
+ console.error('[IPC Client] Connection error:', error);
193
+ // Reject all pending requests
194
+ for (const [requestId, pendingRequest] of connection.pendingRequests) {
195
+ (0, local_engine_utils_1.cleanupPendingRequest)(pendingRequest);
196
+ pendingRequest.reject(new Error(`Connection error: ${error.message}`));
197
+ }
198
+ connection.pendingRequests.clear();
199
+ connection.ready = false;
200
+ }
201
+ /**
202
+ * Handle connection exit
203
+ */
204
+ handleConnectionExit(connection, code, signal) {
205
+ // Reject all pending requests
206
+ for (const [requestId, pendingRequest] of connection.pendingRequests) {
207
+ (0, local_engine_utils_1.cleanupPendingRequest)(pendingRequest);
208
+ pendingRequest.reject(new Error(`Child process exited with code ${code}, signal ${signal}`));
209
+ }
210
+ connection.pendingRequests.clear();
211
+ connection.ready = false;
212
+ }
213
+ /**
214
+ * Initialize child process
215
+ */
216
+ async initializeChild(connection, appConfig, appDir) {
217
+ return new Promise((resolve, reject) => {
218
+ const timeout = setTimeout(() => {
219
+ reject(new Error('Child process initialization timeout'));
220
+ }, local_engine_utils_1.IPC_CONFIG.DEFAULT_TIMEOUT);
221
+ const checkReady = () => {
222
+ if (connection.ready) {
223
+ clearTimeout(timeout);
224
+ resolve();
225
+ }
226
+ else {
227
+ setTimeout(checkReady, 100);
228
+ }
229
+ };
230
+ // Send initialization message
231
+ const initMessage = {
232
+ ...(0, local_engine_utils_1.createBaseMessage)('initialize'),
233
+ type: 'initialize',
234
+ data: { appConfig, appDir }
235
+ };
236
+ (0, local_engine_utils_1.sendIPCMessage)(connection.process, initMessage);
237
+ (0, local_engine_utils_1.logIPCMessage)('SEND', initMessage, '[IPC Client]');
238
+ checkReady();
239
+ });
240
+ }
241
+ /**
242
+ * Send a request and wait for response
243
+ */
244
+ async sendRequest(connection, message, timeoutMs = local_engine_utils_1.IPC_CONFIG.DEFAULT_TIMEOUT) {
245
+ return new Promise((resolve, reject) => {
246
+ const pendingRequest = (0, local_engine_utils_1.createPendingRequest)(message.id, message.type === 'execute_function' ? 'function' : 'lifecycle', resolve, reject, timeoutMs);
247
+ // Set up timeout
248
+ pendingRequest.timeout = (0, local_engine_utils_1.createRequestTimeout)(message.id, timeoutMs, reject, () => connection.pendingRequests.delete(message.id));
249
+ // Track the request
250
+ connection.pendingRequests.set(message.id, pendingRequest);
251
+ // Send the message
252
+ (0, local_engine_utils_1.logIPCMessage)('SEND', message, '[IPC Client]');
253
+ if (!(0, local_engine_utils_1.sendIPCMessage)(connection.process, message)) {
254
+ (0, local_engine_utils_1.cleanupPendingRequest)(pendingRequest);
255
+ connection.pendingRequests.delete(message.id);
256
+ reject(new Error('Failed to send IPC message'));
257
+ }
258
+ });
259
+ }
260
+ /**
261
+ * Execute a function using IPC
262
+ */
263
+ async executeFunction(request, appConfig, appDir) {
264
+ const connection = await this.getConnection(appConfig, appDir);
265
+ const message = {
266
+ ...(0, local_engine_utils_1.createBaseMessage)('execute_function'),
267
+ type: 'execute_function',
268
+ data: request
269
+ };
270
+ return this.sendRequest(connection, message);
271
+ }
272
+ /**
273
+ * Execute a lifecycle method using IPC
274
+ */
275
+ async executeLifecycle(request, appConfig, appDir) {
276
+ const connection = await this.getConnection(appConfig, appDir);
277
+ const message = {
278
+ ...(0, local_engine_utils_1.createBaseMessage)('execute_lifecycle'),
279
+ type: 'execute_lifecycle',
280
+ data: request
281
+ };
282
+ return this.sendRequest(connection, message);
283
+ }
284
+ /**
285
+ * Execute a job using IPC
286
+ */
287
+ async executeJob(request, appConfig, appDir) {
288
+ const connection = await this.getConnection(appConfig, appDir);
289
+ const message = {
290
+ ...(0, local_engine_utils_1.createBaseMessage)('execute_job'),
291
+ type: 'execute_job',
292
+ data: request
293
+ };
294
+ return this.sendRequest(connection, message);
295
+ }
296
+ /**
297
+ * Close a specific connection
298
+ */
299
+ async closeConnection(connectionKey) {
300
+ const connection = this.connections.get(connectionKey);
301
+ if (!connection)
302
+ return;
303
+ try {
304
+ // Send shutdown message
305
+ const shutdownMessage = {
306
+ ...(0, local_engine_utils_1.createBaseMessage)('shutdown'),
307
+ type: 'shutdown'
308
+ };
309
+ (0, local_engine_utils_1.sendIPCMessage)(connection.process, shutdownMessage);
310
+ // Wait a bit for graceful shutdown
311
+ await new Promise(resolve => setTimeout(resolve, 1000));
312
+ // Force kill if still running
313
+ if (!connection.process.killed) {
314
+ connection.process.kill('SIGTERM');
315
+ }
316
+ }
317
+ catch (error) {
318
+ console.warn(`[IPC Client] Error during connection shutdown: ${error}`);
319
+ }
320
+ finally {
321
+ this.connections.delete(connectionKey);
322
+ }
323
+ }
324
+ /**
325
+ * Close all connections
326
+ */
327
+ async closeAllConnections() {
328
+ const closePromises = Array.from(this.connections.keys()).map(key => this.closeConnection(key));
329
+ await Promise.all(closePromises);
330
+ }
331
+ }
332
+ exports.LocalEngineClient = LocalEngineClient;
333
+ //# sourceMappingURL=local-engine-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-engine-client.js","sourceRoot":"","sources":["../../../src/local_engine/local-engine-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * IPC Message Types and Schemas for Parent-Child Communication
3
+ */
4
+ /// <reference types="node" />
5
+ export interface FunctionExecutionRequest {
6
+ functionId: string;
7
+ method: string;
8
+ fullpath: string;
9
+ path: string;
10
+ params: Record<string, any>;
11
+ headers: [string, string][];
12
+ body: any;
13
+ }
14
+ export interface LifecycleExecutionRequest {
15
+ method: string;
16
+ params?: any;
17
+ scriptPath: string;
18
+ appDir: string;
19
+ }
20
+ export interface JobExecutionRequest {
21
+ jobId: string;
22
+ parameters?: Record<string, any>;
23
+ dataSyncId?: string;
24
+ sourceKey?: string;
25
+ executionId: string;
26
+ appDir: string;
27
+ }
28
+ export interface AppConfig {
29
+ manifest: any;
30
+ path: string;
31
+ isBuilt: boolean;
32
+ isValid: boolean;
33
+ }
34
+ export interface IPCMessage {
35
+ id: string;
36
+ type: string;
37
+ timestamp: number;
38
+ }
39
+ export interface InitializeMessage extends IPCMessage {
40
+ type: 'initialize';
41
+ data: {
42
+ appConfig: AppConfig;
43
+ appDir: string;
44
+ };
45
+ }
46
+ export interface ExecuteFunctionMessage extends IPCMessage {
47
+ type: 'execute_function';
48
+ data: FunctionExecutionRequest;
49
+ }
50
+ export interface ExecuteLifecycleMessage extends IPCMessage {
51
+ type: 'execute_lifecycle';
52
+ data: LifecycleExecutionRequest;
53
+ }
54
+ export interface ExecuteJobMessage extends IPCMessage {
55
+ type: 'execute_job';
56
+ data: JobExecutionRequest;
57
+ }
58
+ export interface ShutdownMessage extends IPCMessage {
59
+ type: 'shutdown';
60
+ }
61
+ export interface CancelMessage extends IPCMessage {
62
+ type: 'cancel';
63
+ data: {
64
+ cancelId: string;
65
+ };
66
+ }
67
+ export type ParentMessage = InitializeMessage | ExecuteFunctionMessage | ExecuteLifecycleMessage | ExecuteJobMessage | ShutdownMessage | CancelMessage;
68
+ export interface ReadyMessage extends IPCMessage {
69
+ type: 'ready';
70
+ }
71
+ export interface ProgressMessage extends IPCMessage {
72
+ type: 'progress';
73
+ data: {
74
+ requestId: string;
75
+ message: string;
76
+ progress?: number;
77
+ };
78
+ }
79
+ export interface LogMessage extends IPCMessage {
80
+ type: 'log';
81
+ data: {
82
+ requestId?: string;
83
+ level: 'debug' | 'info' | 'warn' | 'error';
84
+ message: string;
85
+ timestamp: number;
86
+ };
87
+ }
88
+ export interface SuccessMessage extends IPCMessage {
89
+ type: 'success';
90
+ data: {
91
+ requestId: string;
92
+ result: any;
93
+ executionTime: number;
94
+ };
95
+ }
96
+ export interface ErrorMessage extends IPCMessage {
97
+ type: 'error';
98
+ data: {
99
+ requestId: string;
100
+ error: string;
101
+ stack?: string;
102
+ executionTime: number;
103
+ };
104
+ }
105
+ export interface FunctionSuccessMessage extends SuccessMessage {
106
+ data: SuccessMessage['data'] & {
107
+ status: number;
108
+ headers: [string, string][];
109
+ body: any;
110
+ };
111
+ }
112
+ export interface LifecycleSuccessMessage extends SuccessMessage {
113
+ data: SuccessMessage['data'] & {
114
+ result: any;
115
+ };
116
+ }
117
+ export type ChildMessage = ReadyMessage | ProgressMessage | LogMessage | SuccessMessage | ErrorMessage | FunctionSuccessMessage | LifecycleSuccessMessage;
118
+ export type IPCMessageUnion = ParentMessage | ChildMessage;
119
+ export interface PendingRequest {
120
+ id: string;
121
+ type: 'function' | 'lifecycle';
122
+ startTime: number;
123
+ resolve: (result: any) => void;
124
+ reject: (error: Error) => void;
125
+ timeout?: NodeJS.Timeout;
126
+ }
127
+ export interface IPCConnection {
128
+ process: any;
129
+ ready: boolean;
130
+ pendingRequests: Map<string, PendingRequest>;
131
+ lastActivity: number;
132
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * IPC Message Types and Schemas for Parent-Child Communication
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=local-engine-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-engine-types.js","sourceRoot":"","sources":["../../../src/local_engine/local-engine-types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Local Engine Unified
4
+ *
5
+ * This script runs in the app's Node.js process context and executes both OCP functions
6
+ * and lifecycle methods using IPC communication with the parent process.
7
+ * This is a single, persistent process that handles all app execution requests.
8
+ */
9
+ import { LocalEngineChildBase } from './local-engine-child-base';
10
+ import { AppConfig, FunctionExecutionRequest, LifecycleExecutionRequest, JobExecutionRequest } from './local-engine-types';
11
+ export declare class LocalEngineUnified extends LocalEngineChildBase {
12
+ private sdkComponents;
13
+ private configureLocalSDKs;
14
+ private cleanUpLocalSDKs;
15
+ private LocalSettingsStore;
16
+ private LocalConfigStore;
17
+ private isInitialized;
18
+ /**
19
+ * Initialize the wrapper with app configuration
20
+ * This happens once when the process starts
21
+ */
22
+ protected initialize(appConfig: AppConfig, appDir: string): Promise<void>;
23
+ /**
24
+ * Execute a function with the given request
25
+ */
26
+ protected executeFunction(request: FunctionExecutionRequest): Promise<any>;
27
+ /**
28
+ * Execute a lifecycle method with the given request
29
+ */
30
+ protected executeLifecycle(request: LifecycleExecutionRequest): Promise<any>;
31
+ /**
32
+ * Execute a job with the given request
33
+ */
34
+ protected executeJob(request: JobExecutionRequest): Promise<any>;
35
+ /**
36
+ * Clean up SDK configuration
37
+ * This only happens when the process is shutting down
38
+ */
39
+ protected cleanup(): Promise<void>;
40
+ }