@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 @@
1
+ {"version":3,"file":"LocalKVStore.js","sourceRoot":"","sources":["../../../../src/local_engine/storage/LocalKVStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export interface NotificationEntry {
2
+ id: string;
3
+ status: 'info' | 'success' | 'warn' | 'error';
4
+ activity: string;
5
+ title: string;
6
+ summary: string;
7
+ details?: string;
8
+ timestamp: string;
9
+ }
10
+ export declare class LocalNotificationStore {
11
+ private static instances;
12
+ private notificationsDir;
13
+ private currentInstallationId;
14
+ private appRootDir;
15
+ private constructor();
16
+ static getInstance(appRootDir?: string): LocalNotificationStore;
17
+ private ensureDirectoryExists;
18
+ setInstallationId(installationId: string): void;
19
+ private getNotificationsFilePath;
20
+ addNotification(status: 'info' | 'success' | 'warn' | 'error', activity: string, title: string, summary: string, details?: string): void;
21
+ getAllNotifications(): NotificationEntry[];
22
+ clearNotifications(): void;
23
+ deleteNotification(id: string): boolean;
24
+ getLastModified(): string | null;
25
+ private saveNotifications;
26
+ private generateId;
27
+ }
@@ -0,0 +1,125 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.LocalNotificationStore = void 0;
27
+ const fs = __importStar(require("fs"));
28
+ const path = __importStar(require("path"));
29
+ class LocalNotificationStore {
30
+ constructor(appRootDir) {
31
+ this.currentInstallationId = null;
32
+ this.appRootDir = appRootDir;
33
+ this.notificationsDir = path.join(appRootDir, '.ocp-local');
34
+ this.ensureDirectoryExists();
35
+ }
36
+ static getInstance(appRootDir) {
37
+ const rootDir = appRootDir || process.cwd();
38
+ if (!LocalNotificationStore.instances.has(rootDir)) {
39
+ LocalNotificationStore.instances.set(rootDir, new LocalNotificationStore(rootDir));
40
+ }
41
+ return LocalNotificationStore.instances.get(rootDir);
42
+ }
43
+ ensureDirectoryExists() {
44
+ if (!fs.existsSync(this.notificationsDir)) {
45
+ fs.mkdirSync(this.notificationsDir, { recursive: true });
46
+ }
47
+ }
48
+ setInstallationId(installationId) {
49
+ this.currentInstallationId = installationId;
50
+ }
51
+ getNotificationsFilePath() {
52
+ const installationId = this.currentInstallationId || 'default';
53
+ return path.join(this.notificationsDir, `notifications-${installationId}.json`);
54
+ }
55
+ addNotification(status, activity, title, summary, details) {
56
+ const notification = {
57
+ id: this.generateId(),
58
+ status,
59
+ activity,
60
+ title,
61
+ summary,
62
+ details,
63
+ timestamp: new Date().toISOString()
64
+ };
65
+ const notifications = this.getAllNotifications();
66
+ notifications.push(notification);
67
+ this.saveNotifications(notifications);
68
+ }
69
+ getAllNotifications() {
70
+ const filePath = this.getNotificationsFilePath();
71
+ if (!fs.existsSync(filePath)) {
72
+ return [];
73
+ }
74
+ try {
75
+ const data = fs.readFileSync(filePath, 'utf8');
76
+ return JSON.parse(data) || [];
77
+ }
78
+ catch (error) {
79
+ console.error('Error reading notifications file:', error);
80
+ return [];
81
+ }
82
+ }
83
+ clearNotifications() {
84
+ this.saveNotifications([]);
85
+ }
86
+ deleteNotification(id) {
87
+ const notifications = this.getAllNotifications();
88
+ const initialLength = notifications.length;
89
+ const filteredNotifications = notifications.filter(n => n.id !== id);
90
+ if (filteredNotifications.length < initialLength) {
91
+ this.saveNotifications(filteredNotifications);
92
+ return true;
93
+ }
94
+ return false;
95
+ }
96
+ getLastModified() {
97
+ const filePath = this.getNotificationsFilePath();
98
+ if (!fs.existsSync(filePath)) {
99
+ return null;
100
+ }
101
+ try {
102
+ const stats = fs.statSync(filePath);
103
+ return stats.mtime.toISOString();
104
+ }
105
+ catch (error) {
106
+ console.error('Error getting notifications file stats:', error);
107
+ return null;
108
+ }
109
+ }
110
+ saveNotifications(notifications) {
111
+ const filePath = this.getNotificationsFilePath();
112
+ try {
113
+ fs.writeFileSync(filePath, JSON.stringify(notifications, null, 2), 'utf8');
114
+ }
115
+ catch (error) {
116
+ console.error('Error saving notifications file:', error);
117
+ }
118
+ }
119
+ generateId() {
120
+ return `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
121
+ }
122
+ }
123
+ exports.LocalNotificationStore = LocalNotificationStore;
124
+ LocalNotificationStore.instances = new Map();
125
+ //# sourceMappingURL=LocalNotificationStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalNotificationStore.js","sourceRoot":"","sources":["../../../../src/local_engine/storage/LocalNotificationStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Interface for local app secrets
3
+ */
4
+ export interface LocalAppSecrets {
5
+ [key: string]: any;
6
+ }
7
+ /**
8
+ * Local secrets store that manages app secrets in .ocp-local/secrets.json
9
+ * Implements singleton pattern to ensure consistent state across wrapper and API
10
+ * Provides basic obfuscation for secrets at rest
11
+ */
12
+ export declare class LocalSecretsStore {
13
+ private static instances;
14
+ private secretsPath;
15
+ private configDirPath;
16
+ private appRootDir;
17
+ private constructor();
18
+ /**
19
+ * Get or create a singleton instance for the given app directory
20
+ */
21
+ static getInstance(appRootDir: string): LocalSecretsStore;
22
+ /**
23
+ * Clear all instances (useful for testing)
24
+ */
25
+ static clearAllInstances(): void;
26
+ /**
27
+ * Ensure the secrets file exists with proper permissions
28
+ */
29
+ private ensureSecretsFileExists;
30
+ /**
31
+ * Load secrets from disk with basic deobfuscation
32
+ */
33
+ private loadSecretsFromDisk;
34
+ /**
35
+ * Save secrets to disk with basic obfuscation
36
+ */
37
+ private saveSecretsToDisk;
38
+ /**
39
+ * Basic obfuscation using Base64 encoding
40
+ */
41
+ private obfuscateValue;
42
+ /**
43
+ * Basic deobfuscation using Base64 decoding
44
+ */
45
+ private deobfuscateValue;
46
+ /**
47
+ * Recursively obfuscate object values
48
+ */
49
+ private obfuscateObject;
50
+ /**
51
+ * Recursively deobfuscate object values
52
+ */
53
+ private deobfuscateObject;
54
+ /**
55
+ * Get all secrets
56
+ */
57
+ getSecrets(): LocalAppSecrets;
58
+ /**
59
+ * Get secrets for a specific section/key
60
+ */
61
+ getSectionSecrets(section: string): any;
62
+ /**
63
+ * Get a specific secret value
64
+ */
65
+ getSecret(key: string): any;
66
+ /**
67
+ * Set a specific secret value
68
+ */
69
+ setSecret(key: string, value: any): void;
70
+ /**
71
+ * Update multiple secrets at once
72
+ */
73
+ updateSecrets(newSecrets: Partial<LocalAppSecrets>): void;
74
+ /**
75
+ * Update secrets for a specific section
76
+ */
77
+ updateSectionSecrets(section: string, sectionSecrets: any): void;
78
+ /**
79
+ * Delete a specific secret
80
+ */
81
+ deleteSecret(key: string): void;
82
+ /**
83
+ * Delete specific fields from a secret section
84
+ */
85
+ deleteSecretFields(section: string, fields: string[]): void;
86
+ /**
87
+ * Clear all secrets (wipe the store)
88
+ */
89
+ clearSecrets(): void;
90
+ /**
91
+ * Check if secrets store is empty
92
+ */
93
+ isEmpty(): boolean;
94
+ /**
95
+ * Check if a specific secret exists
96
+ */
97
+ hasSecret(key: string): boolean;
98
+ /**
99
+ * Check if a section has any secrets
100
+ */
101
+ hasSectionSecrets(section: string): boolean;
102
+ /**
103
+ * Get the path to the secrets file
104
+ */
105
+ getSecretsPath(): string;
106
+ /**
107
+ * Get the config directory path
108
+ */
109
+ getConfigDirPath(): string;
110
+ /**
111
+ * Wipe all secrets and remove the secrets file (for app uninstall)
112
+ */
113
+ wipeSecrets(): void;
114
+ }
@@ -0,0 +1,319 @@
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.LocalSecretsStore = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ /**
10
+ * Local secrets store that manages app secrets in .ocp-local/secrets.json
11
+ * Implements singleton pattern to ensure consistent state across wrapper and API
12
+ * Provides basic obfuscation for secrets at rest
13
+ */
14
+ class LocalSecretsStore {
15
+ constructor(appRootDir) {
16
+ this.appRootDir = appRootDir;
17
+ this.configDirPath = path_1.default.join(appRootDir, '.ocp-local');
18
+ this.secretsPath = path_1.default.join(this.configDirPath, 'secrets.json');
19
+ // Initialize secrets file if it doesn't exist
20
+ this.ensureSecretsFileExists();
21
+ }
22
+ /**
23
+ * Get or create a singleton instance for the given app directory
24
+ */
25
+ static getInstance(appRootDir) {
26
+ const normalizedPath = path_1.default.resolve(appRootDir);
27
+ if (!this.instances.has(normalizedPath)) {
28
+ this.instances.set(normalizedPath, new LocalSecretsStore(normalizedPath));
29
+ }
30
+ return this.instances.get(normalizedPath);
31
+ }
32
+ /**
33
+ * Clear all instances (useful for testing)
34
+ */
35
+ static clearAllInstances() {
36
+ this.instances.clear();
37
+ }
38
+ /**
39
+ * Ensure the secrets file exists with proper permissions
40
+ */
41
+ ensureSecretsFileExists() {
42
+ try {
43
+ // Create config directory if it doesn't exist
44
+ if (!fs_1.default.existsSync(this.configDirPath)) {
45
+ fs_1.default.mkdirSync(this.configDirPath, { recursive: true });
46
+ }
47
+ // Create secrets file if it doesn't exist
48
+ if (!fs_1.default.existsSync(this.secretsPath)) {
49
+ const defaultSecrets = {};
50
+ this.saveSecretsToDisk(defaultSecrets);
51
+ }
52
+ }
53
+ catch (error) {
54
+ console.warn(`Failed to ensure secrets file exists: ${error instanceof Error ? error.message : String(error)}`);
55
+ }
56
+ }
57
+ /**
58
+ * Load secrets from disk with basic deobfuscation
59
+ */
60
+ loadSecretsFromDisk() {
61
+ try {
62
+ if (!fs_1.default.existsSync(this.secretsPath)) {
63
+ return {};
64
+ }
65
+ const fileContent = fs_1.default.readFileSync(this.secretsPath, 'utf-8');
66
+ const obfuscatedData = JSON.parse(fileContent);
67
+ // Deobfuscate the secrets
68
+ const secrets = {};
69
+ for (const [key, value] of Object.entries(obfuscatedData)) {
70
+ try {
71
+ if (typeof value === 'string') {
72
+ // Try to decode Base64, fallback to original value if invalid
73
+ secrets[key] = this.deobfuscateValue(value);
74
+ }
75
+ else {
76
+ // Handle nested objects
77
+ secrets[key] = this.deobfuscateObject(value);
78
+ }
79
+ }
80
+ catch (error) {
81
+ // If deobfuscation fails, keep original value
82
+ secrets[key] = value;
83
+ }
84
+ }
85
+ return secrets;
86
+ }
87
+ catch (error) {
88
+ console.warn(`Error loading secrets from disk: ${error instanceof Error ? error.message : String(error)}`);
89
+ return {};
90
+ }
91
+ }
92
+ /**
93
+ * Save secrets to disk with basic obfuscation
94
+ */
95
+ saveSecretsToDisk(secrets) {
96
+ try {
97
+ // Obfuscate the secrets before saving
98
+ const obfuscatedSecrets = {};
99
+ for (const [key, value] of Object.entries(secrets)) {
100
+ if (typeof value === 'string') {
101
+ obfuscatedSecrets[key] = this.obfuscateValue(value);
102
+ }
103
+ else {
104
+ // Handle nested objects
105
+ obfuscatedSecrets[key] = this.obfuscateObject(value);
106
+ }
107
+ }
108
+ const jsonContent = JSON.stringify(obfuscatedSecrets, null, 2);
109
+ // Write to temp file first, then rename for atomicity
110
+ const tempPath = `${this.secretsPath}.tmp`;
111
+ fs_1.default.writeFileSync(tempPath, jsonContent, 'utf-8');
112
+ // Set restrictive permissions on the temp file
113
+ try {
114
+ fs_1.default.chmodSync(tempPath, 0o600); // Read/write for owner only
115
+ }
116
+ catch (error) {
117
+ console.warn(`Could not set restrictive permissions on secrets file: ${error instanceof Error ? error.message : String(error)}`);
118
+ }
119
+ // Atomic rename
120
+ fs_1.default.renameSync(tempPath, this.secretsPath);
121
+ }
122
+ catch (error) {
123
+ console.error(`Error saving secrets to disk: ${error instanceof Error ? error.message : String(error)}`);
124
+ throw error;
125
+ }
126
+ }
127
+ /**
128
+ * Basic obfuscation using Base64 encoding
129
+ */
130
+ obfuscateValue(value) {
131
+ return Buffer.from(value, 'utf-8').toString('base64');
132
+ }
133
+ /**
134
+ * Basic deobfuscation using Base64 decoding
135
+ */
136
+ deobfuscateValue(value) {
137
+ try {
138
+ return Buffer.from(value, 'base64').toString('utf-8');
139
+ }
140
+ catch (error) {
141
+ // If Base64 decoding fails, return original value
142
+ return value;
143
+ }
144
+ }
145
+ /**
146
+ * Recursively obfuscate object values
147
+ */
148
+ obfuscateObject(obj) {
149
+ if (typeof obj === 'string') {
150
+ return this.obfuscateValue(obj);
151
+ }
152
+ else if (Array.isArray(obj)) {
153
+ return obj.map(item => this.obfuscateObject(item));
154
+ }
155
+ else if (obj !== null && typeof obj === 'object') {
156
+ const obfuscated = {};
157
+ for (const [key, value] of Object.entries(obj)) {
158
+ obfuscated[key] = this.obfuscateObject(value);
159
+ }
160
+ return obfuscated;
161
+ }
162
+ return obj;
163
+ }
164
+ /**
165
+ * Recursively deobfuscate object values
166
+ */
167
+ deobfuscateObject(obj) {
168
+ if (typeof obj === 'string') {
169
+ return this.deobfuscateValue(obj);
170
+ }
171
+ else if (Array.isArray(obj)) {
172
+ return obj.map(item => this.deobfuscateObject(item));
173
+ }
174
+ else if (obj !== null && typeof obj === 'object') {
175
+ const deobfuscated = {};
176
+ for (const [key, value] of Object.entries(obj)) {
177
+ deobfuscated[key] = this.deobfuscateObject(value);
178
+ }
179
+ return deobfuscated;
180
+ }
181
+ return obj;
182
+ }
183
+ /**
184
+ * Get all secrets
185
+ */
186
+ getSecrets() {
187
+ return this.loadSecretsFromDisk();
188
+ }
189
+ /**
190
+ * Get secrets for a specific section/key
191
+ */
192
+ getSectionSecrets(section) {
193
+ const secrets = this.loadSecretsFromDisk();
194
+ return secrets[section] || {};
195
+ }
196
+ /**
197
+ * Get a specific secret value
198
+ */
199
+ getSecret(key) {
200
+ const secrets = this.loadSecretsFromDisk();
201
+ return secrets[key];
202
+ }
203
+ /**
204
+ * Set a specific secret value
205
+ */
206
+ setSecret(key, value) {
207
+ const secrets = this.loadSecretsFromDisk();
208
+ secrets[key] = value;
209
+ this.saveSecretsToDisk(secrets);
210
+ }
211
+ /**
212
+ * Update multiple secrets at once
213
+ */
214
+ updateSecrets(newSecrets) {
215
+ const secrets = this.loadSecretsFromDisk();
216
+ const updatedSecrets = { ...secrets, ...newSecrets };
217
+ this.saveSecretsToDisk(updatedSecrets);
218
+ }
219
+ /**
220
+ * Update secrets for a specific section
221
+ */
222
+ updateSectionSecrets(section, sectionSecrets) {
223
+ const secrets = this.loadSecretsFromDisk();
224
+ if (Object.keys(sectionSecrets).length === 0) {
225
+ // If empty object, delete the section
226
+ delete secrets[section];
227
+ }
228
+ else {
229
+ // Merge with existing section secrets
230
+ secrets[section] = { ...secrets[section], ...sectionSecrets };
231
+ }
232
+ this.saveSecretsToDisk(secrets);
233
+ }
234
+ /**
235
+ * Delete a specific secret
236
+ */
237
+ deleteSecret(key) {
238
+ const secrets = this.loadSecretsFromDisk();
239
+ delete secrets[key];
240
+ this.saveSecretsToDisk(secrets);
241
+ }
242
+ /**
243
+ * Delete specific fields from a secret section
244
+ */
245
+ deleteSecretFields(section, fields) {
246
+ const secrets = this.loadSecretsFromDisk();
247
+ const sectionSecrets = secrets[section];
248
+ if (sectionSecrets && typeof sectionSecrets === 'object') {
249
+ fields.forEach(field => {
250
+ delete sectionSecrets[field];
251
+ });
252
+ // If section is empty after deletion, remove it entirely
253
+ if (Object.keys(sectionSecrets).length === 0) {
254
+ delete secrets[section];
255
+ }
256
+ else {
257
+ secrets[section] = sectionSecrets;
258
+ }
259
+ this.saveSecretsToDisk(secrets);
260
+ }
261
+ }
262
+ /**
263
+ * Clear all secrets (wipe the store)
264
+ */
265
+ clearSecrets() {
266
+ this.saveSecretsToDisk({});
267
+ }
268
+ /**
269
+ * Check if secrets store is empty
270
+ */
271
+ isEmpty() {
272
+ const secrets = this.loadSecretsFromDisk();
273
+ return Object.keys(secrets).length === 0;
274
+ }
275
+ /**
276
+ * Check if a specific secret exists
277
+ */
278
+ hasSecret(key) {
279
+ const secrets = this.loadSecretsFromDisk();
280
+ return key in secrets;
281
+ }
282
+ /**
283
+ * Check if a section has any secrets
284
+ */
285
+ hasSectionSecrets(section) {
286
+ const secrets = this.loadSecretsFromDisk();
287
+ const sectionSecrets = secrets[section];
288
+ return !!(sectionSecrets && typeof sectionSecrets === 'object' && Object.keys(sectionSecrets).length > 0);
289
+ }
290
+ /**
291
+ * Get the path to the secrets file
292
+ */
293
+ getSecretsPath() {
294
+ return this.secretsPath;
295
+ }
296
+ /**
297
+ * Get the config directory path
298
+ */
299
+ getConfigDirPath() {
300
+ return this.configDirPath;
301
+ }
302
+ /**
303
+ * Wipe all secrets and remove the secrets file (for app uninstall)
304
+ */
305
+ wipeSecrets() {
306
+ try {
307
+ if (fs_1.default.existsSync(this.secretsPath)) {
308
+ fs_1.default.unlinkSync(this.secretsPath);
309
+ }
310
+ console.log(`[LocalSecretsStore] Wiped secrets for app: ${this.appRootDir}`);
311
+ }
312
+ catch (error) {
313
+ console.warn(`[LocalSecretsStore] Failed to wipe secrets: ${error instanceof Error ? error.message : String(error)}`);
314
+ }
315
+ }
316
+ }
317
+ exports.LocalSecretsStore = LocalSecretsStore;
318
+ LocalSecretsStore.instances = new Map();
319
+ //# sourceMappingURL=LocalSecretsStore.js.map