@trops/dash-core 0.1.502 → 0.1.503

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.
@@ -1,11 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  var require$$0$1 = require('electron');
4
- var require$$1$1 = require('electron-store');
5
- var require$$1$2 = require('path');
4
+ var require$$1$1 = require('path');
6
5
  var require$$0$2 = require('fs');
7
6
  var require$$8$1 = require('objects-to-csv');
8
- var require$$1$3 = require('readline');
7
+ var require$$1$2 = require('readline');
9
8
  var require$$2 = require('xtreamer');
10
9
  var require$$3$1 = require('xml2js');
11
10
  var require$$4 = require('JSONStream');
@@ -14,27 +13,28 @@ var require$$6 = require('csv-parser');
14
13
  var require$$0$3 = require('quickjs-emscripten');
15
14
  var require$$10 = require('https');
16
15
  var require$$0$5 = require('@modelcontextprotocol/sdk/client/index.js');
17
- var require$$1$4 = require('@modelcontextprotocol/sdk/client/stdio.js');
16
+ var require$$1$3 = require('@modelcontextprotocol/sdk/client/stdio.js');
18
17
  var require$$0$4 = require('pkce-challenge');
19
18
  var require$$2$1 = require('os');
20
19
  var require$$12 = require('child_process');
20
+ var require$$0$6 = require('electron-store');
21
21
  var require$$3$2 = require('adm-zip');
22
22
  var require$$4$1 = require('url');
23
23
  var require$$2$2 = require('vm');
24
- var require$$1$5 = require('croner');
24
+ var require$$1$4 = require('croner');
25
25
  var require$$2$3 = require('algoliasearch');
26
26
  var require$$3$3 = require('node:path');
27
- var require$$0$6 = require('openai');
27
+ var require$$0$7 = require('openai');
28
28
  require('live-plugin-manager');
29
- var require$$0$9 = require('@anthropic-ai/sdk');
29
+ var require$$0$a = require('@anthropic-ai/sdk');
30
30
  var require$$3$4 = require('crypto');
31
31
  var require$$8$2 = require('zod');
32
- var require$$0$7 = require('http');
33
- var require$$1$6 = require('http2');
32
+ var require$$0$8 = require('http');
33
+ var require$$1$5 = require('http2');
34
34
  var require$$2$4 = require('node-forge');
35
- var require$$0$8 = require('css');
36
- var require$$1$7 = require('node-vibrant/node');
37
- var require$$0$a = require('ws');
35
+ var require$$0$9 = require('css');
36
+ var require$$1$6 = require('node-vibrant/node');
37
+ var require$$0$b = require('ws');
38
38
 
39
39
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
40
40
 
@@ -79,11 +79,11 @@ const SECURE_STORAGE_ENCRYPT_STRING_COMPLETE =
79
79
  const SECURE_STORAGE_ENCRYPT_STRING_ERROR =
80
80
  "secure-storage-encrypt-string-error";
81
81
 
82
- const SECURE_STORE_GET_DATA$1 = "secure-storage-get-data";
82
+ const SECURE_STORE_GET_DATA = "secure-storage-get-data";
83
83
  const SECURE_STORE_GET_DATA_COMPLETE = "secure-storage-get-data-complete";
84
84
  const SECURE_STORE_GET_DATA_ERROR = "secure-storage-get-data-error";
85
85
 
86
- const SECURE_STORE_SET_DATA$1 = "secure-storage-set-data";
86
+ const SECURE_STORE_SET_DATA = "secure-storage-set-data";
87
87
  const SECURE_STORE_SET_DATA_COMPLETE = "secure-storage-set-data-complete";
88
88
  const SECURE_STORE_SET_DATA_ERROR = "secure-storage-set-data-error";
89
89
 
