openchemlib 9.11.1 → 9.12.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.
@@ -3363,6 +3363,47 @@ export declare class SDFileParser {
3363
3363
  getField(name: string): string;
3364
3364
  }
3365
3365
 
3366
+ export interface SSSearcherOptions {
3367
+ /**
3368
+ * @default false
3369
+ */
3370
+ matchAtomCharge?: boolean;
3371
+ /**
3372
+ * @default false
3373
+ */
3374
+ matchAtomMass?: boolean;
3375
+ /**
3376
+ * @default false
3377
+ */
3378
+ matchDBondToDelocalized?: boolean;
3379
+ /**
3380
+ * @default true
3381
+ */
3382
+ matchAromDBondToDelocalized?: boolean;
3383
+ }
3384
+
3385
+ export type SSSearcherCountMode =
3386
+ | 'existence'
3387
+ | 'firstMatch'
3388
+ | 'separated'
3389
+ | 'overlapping'
3390
+ | 'rigorous'
3391
+ | 'unique';
3392
+
3393
+ export interface SSSearcherFindFragmentInMoleculeOptions {
3394
+ /**
3395
+ * Count mode.
3396
+ * overlapping: create list not containing multiple matches sharing exactly the same atoms
3397
+ * existence: check only, don't create matchList
3398
+ * firstMatch: create matchList with just one match
3399
+ * separated: create list of all non-overlapping matches / not optimized for maximum match count
3400
+ * rigorous: create list of all possible matches neglecting any symmetries
3401
+ * unique: create list of all distinguishable matches considering symmetries
3402
+ * @default overlapping
3403
+ */
3404
+ countMode: SSSearcherCountMode;
3405
+ }
3406
+
3366
3407
  /**
3367
3408
  * Basic substructure searcher.
3368
3409
  */
@@ -3370,7 +3411,7 @@ export declare class SSSearcher {
3370
3411
  /**
3371
3412
  * Creates a new substructure searcher.
3372
3413
  */
3373
- constructor();
3414
+ constructor(options?: SSSearcherOptions);
3374
3415
 
3375
3416
  /**
3376
3417
  * Set the `fragment` to search.
@@ -3396,6 +3437,30 @@ export declare class SSSearcher {
3396
3437
  * Returns whether the current fragment is in the target molecule.
3397
3438
  */
3398
3439
  isFragmentInMolecule(): boolean;
3440
+
3441
+ /**
3442
+ * Locates all matches of the fragment in the molecule that result in distinguishable
3443
+ * sets of molecule atoms. Multiple matches involving the same atoms, e.g. with a benzene ring,
3444
+ * are counted and listed only once. If count mode is different from 'existence',
3445
+ * then an atom mapping from fragment to molecule is collected and can be retrieved with getMatchList().
3446
+ * @param options
3447
+ * @returns count of sub-structure matches of fragment in molecule
3448
+ */
3449
+ findFragmentInMolecule(
3450
+ options?: SSSearcherFindFragmentInMoleculeOptions,
3451
+ ): number;
3452
+
3453
+ /**
3454
+ * If the match count mode is one of 'firstMatch', 'overlapping',
3455
+ * 'rigorous' then this method returns an array of all counted matches,
3456
+ * i.e. int arrays mapping fragment atoms to molecule atoms. Atoms being part of a
3457
+ * matched bridge bond are naturally not covered by the mapping. Atoms being part of a
3458
+ * matching bridge bond are available with getBridgeBondAtomList().
3459
+ * Note: If some query fragment atoms are marked as exclude group, then the respective
3460
+ * matchlist values are -1.
3461
+ * @returns list of distinct counted matches.
3462
+ */
3463
+ getMatchList(): number[][];
3399
3464
  }
3400
3465
 
