@datagrok-libraries/bio 5.61.0 → 5.61.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # bio changelog
2
2
 
3
+ ## 5.61.1 (2025-10-30)
4
+
5
+ * Rework User lib settings storage to accomodate shortened duplicate preferences
6
+
3
7
  ## 5.61.0 (2025-10-29)
4
8
 
5
9
  * CHEMS and SMILES support in HELM
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "access": "public"
9
9
  },
10
10
  "friendlyName": "Datagrok bio library",
11
- "version": "5.61.0",
11
+ "version": "5.61.1",
12
12
  "description": "Bio utilities, types supporting Macromolecule, Molecule3D data",
13
13
  "dependencies": {
14
14
  "@datagrok-libraries/chem-meta": "^1.2.7",
@@ -1,6 +1,4 @@
1
1
  import { UserLibSettings } from './types';
2
- export declare const LIB_STORAGE_NAME = "Libraries";
3
- export declare const SETS_STORAGE_NAME: string;
4
2
  export declare function getUserLibSettings(): Promise<UserLibSettings>;
5
3
  export declare function setUserLibSettings(value: UserLibSettings): Promise<void>;
6
4
  //# sourceMappingURL=lib-settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lib-settings.d.ts","sourceRoot":"","sources":["lib-settings.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,SAAS,CAAC;AAGxC,eAAO,MAAM,gBAAgB,cAAc,CAAC;AAC5C,eAAO,MAAM,iBAAiB,EAAE,MAAuB,CAAC;AAIxD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC,CAenE;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAM9E"}
1
+ {"version":3,"file":"lib-settings.d.ts","sourceRoot":"","sources":["lib-settings.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,eAAe,EAAC,MAAM,SAAS,CAAC;AAiBxC,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC,CAyBnE;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB9E"}
@@ -1,18 +1,30 @@
1
+ /* eslint-disable max-len */
1
2
  import * as grok from 'datagrok-api/grok';
2
3
  // -- Monomer libraries --
3
- export const LIB_STORAGE_NAME = 'Libraries';
4
- export const SETS_STORAGE_NAME = 'Monomer Sets';
4
+ const LIB_STORAGE_NAME = 'Libraries';
5
+ const LIB_SETTINGS_KEY = 'Settings';
6
+ const DUPLICATE_MONOMER_PREFERENCES_KEY = 'DuplicateMonomerPreferences';
5
7
  let userLibSettingsPromise = Promise.resolve();
6
8
  export async function getUserLibSettings() {
7
9
  let res;
8
10
  userLibSettingsPromise = userLibSettingsPromise.then(async () => {
9
- const resStr = grok.userSettings.getValue(LIB_STORAGE_NAME, 'Settings', true);
11
+ const resStr = await grok.userSettings.getValue(LIB_STORAGE_NAME, LIB_SETTINGS_KEY, true);
10
12
  res = resStr ? JSON.parse(resStr) : { exclude: [], explicit: [], duplicateMonomerPreferences: {} };
13
+ const duplicatePrefsStr = await grok.userSettings.getValue(LIB_STORAGE_NAME, DUPLICATE_MONOMER_PREFERENCES_KEY, true);
14
+ const duplicatePrefs = duplicatePrefsStr ? JSON.parse(duplicatePrefsStr) : {};
11
15
  // Fix empty object returned in case there is no settings stored for user
12
16
  res.exclude = res.exclude instanceof Array ? res.exclude : [];
13
17
  res.explicit = res.explicit instanceof Array ? res.explicit : [];
14
18
  res.duplicateMonomerPreferences = res.duplicateMonomerPreferences instanceof Object ?
15
19
  res.duplicateMonomerPreferences : {};
20
+ // migrate from short hand if needed
21
+ for (const polymerType in duplicatePrefs) {
22
+ res.duplicateMonomerPreferences[polymerType] = res.duplicateMonomerPreferences[polymerType] ?? {};
23
+ for (const libraryName in duplicatePrefs[polymerType]) {
24
+ for (const monomerSymbol of duplicatePrefs[polymerType][libraryName])
25
+ res.duplicateMonomerPreferences[polymerType][monomerSymbol] = libraryName;
26
+ }
27
+ }
16
28
  console.debug(`Bio: getUserLibSettings()\n${JSON.stringify(res, undefined, 2)}`);
17
29
  });
18
30
  await userLibSettingsPromise;
@@ -20,8 +32,21 @@ export async function getUserLibSettings() {
20
32
  }
21
33
  export async function setUserLibSettings(value) {
22
34
  userLibSettingsPromise = userLibSettingsPromise.then(async () => {
35
+ value.duplicateMonomerPreferences = value.duplicateMonomerPreferences ?? {};
23
36
  console.debug(`Bio: setUserLibSettings()\n${JSON.stringify(value, undefined, 2)}`);
24
- grok.userSettings.add(LIB_STORAGE_NAME, 'Settings', JSON.stringify(value), true);
37
+ // extract short hand for duplicateMonomerPreferences
38
+ const duplicatePrefsShortHand = {};
39
+ for (const polymerType in value.duplicateMonomerPreferences) {
40
+ duplicatePrefsShortHand[polymerType] = {};
41
+ for (const monomerSymbol in value.duplicateMonomerPreferences[polymerType]) {
42
+ const libraryName = value.duplicateMonomerPreferences[polymerType][monomerSymbol];
43
+ duplicatePrefsShortHand[polymerType][libraryName] = duplicatePrefsShortHand[polymerType][libraryName] ?? [];
44
+ duplicatePrefsShortHand[polymerType][libraryName].push(monomerSymbol);
45
+ }
46
+ }
47
+ await grok.userSettings.add(LIB_STORAGE_NAME, DUPLICATE_MONOMER_PREFERENCES_KEY, JSON.stringify(duplicatePrefsShortHand), true);
48
+ value.duplicateMonomerPreferences = {}; // clear to reduce size
49
+ await grok.userSettings.add(LIB_STORAGE_NAME, LIB_SETTINGS_KEY, JSON.stringify(value), true);
25
50
  });
26
51
  await userLibSettingsPromise;
27
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lib-settings.js","sourceRoot":"","sources":["lib-settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,mBAAmB,CAAC;AAG1C,0BAA0B;AAC1B,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAC5C,MAAM,CAAC,MAAM,iBAAiB,GAAW,cAAc,CAAC;AAExD,IAAI,sBAAsB,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;AAE9D,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,IAAI,GAAoB,CAAC;IACzB,sBAAsB,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;QAC9D,MAAM,MAAM,GAAuB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,gBAAgB,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAClG,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,2BAA2B,EAAE,EAAE,EAAC,CAAC;QAEjG,yEAAyE;QACzE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,2BAA2B,GAAG,GAAG,CAAC,2BAA2B,YAAY,MAAM,CAAC,CAAC;YACnF,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IACH,MAAM,sBAAsB,CAAC;IAC7B,OAAO,GAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,KAAsB;IAC7D,sBAAsB,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;QAC9D,OAAO,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IACH,MAAM,sBAAsB,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"lib-settings.js","sourceRoot":"","sources":["lib-settings.ts"],"names":[],"mappings":"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"}