ketcher-standalone 3.11.0-rc.2 → 3.12.0-dev.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.
@@ -615,18 +615,10 @@ function mapCalculatedPropertyName(property) {
615
615
  return property;
616
616
  }
617
617
  function mapWarningGroup(property) {
618
- var mappedProperty;
619
- switch (property) {
620
- case 'OVERLAP_BOND':
621
- {
622
- mappedProperty = 'overlapping_bonds';
623
- break;
624
- }
625
- default:
626
- mappedProperty = property.toLowerCase();
627
- break;
618
+ if (property === 'OVERLAP_BOND') {
619
+ return 'overlapping_bonds';
628
620
  }
629
- return mappedProperty;
621
+ return property.toLowerCase();
630
622
  }
631
623
  var messageTypeToEventMapping = (_messageTypeToEventMa = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_messageTypeToEventMa, Command.Info, WorkerEvent.Info), Command.Convert, WorkerEvent.Convert), Command.Layout, WorkerEvent.Layout), Command.Clean, WorkerEvent.Clean), Command.Aromatize, WorkerEvent.Aromatize), Command.Dearomatize, WorkerEvent.Dearomatize), Command.CalculateCip, WorkerEvent.CalculateCip), Command.Automap, WorkerEvent.Automap), Command.Check, WorkerEvent.Check), Command.Calculate, WorkerEvent.Calculate), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_messageTypeToEventMa, Command.GenerateImageAsBase64, WorkerEvent.GenerateImageAsBase64), Command.GetInChIKey, WorkerEvent.GetInChIKey), Command.ExplicitHydrogens, WorkerEvent.ExplicitHydrogens), Command.CalculateMacromoleculeProperties, WorkerEvent.CalculateMacromoleculeProperties));