@@ -91,10 +91,10 @@ var secureStorageEvents$1 = {
91
91
  SECURE_STORE_ENCRYPTION_CHECK: SECURE_STORE_ENCRYPTION_CHECK$1,
92
92
  SECURE_STORE_ENCRYPTION_CHECK_COMPLETE,
93
93
  SECURE_STORE_ENCRYPTION_CHECK_ERROR,
94
- SECURE_STORE_SET_DATA: SECURE_STORE_SET_DATA$1,
94
+ SECURE_STORE_SET_DATA,
95
95
  SECURE_STORE_SET_DATA_COMPLETE,
96
96
  SECURE_STORE_SET_DATA_ERROR,
97
- SECURE_STORE_GET_DATA: SECURE_STORE_GET_DATA$1,
97
+ SECURE_STORE_GET_DATA,
98
98
  SECURE_STORE_GET_DATA_COMPLETE,
99
99
  SECURE_STORE_GET_DATA_ERROR,
100
100
  SECURE_STORAGE_ENCRYPT_STRING,
@@ -1044,22 +1044,23 @@ var dialogController$1 = {
1044
1044
  };
1045
1045
 
1046
1046
  /**
1047
- * secureStore
1047
+ * secureStoreController
1048
+ *
1049
+ * Thin wrapper around Electron's `safeStorage` for renderer-side
1050
+ * encryption checks. The `saveData` / `getData` helpers that previously
1051
+ * lived here were unwired (no IPC handler in dash-electron) and
1052
+ * lacked per-widget scoping; they were removed alongside their
1053
+ * widget-facing API entries. See `electron/api/secureStoreApi.js`
1054
+ * and the regression-pin in `secureStoreApi.test.js`.
1055
+ *
1056
+ * Provider credential encryption uses `safeStorage.encryptString` /
1057
+ * `decryptString` directly inside `providerController` — that's the
1058
+ * only internal caller and stays unchanged.
1048
1059
  */
1049
1060
 
1050
1061
  const { safeStorage } = require$$0$1;
1051
- const Store$2 = require$$1$1;
1052
1062
  const events$6 = events$8;
1053
1063
 
1054
- const schema$1 = {
1055
- appId: {
1056
- type: "string",
1057
- },
1058
- apiKey: {
1059
- type: "string",
1060
- },
1061
- };
1062
-
1063
1064
  const isEncryptionAvailable$1 = (win) => {
1064
1065
  const result = safeStorage.isEncryptionAvailable();
1065
1066
  win.webContents.send(events$6.SECURE_STORE_ENCRYPTION_CHECK_COMPLETE, result);
@@ -1075,39 +1076,13 @@ const decryptString = (win, str) => {
1075
1076
  win.webContents.send("secure-storage-decrypt-string-complete", result);
1076
1077
  };
1077
1078
 
1078
- const saveData$1 = (key, value) => {
1079
- try {
1080
- const store = new Store$2({ schema: schema$1 });
1081
- store.set(key, value);
1082
- return getData$1(key);
1083
- } catch (e) {
1084
- return { data: null };
1085
- }
1086
- };
1087
-
1088
- const getData$1 = (key) => {
1089
- try {
1090
- const store = new Store$2({ schema: schema$1 });
1091
- const value = store.get(key);
1092
- if (value) {
1093
- return { [key]: value };
1094
- } else {
1095
- return null;
1096
- }
1097
- } catch (e) {
1098
- return null;
1099
- }
1100
- };
1101
-
1102
1079
  var secureStoreController$1 = {
1103
1080
  isEncryptionAvailable: isEncryptionAvailable$1,
1104
1081
  encryptString,
1105
1082
  decryptString,
1106
- saveData: saveData$1,
1107
- getData: getData$1,
1108
1083
  };
1109
1084
 
1110
- const path$m = require$$1$2;
1085
+ const path$m = require$$1$1;
1111
1086
  const {
1112
1087
  readFileSync,
1113
1088
  writeFileSync: writeFileSync$4,
@@ -1258,7 +1233,7 @@ var file = {
1258
1233
  };
1259
1234
 
1260
1235
  const { app: app$e } = require$$0$1;
1261
- const path$l = require$$1$2;
1236
+ const path$l = require$$1$1;
1262
1237
  const { writeFileSync: writeFileSync$3 } = require$$0$2;
1263
1238
  const { getFileContents: getFileContents$7 } = file;
1264
1239
 
@@ -1510,7 +1485,7 @@ const workspaceController$3 = {
1510
1485
  var workspaceController_1 = workspaceController$3;
1511
1486
 
1512
1487
  const { app: app$d } = require$$0$1;
1513
- const path$k = require$$1$2;
1488
+ const path$k = require$$1$1;
1514
1489
  const { writeFileSync: writeFileSync$2 } = require$$0$2;
1515
1490
  const { getFileContents: getFileContents$6 } = file;
1516
1491
 
@@ -1695,7 +1670,7 @@ var themeController_1 = themeController$5;
1695
1670
  * `/data/`.
1696
1671
  */
1697
1672
 
1698
- const path$j = require$$1$2;
1673
+ const path$j = require$$1$1;
1699
1674
  const fs$e = require$$0$2;
1700
1675
  const { app: app$c } = require$$0$1;
1701
1676
 
@@ -1864,7 +1839,7 @@ var safePath_1 = {
1864
1839
  */
1865
1840
 
1866
1841
  const fs$d = require$$0$2;
1867
- const path$i = require$$1$2;
1842
+ const path$i = require$$1$1;
1868
1843
  const { app: app$b } = require$$0$1;
1869
1844
 
1870
1845
  const FILE_NAME = "widgetMcpGrants.json";
@@ -2865,13 +2840,13 @@ function requireTransform () {
2865
2840
  if (hasRequiredTransform) return transform;
2866
2841
  hasRequiredTransform = 1;
2867
2842
  var fs = require$$0$2;
2868
- var readline = require$$1$3;
2843
+ var readline = require$$1$2;
2869
2844
  const xtreamer = require$$2;
2870
2845
  var xmlParser = require$$3$1;
2871
2846
  var JSONStream = require$$4;
2872
2847
  const stream = require$$5;
2873
2848
  var csv = require$$6;
2874
- const path = require$$1$2;
2849
+ const path = require$$1$1;
2875
2850
  const { app } = require$$0$1;
2876
2851
  const { ensureDirectoryExistence } = file;
2877
2852
  const safeJsExecutor = requireSafeJsExecutor();
@@ -3313,7 +3288,7 @@ function requireTransform () {
3313
3288
 
3314
3289
  const { app: app$a } = require$$0$1;
3315
3290
  var fs$c = require$$0$2;
3316
- const path$h = require$$1$2;
3291
+ const path$h = require$$1$1;
3317
3292
  const events$5 = events$8;
3318
3293
  const { getFileContents: getFileContents$5, writeToFile: writeToFile$2 } = file;
3319
3294
  const { safePath: safePath$2, getAllowedRoots: getAllowedRoots$1 } = safePath_1;
@@ -3907,7 +3882,7 @@ var dataController_1 = dataController$1;
3907
3882
  */
3908
3883
 
3909
3884
  const { app: app$9 } = require$$0$1;
3910
- const path$g = require$$1$2;
3885
+ const path$g = require$$1$1;
3911
3886
  const fs$b = require$$0$2;
3912
3887
  const { getFileContents: getFileContents$4, writeToFile: writeToFile$1 } = file;
3913
3888
 
@@ -4430,7 +4405,7 @@ function requireProviderController () {
4430
4405
  if (hasRequiredProviderController) return providerController_1;
4431
4406
  hasRequiredProviderController = 1;
4432
4407
  const { app, safeStorage } = require$$0$1;
4433
- const path = require$$1$2;
4408
+ const path = require$$1$1;
4434
4409
  const { writeFileSync, readFileSync, existsSync } = require$$0$2;
4435
4410
  const {
4436
4411
  ensureDirectoryExistence,
@@ -4812,7 +4787,7 @@ function requireProviderController () {
4812
4787
  }
4813
4788
 
4814
4789
  const { app: app$8 } = require$$0$1;
4815
- const path$f = require$$1$2;
4790
+ const path$f = require$$1$1;
4816
4791
  const { writeFileSync: writeFileSync$1 } = require$$0$2;
4817
4792
  const events$4 = events$8;
4818
4793
  const { getFileContents: getFileContents$3 } = file;
@@ -22525,11 +22500,11 @@ var mcpScopeResolver = {
22525
22500
  const { Client } = require$$0$5;
22526
22501
  const {
22527
22502
  StdioClientTransport,
22528
- } = require$$1$4;
22503
+ } = require$$1$3;
22529
22504
  const {
22530
22505
  StreamableHTTPClientTransport,
22531
22506
  } = streamableHttp$1;
22532
- const path$e = require$$1$2;
22507
+ const path$e = require$$1$1;
22533
22508
  const fs$a = require$$0$2;
22534
22509
  const os$2 = require$$2$1;
22535
22510
  const responseCache$2 = responseCache_1;
@@ -23685,7 +23660,7 @@ const mcpController$3 = {
23685
23660
  const sourcePath = credentials?.[from];
23686
23661
  if (sourcePath) {
23687
23662
  const destPath = to.replace(/^~/, os$2.homedir());
23688
- const destDir = require$$1$2.dirname(destPath);
23663
+ const destDir = require$$1$1.dirname(destPath);
23689
23664
  try {
23690
23665
  fs$a.mkdirSync(destDir, { recursive: true });
23691
23666
  fs$a.copyFileSync(sourcePath, destPath);
@@ -23905,7 +23880,7 @@ const REGISTRY_BASE_URL$1 =
23905
23880
  let store$3 = null;
23906
23881
  function getStore$1() {
23907
23882
  if (!store$3) {
23908
- const Store = require$$1$1;
23883
+ const Store = require$$0$6;
23909
23884
  store$3 = new Store({
23910
23885
  name: "dash-registry-auth",
23911
23886
  encryptionKey: "dash-registry-v1",
@@ -24273,7 +24248,7 @@ function commonjsRequire(path) {
24273
24248
  */
24274
24249
 
24275
24250
  const fs$9 = require$$0$2;
24276
- const path$d = require$$1$2;
24251
+ const path$d = require$$1$1;
24277
24252
 
24278
24253
  /**
24279
24254
  * Structured error thrown by compileWidget() when the underlying
@@ -24590,7 +24565,7 @@ var widgetCompiler$1 = {
24590
24565
  */
24591
24566
 
24592
24567
  const fs$8 = require$$0$2;
24593
- const path$c = require$$1$2;
24568
+ const path$c = require$$1$1;
24594
24569
  const vm = require$$2$2;
24595
24570
  const { findWidgetsDir: findWidgetsDir$1 } = widgetCompiler$1;
24596
24571
 
@@ -24881,7 +24856,7 @@ var dynamicWidgetLoaderExports = dynamicWidgetLoader$3.exports;
24881
24856
  */
24882
24857
 
24883
24858
  const fs$7 = require$$0$2;
24884
- const path$b = require$$1$2;
24859
+ const path$b = require$$1$1;
24885
24860
  const os$1 = require$$2$1;
24886
24861
  const { app: app$6 } = require$$0$1;
24887
24862
 
@@ -25010,7 +24985,7 @@ var widgetPermissions = {
25010
24985
  */
25011
24986
 
25012
24987
  const fs$6 = require$$0$2;
25013
- const path$a = require$$1$2;
24988
+ const path$a = require$$1$1;
25014
24989
 
25015
24990
  const SOURCE_EXTENSIONS = new Set([
25016
24991
  ".js",
@@ -25190,8 +25165,8 @@ var manifestScanner = {
25190
25165
  * and dispatching task-fired events to renderer windows.
25191
25166
  */
25192
25167
 
25193
- const Store$1 = require$$1$1;
25194
- const { Cron } = require$$1$5;
25168
+ const Store$1 = require$$0$6;
25169
+ const { Cron } = require$$1$4;
25195
25170
 
25196
25171
  const store$2 = new Store$1({ name: "dash-scheduler" });
25197
25172
 
@@ -25713,7 +25688,7 @@ var schedulerController_1 = schedulerController$2;
25713
25688
 
25714
25689
  (function (module) {
25715
25690
  const fs = require$$0$2;
25716
- const path = require$$1$2;
25691
+ const path = require$$1$1;
25717
25692
  const os = require$$2$1;
25718
25693
  const AdmZip = require$$3$2;
25719
25694
  const { fileURLToPath } = require$$4$1;
@@ -27236,7 +27211,7 @@ var widgetRegistryExports = widgetRegistry$1.exports;
27236
27211
  * - Support two-level browsing: packages (bundles) and widgets within packages
27237
27212
  */
27238
27213
 
27239
- const path$9 = require$$1$2;
27214
+ const path$9 = require$$1$1;
27240
27215
  const fs$5 = require$$0$2;
27241
27216
  const os = require$$2$1;
27242
27217
  const { toPackageId } = packageId;
@@ -28406,7 +28381,7 @@ const algoliaController$1 = {
28406
28381
 
28407
28382
  var algoliaController_1 = algoliaController$1;
28408
28383
 
28409
- const OpenAI = require$$0$6;
28384
+ const OpenAI = require$$0$7;
28410
28385
  const events$2 = events$8;
28411
28386
 
28412
28387
  const openaiController$1 = {
@@ -28510,7 +28485,7 @@ function upsertMenuItem$1(items, menuItem) {
28510
28485
  var upsertMenuItem_1 = { upsertMenuItem: upsertMenuItem$1 };
28511
28486
 
28512
28487
  const { app: app$5 } = require$$0$1;
28513
- const path$7 = require$$1$2;
28488
+ const path$7 = require$$1$1;
28514
28489
  const { writeFileSync } = require$$0$2;
28515
28490
  const { getFileContents: getFileContents$2 } = file;
28516
28491
  const { upsertMenuItem } = upsertMenuItem_1;
@@ -28566,7 +28541,7 @@ const menuItemsController$1 = {
28566
28541
 
28567
28542
  var menuItemsController_1 = menuItemsController$1;
28568
28543
 
28569
- const path$6 = require$$1$2;
28544
+ const path$6 = require$$1$1;
28570
28545
  const { app: app$4 } = require$$0$1;
28571
28546
 
28572
28547
  const pluginController$1 = {
@@ -46785,13 +46760,13 @@ __export(src_exports, {
46785
46760
  var dist = __toCommonJS(src_exports);
46786
46761
 
46787
46762
  // src/server.ts
46788
- var import_node_http = require$$0$7;
46763
+ var import_node_http = require$$0$8;
46789
46764
 
46790
46765
  // src/listener.ts
46791
- var import_node_http22 = require$$1$6;
46766
+ var import_node_http22 = require$$1$5;
46792
46767
 
46793
46768
  // src/request.ts
46794
- var import_node_http2 = require$$1$6;
46769
+ var import_node_http2 = require$$1$5;
46795
46770
  var import_node_stream = require$$5;
46796
46771
  var RequestError = class extends Error {
46797
46772
  constructor(message, options) {
@@ -48369,7 +48344,7 @@ streamableHttp.StreamableHTTPServerTransport = StreamableHTTPServerTransport$1;
48369
48344
  */
48370
48345
 
48371
48346
  const fs$2 = require$$0$2;
48372
- const path$5 = require$$1$2;
48347
+ const path$5 = require$$1$1;
48373
48348
  const forge = require$$2$4;
48374
48349
 
48375
48350
  /**
@@ -48768,7 +48743,7 @@ function saveMcpServerSettings(win, mcpSettings) {
48768
48743
  function resolveAppId() {
48769
48744
  const { app } = require$$0$1;
48770
48745
  const fs = require$$0$2;
48771
- const path = require$$1$2;
48746
+ const path = require$$1$1;
48772
48747
  const dashboardDir = path.join(app.getPath("userData"), "Dashboard");
48773
48748
  try {
48774
48749
  const entries = fs.readdirSync(dashboardDir, { withFileTypes: true });
@@ -50370,10 +50345,10 @@ var themeFromUrlErrors$1 = {
50370
50345
  * computed styles, and favicon/logo images (via node-vibrant).
50371
50346
  */
50372
50347
 
50373
- const css = require$$0$8;
50374
- const { Vibrant } = require$$1$7;
50348
+ const css = require$$0$9;
50349
+ const { Vibrant } = require$$1$6;
50375
50350
  const https = require$$10;
50376
- const http = require$$0$7;
50351
+ const http = require$$0$8;
50377
50352
  const { URL: URL$1 } = require$$4$1;
50378
50353
  const {
50379
50354
  UrlUnreachableError,
@@ -54933,7 +54908,7 @@ var toolHandlers$1 = {
54933
54908
  * per-request, receiving the full messages array each time.
54934
54909
  */
54935
54910
 
54936
- const Anthropic = require$$0$9;
54911
+ const Anthropic = require$$0$a;
54937
54912
  const mcpController$2 = mcpControllerExports;
54938
54913
  const cliController$1 = cliController_1;
54939
54914
  const toolDefinitions = toolDefinitions$1;
@@ -57114,7 +57089,7 @@ var dashboardConfigUtils$1 = {
57114
57089
  */
57115
57090
 
57116
57091
  const fs$1 = require$$0$2;
57117
- const path$4 = require$$1$2;
57092
+ const path$4 = require$$1$1;
57118
57093
  const { getStoredToken: getStoredToken$2 } = registryAuthController$2;
57119
57094
 
57120
57095
  const REGISTRY_BASE_URL =
@@ -57389,7 +57364,7 @@ function requireWidgetPublishManifest () {
57389
57364
  * Mirrors dashboardConfigController patterns for ZIP creation, manifest generation,
57390
57365
  * and registry interaction.
57391
57366
  */
57392
- const path$3 = require$$1$2;
57367
+ const path$3 = require$$1$1;
57393
57368
  const { app: app$3, dialog: dialog$1 } = require$$0$1;
57394
57369
  const AdmZip$2 = require$$3$2;
57395
57370
 
@@ -58129,7 +58104,7 @@ var themeRegistryController$1 = {
58129
58104
  */
58130
58105
 
58131
58106
  const { app: app$2, dialog } = require$$0$1;
58132
- const path$2 = require$$1$2;
58107
+ const path$2 = require$$1$1;
58133
58108
  const AdmZip$1 = require$$3$2;
58134
58109
  const { getFileContents: getFileContents$1 } = file;
58135
58110
  const {
@@ -60098,7 +60073,7 @@ var dashboardConfigController$1 = {
60098
60073
  */
60099
60074
 
60100
60075
  const { Notification } = require$$0$1;
60101
- const Store = require$$1$1;
60076
+ const Store = require$$0$6;
60102
60077
 
60103
60078
  const store$1 = new Store({ name: "dash-notifications" });
60104
60079
 
@@ -60351,7 +60326,7 @@ var notificationController_1 = notificationController$2;
60351
60326
  * Multiple widgets referencing the same provider share a single socket.
60352
60327
  */
60353
60328
 
60354
- const WebSocket = require$$0$a;
60329
+ const WebSocket = require$$0$b;
60355
60330
 
60356
60331
  /**
60357
60332
  * Active WebSocket connections
@@ -61341,7 +61316,7 @@ clientCache$1.registerFactory("algolia", (credentials) => {
61341
61316
 
61342
61317
  // --- OpenAI ---
61343
61318
  clientCache$1.registerFactory("openai", (credentials) => {
61344
- const OpenAI = require$$0$6;
61319
+ const OpenAI = require$$0$7;
61345
61320
  return new OpenAI({ apiKey: credentials.apiKey });
61346
61321
  });
61347
61322
 
@@ -61360,7 +61335,7 @@ const MAX_RECENTS = 20;
61360
61335
  let store = null;
61361
61336
  function getStore() {
61362
61337
  if (!store) {
61363
- const Store = require$$1$1;
61338
+ const Store = require$$0$6;
61364
61339
  store = new Store({ name: "dash-session" });
61365
61340
  }
61366
61341
  return store;
@@ -61545,7 +61520,7 @@ var dashboardRatingsUtils = {
61545
61520
  */
61546
61521
 
61547
61522
  const { app: app$1 } = require$$0$1;
61548
- const path$1 = require$$1$2;
61523
+ const path$1 = require$$1$1;
61549
61524
  const { getFileContents, writeToFile } = file;
61550
61525
  const {
61551
61526
  validateAndBuildRating,
@@ -61649,7 +61624,7 @@ var dashboardRatingsController = {
61649
61624
  */
61650
61625
 
61651
61626
  const fs = require$$0$2;
61652
- const path = require$$1$2;
61627
+ const path = require$$1$1;
61653
61628
  const AdmZip = require$$3$2;
61654
61629
  const { app } = require$$0$1;
61655
61630
 
@@ -62454,11 +62429,7 @@ var widgetRegistryController = {
62454
62429
  */
62455
62430
 
62456
62431
  const { showDialog, fileChosenError } = dialogController$1;
62457
- const {
62458
- isEncryptionAvailable,
62459
- saveData,
62460
- getData,
62461
- } = secureStoreController$1;
62432
+ const { isEncryptionAvailable } = secureStoreController$1;
62462
62433
  const {
62463
62434
  listWorkspacesForApplication,
62464
62435
  saveWorkspaceForApplication,
@@ -62576,8 +62547,6 @@ var controller = {
62576
62547
  showDialog,
62577
62548
  fileChosenError,
62578
62549
  isEncryptionAvailable,
62579
- saveData,
62580
- getData,
62581
62550
  listWorkspacesForApplication,
62582
62551
  saveWorkspaceForApplication,
62583
62552
  deleteWorkspaceForApplication,
@@ -62663,21 +62632,28 @@ var controller = {
62663
62632
  };
62664
62633
 
62665
62634
  const { ipcRenderer: ipcRenderer$q } = require$$0$1;
62666
- const {
62667
- SECURE_STORE_ENCRYPTION_CHECK,
62668
- SECURE_STORE_SET_DATA,
62669
- SECURE_STORE_GET_DATA,
62670
- } = events$8;
62635
+ const { SECURE_STORE_ENCRYPTION_CHECK } = events$8;
62671
62636
  /**
62672
62637
  * secureStoreApi
62673
- * - for Apple, keychain methods
62638
+ *
62639
+ * Renderer-facing wrapper for the secure-store IPC channels. Currently
62640
+ * exposes only `isEncryptionAvailable` because that's the only channel
62641
+ * with a wired handler in dash-electron's main process.
62642
+ *
62643
+ * `saveData` / `getData` were removed in this slice — the IPC handlers
62644
+ * for `SECURE_STORE_SET_DATA` / `SECURE_STORE_GET_DATA` were never
62645
+ * registered, so the methods silently no-op'd. Worse, they appeared
62646
+ * usable on `mainApi.secureStore` but had no widgetId scoping, so
62647
+ * adding handlers later would have given every widget unscoped access
62648
+ * to every other widget's keys. If you need a widget-facing storage
62649
+ * API in the future, add a `widgetId` parameter and plumb it through a
62650
+ * per-widget gate (see `electron/security/fsGate.js` for the pattern).
62651
+ * The pin in `secureStoreApi.test.js` will fail loudly if the
62652
+ * unscoped methods reappear without a gate.
62674
62653
  */
62675
62654
  const secureStoreApi$2 = {
62676
62655
  isEncryptionAvailable: () =>
62677
62656
  ipcRenderer$q.invoke(SECURE_STORE_ENCRYPTION_CHECK, {}),
62678
- saveData: (key, value) =>
62679
- ipcRenderer$q.invoke(SECURE_STORE_SET_DATA, { key, value }),
62680
- getData: (key) => ipcRenderer$q.invoke(SECURE_STORE_GET_DATA, { key }),
62681
62657
  };
62682
62658
 
62683
62659
  var secureStoreApi_1 = secureStoreApi$2;