3401
3466
  /**
@@ -1369,7 +1369,8 @@ function extendFromMolfile(Molecule2) {
1369
1369
  Molecule2.fromMolfile = function fromMolfile(molfile, options = {}) {
1370
1370
  const { customLabelPosition } = options;
1371
1371
  const molecule = _fromMolfile.call(this, molfile);
1372
- const lines = molfile.split("\n");
1372
+ const eol = molfile.includes("\r\n") ? "\r\n" : "\n";
1373
+ const lines = molfile.split(eol);
1373
1374
  if (lines.length < 4 || !lines[3].includes("V2000")) {
1374
1375
  return molecule;
1375
1376
  }
@@ -1426,7 +1427,8 @@ function extendToMolfile(Molecule2) {
1426
1427
  if (!includeCustomAtomLabelsAsALines && !includeCustomAtomLabelsAsVLines && !removeCustomAtomLabels) {
1427
1428
  return molfile;
1428
1429
  }
1429
- let lines = molfile.split("\n");
1430
+ const eol = molfile.includes("\r\n") ? "\r\n" : "\n";
1431
+ let lines = molfile.split(eol);
1430
1432
  if (removeCustomAtomLabels) {
1431
1433
  lines = lines.filter(
1432
1434
  (line) => !CUSTOM_ATOMS_LABELS_TAGS.some((tag) => line.startsWith(tag))
@@ -1453,7 +1455,7 @@ function extendToMolfile(Molecule2) {
1453
1455
  return molfile;
1454
1456
  }
1455
1457
  lines.splice(mEndIndex, 0, ...newLines);
1456
- return lines.join("\n");
1458
+ return lines.join(eol);
1457
1459
  };
1458
1460
  }
1459
1461
 
@@ -14710,8 +14712,8 @@ function getExports($wnd) {
14710
14712
  carc2.$clinit_Element$1 = function $clinit_Element$1() {
14711
14713
  carc2.$clinit_Element$1 = emptyMethod;
14712
14714
  };
14713
- defineClass(817, 1, { 1: 1, 36: 1 });
14714
- cggl.Lcom_actelion_research_chem_Element$1_2_classLit = createForClass("com.actelion.research.chem", "Element/1", 817, cggl.Ljava_lang_Object_2_classLit);
14715
+ defineClass(811, 1, { 1: 1, 36: 1 });
14716
+ cggl.Lcom_actelion_research_chem_Element$1_2_classLit = createForClass("com.actelion.research.chem", "Element/1", 811, cggl.Ljava_lang_Object_2_classLit);
14715
14717
  carc2.$clinit_ExtendedDepictor = function $clinit_ExtendedDepictor() {
14716
14718
  carc2.$clinit_ExtendedDepictor = emptyMethod;
14717
14719
  jl.$clinit_Object();
@@ -24284,7 +24286,7 @@ function getExports($wnd) {
24284
24286
  }
24285
24287
  return carc2.tbl;
24286
24288
  };
24287
- defineClass(495, 1, { 1: 1 }, carc2.PeriodicTable);
24289
+ defineClass(494, 1, { 1: 1 }, carc2.PeriodicTable);
24288
24290
  _.$init_41 = function $init_41() {
24289
24291
  };
24290
24292
  _.toString_0 = function toString_10() {
@@ -24305,7 +24307,7 @@ function getExports($wnd) {
24305
24307
  carc2.Silicon = 14;
24306
24308
  carc2.Sulfur = 16;
24307
24309
  carc2.Uranium = 92;
24308
- cggl.Lcom_actelion_research_chem_PeriodicTable_2_classLit = createForClass("com.actelion.research.chem", "PeriodicTable", 495, cggl.Ljava_lang_Object_2_classLit);
24310
+ cggl.Lcom_actelion_research_chem_PeriodicTable_2_classLit = createForClass("com.actelion.research.chem", "PeriodicTable", 494, cggl.Ljava_lang_Object_2_classLit);
24309
24311
  carc2.$clinit_RingCollection = function $clinit_RingCollection() {
24310
24312
  carc2.$clinit_RingCollection = emptyMethod;
24311
24313
  jl.$clinit_Object();
@@ -25405,10 +25407,10 @@ function getExports($wnd) {
25405
25407
  }
25406
25408
  return true;
25407
25409
  };
25408
- _.findFragmentInMolecule = function findFragmentInMolecule(countMode, matchMode) {
25409
- return this.findFragmentInMolecule_0(countMode, matchMode, null);
25410
+ _.findFragmentInMolecule_0 = function findFragmentInMolecule(countMode, matchMode) {
25411
+ return this.findFragmentInMolecule_1(countMode, matchMode, null);
25410
25412
  };
25411
- _.findFragmentInMolecule_0 = function findFragmentInMolecule_0(countMode, matchMode, atomExcluded) {
25413
+ _.findFragmentInMolecule_1 = function findFragmentInMolecule_0(countMode, matchMode, atomExcluded) {
25412
25414
  var atom, atomUsed, candidate, current, excludeGroup, index_0, isExcludedMatch, maxIndex;
25413
25415
  this.mStop = false;
25414
25416
  this.mMatchList = new ju.ArrayList();
@@ -25687,7 +25689,7 @@ function getExports($wnd) {
25687
25689
  queryDefaults |= 4194304;
25688
25690
  return queryDefaults;
25689
25691
  };
25690
- _.getMatchList = function getMatchList() {
25692
+ _.getMatchList_0 = function getMatchList() {
25691
25693
  return this.mMatchList;
25692
25694
  };
25693
25695
  _.getSortedMatch = function getSortedMatch(match_0) {
@@ -25829,10 +25831,10 @@ function getExports($wnd) {
25829
25831
  return false;
25830
25832
  };
25831
25833
  _.isFragmentInMolecule_0 = function isFragmentInMolecule() {
25832
- return this.findFragmentInMolecule(1, this.mDefaultMatchMode) > 0;
25834
+ return this.findFragmentInMolecule_0(1, this.mDefaultMatchMode) > 0;
25833
25835
  };
25834
25836
  _.isFragmentInMolecule_1 = function isFragmentInMolecule_0(matchMode) {
25835
- return this.findFragmentInMolecule(1, matchMode) > 0;
25837
+ return this.findFragmentInMolecule_0(1, matchMode) > 0;
25836
25838
  };
25837
25839
  _.isListMember = function isListMember(atomicNo, list) {
25838
25840
  var i;
@@ -26268,10 +26270,10 @@ function getExports($wnd) {
26268
26270
  }
26269
26271
  return index_0;
26270
26272
  };
26271
- _.findFragmentInMolecule = function findFragmentInMolecule_1(countMode, matchMode) {
26272
- return this.findFragmentInMolecule_0(countMode, matchMode, null);
26273
+ _.findFragmentInMolecule_0 = function findFragmentInMolecule_1(countMode, matchMode) {
26274
+ return this.findFragmentInMolecule_1(countMode, matchMode, null);
26273
26275
  };
26274
- _.findFragmentInMolecule_0 = function findFragmentInMolecule_2(countMode, matchMode, atomExcluded) {
26276
+ _.findFragmentInMolecule_1 = function findFragmentInMolecule_2(countMode, matchMode, atomExcluded) {
26275
26277
  var i;
26276
26278
  if (jsNotEquals(this.mMoleculeIndexLong, null)) {
26277
26279
  for (i = 0; i < this.mMoleculeIndexLong.length; i++)
@@ -26290,7 +26292,7 @@ function getExports($wnd) {
26290
26292
  this.mFragment = new carc2.IDCodeParser(false).getCompactMolecule_1(this.mFragmentIDCode);
26291
26293
  this.mSSSearcher.setMolecule_0(this.mMolecule);
26292
26294
  this.mSSSearcher.setFragment_1(this.mFragment);
26293
- return this.mSSSearcher.findFragmentInMolecule_0(countMode, matchMode, atomExcluded);
26295
+ return this.mSSSearcher.findFragmentInMolecule_1(countMode, matchMode, atomExcluded);
26294
26296
  };
26295
26297
  _.getGraphMatcher = function getGraphMatcher() {
26296
26298
  return this.mSSSearcher;
@@ -33470,12 +33472,12 @@ function getExports($wnd) {
33470
33472
  templateMol = template.getFragment();
33471
33473
  if (useFFP) {
33472
33474
  searcherWithIndex.setFragment_3(templateMol, template.getFFP());
33473
- if (searcherWithIndex.findFragmentInMolecule(4, 8) != 0)
33474
- matchList = searcherWithIndex.getGraphMatcher().getMatchList();
33475
+ if (searcherWithIndex.findFragmentInMolecule_0(4, 8) != 0)
33476
+ matchList = searcherWithIndex.getGraphMatcher().getMatchList_0();
33475
33477
  } else {
33476
33478
  searcher.setFragment_1(templateMol);
33477
- if (searcher.findFragmentInMolecule(4, 8) != 0)
33478
- matchList = searcher.getMatchList();
33479
+ if (searcher.findFragmentInMolecule_0(4, 8) != 0)
33480
+ matchList = searcher.getMatchList_0();
33479
33481
  }
33480
33482
  if (isNotNull(matchList)) {
33481
33483
  for (match$iterator = matchList.iterator(); match$iterator.hasNext_0(); ) {
@@ -36804,8 +36806,8 @@ function getExports($wnd) {
36804
36806
  }
36805
36807
  return false;
36806
36808
  };
36807
- defineClass(816, 1, { 1: 1 });
36808
- cggl.Lcom_actelion_research_chem_forcefield_mmff_type_Angle_2_classLit = createForClass("com.actelion.research.chem.forcefield.mmff.type", "Angle", 816, cggl.Ljava_lang_Object_2_classLit);
36809
+ defineClass(817, 1, { 1: 1 });
36810
+ cggl.Lcom_actelion_research_chem_forcefield_mmff_type_Angle_2_classLit = createForClass("com.actelion.research.chem.forcefield.mmff.type", "Angle", 817, cggl.Ljava_lang_Object_2_classLit);
36809
36811
  carcfmt2.$clinit_Atom_0 = function $clinit_Atom_0() {
36810
36812
  carcfmt2.$clinit_Atom_0 = emptyMethod;
36811
36813
  jl.$clinit_Object();
@@ -38508,8 +38510,8 @@ function getExports($wnd) {
38508
38510
  carcn.$clinit_StructureNameResolver();
38509
38511
  return carcn.sResolver;
38510
38512
  };
38511
- defineClass(811, 1, { 1: 1 });
38512
- cggl.Lcom_actelion_research_chem_name_StructureNameResolver_2_classLit = createForClass("com.actelion.research.chem.name", "StructureNameResolver", 811, cggl.Ljava_lang_Object_2_classLit);
38513
+ defineClass(812, 1, { 1: 1 });
38514
+ cggl.Lcom_actelion_research_chem_name_StructureNameResolver_2_classLit = createForClass("com.actelion.research.chem.name", "StructureNameResolver", 812, cggl.Ljava_lang_Object_2_classLit);
38513
38515
  carcp.$clinit_CLogPPredictor = function $clinit_CLogPPredictor() {
38514
38516
  carcp.$clinit_CLogPPredictor = emptyMethod;
38515
38517
  jl.$clinit_Object();
@@ -40847,12 +40849,12 @@ function getExports($wnd) {
40847
40849
  genericReactant = this.mGenericReaction.getReactant_0(no);
40848
40850
  this.mSSSearcher.setMol_0(genericReactant, this.mReactant[no]);
40849
40851
  matchMode = 8 + (this.mAllowChargeCorrections ? 0 : 1);
40850
- if (this.mSSSearcher.findFragmentInMolecule(5, matchMode) == 0) {
40852
+ if (this.mSSSearcher.findFragmentInMolecule_0(5, matchMode) == 0) {
40851
40853
  setCheck(this.mMatchList, no, new ju.ArrayList());
40852
40854
  this.mReactantMatchCombinationCount = 0;
40853
40855
  return false;
40854
40856
  }
40855
- setCheck(this.mMatchList, no, this.mSSSearcher.getMatchList());
40857
+ setCheck(this.mMatchList, no, this.mSSSearcher.getMatchList_0());
40856
40858
  for (j = this.mMatchList[no].size() - 1; j >= 0; j--) {
40857
40859
  matchingAtom = castTo(this.mMatchList[no].getAtIndex(j), 6);
40858
40860
  for (k = 0; k < matchingAtom.length; k++) {
@@ -40953,11 +40955,11 @@ function getExports($wnd) {
40953
40955
  this.mTargetMolecule = molecule;
40954
40956
  this.mSSSearcher.setMol_0(this.mReactant, this.mTargetMolecule);
40955
40957
  matchMode = 8;
40956
- if (this.mSSSearcher.findFragmentInMolecule(countMode, matchMode) == 0) {
40958
+ if (this.mSSSearcher.findFragmentInMolecule_0(countMode, matchMode) == 0) {
40957
40959
  this.mMatchList = null;
40958
40960
  return 0;
40959
40961
  }
40960
- this.mMatchList = this.mSSSearcher.getMatchList();
40962
+ this.mMatchList = this.mSSSearcher.getMatchList_0();
40961
40963
  for (j = this.mMatchList.size() - 1; j >= 0; j--) {
40962
40964
  matchingAtom = castTo(this.mMatchList.getAtIndex(j), 6);
40963
40965
  for (k = 0; k < matchingAtom.length; k++) {
@@ -41422,12 +41424,12 @@ function getExports($wnd) {
41422
41424
  break;
41423
41425
  reactantSearcher.setFragment_1(rule.getReactant_1());
41424
41426
  reactantSearcher.setFragmentSymmetryConstraints(rule.getReactantAtomSymmetryConstraints());
41425
- if (0 != reactantSearcher.findFragmentInMolecule(6, 8)) {
41427
+ if (0 != reactantSearcher.findFragmentInMolecule_0(6, 8)) {
41426
41428
  productSearcher.setFragment_1(rule.getProduct_1());
41427
- if (0 != productSearcher.findFragmentInMolecule(2, 8) && reactantSearcher.getMatchList().size() <= 512) {
41429
+ if (0 != productSearcher.findFragmentInMolecule_0(2, 8) && reactantSearcher.getMatchList_0().size() <= 512) {
41428
41430
  historyScore = -1e4;
41429
- productMatch = castTo(productSearcher.getMatchList().getAtIndex(0), 6);
41430
- for (reactantMatch$iterator = reactantSearcher.getMatchList().iterator(); reactantMatch$iterator.hasNext_0(); ) {
41431
+ productMatch = castTo(productSearcher.getMatchList_0().getAtIndex(0), 6);
41432
+ for (reactantMatch$iterator = reactantSearcher.getMatchList_0().iterator(); reactantMatch$iterator.hasNext_0(); ) {
41431
41433
  reactantMatch = castTo(reactantMatch$iterator.next_3(), 6);
41432
41434
  if (ruleApplicationCount++ >= this.mMaxRuleTries)
41433
41435
  break;
@@ -49985,14 +49987,58 @@ function getExports($wnd) {
49985
49987
  cargja.$clinit_JSSSSearcher = emptyMethod;
49986
49988
  jl.$clinit_Object();
49987
49989
  };
49988
- cargja.JSSSSearcher = function JSSSSearcher() {
49990
+ cargja.JSSSSearcher = function JSSSSearcher(options) {
49989
49991
  cargja.$clinit_JSSSSearcher();
49992
+ var matchMode;
49990
49993
  Object_0.call(this);
49991
49994
  this.$init_182();
49995
+ matchMode = this.getMatchMode(options);
49996
+ this.mMatchMode = matchMode;
49997
+ this.searcher = new carc2.SSSearcher_0(matchMode);
49992
49998
  };
49993
49999
  defineClass(586, 1, { 1: 1 }, cargja.JSSSSearcher);
49994
50000
  _.$init_182 = function $init_182() {
49995
- this.searcher = new carc2.SSSearcher();
50001
+ };
50002
+ _.findFragmentInMolecule = function findFragmentInMolecule_3(options) {
50003
+ var countMode;
50004
+ countMode = this.getCountMode(options);
50005
+ return this.searcher.findFragmentInMolecule_0(countMode, this.mMatchMode);
50006
+ };
50007
+ _.getCountMode = function getCountMode(options) {
50008
+ options = options || {};
50009
+ var countMode = options.countMode || "overlapping";
50010
+ switch (countMode) {
50011
+ case "overlapping":
50012
+ return 4;
50013
+ case "existence":
50014
+ return 1;
50015
+ case "firstMatch":
50016
+ return 2;
50017
+ case "separated":
50018
+ return 3;
50019
+ case "rigorous":
50020
+ return 5;
50021
+ case "unique":
50022
+ return 6;
50023
+ default:
50024
+ throw new Error("invalid count mode: " + countMode);
50025
+ }
50026
+ };
50027
+ _.getMatchList = function getMatchList_0() {
50028
+ return cargju.convertIntArrayArrayList(this.searcher.getMatchList_0());
50029
+ };
50030
+ _.getMatchMode = function getMatchMode(options) {
50031
+ options = options || {};
50032
+ var matchMode = 0;
50033
+ if (options.matchAtomCharge === true)
50034
+ matchMode |= 1;
50035
+ if (options.matchAtomMass === true)
50036
+ matchMode |= 2;
50037
+ if (options.matchDBondToDelocalized === true)
50038
+ matchMode |= 4;
50039
+ if (options.matchAromDBondToDelocalized === true || options.matchAromDBondToDelocalized === void 0)
50040
+ matchMode |= 8;
50041
+ return matchMode;
49996
50042
  };
49997
50043
  _.isFragmentInMolecule = function isFragmentInMolecule_2() {
49998
50044
  return this.searcher.isFragmentInMolecule_0();
@@ -50007,6 +50053,7 @@ function getExports($wnd) {
50007
50053
  _.setMolecule = function setMolecule_4(molecule) {
50008
50054
  this.searcher.setMolecule_0(molecule.getStereoMolecule());
50009
50055
  };
50056
+ _.mMatchMode = 0;
50010
50057
  cggl.Lcom_actelion_research_gwt_js_api_JSSSSearcher_2_classLit = createForClass("com.actelion.research.gwt.js.api", "JSSSSearcher", 586, cggl.Ljava_lang_Object_2_classLit);
50011
50058
  cargja.$clinit_JSSSSearcherWithIndex = function $clinit_JSSSSearcherWithIndex() {
50012
50059
  cargja.$clinit_JSSSSearcherWithIndex = emptyMethod;
@@ -51218,6 +51265,19 @@ function getExports($wnd) {
51218
51265
  cargju.$clinit_Util = emptyMethod;
51219
51266
  jl.$clinit_Object();
51220
51267
  };
51268
+ cargju.convertIntArray = function convertIntArray(source) {
51269
+ return Array.from(source);
51270
+ };
51271
+ cargju.convertIntArrayArrayList = function convertIntArrayArrayList(list) {
51272
+ cargju.$clinit_Util();
51273
+ var array, i, size_0;
51274
+ size_0 = list.size();
51275
+ array = cargju.newJsArray(size_0);
51276
+ for (i = 0; i < size_0; i++) {
51277
+ cggcc.$set(array, i, cargju.convertIntArray(castTo(list.getAtIndex(i), 6)));
51278
+ }
51279
+ return array;
51280
+ };
51221
51281
  cargju.convertParameterizedStringList = function convertParameterizedStringList(list) {
51222
51282
  cargju.$clinit_Util();
51223
51283
  var array, i, size_0;
@@ -51894,7 +51954,7 @@ function getExports($wnd) {
51894
51954
  cggcc.uncheckedConversion = function uncheckedConversion(elapsed) {
51895
51955
  return elapsed;
51896
51956
  };
51897
- defineClass(494, 1, { 1: 1 }, cggcc.Duration);
51957
+ defineClass(495, 1, { 1: 1 }, cggcc.Duration);
51898
51958
  _.$init_212 = function $init_212() {
51899
51959
  this.start_0 = cggcc.currentTimeMillis();
51900
51960
  };
@@ -51902,7 +51962,7 @@ function getExports($wnd) {
51902
51962
  return cggcc.uncheckedConversion(cggcc.currentTimeMillis() - this.start_0);
51903
51963
  };
51904
51964
  _.start_0 = 0;
51905
- cggl.Lcom_google_gwt_core_client_Duration_2_classLit = createForClass("com.google.gwt.core.client", "Duration", 494, cggl.Ljava_lang_Object_2_classLit);
51965
+ cggl.Lcom_google_gwt_core_client_Duration_2_classLit = createForClass("com.google.gwt.core.client", "Duration", 495, cggl.Ljava_lang_Object_2_classLit);
51906
51966
  cggcc.$clinit_Scheduler$ScheduledCommand = function $clinit_Scheduler$ScheduledCommand() {
51907
51967
  cggcc.$clinit_Scheduler$ScheduledCommand = emptyMethod;
51908
51968
  };
@@ -54886,11 +54946,11 @@ function getExports($wnd) {
54886
54946
  ji.$clinit_BufferedWriter = function $clinit_BufferedWriter() {
54887
54947
  ji.$clinit_BufferedWriter = emptyMethod;
54888
54948
  };
54889
- defineClass(813, 442, { 1: 1 });
54949
+ defineClass(814, 442, { 1: 1 });
54890
54950
  _.newLine = function newLine() {
54891
54951
  ocu.throwUnimplemented();
54892
54952
  };
54893
- cggl.Ljava_io_BufferedWriter_2_classLit = createForClass("java.io", "BufferedWriter", 813, cggl.Ljava_io_Writer_2_classLit);
54953
+ cggl.Ljava_io_BufferedWriter_2_classLit = createForClass("java.io", "BufferedWriter", 814, cggl.Ljava_io_Writer_2_classLit);
54894
54954
  ji.$clinit_File = function $clinit_File() {
54895
54955
  ji.$clinit_File = emptyMethod;
54896
54956
  };
@@ -58716,9 +58776,9 @@ function getExports($wnd) {
58716
58776
  jm.$clinit_Multiplication();
58717
58777
  return add_20(add_20(mul_0(and_0(fromInt_0(a), 4294967295), and_0(fromInt_0(b), 4294967295)), and_0(fromInt_0(c), 4294967295)), and_0(fromInt_0(d), 4294967295));
58718
58778
  };
58719
- defineClass(812, 1, { 1: 1 });
58779
+ defineClass(813, 1, { 1: 1 });
58720
58780
  jm.whenUseKaratsuba = 63;
58721
- cggl.Ljava_math_Multiplication_2_classLit = createForClass("java.math", "Multiplication", 812, cggl.Ljava_lang_Object_2_classLit);
58781
+ cggl.Ljava_math_Multiplication_2_classLit = createForClass("java.math", "Multiplication", 813, cggl.Ljava_lang_Object_2_classLit);
58722
58782
  jm.$clinit_RoundingMode = function $clinit_RoundingMode() {
58723
58783
  jm.$clinit_RoundingMode = emptyMethod;
58724
58784
  jl.$clinit_Enum();
@@ -61921,8 +61981,8 @@ function getExports($wnd) {
61921
61981
  ju.$clinit_InternalJsMapFactory();
61922
61982
  return new ju.jsMapCtor();
61923
61983
  };
61924
- defineClass(815, 1, { 1: 1 });
61925
- cggl.Ljava_util_InternalJsMapFactory_2_classLit = createForClass("java.util", "InternalJsMapFactory", 815, cggl.Ljava_lang_Object_2_classLit);
61984
+ defineClass(816, 1, { 1: 1 });
61985
+ cggl.Ljava_util_InternalJsMapFactory_2_classLit = createForClass("java.util", "InternalJsMapFactory", 816, cggl.Ljava_lang_Object_2_classLit);
61926
61986
  ju.$clinit_InternalStringMap = function $clinit_InternalStringMap() {
61927
61987
  ju.$clinit_InternalStringMap = emptyMethod;
61928
61988
  jl.$clinit_Object();
@@ -65750,8 +65810,8 @@ function getExports($wnd) {
65750
65810
  ocu.$clinit_JSException();
65751
65811
  ocu.throwError_0("unimplemented");
65752
65812
  };
65753
- defineClass(814, 1, { 1: 1 });
65754
- cggl.Lorg_cheminfo_utils_JSException_2_classLit = createForClass("org.cheminfo.utils", "JSException", 814, cggl.Ljava_lang_Object_2_classLit);
65813
+ defineClass(815, 1, { 1: 1 });
65814
+ cggl.Lorg_cheminfo_utils_JSException_2_classLit = createForClass("org.cheminfo.utils", "JSException", 815, cggl.Ljava_lang_Object_2_classLit);
65755
65815
  ocu.$clinit_PlainJSObject = function $clinit_PlainJSObject() {
65756
65816
  ocu.$clinit_PlainJSObject = emptyMethod;
65757
65817
  cggcc.$clinit_JavaScriptObject();
@@ -71192,7 +71252,7 @@ function getExports($wnd) {
71192
71252
  $sendStats("moduleStartup", "end");
71193
71253
  $gwt && $gwt.permProps && __gwtModuleFunction.__moduleStartupDone($gwt.permProps);
71194
71254
  const toReturn = $wnd["OCL"];
71195
- toReturn.version = "9.11.1";
71255
+ toReturn.version = "9.12.1";
71196
71256
  return toReturn;
71197
71257
  }
71198
71258
  var isBrowserWindow = typeof window !== "undefined" && typeof window.document !== "undefined";
@@ -71336,8 +71396,8 @@ export {
71336
71396
  };
71337
71397
  /**
71338
71398
  * openchemlib - Manipulate molecules
71339
- * @version v9.11.1
71340
- * @date 2025-10-14T12:21:23.561Z
71399
+ * @version v9.12.1
71400
+ * @date 2025-10-22T07:23:31.337Z
71341
71401
  * @link https://github.com/cheminfo/openchemlib-js
71342
71402
  * @license BSD-3-Clause
71343
71403
  */