632
624
  var IndigoService = function () {
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sources":["../../../../node_modules/rollup-plugin-node-polyfills/polyfills/events.js","../../src/infrastructure/services/struct/constants.ts","../../src/infrastructure/services/struct/indigoWorkerImports/useOffMainThreadPlugin.ts","../../src/infrastructure/services/struct/standaloneStructService.ts","../../src/infrastructure/services/struct/standaloneStructServiceProvider.ts"],"sourcesContent":["'use strict';\n\nvar domain;\n\n// This constructor is used to store event handlers. Instantiating this is\n// faster than explicitly calling `Object.create(null)` to get a \"clean\" empty\n// object (tested with v8 v4.9).\nfunction EventHandlers() {}\nEventHandlers.prototype = Object.create(null);\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nexport default EventEmitter;\nexport {EventEmitter};\n\n// nodejs oddity\n// require('events') === require('events').EventEmitter\nEventEmitter.EventEmitter = EventEmitter\n\nEventEmitter.usingDomains = false;\n\nEventEmitter.prototype.domain = undefined;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\nEventEmitter.init = function() {\n this.domain = null;\n if (EventEmitter.usingDomains) {\n // if there is an active domain, then attach to it.\n if (domain.active && !(this instanceof domain.Domain)) {\n this.domain = domain.active;\n }\n }\n\n if (!this._events || this._events === Object.getPrototypeOf(this)._events) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || isNaN(n))\n throw new TypeError('\"n\" argument must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\n// These standalone emit* functions are used to optimize calling of event\n// handlers for fast cases because emit() itself often has a variable number of\n// arguments and can be deoptimized because of that. These functions always have\n// the same number of arguments and thus do not get deoptimized, so the code\n// inside them can execute faster.\nfunction emitNone(handler, isFn, self) {\n if (isFn)\n handler.call(self);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self);\n }\n}\nfunction emitOne(handler, isFn, self, arg1) {\n if (isFn)\n handler.call(self, arg1);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1);\n }\n}\nfunction emitTwo(handler, isFn, self, arg1, arg2) {\n if (isFn)\n handler.call(self, arg1, arg2);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2);\n }\n}\nfunction emitThree(handler, isFn, self, arg1, arg2, arg3) {\n if (isFn)\n handler.call(self, arg1, arg2, arg3);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2, arg3);\n }\n}\n\nfunction emitMany(handler, isFn, self, args) {\n if (isFn)\n handler.apply(self, args);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].apply(self, args);\n }\n}\n\nEventEmitter.prototype.emit = function emit(type) {\n var er, handler, len, args, i, events, domain;\n var needDomainExit = false;\n var doError = (type === 'error');\n\n events = this._events;\n if (events)\n doError = (doError && events.error == null);\n else if (!doError)\n return false;\n\n domain = this.domain;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n er = arguments[1];\n if (domain) {\n if (!er)\n er = new Error('Uncaught, unspecified \"error\" event');\n er.domainEmitter = this;\n er.domain = domain;\n er.domainThrown = false;\n domain.emit('error', er);\n } else if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n return false;\n }\n\n handler = events[type];\n\n if (!handler)\n return false;\n\n var isFn = typeof handler === 'function';\n len = arguments.length;\n switch (len) {\n // fast cases\n case 1:\n emitNone(handler, isFn, this);\n break;\n case 2:\n emitOne(handler, isFn, this, arguments[1]);\n break;\n case 3:\n emitTwo(handler, isFn, this, arguments[1], arguments[2]);\n break;\n case 4:\n emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]);\n break;\n // slower\n default:\n args = new Array(len - 1);\n for (i = 1; i < len; i++)\n args[i - 1] = arguments[i];\n emitMany(handler, isFn, this, args);\n }\n\n if (needDomainExit)\n domain.exit();\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = target._events;\n if (!events) {\n events = target._events = new EventHandlers();\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (!existing) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] :\n [existing, listener];\n } else {\n // If we've already got an array, just append.\n if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n }\n\n // Check for listener leak\n if (!existing.warned) {\n m = $getMaxListeners(target);\n if (m && m > 0 && existing.length > m) {\n existing.warned = true;\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + type + ' listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n emitWarning(w);\n }\n }\n }\n\n return target;\n}\nfunction emitWarning(e) {\n typeof console.warn === 'function' ? console.warn(e) : console.log(e);\n}\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction _onceWrap(target, type, listener) {\n var fired = false;\n function g() {\n target.removeListener(type, g);\n if (!fired) {\n fired = true;\n listener.apply(target, arguments);\n }\n }\n g.listener = listener;\n return g;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = this._events;\n if (!events)\n return this;\n\n list = events[type];\n if (!list)\n return this;\n\n if (list === listener || (list.listener && list.listener === listener)) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list[0] = undefined;\n if (--this._eventsCount === 0) {\n this._events = new EventHandlers();\n return this;\n } else {\n delete events[type];\n }\n } else {\n spliceOne(list, position);\n }\n\n if (events.removeListener)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events;\n\n events = this._events;\n if (!events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!events.removeListener) {\n if (arguments.length === 0) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n } else if (events[type]) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n for (var i = 0, key; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = new EventHandlers();\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n do {\n this.removeListener(type, listeners[listeners.length - 1]);\n } while (listeners[0]);\n }\n\n return this;\n };\n\nEventEmitter.prototype.listeners = function listeners(type) {\n var evlistener;\n var ret;\n var events = this._events;\n\n if (!events)\n ret = [];\n else {\n evlistener = events[type];\n if (!evlistener)\n ret = [];\n else if (typeof evlistener === 'function')\n ret = [evlistener.listener || evlistener];\n else\n ret = unwrapListeners(evlistener);\n }\n\n return ret;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];\n};\n\n// About 1.5x faster than the two-arg version of Array#splice().\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1)\n list[i] = list[k];\n list.pop();\n}\n\nfunction arrayClone(arr, i) {\n var copy = new Array(i);\n while (i--)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n","export const STRUCT_SERVICE_NO_RENDER_INITIALIZED_EVENT =\n 'struct-service-no-render-initialized';\nexport const STRUCT_SERVICE_INITIALIZED_EVENT = 'struct-service-initialized';\n","// this import processed by '@surma/rollup-plugin-off-main-thread' plugin\n// check rollup.config.js to see how different build types are handled.\n// This plugin can not result cjs modules.\n\nexport const indigoWorker: Worker = new Worker(\n new URL('./../indigoWorker.ts', import.meta.url),\n { type: 'module' },\n);\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport {\n AromatizeCommandData,\n AutomapCommandData,\n CalculateCipCommandData,\n CalculateCommandData,\n CalculateMacromoleculePropertiesCommandData,\n CalculateProps,\n CheckCommandData,\n CleanCommandData,\n Command,\n CommandOptions,\n ConvertCommandData,\n DearomatizeCommandData,\n ExplicitHydrogensCommandData,\n GenerateImageCommandData,\n GenerateInchIKeyCommandData,\n InputMessage,\n LayoutCommandData,\n OutputMessage,\n OutputMessageWrapper,\n SupportedFormat,\n WorkerEvent,\n} from './indigoWorker.types';\nimport {\n AromatizeData,\n AromatizeResult,\n AutomapData,\n AutomapResult,\n CalculateCipData,\n CalculateCipResult,\n CalculateData,\n CalculateResult,\n CheckData,\n CheckResult,\n ChemicalMimeType,\n CleanData,\n CleanResult,\n ConvertData,\n ConvertResult,\n CoreEditor,\n DearomatizeData,\n DearomatizeResult,\n ExplicitHydrogensData,\n ExplicitHydrogensResult,\n GenerateImageOptions,\n getLabelRenderModeForIndigo,\n InfoResult,\n LayoutData,\n LayoutResult,\n RecognizeResult,\n StructService,\n StructServiceOptions,\n pickStandardServerOptions,\n CalculateMacromoleculePropertiesData,\n CalculateMacromoleculePropertiesResult,\n} from 'ketcher-core';\n\nimport EventEmitter from 'events';\nimport {\n STRUCT_SERVICE_INITIALIZED_EVENT,\n STRUCT_SERVICE_NO_RENDER_INITIALIZED_EVENT,\n} from './constants';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { indigoWorker } from '_indigo-worker-import-alias_';\n\ninterface KeyValuePair {\n [key: string]: number | string | boolean | object;\n}\n\nfunction convertMimeTypeToOutputFormat(\n mimeType: ChemicalMimeType,\n): SupportedFormat {\n let format: SupportedFormat;\n switch (mimeType) {\n case ChemicalMimeType.Mol: {\n format = SupportedFormat.Mol;\n break;\n }\n case ChemicalMimeType.Rxn: {\n format = SupportedFormat.Rxn;\n break;\n }\n case ChemicalMimeType.DaylightSmiles:\n case ChemicalMimeType.ExtendedSmiles: {\n format = SupportedFormat.Smiles;\n break;\n }\n case ChemicalMimeType.DaylightSmarts: {\n format = SupportedFormat.Smarts;\n break;\n }\n case ChemicalMimeType.InChI: {\n format = SupportedFormat.InChI;\n break;\n }\n case ChemicalMimeType.InChIAuxInfo: {\n format = SupportedFormat.InChIAuxInfo;\n break;\n }\n case ChemicalMimeType.InChIKey: {\n format = SupportedFormat.InChIKey;\n break;\n }\n case ChemicalMimeType.CML: {\n format = SupportedFormat.CML;\n break;\n }\n case ChemicalMimeType.KET: {\n format = SupportedFormat.Ket;\n break;\n }\n case ChemicalMimeType.CDXML: {\n format = SupportedFormat.CDXML;\n break;\n }\n case ChemicalMimeType.CDX: {\n format = SupportedFormat.CDX;\n break;\n }\n case ChemicalMimeType.SDF: {\n format = SupportedFormat.SDF;\n break;\n }\n case ChemicalMimeType.FASTA: {\n format = SupportedFormat.FASTA;\n break;\n }\n case ChemicalMimeType.SEQUENCE: {\n format = SupportedFormat.SEQUENCE;\n break;\n }\n case ChemicalMimeType.PeptideSequenceThreeLetter: {\n format = SupportedFormat.SEQUENCE_3_LETTER;\n break;\n }\n case ChemicalMimeType.IDT: {\n format = SupportedFormat.IDT;\n break;\n }\n case ChemicalMimeType.AXOLABS: {\n format = SupportedFormat.AXOLABS;\n break;\n }\n case ChemicalMimeType.HELM: {\n format = SupportedFormat.HELM;\n break;\n }\n case ChemicalMimeType.RDF:\n format = SupportedFormat.RDF;\n break;\n case ChemicalMimeType.MonomerLibrary:\n format = SupportedFormat.MonomerLibrary;\n break;\n case ChemicalMimeType.UNKNOWN:\n default: {\n throw new Error('Unsupported chemical mime type');\n }\n }\n\n return format;\n}\n\nfunction mapCalculatedPropertyName(property: CalculateProps) {\n if (property === 'gross-formula') {\n return 'gross';\n }\n return property;\n}\n\nfunction mapWarningGroup(property: string) {\n let mappedProperty: string | undefined;\n switch (property) {\n case 'OVERLAP_BOND': {\n mappedProperty = 'overlapping_bonds';\n break;\n }\n default:\n mappedProperty = property.toLowerCase();\n break;\n }\n\n return mappedProperty;\n}\n\nconst messageTypeToEventMapping: {\n [key in Command]: WorkerEvent;\n} = {\n [Command.Info]: WorkerEvent.Info,\n [Command.Convert]: WorkerEvent.Convert,\n [Command.Layout]: WorkerEvent.Layout,\n [Command.Clean]: WorkerEvent.Clean,\n [Command.Aromatize]: WorkerEvent.Aromatize,\n [Command.Dearomatize]: WorkerEvent.Dearomatize,\n [Command.CalculateCip]: WorkerEvent.CalculateCip,\n [Command.Automap]: WorkerEvent.Automap,\n [Command.Check]: WorkerEvent.Check,\n [Command.Calculate]: WorkerEvent.Calculate,\n [Command.GenerateImageAsBase64]: WorkerEvent.GenerateImageAsBase64,\n [Command.GetInChIKey]: WorkerEvent.GetInChIKey,\n [Command.ExplicitHydrogens]: WorkerEvent.ExplicitHydrogens,\n [Command.CalculateMacromoleculeProperties]:\n WorkerEvent.CalculateMacromoleculeProperties,\n};\n\nclass IndigoService implements StructService {\n private readonly defaultOptions: StructServiceOptions;\n private readonly worker: Worker;\n private readonly EE: EventEmitter = new EventEmitter();\n private ketcherId: string | null = null;\n\n constructor(defaultOptions: StructServiceOptions) {\n this.defaultOptions = defaultOptions;\n this.worker = indigoWorker;\n this.worker.onmessage = (e: MessageEvent<OutputMessage<string>>) => {\n if (e.data.type === Command.Info) {\n const callbackMethod = process.env.SEPARATE_INDIGO_RENDER\n ? this.callIndigoNoRenderLoadedCallback\n : this.callIndigoLoadedCallback;\n\n callbackMethod();\n }\n\n const message: OutputMessage<string> = e.data;\n if (message.type !== undefined) {\n const event = messageTypeToEventMapping[message.type];\n this.EE.emit(event, { data: message });\n }\n };\n }\n\n public addKetcherId(ketcherId: string) {\n this.ketcherId = ketcherId;\n }\n\n private getStandardServerOptions(options?: StructServiceOptions) {\n if (!options) {\n return this.defaultOptions;\n }\n if (!this.ketcherId) {\n throw new Error('Cannot getting options because there are no ketcherId');\n }\n\n return pickStandardServerOptions(this.ketcherId, options);\n }\n\n private callIndigoNoRenderLoadedCallback() {\n window.dispatchEvent(new Event(STRUCT_SERVICE_NO_RENDER_INITIALIZED_EVENT));\n }\n\n private callIndigoLoadedCallback() {\n window.dispatchEvent(new Event(STRUCT_SERVICE_INITIALIZED_EVENT));\n }\n\n async getInChIKey(struct: string): Promise<string> {\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n const msg: OutputMessage<string> = data;\n if (!msg.hasError) {\n resolve(msg.payload || '');\n } else {\n reject(msg.error);\n }\n };\n\n const inputMessage: InputMessage<GenerateInchIKeyCommandData> = {\n type: Command.GetInChIKey,\n data: { struct },\n };\n\n this.EE.removeListener(WorkerEvent.GetInChIKey, action);\n this.EE.addListener(WorkerEvent.GetInChIKey, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n info(): Promise<InfoResult> {\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n console.log('info action', data);\n const msg: OutputMessage<string> = data;\n if (!msg.hasError) {\n const result: InfoResult = {\n indigoVersion: msg.payload,\n imagoVersions: [],\n isAvailable: true,\n };\n resolve(result);\n } else {\n reject(msg.error);\n }\n };\n\n this.EE.removeListener(WorkerEvent.Info, action);\n this.EE.addListener(WorkerEvent.Info, action);\n\n this.worker.postMessage({ type: Command.Info });\n });\n }\n\n convert(\n data: ConvertData,\n options?: StructServiceOptions,\n ): Promise<ConvertResult> {\n const {\n output_format: outputFormat,\n input_format: inputFormat,\n struct,\n } = data;\n const format = convertMimeTypeToOutputFormat(outputFormat);\n\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n console.log('convert action', data);\n const msg: OutputMessage<string> = data;\n if (msg.inputData === struct) {\n if (!msg.hasError) {\n const result: ConvertResult = {\n struct: msg.payload,\n format: outputFormat,\n };\n resolve(result);\n } else {\n reject(msg.error);\n }\n }\n };\n const monomerLibrary = JSON.stringify(\n CoreEditor.provideEditorInstance()?.monomersLibraryParsedJson,\n );\n const commandOptions: CommandOptions = {\n ...this.getStandardServerOptions(options),\n 'bond-length-unit': options?.['bond-length-unit'],\n 'bond-length': options?.['bond-length'],\n 'reaction-component-margin-size-unit':\n options?.['reaction-component-margin-size-unit'],\n 'reaction-component-margin-size':\n options?.['reaction-component-margin-size'],\n 'image-resolution': options?.['image-resolution'],\n 'input-format': inputFormat,\n 'molfile-saving-mode': options?.['molfile-saving-mode'],\n 'monomer-library-saving-mode': options?.['monomer-library-saving-mode'],\n 'molfile-saving-skip-date': options?.['molfile-saving-skip-date'],\n 'sequence-type': options?.['sequence-type'],\n 'output-content-type': options?.['output-content-type'],\n monomerLibrary,\n };\n\n const commandData: ConvertCommandData = {\n struct,\n format,\n options: commandOptions,\n };\n\n const inputMessage: InputMessage<ConvertCommandData> = {\n type: Command.Convert,\n data: commandData,\n };\n\n this.EE.removeListener(WorkerEvent.Convert, action);\n this.EE.addListener(WorkerEvent.Convert, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n layout(\n data: LayoutData,\n options?: StructServiceOptions,\n ): Promise<LayoutResult> {\n const { struct, output_format: outputFormat } = data;\n const format = convertMimeTypeToOutputFormat(outputFormat);\n\n return new Promise((resolve, reject) => {\n const action = ({\n data,\n }: OutputMessageWrapper<{\n struct: string;\n format: string;\n original_format: ChemicalMimeType;\n }>) => {\n console.log('layout action', data);\n const msg: OutputMessage<{\n struct: string;\n format: string;\n original_format: ChemicalMimeType;\n }> = data;\n if (!msg.hasError) {\n const { struct } = msg.payload;\n const result: LayoutResult = {\n struct,\n format: ChemicalMimeType.Mol,\n };\n resolve(result);\n } else {\n reject(msg.error);\n }\n };\n\n const commandOptions: CommandOptions = {\n ...this.getStandardServerOptions(options),\n 'output-content-type': 'application/json',\n\n 'render-label-mode': this.ketcherId\n ? getLabelRenderModeForIndigo(this.ketcherId)\n : undefined,\n 'render-font-size': options?.['render-font-size'],\n 'render-font-size-unit': options?.['render-font-size-unit'],\n 'render-font-size-sub': options?.['render-font-size-sub'],\n 'render-font-size-sub-unit': options?.['render-font-size-sub-unit'],\n 'bond-length-unit': options?.['bond-length-unit'],\n 'bond-length': options?.['bond-length'],\n 'reaction-component-margin-size-unit':\n options?.['reaction-component-margin-size-unit'],\n 'reaction-component-margin-size':\n options?.['reaction-component-margin-size'],\n 'image-resolution': options?.['image-resolution'],\n };\n\n const commandData: LayoutCommandData = {\n struct,\n format,\n options: commandOptions,\n };\n\n const inputMessage: InputMessage<LayoutCommandData> = {\n type: Command.Layout,\n data: commandData,\n };\n\n this.EE.removeListener(WorkerEvent.Layout, action);\n this.EE.addListener(WorkerEvent.Layout, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n clean(data: CleanData, options?: StructServiceOptions): Promise<CleanResult> {\n const { struct, selected, output_format: outputFormat } = data;\n const format = convertMimeTypeToOutputFormat(outputFormat);\n\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n const msg: OutputMessage<string> = data;\n if (!msg.hasError) {\n const result: CleanResult = {\n struct: msg.payload,\n format: ChemicalMimeType.Mol,\n };\n resolve(result);\n } else {\n reject(msg.error);\n }\n };\n\n const commandData: CleanCommandData = {\n struct,\n format,\n options: this.getStandardServerOptions(options),\n selectedAtoms: selected || [],\n };\n\n const inputMessage: InputMessage<CleanCommandData> = {\n type: Command.Clean,\n data: commandData,\n };\n\n this.EE.removeListener(WorkerEvent.Clean, action);\n this.EE.addListener(WorkerEvent.Clean, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n aromatize(\n data: AromatizeData,\n options?: StructServiceOptions,\n ): Promise<AromatizeResult> {\n const { struct, output_format: outputFormat } = data;\n const format = convertMimeTypeToOutputFormat(outputFormat);\n\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n const msg: OutputMessage<string> = data;\n if (!msg.hasError) {\n const result: AromatizeResult = {\n struct: msg.payload,\n format: ChemicalMimeType.Mol,\n };\n resolve(result);\n } else {\n reject(msg.error);\n }\n };\n\n const commandData: AromatizeCommandData = {\n struct,\n format,\n options: this.getStandardServerOptions(options),\n };\n\n const inputMessage: InputMessage<AromatizeCommandData> = {\n type: Command.Aromatize,\n data: commandData,\n };\n\n this.EE.removeListener(WorkerEvent.Aromatize, action);\n this.EE.addListener(WorkerEvent.Aromatize, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n dearomatize(\n data: DearomatizeData,\n options?: StructServiceOptions,\n ): Promise<DearomatizeResult> {\n const { struct, output_format: outputFormat } = data;\n const format = convertMimeTypeToOutputFormat(outputFormat);\n\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n const msg: OutputMessage<string> = data;\n if (!msg.hasError) {\n const result: AromatizeResult = {\n struct: msg.payload,\n format: ChemicalMimeType.Mol,\n };\n resolve(result);\n } else {\n reject(msg.error);\n }\n };\n\n const commandData: DearomatizeCommandData = {\n struct,\n format,\n options: this.getStandardServerOptions(options),\n };\n\n const inputMessage: InputMessage<DearomatizeCommandData> = {\n type: Command.Dearomatize,\n data: commandData,\n };\n\n this.EE.removeListener(WorkerEvent.Dearomatize, action);\n this.EE.addListener(WorkerEvent.Dearomatize, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n calculateCip(\n data: CalculateCipData,\n options?: StructServiceOptions,\n ): Promise<CalculateCipResult> {\n const { struct, output_format: outputFormat } = data;\n const format = convertMimeTypeToOutputFormat(outputFormat);\n\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n const msg: OutputMessage<string> = data;\n if (!msg.hasError) {\n const result: CalculateCipResult = {\n struct: msg.payload,\n format: ChemicalMimeType.Mol,\n };\n resolve(result);\n } else {\n reject(msg.error);\n }\n };\n\n const commandData: CalculateCipCommandData = {\n struct,\n format,\n options: this.getStandardServerOptions(options),\n };\n\n const inputMessage: InputMessage<CalculateCipCommandData> = {\n type: Command.CalculateCip,\n data: commandData,\n };\n\n this.EE.removeListener(WorkerEvent.CalculateCip, action);\n this.EE.addListener(WorkerEvent.CalculateCip, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n automap(\n data: AutomapData,\n options?: StructServiceOptions,\n ): Promise<AutomapResult> {\n const { mode, struct, output_format: outputFormat } = data;\n const format = convertMimeTypeToOutputFormat(outputFormat);\n\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n const msg: OutputMessage<string> = data;\n if (!msg.hasError) {\n const result: AutomapResult = {\n struct: msg.payload,\n format: ChemicalMimeType.Mol,\n };\n resolve(result);\n } else {\n reject(msg.error);\n }\n };\n\n const commandData: AutomapCommandData = {\n struct,\n format,\n mode,\n options: this.getStandardServerOptions(options),\n };\n\n const inputMessage: InputMessage<CalculateCipCommandData> = {\n type: Command.Automap,\n data: commandData,\n };\n\n this.EE.removeListener(WorkerEvent.Automap, action);\n this.EE.addListener(WorkerEvent.Automap, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n check(data: CheckData, options?: StructServiceOptions): Promise<CheckResult> {\n const { types, struct } = data;\n\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n const msg: OutputMessage<string> = data;\n if (!msg.hasError) {\n const warnings = JSON.parse(msg.payload) as KeyValuePair;\n\n const result: CheckResult = Object.entries(warnings).reduce(\n (acc, curr) => {\n const [key, value] = curr;\n const mappedPropertyName = mapWarningGroup(key);\n acc[mappedPropertyName] = value as string;\n\n return acc;\n },\n {} as CheckResult,\n );\n resolve(result);\n } else {\n reject(msg.error);\n }\n };\n\n const commandData: CheckCommandData = {\n struct,\n types,\n options: this.getStandardServerOptions(options),\n };\n\n const inputMessage: InputMessage<CheckCommandData> = {\n type: Command.Check,\n data: commandData,\n };\n\n this.EE.removeListener(WorkerEvent.Check, action);\n this.EE.addListener(WorkerEvent.Check, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n calculate(\n data: CalculateData,\n options?: StructServiceOptions,\n ): Promise<CalculateResult> {\n const { properties, struct, selected } = data;\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n const msg: OutputMessage<string> = data;\n if (!msg.hasError) {\n const calculatedProperties: CalculateResult = JSON.parse(msg.payload);\n const result: CalculateResult = Object.entries(\n calculatedProperties,\n ).reduce((acc, curr) => {\n const [key, value] = curr;\n const mappedPropertyName = mapCalculatedPropertyName(\n key as CalculateProps,\n );\n if (properties.includes(mappedPropertyName)) {\n acc[mappedPropertyName] = value;\n }\n\n return acc;\n }, {} as CalculateResult);\n resolve(result);\n } else {\n reject(msg.error);\n }\n };\n\n const commandData: CalculateCommandData = {\n struct,\n properties,\n options: this.getStandardServerOptions(options),\n selectedAtoms: selected || [],\n };\n\n const inputMessage: InputMessage<CalculateCommandData> = {\n type: Command.Calculate,\n data: commandData,\n };\n\n this.EE.removeListener(WorkerEvent.Calculate, action);\n this.EE.addListener(WorkerEvent.Calculate, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n recognize(_blob: Blob, _version: string): Promise<RecognizeResult> {\n return Promise.reject(new Error('Not supported in standalone mode'));\n }\n\n generateImageAsBase64(\n inputData: string,\n options: GenerateImageOptions = {\n outputFormat: 'png',\n backgroundColor: '',\n },\n ): Promise<string> {\n const { outputFormat, backgroundColor, ...restOptions } = options;\n\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n const msg: OutputMessage<string> = data;\n if (msg.inputData === inputData) {\n if (!msg.hasError) {\n resolve(msg.payload);\n } else {\n reject(msg.error);\n }\n }\n };\n\n const commandOptions: CommandOptions = {\n ...this.getStandardServerOptions(restOptions),\n 'render-label-mode': this.ketcherId\n ? getLabelRenderModeForIndigo(this.ketcherId)\n : undefined,\n 'render-coloring': restOptions['render-coloring'],\n 'render-font-size': restOptions['render-font-size'],\n 'render-font-size-unit': restOptions['render-font-size-unit'],\n 'render-font-size-sub': restOptions['render-font-size-sub'],\n 'render-font-size-sub-unit': restOptions['render-font-size-sub-unit'],\n 'image-resolution': restOptions['image-resolution'],\n 'bond-length-unit': restOptions['bond-length-unit'],\n 'bond-length': restOptions['bond-length'],\n 'render-bond-thickness': restOptions['render-bond-thickness'],\n 'render-bond-thickness-unit': restOptions['render-bond-thickness-unit'],\n 'render-bond-spacing': restOptions['render-bond-spacing'],\n 'render-stereo-bond-width': restOptions['render-stereo-bond-width'],\n 'render-stereo-bond-width-unit':\n restOptions['render-stereo-bond-width-unit'],\n 'render-stereo-style': restOptions['render-stereo-style'],\n 'render-hash-spacing': restOptions['render-hash-spacing'],\n 'render-hash-spacing-unit': restOptions['render-hash-spacing-unit'],\n 'render-output-sheet-width': restOptions['render-output-sheet-width'],\n 'render-output-sheet-height': restOptions['render-output-sheet-height'],\n };\n\n const commandData: GenerateImageCommandData = {\n struct: inputData,\n outputFormat: outputFormat || 'png',\n backgroundColor,\n options: commandOptions,\n };\n\n const inputMessage: InputMessage<GenerateImageCommandData> = {\n type: Command.GenerateImageAsBase64,\n data: commandData,\n };\n\n this.EE.removeListener(WorkerEvent.GenerateImageAsBase64, action);\n this.EE.addListener(WorkerEvent.GenerateImageAsBase64, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n toggleExplicitHydrogens(\n data: ExplicitHydrogensData,\n options?: StructServiceOptions,\n ): Promise<ExplicitHydrogensResult> {\n const { struct, output_format: outputFormat } = data;\n const format = convertMimeTypeToOutputFormat(outputFormat);\n const mode = 'auto';\n\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n const msg: OutputMessage<string> = data;\n if (!msg.hasError) {\n const result: AromatizeResult = {\n struct: msg.payload,\n format: ChemicalMimeType.Mol,\n };\n resolve(result);\n } else {\n reject(msg.error);\n }\n };\n\n const commandData: ExplicitHydrogensCommandData = {\n struct,\n format,\n mode,\n options: this.getStandardServerOptions(options),\n };\n\n const inputMessage: InputMessage<ExplicitHydrogensCommandData> = {\n type: Command.ExplicitHydrogens,\n data: commandData,\n };\n\n this.EE.removeListener(WorkerEvent.ExplicitHydrogens, action);\n this.EE.addListener(WorkerEvent.ExplicitHydrogens, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n calculateMacromoleculeProperties(\n data: CalculateMacromoleculePropertiesData,\n options?: StructServiceOptions,\n ): Promise<CalculateMacromoleculePropertiesResult> {\n const { struct } = data;\n\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n const msg: OutputMessage<string> = data;\n\n if (!msg.hasError) {\n resolve(JSON.parse(msg.payload));\n } else {\n reject(msg.error);\n }\n };\n\n const commandData: CalculateMacromoleculePropertiesCommandData = {\n struct,\n options: {\n ...this.getStandardServerOptions(options),\n upc: options?.upc,\n nac: options?.nac,\n },\n };\n const inputMessage: InputMessage<CalculateMacromoleculePropertiesData> = {\n type: Command.CalculateMacromoleculeProperties,\n data: commandData,\n };\n\n this.EE.removeAllListeners(WorkerEvent.CalculateMacromoleculeProperties);\n this.EE.addListener(WorkerEvent.CalculateMacromoleculeProperties, action);\n this.worker.postMessage(inputMessage);\n });\n }\n\n public destroy() {\n this.worker.terminate();\n this.worker.onmessage = null;\n }\n}\n\nexport default IndigoService;\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport {\n ServiceMode,\n StructService,\n StructServiceOptions,\n StructServiceProvider,\n} from 'ketcher-core';\n\nimport StandaloneStructService from './standaloneStructService';\n\nclass StandaloneStructServiceProvider implements StructServiceProvider {\n mode: ServiceMode = 'standalone';\n\n createStructService(options: StructServiceOptions): StructService {\n return new StandaloneStructService(options);\n }\n}\nexport default StandaloneStructServiceProvider;\n"],"names":["STRUCT_SERVICE_NO_RENDER_INITIALIZED_EVENT","STRUCT_SERVICE_INITIALIZED_EVENT","indigoWorker","Worker","type","convertMimeTypeToOutputFormat","mimeType","format","ChemicalMimeType","Mol","SupportedFormat","Rxn","DaylightSmiles","ExtendedSmiles","Smiles","DaylightSmarts","Smarts","InChI","InChIAuxInfo","InChIKey","CML","KET","Ket","CDXML","CDX","SDF","FASTA","SEQUENCE","PeptideSequenceThreeLetter","SEQUENCE_3_LETTER","IDT","AXOLABS","HELM","RDF","MonomerLibrary","UNKNOWN","Error","mapCalculatedPropertyName","property","mapWarningGroup","mappedProperty","toLowerCase","messageTypeToEventMapping","_messageTypeToEventMa","_defineProperty","Command","Info","WorkerEvent","Convert","Layout","Clean","Aromatize","Dearomatize","CalculateCip","Automap","Check","Calculate","GenerateImageAsBase64","GetInChIKey","ExplicitHydrogens","CalculateMacromoleculeProperties","IndigoService","defaultOptions","_this","_classCallCheck","EventEmitter","worker","onmessage","e","data","callbackMethod","callIndigoLoadedCallback","message","undefined","event","EE","emit","_createClass","key","value","addKetcherId","ketcherId","getStandardServerOptions","options","pickStandardServerOptions","callIndigoNoRenderLoadedCallback","window","dispatchEvent","Event","_getInChIKey","_asyncToGenerator","_regeneratorRuntime","mark","_callee","struct","_this2","wrap","_callee$","_context","prev","next","abrupt","Promise","resolve","reject","action","_ref","msg","hasError","payload","error","inputMessage","removeListener","addListener","postMessage","stop","getInChIKey","_x","apply","arguments","info","_this3","_ref2","result","indigoVersion","imagoVersions","isAvailable","convert","_this4","outputFormat","output_format","inputFormat","input_format","_CoreEditor$provideEd","_ref3","inputData","monomerLibrary","JSON","stringify","CoreEditor","provideEditorInstance","monomersLibraryParsedJson","commandOptions","_objectSpread","commandData","layout","_this5","_ref4","getLabelRenderModeForIndigo","clean","_this6","selected","_ref5","selectedAtoms","aromatize","_this7","_ref6","dearomatize","_this8","_ref7","calculateCip","_this9","_ref8","automap","_this10","mode","_ref9","check","_this11","types","_ref10","warnings","parse","Object","entries","reduce","acc","curr","_curr","_slicedToArray","mappedPropertyName","calculate","_this12","properties","_ref11","calculatedProperties","_curr2","includes","recognize","_blob","_version","generateImageAsBase64","_this13","length","backgroundColor","restOptions","_objectWithoutProperties","_excluded","_ref12","toggleExplicitHydrogens","_this14","_ref13","calculateMacromoleculeProperties","_this15","_ref14","upc","nac","removeAllListeners","destroy","terminate","StandaloneStructServiceProvider","createStructService","StandaloneStructService"],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sources":["../../../../node_modules/rollup-plugin-node-polyfills/polyfills/events.js","../../src/infrastructure/services/struct/constants.ts","../../src/infrastructure/services/struct/indigoWorkerImports/useOffMainThreadPlugin.ts","../../src/infrastructure/services/struct/standaloneStructService.ts","../../src/infrastructure/services/struct/standaloneStructServiceProvider.ts"],"sourcesContent":["'use strict';\n\nvar domain;\n\n// This constructor is used to store event handlers. Instantiating this is\n// faster than explicitly calling `Object.create(null)` to get a \"clean\" empty\n// object (tested with v8 v4.9).\nfunction EventHandlers() {}\nEventHandlers.prototype = Object.create(null);\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nexport default EventEmitter;\nexport {EventEmitter};\n\n// nodejs oddity\n// require('events') === require('events').EventEmitter\nEventEmitter.EventEmitter = EventEmitter\n\nEventEmitter.usingDomains = false;\n\nEventEmitter.prototype.domain = undefined;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\nEventEmitter.init = function() {\n this.domain = null;\n if (EventEmitter.usingDomains) {\n // if there is an active domain, then attach to it.\n if (domain.active && !(this instanceof domain.Domain)) {\n this.domain = domain.active;\n }\n }\n\n if (!this._events || this._events === Object.getPrototypeOf(this)._events) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || isNaN(n))\n throw new TypeError('\"n\" argument must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\n// These standalone emit* functions are used to optimize calling of event\n// handlers for fast cases because emit() itself often has a variable number of\n// arguments and can be deoptimized because of that. These functions always have\n// the same number of arguments and thus do not get deoptimized, so the code\n// inside them can execute faster.\nfunction emitNone(handler, isFn, self) {\n if (isFn)\n handler.call(self);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self);\n }\n}\nfunction emitOne(handler, isFn, self, arg1) {\n if (isFn)\n handler.call(self, arg1);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1);\n }\n}\nfunction emitTwo(handler, isFn, self, arg1, arg2) {\n if (isFn)\n handler.call(self, arg1, arg2);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2);\n }\n}\nfunction emitThree(handler, isFn, self, arg1, arg2, arg3) {\n if (isFn)\n handler.call(self, arg1, arg2, arg3);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2, arg3);\n }\n}\n\nfunction emitMany(handler, isFn, self, args) {\n if (isFn)\n handler.apply(self, args);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].apply(self, args);\n }\n}\n\nEventEmitter.prototype.emit = function emit(type) {\n var er, handler, len, args, i, events, domain;\n var needDomainExit = false;\n var doError = (type === 'error');\n\n events = this._events;\n if (events)\n doError = (doError && events.error == null);\n else if (!doError)\n return false;\n\n domain = this.domain;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n er = arguments[1];\n if (domain) {\n if (!er)\n er = new Error('Uncaught, unspecified \"error\" event');\n er.domainEmitter = this;\n er.domain = domain;\n er.domainThrown = false;\n domain.emit('error', er);\n } else if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n return false;\n }\n\n handler = events[type];\n\n if (!handler)\n return false;\n\n var isFn = typeof handler === 'function';\n len = arguments.length;\n switch (len) {\n // fast cases\n case 1:\n emitNone(handler, isFn, this);\n break;\n case 2:\n emitOne(handler, isFn, this, arguments[1]);\n break;\n case 3:\n emitTwo(handler, isFn, this, arguments[1], arguments[2]);\n break;\n case 4:\n emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]);\n break;\n // slower\n default:\n args = new Array(len - 1);\n for (i = 1; i < len; i++)\n args[i - 1] = arguments[i];\n emitMany(handler, isFn, this, args);\n }\n\n if (needDomainExit)\n domain.exit();\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = target._events;\n if (!events) {\n events = target._events = new EventHandlers();\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (!existing) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] :\n [existing, listener];\n } else {\n // If we've already got an array, just append.\n if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n }\n\n // Check for listener leak\n if (!existing.warned) {\n m = $getMaxListeners(target);\n if (m && m > 0 && existing.length > m) {\n existing.warned = true;\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + type + ' listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n emitWarning(w);\n }\n }\n }\n\n return target;\n}\nfunction emitWarning(e) {\n typeof console.warn === 'function' ? console.warn(e) : console.log(e);\n}\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction _onceWrap(target, type, listener) {\n var fired = false;\n function g() {\n target.removeListener(type, g);\n if (!fired) {\n fired = true;\n listener.apply(target, arguments);\n }\n }\n g.listener = listener;\n return g;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = this._events;\n if (!events)\n return this;\n\n list = events[type];\n if (!list)\n return this;\n\n if (list === listener || (list.listener && list.listener === listener)) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list[0] = undefined;\n if (--this._eventsCount === 0) {\n this._events = new EventHandlers();\n return this;\n } else {\n delete events[type];\n }\n } else {\n spliceOne(list, position);\n }\n\n if (events.removeListener)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events;\n\n events = this._events;\n if (!events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!events.removeListener) {\n if (arguments.length === 0) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n } else if (events[type]) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n for (var i = 0, key; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = new EventHandlers();\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n do {\n this.removeListener(type, listeners[listeners.length - 1]);\n } while (listeners[0]);\n }\n\n return this;\n };\n\nEventEmitter.prototype.listeners = function listeners(type) {\n var evlistener;\n var ret;\n var events = this._events;\n\n if (!events)\n ret = [];\n else {\n evlistener = events[type];\n if (!evlistener)\n ret = [];\n else if (typeof evlistener === 'function')\n ret = [evlistener.listener || evlistener];\n else\n ret = unwrapListeners(evlistener);\n }\n\n return ret;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];\n};\n\n// About 1.5x faster than the two-arg version of Array#splice().\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1)\n list[i] = list[k];\n list.pop();\n}\n\nfunction arrayClone(arr, i) {\n var copy = new Array(i);\n while (i--)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n","export const STRUCT_SERVICE_NO_RENDER_INITIALIZED_EVENT =\n 'struct-service-no-render-initialized';\nexport const STRUCT_SERVICE_INITIALIZED_EVENT = 'struct-service-initialized';\n","// this import processed by '@surma/rollup-plugin-off-main-thread' plugin\n// check rollup.config.js to see how different build types are handled.\n// This plugin can not result cjs modules.\n\nexport const indigoWorker: Worker = new Worker(\n new URL('./../indigoWorker.ts', import.meta.url),\n { type: 'module' },\n);\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport {\n AromatizeCommandData,\n AutomapCommandData,\n CalculateCipCommandData,\n CalculateCommandData,\n CalculateMacromoleculePropertiesCommandData,\n CalculateProps,\n CheckCommandData,\n CleanCommandData,\n Command,\n CommandOptions,\n ConvertCommandData,\n DearomatizeCommandData,\n ExplicitHydrogensCommandData,\n GenerateImageCommandData,\n GenerateInchIKeyCommandData,\n InputMessage,\n LayoutCommandData,\n OutputMessage,\n OutputMessageWrapper,\n SupportedFormat,\n WorkerEvent,\n} from './indigoWorker.types';\nimport {\n AromatizeData,\n AromatizeResult,\n AutomapData,\n AutomapResult,\n CalculateCipData,\n CalculateCipResult,\n CalculateData,\n CalculateResult,\n CheckData,\n CheckResult,\n ChemicalMimeType,\n CleanData,\n CleanResult,\n ConvertData,\n ConvertResult,\n CoreEditor,\n DearomatizeData,\n DearomatizeResult,\n ExplicitHydrogensData,\n ExplicitHydrogensResult,\n GenerateImageOptions,\n getLabelRenderModeForIndigo,\n InfoResult,\n LayoutData,\n LayoutResult,\n RecognizeResult,\n StructService,\n StructServiceOptions,\n pickStandardServerOptions,\n CalculateMacromoleculePropertiesData,\n CalculateMacromoleculePropertiesResult,\n} from 'ketcher-core';\n\nimport EventEmitter from 'events';\nimport {\n STRUCT_SERVICE_INITIALIZED_EVENT,\n STRUCT_SERVICE_NO_RENDER_INITIALIZED_EVENT,\n} from './constants';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { indigoWorker } from '_indigo-worker-import-alias_';\n\ninterface KeyValuePair {\n [key: string]: number | string | boolean | object;\n}\n\nfunction convertMimeTypeToOutputFormat(\n mimeType: ChemicalMimeType,\n): SupportedFormat {\n let format: SupportedFormat;\n switch (mimeType) {\n case ChemicalMimeType.Mol: {\n format = SupportedFormat.Mol;\n break;\n }\n case ChemicalMimeType.Rxn: {\n format = SupportedFormat.Rxn;\n break;\n }\n case ChemicalMimeType.DaylightSmiles:\n case ChemicalMimeType.ExtendedSmiles: {\n format = SupportedFormat.Smiles;\n break;\n }\n case ChemicalMimeType.DaylightSmarts: {\n format = SupportedFormat.Smarts;\n break;\n }\n case ChemicalMimeType.InChI: {\n format = SupportedFormat.InChI;\n break;\n }\n case ChemicalMimeType.InChIAuxInfo: {\n format = SupportedFormat.InChIAuxInfo;\n break;\n }\n case ChemicalMimeType.InChIKey: {\n format = SupportedFormat.InChIKey;\n break;\n }\n case ChemicalMimeType.CML: {\n format = SupportedFormat.CML;\n break;\n }\n case ChemicalMimeType.KET: {\n format = SupportedFormat.Ket;\n break;\n }\n case ChemicalMimeType.CDXML: {\n format = SupportedFormat.CDXML;\n break;\n }\n case ChemicalMimeType.CDX: {\n format = SupportedFormat.CDX;\n break;\n }\n case ChemicalMimeType.SDF: {\n format = SupportedFormat.SDF;\n break;\n }\n case ChemicalMimeType.FASTA: {\n format = SupportedFormat.FASTA;\n break;\n }\n case ChemicalMimeType.SEQUENCE: {\n format = SupportedFormat.SEQUENCE;\n break;\n }\n case ChemicalMimeType.PeptideSequenceThreeLetter: {\n format = SupportedFormat.SEQUENCE_3_LETTER;\n break;\n }\n case ChemicalMimeType.IDT: {\n format = SupportedFormat.IDT;\n break;\n }\n case ChemicalMimeType.AXOLABS: {\n format = SupportedFormat.AXOLABS;\n break;\n }\n case ChemicalMimeType.HELM: {\n format = SupportedFormat.HELM;\n break;\n }\n case ChemicalMimeType.RDF:\n format = SupportedFormat.RDF;\n break;\n case ChemicalMimeType.MonomerLibrary:\n format = SupportedFormat.MonomerLibrary;\n break;\n case ChemicalMimeType.UNKNOWN:\n default: {\n throw new Error('Unsupported chemical mime type');\n }\n }\n\n return format;\n}\n\nfunction mapCalculatedPropertyName(property: CalculateProps) {\n if (property === 'gross-formula') {\n return 'gross';\n }\n return property;\n}\n\nfunction mapWarningGroup(property: string) {\n if (property === 'OVERLAP_BOND') {\n return 'overlapping_bonds';\n }\n return property.toLowerCase();\n}\n\nconst messageTypeToEventMapping: {\n [key in Command]: WorkerEvent;\n} = {\n [Command.Info]: WorkerEvent.Info,\n [Command.Convert]: WorkerEvent.Convert,\n [Command.Layout]: WorkerEvent.Layout,\n [Command.Clean]: WorkerEvent.Clean,\n [Command.Aromatize]: WorkerEvent.Aromatize,\n [Command.Dearomatize]: WorkerEvent.Dearomatize,\n [Command.CalculateCip]: WorkerEvent.CalculateCip,\n [Command.Automap]: WorkerEvent.Automap,\n [Command.Check]: WorkerEvent.Check,\n [Command.Calculate]: WorkerEvent.Calculate,\n [Command.GenerateImageAsBase64]: WorkerEvent.GenerateImageAsBase64,\n [Command.GetInChIKey]: WorkerEvent.GetInChIKey,\n [Command.ExplicitHydrogens]: WorkerEvent.ExplicitHydrogens,\n [Command.CalculateMacromoleculeProperties]:\n WorkerEvent.CalculateMacromoleculeProperties,\n};\n\nclass IndigoService implements StructService {\n private readonly defaultOptions: StructServiceOptions;\n private readonly worker: Worker;\n private readonly EE: EventEmitter = new EventEmitter();\n private ketcherId: string | null = null;\n\n constructor(defaultOptions: StructServiceOptions) {\n this.defaultOptions = defaultOptions;\n this.worker = indigoWorker;\n this.worker.onmessage = (e: MessageEvent<OutputMessage<string>>) => {\n if (e.data.type === Command.Info) {\n const callbackMethod = process.env.SEPARATE_INDIGO_RENDER\n ? this.callIndigoNoRenderLoadedCallback\n : this.callIndigoLoadedCallback;\n\n callbackMethod();\n }\n\n const message: OutputMessage<string> = e.data;\n if (message.type !== undefined) {\n const event = messageTypeToEventMapping[message.type];\n this.EE.emit(event, { data: message });\n }\n };\n }\n\n public addKetcherId(ketcherId: string) {\n this.ketcherId = ketcherId;\n }\n\n private getStandardServerOptions(options?: StructServiceOptions) {\n if (!options) {\n return this.defaultOptions;\n }\n if (!this.ketcherId) {\n throw new Error('Cannot getting options because there are no ketcherId');\n }\n\n return pickStandardServerOptions(this.ketcherId, options);\n }\n\n private callIndigoNoRenderLoadedCallback() {\n window.dispatchEvent(new Event(STRUCT_SERVICE_NO_RENDER_INITIALIZED_EVENT));\n }\n\n private callIndigoLoadedCallback() {\n window.dispatchEvent(new Event(STRUCT_SERVICE_INITIALIZED_EVENT));\n }\n\n async getInChIKey(struct: string): Promise<string> {\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n const msg: OutputMessage<string> = data;\n if (!msg.hasError) {\n resolve(msg.payload || '');\n } else {\n reject(msg.error);\n }\n };\n\n const inputMessage: InputMessage<GenerateInchIKeyCommandData> = {\n type: Command.GetInChIKey,\n data: { struct },\n };\n\n this.EE.removeListener(WorkerEvent.GetInChIKey, action);\n this.EE.addListener(WorkerEvent.GetInChIKey, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n info(): Promise<InfoResult> {\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n console.log('info action', data);\n const msg: OutputMessage<string> = data;\n if (!msg.hasError) {\n const result: InfoResult = {\n indigoVersion: msg.payload,\n imagoVersions: [],\n isAvailable: true,\n };\n resolve(result);\n } else {\n reject(msg.error);\n }\n };\n\n this.EE.removeListener(WorkerEvent.Info, action);\n this.EE.addListener(WorkerEvent.Info, action);\n\n this.worker.postMessage({ type: Command.Info });\n });\n }\n\n convert(\n data: ConvertData,\n options?: StructServiceOptions,\n ): Promise<ConvertResult> {\n const {\n output_format: outputFormat,\n input_format: inputFormat,\n struct,\n } = data;\n const format = convertMimeTypeToOutputFormat(outputFormat);\n\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n console.log('convert action', data);\n const msg: OutputMessage<string> = data;\n if (msg.inputData === struct) {\n if (!msg.hasError) {\n const result: ConvertResult = {\n struct: msg.payload,\n format: outputFormat,\n };\n resolve(result);\n } else {\n reject(msg.error);\n }\n }\n };\n const monomerLibrary = JSON.stringify(\n CoreEditor.provideEditorInstance()?.monomersLibraryParsedJson,\n );\n const commandOptions: CommandOptions = {\n ...this.getStandardServerOptions(options),\n 'bond-length-unit': options?.['bond-length-unit'],\n 'bond-length': options?.['bond-length'],\n 'reaction-component-margin-size-unit':\n options?.['reaction-component-margin-size-unit'],\n 'reaction-component-margin-size':\n options?.['reaction-component-margin-size'],\n 'image-resolution': options?.['image-resolution'],\n 'input-format': inputFormat,\n 'molfile-saving-mode': options?.['molfile-saving-mode'],\n 'monomer-library-saving-mode': options?.['monomer-library-saving-mode'],\n 'molfile-saving-skip-date': options?.['molfile-saving-skip-date'],\n 'sequence-type': options?.['sequence-type'],\n 'output-content-type': options?.['output-content-type'],\n monomerLibrary,\n };\n\n const commandData: ConvertCommandData = {\n struct,\n format,\n options: commandOptions,\n };\n\n const inputMessage: InputMessage<ConvertCommandData> = {\n type: Command.Convert,\n data: commandData,\n };\n\n this.EE.removeListener(WorkerEvent.Convert, action);\n this.EE.addListener(WorkerEvent.Convert, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n layout(\n data: LayoutData,\n options?: StructServiceOptions,\n ): Promise<LayoutResult> {\n const { struct, output_format: outputFormat } = data;\n const format = convertMimeTypeToOutputFormat(outputFormat);\n\n return new Promise((resolve, reject) => {\n const action = ({\n data,\n }: OutputMessageWrapper<{\n struct: string;\n format: string;\n original_format: ChemicalMimeType;\n }>) => {\n console.log('layout action', data);\n const msg: OutputMessage<{\n struct: string;\n format: string;\n original_format: ChemicalMimeType;\n }> = data;\n if (!msg.hasError) {\n const { struct } = msg.payload;\n const result: LayoutResult = {\n struct,\n format: ChemicalMimeType.Mol,\n };\n resolve(result);\n } else {\n reject(msg.error);\n }\n };\n\n const commandOptions: CommandOptions = {\n ...this.getStandardServerOptions(options),\n 'output-content-type': 'application/json',\n\n 'render-label-mode': this.ketcherId\n ? getLabelRenderModeForIndigo(this.ketcherId)\n : undefined,\n 'render-font-size': options?.['render-font-size'],\n 'render-font-size-unit': options?.['render-font-size-unit'],\n 'render-font-size-sub': options?.['render-font-size-sub'],\n 'render-font-size-sub-unit': options?.['render-font-size-sub-unit'],\n 'bond-length-unit': options?.['bond-length-unit'],\n 'bond-length': options?.['bond-length'],\n 'reaction-component-margin-size-unit':\n options?.['reaction-component-margin-size-unit'],\n 'reaction-component-margin-size':\n options?.['reaction-component-margin-size'],\n 'image-resolution': options?.['image-resolution'],\n };\n\n const commandData: LayoutCommandData = {\n struct,\n format,\n options: commandOptions,\n };\n\n const inputMessage: InputMessage<LayoutCommandData> = {\n type: Command.Layout,\n data: commandData,\n };\n\n this.EE.removeListener(WorkerEvent.Layout, action);\n this.EE.addListener(WorkerEvent.Layout, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n clean(data: CleanData, options?: StructServiceOptions): Promise<CleanResult> {\n const { struct, selected, output_format: outputFormat } = data;\n const format = convertMimeTypeToOutputFormat(outputFormat);\n\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n const msg: OutputMessage<string> = data;\n if (!msg.hasError) {\n const result: CleanResult = {\n struct: msg.payload,\n format: ChemicalMimeType.Mol,\n };\n resolve(result);\n } else {\n reject(msg.error);\n }\n };\n\n const commandData: CleanCommandData = {\n struct,\n format,\n options: this.getStandardServerOptions(options),\n selectedAtoms: selected || [],\n };\n\n const inputMessage: InputMessage<CleanCommandData> = {\n type: Command.Clean,\n data: commandData,\n };\n\n this.EE.removeListener(WorkerEvent.Clean, action);\n this.EE.addListener(WorkerEvent.Clean, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n aromatize(\n data: AromatizeData,\n options?: StructServiceOptions,\n ): Promise<AromatizeResult> {\n const { struct, output_format: outputFormat } = data;\n const format = convertMimeTypeToOutputFormat(outputFormat);\n\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n const msg: OutputMessage<string> = data;\n if (!msg.hasError) {\n const result: AromatizeResult = {\n struct: msg.payload,\n format: ChemicalMimeType.Mol,\n };\n resolve(result);\n } else {\n reject(msg.error);\n }\n };\n\n const commandData: AromatizeCommandData = {\n struct,\n format,\n options: this.getStandardServerOptions(options),\n };\n\n const inputMessage: InputMessage<AromatizeCommandData> = {\n type: Command.Aromatize,\n data: commandData,\n };\n\n this.EE.removeListener(WorkerEvent.Aromatize, action);\n this.EE.addListener(WorkerEvent.Aromatize, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n dearomatize(\n data: DearomatizeData,\n options?: StructServiceOptions,\n ): Promise<DearomatizeResult> {\n const { struct, output_format: outputFormat } = data;\n const format = convertMimeTypeToOutputFormat(outputFormat);\n\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n const msg: OutputMessage<string> = data;\n if (!msg.hasError) {\n const result: AromatizeResult = {\n struct: msg.payload,\n format: ChemicalMimeType.Mol,\n };\n resolve(result);\n } else {\n reject(msg.error);\n }\n };\n\n const commandData: DearomatizeCommandData = {\n struct,\n format,\n options: this.getStandardServerOptions(options),\n };\n\n const inputMessage: InputMessage<DearomatizeCommandData> = {\n type: Command.Dearomatize,\n data: commandData,\n };\n\n this.EE.removeListener(WorkerEvent.Dearomatize, action);\n this.EE.addListener(WorkerEvent.Dearomatize, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n calculateCip(\n data: CalculateCipData,\n options?: StructServiceOptions,\n ): Promise<CalculateCipResult> {\n const { struct, output_format: outputFormat } = data;\n const format = convertMimeTypeToOutputFormat(outputFormat);\n\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n const msg: OutputMessage<string> = data;\n if (!msg.hasError) {\n const result: CalculateCipResult = {\n struct: msg.payload,\n format: ChemicalMimeType.Mol,\n };\n resolve(result);\n } else {\n reject(msg.error);\n }\n };\n\n const commandData: CalculateCipCommandData = {\n struct,\n format,\n options: this.getStandardServerOptions(options),\n };\n\n const inputMessage: InputMessage<CalculateCipCommandData> = {\n type: Command.CalculateCip,\n data: commandData,\n };\n\n this.EE.removeListener(WorkerEvent.CalculateCip, action);\n this.EE.addListener(WorkerEvent.CalculateCip, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n automap(\n data: AutomapData,\n options?: StructServiceOptions,\n ): Promise<AutomapResult> {\n const { mode, struct, output_format: outputFormat } = data;\n const format = convertMimeTypeToOutputFormat(outputFormat);\n\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n const msg: OutputMessage<string> = data;\n if (!msg.hasError) {\n const result: AutomapResult = {\n struct: msg.payload,\n format: ChemicalMimeType.Mol,\n };\n resolve(result);\n } else {\n reject(msg.error);\n }\n };\n\n const commandData: AutomapCommandData = {\n struct,\n format,\n mode,\n options: this.getStandardServerOptions(options),\n };\n\n const inputMessage: InputMessage<CalculateCipCommandData> = {\n type: Command.Automap,\n data: commandData,\n };\n\n this.EE.removeListener(WorkerEvent.Automap, action);\n this.EE.addListener(WorkerEvent.Automap, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n check(data: CheckData, options?: StructServiceOptions): Promise<CheckResult> {\n const { types, struct } = data;\n\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n const msg: OutputMessage<string> = data;\n if (!msg.hasError) {\n const warnings = JSON.parse(msg.payload) as KeyValuePair;\n\n const result: CheckResult = Object.entries(warnings).reduce(\n (acc, curr) => {\n const [key, value] = curr;\n const mappedPropertyName = mapWarningGroup(key);\n acc[mappedPropertyName] = value as string;\n\n return acc;\n },\n {} as CheckResult,\n );\n resolve(result);\n } else {\n reject(msg.error);\n }\n };\n\n const commandData: CheckCommandData = {\n struct,\n types,\n options: this.getStandardServerOptions(options),\n };\n\n const inputMessage: InputMessage<CheckCommandData> = {\n type: Command.Check,\n data: commandData,\n };\n\n this.EE.removeListener(WorkerEvent.Check, action);\n this.EE.addListener(WorkerEvent.Check, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n calculate(\n data: CalculateData,\n options?: StructServiceOptions,\n ): Promise<CalculateResult> {\n const { properties, struct, selected } = data;\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n const msg: OutputMessage<string> = data;\n if (!msg.hasError) {\n const calculatedProperties: CalculateResult = JSON.parse(msg.payload);\n const result: CalculateResult = Object.entries(\n calculatedProperties,\n ).reduce((acc, curr) => {\n const [key, value] = curr;\n const mappedPropertyName = mapCalculatedPropertyName(\n key as CalculateProps,\n );\n if (properties.includes(mappedPropertyName)) {\n acc[mappedPropertyName] = value;\n }\n\n return acc;\n }, {} as CalculateResult);\n resolve(result);\n } else {\n reject(msg.error);\n }\n };\n\n const commandData: CalculateCommandData = {\n struct,\n properties,\n options: this.getStandardServerOptions(options),\n selectedAtoms: selected || [],\n };\n\n const inputMessage: InputMessage<CalculateCommandData> = {\n type: Command.Calculate,\n data: commandData,\n };\n\n this.EE.removeListener(WorkerEvent.Calculate, action);\n this.EE.addListener(WorkerEvent.Calculate, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n recognize(_blob: Blob, _version: string): Promise<RecognizeResult> {\n return Promise.reject(new Error('Not supported in standalone mode'));\n }\n\n generateImageAsBase64(\n inputData: string,\n options: GenerateImageOptions = {\n outputFormat: 'png',\n backgroundColor: '',\n },\n ): Promise<string> {\n const { outputFormat, backgroundColor, ...restOptions } = options;\n\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n const msg: OutputMessage<string> = data;\n if (msg.inputData === inputData) {\n if (!msg.hasError) {\n resolve(msg.payload);\n } else {\n reject(msg.error);\n }\n }\n };\n\n const commandOptions: CommandOptions = {\n ...this.getStandardServerOptions(restOptions),\n 'render-label-mode': this.ketcherId\n ? getLabelRenderModeForIndigo(this.ketcherId)\n : undefined,\n 'render-coloring': restOptions['render-coloring'],\n 'render-font-size': restOptions['render-font-size'],\n 'render-font-size-unit': restOptions['render-font-size-unit'],\n 'render-font-size-sub': restOptions['render-font-size-sub'],\n 'render-font-size-sub-unit': restOptions['render-font-size-sub-unit'],\n 'image-resolution': restOptions['image-resolution'],\n 'bond-length-unit': restOptions['bond-length-unit'],\n 'bond-length': restOptions['bond-length'],\n 'render-bond-thickness': restOptions['render-bond-thickness'],\n 'render-bond-thickness-unit': restOptions['render-bond-thickness-unit'],\n 'render-bond-spacing': restOptions['render-bond-spacing'],\n 'render-stereo-bond-width': restOptions['render-stereo-bond-width'],\n 'render-stereo-bond-width-unit':\n restOptions['render-stereo-bond-width-unit'],\n 'render-stereo-style': restOptions['render-stereo-style'],\n 'render-hash-spacing': restOptions['render-hash-spacing'],\n 'render-hash-spacing-unit': restOptions['render-hash-spacing-unit'],\n 'render-output-sheet-width': restOptions['render-output-sheet-width'],\n 'render-output-sheet-height': restOptions['render-output-sheet-height'],\n };\n\n const commandData: GenerateImageCommandData = {\n struct: inputData,\n outputFormat: outputFormat || 'png',\n backgroundColor,\n options: commandOptions,\n };\n\n const inputMessage: InputMessage<GenerateImageCommandData> = {\n type: Command.GenerateImageAsBase64,\n data: commandData,\n };\n\n this.EE.removeListener(WorkerEvent.GenerateImageAsBase64, action);\n this.EE.addListener(WorkerEvent.GenerateImageAsBase64, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n toggleExplicitHydrogens(\n data: ExplicitHydrogensData,\n options?: StructServiceOptions,\n ): Promise<ExplicitHydrogensResult> {\n const { struct, output_format: outputFormat } = data;\n const format = convertMimeTypeToOutputFormat(outputFormat);\n const mode = 'auto';\n\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n const msg: OutputMessage<string> = data;\n if (!msg.hasError) {\n const result: AromatizeResult = {\n struct: msg.payload,\n format: ChemicalMimeType.Mol,\n };\n resolve(result);\n } else {\n reject(msg.error);\n }\n };\n\n const commandData: ExplicitHydrogensCommandData = {\n struct,\n format,\n mode,\n options: this.getStandardServerOptions(options),\n };\n\n const inputMessage: InputMessage<ExplicitHydrogensCommandData> = {\n type: Command.ExplicitHydrogens,\n data: commandData,\n };\n\n this.EE.removeListener(WorkerEvent.ExplicitHydrogens, action);\n this.EE.addListener(WorkerEvent.ExplicitHydrogens, action);\n\n this.worker.postMessage(inputMessage);\n });\n }\n\n calculateMacromoleculeProperties(\n data: CalculateMacromoleculePropertiesData,\n options?: StructServiceOptions,\n ): Promise<CalculateMacromoleculePropertiesResult> {\n const { struct } = data;\n\n return new Promise((resolve, reject) => {\n const action = ({ data }: OutputMessageWrapper) => {\n const msg: OutputMessage<string> = data;\n\n if (!msg.hasError) {\n resolve(JSON.parse(msg.payload));\n } else {\n reject(msg.error);\n }\n };\n\n const commandData: CalculateMacromoleculePropertiesCommandData = {\n struct,\n options: {\n ...this.getStandardServerOptions(options),\n upc: options?.upc,\n nac: options?.nac,\n },\n };\n const inputMessage: InputMessage<CalculateMacromoleculePropertiesData> = {\n type: Command.CalculateMacromoleculeProperties,\n data: commandData,\n };\n\n this.EE.removeAllListeners(WorkerEvent.CalculateMacromoleculeProperties);\n this.EE.addListener(WorkerEvent.CalculateMacromoleculeProperties, action);\n this.worker.postMessage(inputMessage);\n });\n }\n\n public destroy() {\n this.worker.terminate();\n this.worker.onmessage = null;\n }\n}\n\nexport default IndigoService;\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport {\n ServiceMode,\n StructService,\n StructServiceOptions,\n StructServiceProvider,\n} from 'ketcher-core';\n\nimport StandaloneStructService from './standaloneStructService';\n\nclass StandaloneStructServiceProvider implements StructServiceProvider {\n mode: ServiceMode = 'standalone';\n\n createStructService(options: StructServiceOptions): StructService {\n return new StandaloneStructService(options);\n }\n}\nexport default StandaloneStructServiceProvider;\n"],"names":["STRUCT_SERVICE_NO_RENDER_INITIALIZED_EVENT","STRUCT_SERVICE_INITIALIZED_EVENT","indigoWorker","Worker","type","convertMimeTypeToOutputFormat","mimeType","format","ChemicalMimeType","Mol","SupportedFormat","Rxn","DaylightSmiles","ExtendedSmiles","Smiles","DaylightSmarts","Smarts","InChI","InChIAuxInfo","InChIKey","CML","KET","Ket","CDXML","CDX","SDF","FASTA","SEQUENCE","PeptideSequenceThreeLetter","SEQUENCE_3_LETTER","IDT","AXOLABS","HELM","RDF","MonomerLibrary","UNKNOWN","Error","mapCalculatedPropertyName","property","mapWarningGroup","toLowerCase","messageTypeToEventMapping","_messageTypeToEventMa","_defineProperty","Command","Info","WorkerEvent","Convert","Layout","Clean","Aromatize","Dearomatize","CalculateCip","Automap","Check","Calculate","GenerateImageAsBase64","GetInChIKey","ExplicitHydrogens","CalculateMacromoleculeProperties","IndigoService","defaultOptions","_this","_classCallCheck","EventEmitter","worker","onmessage","e","data","callbackMethod","callIndigoLoadedCallback","message","undefined","event","EE","emit","_createClass","key","value","addKetcherId","ketcherId","getStandardServerOptions","options","pickStandardServerOptions","callIndigoNoRenderLoadedCallback","window","dispatchEvent","Event","_getInChIKey","_asyncToGenerator","_regeneratorRuntime","mark","_callee","struct","_this2","wrap","_callee$","_context","prev","next","abrupt","Promise","resolve","reject","action","_ref","msg","hasError","payload","error","inputMessage","removeListener","addListener","postMessage","stop","getInChIKey","_x","apply","arguments","info","_this3","_ref2","result","indigoVersion","imagoVersions","isAvailable","convert","_this4","outputFormat","output_format","inputFormat","input_format","_CoreEditor$provideEd","_ref3","inputData","monomerLibrary","JSON","stringify","CoreEditor","provideEditorInstance","monomersLibraryParsedJson","commandOptions","_objectSpread","commandData","layout","_this5","_ref4","getLabelRenderModeForIndigo","clean","_this6","selected","_ref5","selectedAtoms","aromatize","_this7","_ref6","dearomatize","_this8","_ref7","calculateCip","_this9","_ref8","automap","_this10","mode","_ref9","check","_this11","types","_ref10","warnings","parse","Object","entries","reduce","acc","curr","_curr","_slicedToArray","mappedPropertyName","calculate","_this12","properties","_ref11","calculatedProperties","_curr2","includes","recognize","_blob","_version","generateImageAsBase64","_this13","length","backgroundColor","restOptions","_objectWithoutProperties","_excluded","_ref12","toggleExplicitHydrogens","_this14","_ref13","calculateMacromoleculeProperties","_this15","_ref14","upc","nac","removeAllListeners","destroy","terminate","StandaloneStructServiceProvider","createStructService","StandaloneStructService"],"mappings":"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"}
@@ -615,18 +615,10 @@ function mapCalculatedPropertyName(property) {
615
615
  return property;
616
616
  }
617
617
  function mapWarningGroup(property) {
618
- var mappedProperty;
619
- switch (property) {
620
- case 'OVERLAP_BOND':
621
- {
622
- mappedProperty = 'overlapping_bonds';
623
- break;
624
- }
625
- default:
626
- mappedProperty = property.toLowerCase();
627
- break;
618
+ if (property === 'OVERLAP_BOND') {
619
+ return 'overlapping_bonds';
628
620
  }
629
- return mappedProperty;
621
+ return property.toLowerCase();
630
622
  }
631
623
  var messageTypeToEventMapping = (_messageTypeToEventMa = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_messageTypeToEventMa, Command.Info, WorkerEvent.Info), Command.Convert, WorkerEvent.Convert), Command.Layout, WorkerEvent.Layout), Command.Clean, WorkerEvent.Clean), Command.Aromatize, WorkerEvent.Aromatize), Command.Dearomatize, WorkerEvent.Dearomatize), Command.CalculateCip, WorkerEvent.CalculateCip), Command.Automap, WorkerEvent.Automap), Command.Check, WorkerEvent.Check), Command.Calculate, WorkerEvent.Calculate), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_messageTypeToEventMa, Command.GenerateImageAsBase64, WorkerEvent.GenerateImageAsBase64), Command.GetInChIKey, WorkerEvent.GetInChIKey), Command.ExplicitHydrogens, WorkerEvent.ExplicitHydrogens), Command.CalculateMacromoleculeProperties, WorkerEvent.CalculateMacromoleculeProperties));
632
624
  var IndigoService = function () {