New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@datagrok-libraries/chem-meta

Package Overview
Dependencies
Maintainers
3
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@datagrok-libraries/chem-meta - npm Package Compare versions

Comparing version 1.0.9 to 1.0.10

src/parsing-utils/chemical-table-parser-base.d.ts

2

.eslintrc.json
{
"env": {
"browser": true,
"es2021": true
"es2022": true
},

@@ -6,0 +6,0 @@ "extends": [

@@ -7,3 +7,3 @@ {

"friendlyName": "Datagrok chem-meta library",
"version": "1.0.9",
"version": "1.0.10",
"description": "",

@@ -26,7 +26,8 @@ "dependencies": {

"link-utils": "npm link @datagrok-libraries/utils",
"link-all": "npm link datagrok-api @datagrok-libraries/utils",
"link-all": "npm link",
"build": "tsc",
"lint": "eslint \"./src/**/*.ts\"",
"lint-fix": "eslint \"./src/**/*.ts\" --fix"
"lint-fix": "eslint \"./src/**/*.ts\" --fix",
"build-all": "npm run build"
}
}

@@ -8,2 +8,3 @@ /** Constants related to the structure of Molfile V2K */

FIRST_BONDED_ATOM_COL = 1,
BOND_TYPE_COL = 3,
RGP_SHIFT = 8,

@@ -10,0 +11,0 @@ RGP_LINE = "M RGP",

@@ -9,2 +9,3 @@ /** Constants related to the structure of Molfile V2K */

V2K_CONST[V2K_CONST["FIRST_BONDED_ATOM_COL"] = 1] = "FIRST_BONDED_ATOM_COL";
V2K_CONST[V2K_CONST["BOND_TYPE_COL"] = 3] = "BOND_TYPE_COL";
V2K_CONST[V2K_CONST["RGP_SHIFT"] = 8] = "RGP_SHIFT";

@@ -20,2 +21,2 @@ V2K_CONST["RGP_LINE"] = "M RGP";

M END`;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9sZmlsZS12MmstY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtb2xmaWxlLXYyay1jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3REFBd0Q7QUFDeEQsTUFBTSxDQUFOLElBQVksU0FhWDtBQWJELFdBQVksU0FBUztJQUNuQiw2QkFBZ0IsQ0FBQTtJQUNoQix1RUFBdUIsQ0FBQTtJQUV2Qix5RUFBd0IsQ0FBQTtJQUN4QiwyREFBaUIsQ0FBQTtJQUNqQiwyRUFBeUIsQ0FBQTtJQUV6QixtREFBYSxDQUFBO0lBQ2IsZ0NBQW1CLENBQUE7SUFDbkIsMkJBQWMsQ0FBQTtJQUVkLDJCQUFjLENBQUE7QUFDaEIsQ0FBQyxFQWJXLFNBQVMsS0FBVCxTQUFTLFFBYXBCO0FBRUQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUc7Ozs7T0FJNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBDb25zdGFudHMgcmVsYXRlZCB0byB0aGUgc3RydWN0dXJlIG9mIE1vbGZpbGUgVjJLICovXG5leHBvcnQgZW51bSBWMktfQ09OU1Qge1xuICBIRUFERVIgPSAnVjIwMDAnLFxuICBOVU1fT0ZfSEVBREVSX0xJTkVTID0gMyxcblxuICBOVU1fT0ZfQ09VTlRTX0RJR0lUUyA9IDMsXG4gIEFUT01fVFlQRV9DT0wgPSA0LFxuICBGSVJTVF9CT05ERURfQVRPTV9DT0wgPSAxLFxuXG4gIFJHUF9TSElGVCA9IDgsXG4gIFJHUF9MSU5FID0gJ00gIFJHUCcsXG4gIEFfTElORSA9ICdBICAnLFxuXG4gIEVORCA9ICdNICBFTkQnLFxufVxuXG5leHBvcnQgY29uc3QgTUFMRk9STUVEX01PTF9WMjAwMCA9IGBcbk1hbGZvcm1lZFxuXG4gIDAgIDAgIDAgIDAgIDAgIDAgIDAgIDAgIDAgIDA5OTkgVjIwMDBcbk0gIEVORGA7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9sZmlsZS12MmstY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtb2xmaWxlLXYyay1jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3REFBd0Q7QUFDeEQsTUFBTSxDQUFOLElBQVksU0FlWDtBQWZELFdBQVksU0FBUztJQUNuQiw2QkFBZ0IsQ0FBQTtJQUNoQix1RUFBdUIsQ0FBQTtJQUV2Qix5RUFBd0IsQ0FBQTtJQUN4QiwyREFBaUIsQ0FBQTtJQUNqQiwyRUFBeUIsQ0FBQTtJQUN6QiwyREFBaUIsQ0FBQTtJQUdqQixtREFBYSxDQUFBO0lBQ2IsZ0NBQW1CLENBQUE7SUFDbkIsMkJBQWMsQ0FBQTtJQUVkLDJCQUFjLENBQUE7QUFDaEIsQ0FBQyxFQWZXLFNBQVMsS0FBVCxTQUFTLFFBZXBCO0FBRUQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUc7Ozs7T0FJNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBDb25zdGFudHMgcmVsYXRlZCB0byB0aGUgc3RydWN0dXJlIG9mIE1vbGZpbGUgVjJLICovXG5leHBvcnQgZW51bSBWMktfQ09OU1Qge1xuICBIRUFERVIgPSAnVjIwMDAnLFxuICBOVU1fT0ZfSEVBREVSX0xJTkVTID0gMyxcblxuICBOVU1fT0ZfQ09VTlRTX0RJR0lUUyA9IDMsXG4gIEFUT01fVFlQRV9DT0wgPSA0LFxuICBGSVJTVF9CT05ERURfQVRPTV9DT0wgPSAxLFxuICBCT05EX1RZUEVfQ09MID0gMyxcblxuXG4gIFJHUF9TSElGVCA9IDgsXG4gIFJHUF9MSU5FID0gJ00gIFJHUCcsXG4gIEFfTElORSA9ICdBICAnLFxuXG4gIEVORCA9ICdNICBFTkQnLFxufVxuXG5leHBvcnQgY29uc3QgTUFMRk9STUVEX01PTF9WMjAwMCA9IGBcbk1hbGZvcm1lZFxuXG4gIDAgIDAgIDAgIDAgIDAgIDAgIDAgIDAgIDAgIDA5OTkgVjIwMDBcbk0gIEVORGA7XG4iXX0=

@@ -19,2 +19,3 @@ /** Constants related to the structure of Molfile V3K */

FIRST_BONDED_ATOM_COL = 5,
BOND_TYPE_COL = 4,
END = "M END"

@@ -21,0 +22,0 @@ }

@@ -6,2 +6,2 @@ export const EMPTY_MOL_V3000 = `

M END`;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9sZmlsZS12M2stY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtb2xmaWxlLXYzay1jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErQkEsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHOzs7O09BSXhCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQ29uc3RhbnRzIHJlbGF0ZWQgdG8gdGhlIHN0cnVjdHVyZSBvZiBNb2xmaWxlIFYzSyAqL1xuZXhwb3J0IGNvbnN0IGVudW0gVjNLX0NPTlNUIHtcbiAgSEVBREVSID0gJ1YzMDAwJyxcbiAgSEVBREVSX1NFQ09ORF9MSU5FID0gJyAgMCAgMCAgMCAgMCAgMCAgMCAgICAgICAgICAgIDk5OSBWMzAwMFxcbicsXG5cbiAgQkVHSU5fREFUQV9MSU5FID0gJ00gIFYzMCAnLFxuXG4gIEJFR0lOX0NPVU5UU19MSU5FID0gJ00gIFYzMCBDT1VOVFMgJyxcbiAgLyoqIEluZGV4IHNoaWZ0IGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgJ0NPVU5UUycgbGluZSB0byB0aGUgbnVtYmVyIG9mIGF0b21zICAqL1xuICBDT1VOVFNfU0hJRlQgPSAxNCxcblxuICBCRUdJTl9DVEFCX0JMT0NLID0gJ00gIFYzMCBCRUdJTiBDVEFCJyxcbiAgRU5EX0NUQUJfQkxPQ0sgPSAnTSAgVjMwIEVORCBDVEFCJyxcblxuICBCRUdJTl9BVE9NX0JMT0NLID0gJ00gIFYzMCBCRUdJTiBBVE9NJyxcbiAgLy8gLyoqIFNoaWZ0IGZyb20gdGhlIGJlZ2dpbm5pbmcgb2YgYm9uZC9hdG9tIGJsb2NrIGxpbmUgdG8gdGhlIGNvcnJlc3BvbmRpbmdcbiAgLy8gICogaW5kZXggKi9cbiAgLy8gSURYX1NISUZUID0gNyxcbiAgRU5EX0FUT01fQkxPQ0sgPSAnTSAgVjMwIEVORCBBVE9NJyxcblxuICBCRUdJTl9CT05EX0JMT0NLID0gJ00gIFYzMCBCRUdJTiBCT05EJyxcbiAgRU5EX0JPTkRfQkxPQ0sgPSAnTSAgVjMwIEVORCBCT05EJyxcbiAgQk9ORF9DT05GSUcgPSAnIENGRz0nLFxuXG4gIEFUT01fVFlQRV9DT0wgPSA0LFxuICBYX0NPTCA9IDUsXG4gIEZJUlNUX0JPTkRFRF9BVE9NX0NPTCA9IDUsXG5cbiAgRU5EID0gJ00gIEVORCcsXG59XG5cbmV4cG9ydCBjb25zdCBFTVBUWV9NT0xfVjMwMDAgPSBgXG5FbXB0eSBpbnB1dFxuXG4gIDAgIDAgIDAgIDAgIDAgIDAgICAgICAgICAgICA5OTkgVjMwMDBcbk0gIEVORGA7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9sZmlsZS12M2stY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtb2xmaWxlLXYzay1jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQ0EsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHOzs7O09BSXhCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQ29uc3RhbnRzIHJlbGF0ZWQgdG8gdGhlIHN0cnVjdHVyZSBvZiBNb2xmaWxlIFYzSyAqL1xuZXhwb3J0IGNvbnN0IGVudW0gVjNLX0NPTlNUIHtcbiAgSEVBREVSID0gJ1YzMDAwJyxcbiAgSEVBREVSX1NFQ09ORF9MSU5FID0gJyAgMCAgMCAgMCAgMCAgMCAgMCAgICAgICAgICAgIDk5OSBWMzAwMFxcbicsXG5cbiAgQkVHSU5fREFUQV9MSU5FID0gJ00gIFYzMCAnLFxuXG4gIEJFR0lOX0NPVU5UU19MSU5FID0gJ00gIFYzMCBDT1VOVFMgJyxcbiAgLyoqIEluZGV4IHNoaWZ0IGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgJ0NPVU5UUycgbGluZSB0byB0aGUgbnVtYmVyIG9mIGF0b21zICAqL1xuICBDT1VOVFNfU0hJRlQgPSAxNCxcblxuICBCRUdJTl9DVEFCX0JMT0NLID0gJ00gIFYzMCBCRUdJTiBDVEFCJyxcbiAgRU5EX0NUQUJfQkxPQ0sgPSAnTSAgVjMwIEVORCBDVEFCJyxcblxuICBCRUdJTl9BVE9NX0JMT0NLID0gJ00gIFYzMCBCRUdJTiBBVE9NJyxcbiAgLy8gLyoqIFNoaWZ0IGZyb20gdGhlIGJlZ2dpbm5pbmcgb2YgYm9uZC9hdG9tIGJsb2NrIGxpbmUgdG8gdGhlIGNvcnJlc3BvbmRpbmdcbiAgLy8gICogaW5kZXggKi9cbiAgLy8gSURYX1NISUZUID0gNyxcbiAgRU5EX0FUT01fQkxPQ0sgPSAnTSAgVjMwIEVORCBBVE9NJyxcblxuICBCRUdJTl9CT05EX0JMT0NLID0gJ00gIFYzMCBCRUdJTiBCT05EJyxcbiAgRU5EX0JPTkRfQkxPQ0sgPSAnTSAgVjMwIEVORCBCT05EJyxcbiAgQk9ORF9DT05GSUcgPSAnIENGRz0nLFxuXG4gIEFUT01fVFlQRV9DT0wgPSA0LFxuICBYX0NPTCA9IDUsXG4gIEZJUlNUX0JPTkRFRF9BVE9NX0NPTCA9IDUsXG4gIEJPTkRfVFlQRV9DT0wgPSA0LFxuXG4gIEVORCA9ICdNICBFTkQnLFxufVxuXG5leHBvcnQgY29uc3QgRU1QVFlfTU9MX1YzMDAwID0gYFxuRW1wdHkgaW5wdXRcblxuICAwICAwICAwICAwICAwICAwICAgICAgICAgICAgOTk5IFYzMDAwXG5NICBFTkRgO1xuIl19

@@ -1,34 +0,7 @@

import { ChemicalTableParser, ChemicalTableParserBase, AtomAndBondCounts } from './chemical-table-parser';
export declare class MolfileHandler extends ChemicalTableParserBase implements ChemicalTableParser {
constructor(molfile: string);
/** Init/reset the state of the handler for a new molfile */
init(molfile: string): void;
static createInstance(file: string): MolfileHandler;
protected parseAtomAndBondCounts: () => AtomAndBondCounts;
protected getCountsLineIdx: () => number;
protected getAtomBlockIdx: () => number;
protected shiftIdxToXColumn: (lineStartIdx: number) => number;
protected shiftIdxToAtomType: (idx: number) => number;
protected getBondBlockIdx: () => number;
protected shiftIdxToBondedAtomsPair: (lineStartIdx: number) => number;
protected parseAtomType(idx: number): string;
/** Determine whether the file is V2000/V3000, or throw */
private static determineMolfileVersion;
private shiftIdxToAtomTypeV2K;
private shiftIdxToAtomTypeV3K;
private getCountsLineV2KIdx;
private getCountsLineV3KIdx;
private getAtomBlockIdxV2K;
private getAtomBlockIdxV3K;
private shiftIdxToXColumnV2K;
private shiftIdxToXColumnV3K;
private shiftIdxToBondedAtomsPairV2K;
private shiftIdxToBondedAtomsPairV3K;
private getBondBlockIdxV2K;
private getBondBlockIdxV3K;
private static validateV3K;
private static validateV2K;
private parseAtomAndBondCountsV2K;
private parseAtomAndBondCountsV3K;
import { MolfileHandlerBase } from './molfile-handler-base';
/** Defines the proper handler based on the molfile type */
export declare class MolfileHandler {
private constructor();
static getInstance(molfile: string): MolfileHandlerBase;
}
//# sourceMappingURL=molfile-handler.d.ts.map

@@ -1,117 +0,15 @@

import { ChemicalTableParserBase } from './chemical-table-parser';
import { V2K_CONST } from '../formats/molfile-v2k-const';
export class MolfileHandler extends ChemicalTableParserBase {
constructor(molfile) {
super(molfile);
this.init(molfile);
}
/** Init/reset the state of the handler for a new molfile */
init(molfile) {
super.init(molfile);
const molfileVersion = MolfileHandler.determineMolfileVersion(this.file);
const isV2K = (molfileVersion === "V2000" /* MOLFILE_VERSION.V2000 */);
this.parseAtomAndBondCounts = isV2K ? this.parseAtomAndBondCountsV2K : this.parseAtomAndBondCountsV3K;
this.getAtomBlockIdx = isV2K ? this.getAtomBlockIdxV2K : this.getAtomBlockIdxV3K;
this.getCountsLineIdx = isV2K ? this.getCountsLineV2KIdx : this.getCountsLineV3KIdx;
this.shiftIdxToXColumn = isV2K ? this.shiftIdxToXColumnV2K : this.shiftIdxToXColumnV3K;
this.shiftIdxToAtomType = isV2K ? this.shiftIdxToAtomTypeV2K :
this.shiftIdxToAtomTypeV3K;
this.getBondBlockIdx = isV2K ? this.getBondBlockIdxV2K : this.getBondBlockIdxV3K;
this.shiftIdxToBondedAtomsPair = isV2K ? this.shiftIdxToBondedAtomsPairV2K : this.shiftIdxToBondedAtomsPairV3K;
}
static createInstance(file) {
if (!this.instance)
this.instance = new MolfileHandler(file);
return this.instance;
}
parseAtomType(idx) {
const begin = idx;
const end = this.file.indexOf(' ', begin);
return this.file.substring(begin, end);
}
/** Determine whether the file is V2000/V3000, or throw */
static determineMolfileVersion(molfile) {
if (MolfileHandler.validateV3K(molfile))
return "V3000" /* MOLFILE_VERSION.V3000 */;
else if (MolfileHandler.validateV2K(molfile))
return "V2000" /* MOLFILE_VERSION.V2000 */;
import { MolfileV2KHandler } from './molfile-v2k-handler';
import { MolfileV3KHandler } from './molfile-v3k-handler';
/** Defines the proper handler based on the molfile type */
export class MolfileHandler {
constructor() { }
static getInstance(molfile) {
if (MolfileV2KHandler.validate(molfile))
return new MolfileV2KHandler(molfile);
else if (MolfileV3KHandler.validate(molfile))
return new MolfileV3KHandler(molfile);
else
throw new Error('Malformed molfile');
}
shiftIdxToAtomTypeV2K(lineStartIdx) {
return this.shiftIdxToSpecifiedColumn(lineStartIdx, V2K_CONST.ATOM_TYPE_COL);
}
shiftIdxToAtomTypeV3K(lineStartIdx) {
return this.shiftIdxToSpecifiedColumn(lineStartIdx, 4 /* V3K_CONST.ATOM_TYPE_COL */);
}
getCountsLineV2KIdx() {
let idx = 0;
for (let i = 0; i < V2K_CONST.NUM_OF_HEADER_LINES; ++i)
idx = this.getNextLineIdx(idx);
return idx;
}
getCountsLineV3KIdx() {
return this.file.indexOf("M V30 COUNTS " /* V3K_CONST.BEGIN_COUNTS_LINE */);
}
getAtomBlockIdxV2K() {
let idx = this.getCountsLineIdx();
idx = this.getNextLineIdx(idx);
return idx;
}
getAtomBlockIdxV3K() {
let idx = this.file.indexOf("M V30 BEGIN ATOM" /* V3K_CONST.BEGIN_ATOM_BLOCK */);
idx = this.getNextLineIdx(idx);
return idx;
}
shiftIdxToXColumnV2K(lineStartIdx) {
return this.getNextColumnIdx(lineStartIdx);
}
shiftIdxToXColumnV3K(lineStartIdx) {
return this.shiftIdxToSpecifiedColumn(lineStartIdx, 5 /* V3K_CONST.X_COL */);
}
shiftIdxToBondedAtomsPairV2K(lineStartIdx) {
return this.shiftIdxToSpecifiedColumn(lineStartIdx, V2K_CONST.FIRST_BONDED_ATOM_COL);
}
shiftIdxToBondedAtomsPairV3K(lineStartIdx) {
return this.shiftIdxToSpecifiedColumn(lineStartIdx, 5 /* V3K_CONST.FIRST_BONDED_ATOM_COL */);
}
getBondBlockIdxV2K() {
let idx = this.getAtomBlockIdx();
for (let i = 0; i < this.atomCount; i++)
idx = this.getNextLineIdx(idx);
return idx;
}
getBondBlockIdxV3K() {
return this.getNextLineIdx(this.file.indexOf("M V30 BEGIN BOND" /* V3K_CONST.BEGIN_BOND_BLOCK */));
}
static validateV3K(molfile) {
return (molfile.indexOf("V3000" /* V3K_CONST.HEADER */) !== -1 &&
molfile.indexOf("M END" /* V3K_CONST.END */) !== -1);
}
static validateV2K(molfile) {
return (molfile.indexOf(V2K_CONST.HEADER) !== -1 &&
molfile.indexOf(V2K_CONST.END) !== -1);
}
parseAtomAndBondCountsV2K() {
let begin = this.getCountsLineIdx();
let end = begin + V2K_CONST.NUM_OF_COUNTS_DIGITS;
const atomCount = parseInt(this.file.substring(begin, end));
begin = end;
end += V2K_CONST.NUM_OF_COUNTS_DIGITS;
const bondCount = parseInt(this.file.substring(begin, end));
return { atomCount: atomCount, bondCount: bondCount };
}
;
parseAtomAndBondCountsV3K() {
// parse atom count
let begin = this.file.indexOf("M V30 COUNTS " /* V3K_CONST.BEGIN_COUNTS_LINE */) + 14 /* V3K_CONST.COUNTS_SHIFT */;
let end = this.file.indexOf(' ', begin + 1);
const numOfAtoms = parseInt(this.file.substring(begin, end));
// parse bond count
begin = end + 1;
end = this.file.indexOf(' ', begin + 1);
const numOfBonds = parseInt(this.file.substring(begin, end));
return { atomCount: numOfAtoms, bondCount: numOfBonds };
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9sZmlsZS1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibW9sZmlsZS1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0IsdUJBQXVCLEVBQW9CLE1BQU0seUJBQXlCLENBQUM7QUFDeEcsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBUXZELE1BQU0sT0FBTyxjQUFlLFNBQVEsdUJBQXVCO0lBQ3pELFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCw0REFBNEQ7SUFDckQsSUFBSSxDQUFDLE9BQWU7UUFDekIsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVwQixNQUFNLGNBQWMsR0FBRyxjQUFjLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sS0FBSyxHQUFHLENBQUMsY0FBYyx3Q0FBMEIsQ0FBQyxDQUFDO1FBRXpELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDO1FBRXRHLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztRQUVqRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztRQUVwRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FB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QUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFDLENBQUM7SUFDeEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGVtaWNhbFRhYmxlUGFyc2VyLCBDaGVtaWNhbFRhYmxlUGFyc2VyQmFzZSwgQXRvbUFuZEJvbmRDb3VudHN9IGZyb20gJy4vY2hlbWljYWwtdGFibGUtcGFyc2VyJztcbmltcG9ydCB7VjJLX0NPTlNUfSBmcm9tICcuLi9mb3JtYXRzL21vbGZpbGUtdjJrLWNvbnN0JztcbmltcG9ydCB7VjNLX0NPTlNUfSBmcm9tICcuLi9mb3JtYXRzL21vbGZpbGUtdjNrLWNvbnN0JztcblxuY29uc3QgZW51bSBNT0xGSUxFX1ZFUlNJT04ge1xuICBWMjAwMCA9ICdWMjAwMCcsXG4gIFYzMDAwID0gJ1YzMDAwJyxcbn1cblxuZXhwb3J0IGNsYXNzIE1vbGZpbGVIYW5kbGVyIGV4dGVuZHMgQ2hlbWljYWxUYWJsZVBhcnNlckJhc2UgaW1wbGVtZW50cyBDaGVtaWNhbFRhYmxlUGFyc2VyIHtcbiAgY29uc3RydWN0b3IobW9sZmlsZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobW9sZmlsZSk7XG4gICAgdGhpcy5pbml0KG1vbGZpbGUpO1xuICB9XG5cbiAgLyoqIEluaXQvcmVzZXQgdGhlIHN0YXRlIG9mIHRoZSBoYW5kbGVyIGZvciBhIG5ldyBtb2xmaWxlICovXG4gIHB1YmxpYyBpbml0KG1vbGZpbGU6IHN0cmluZykge1xuICAgIHN1cGVyLmluaXQobW9sZmlsZSk7XG5cbiAgICBjb25zdCBtb2xmaWxlVmVyc2lvbiA9IE1vbGZpbGVIYW5kbGVyLmRldGVybWluZU1vbGZpbGVWZXJzaW9uKHRoaXMuZmlsZSk7XG4gICAgY29uc3QgaXNWMksgPSAobW9sZmlsZVZlcnNpb24gPT09IE1PTEZJTEVfVkVSU0lPTi5WMjAwMCk7XG5cbiAgICB0aGlzLnBhcnNlQXRvbUFuZEJvbmRDb3VudHMgPSBpc1YySyA/IHRoaXMucGFyc2VBdG9tQW5kQm9uZENvdW50c1YySyA6IHRoaXMucGFyc2VBdG9tQW5kQm9uZENvdW50c1YzSztcblxuICAgIHRoaXMuZ2V0QXRvbUJsb2NrSWR4ID0gaXNWMksgPyB0aGlzLmdldEF0b21CbG9ja0lkeFYySyA6IHRoaXMuZ2V0QXRvbUJsb2NrSWR4VjNLO1xuXG4gICAgdGhpcy5nZXRDb3VudHNMaW5lSWR4ID0gaXNWMksgPyB0aGlzLmdldENvdW50c0xpbmVWMktJZHggOiB0aGlzLmdldENvdW50c0xpbmVWM0tJZHg7XG5cbiAgICB0aGlzLnNoaWZ0SWR4VG9YQ29sdW1uID0gaXNWMksgPyB0aGlzLnNoaWZ0SWR4VG9YQ29sdW1uVjJLIDogdGhpcy5zaGlmdElkeFRvWENvbHVtblYzSztcblxuICAgIHRoaXMuc2hpZnRJZHhUb0F0b21UeXBlID0gaXNWMksgPyB0aGlzLnNoaWZ0SWR4VG9BdG9tVHlwZVYySyA6XG4gICAgICB0aGlzLnNoaWZ0SWR4VG9BdG9tVHlwZVYzSztcblxuICAgIHRoaXMuZ2V0Qm9uZEJsb2NrSWR4ID0gaXNWMksgPyB0aGlzLmdldEJvbmRCbG9ja0lkeFYySyA6IHRoaXMuZ2V0Qm9uZEJsb2NrSWR4VjNLO1xuXG4gICAgdGhpcy5zaGlmdElkeFRvQm9uZGVkQXRvbXNQYWlyID0gaXNWMksgPyB0aGlzLnNoaWZ0SWR4VG9Cb25kZWRBdG9tc1BhaXJWMksgOiB0aGlzLnNoaWZ0SWR4VG9Cb25kZWRBdG9tc1BhaXJWM0s7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGZpbGU6IHN0cmluZyk6IE1vbGZpbGVIYW5kbGVyIHtcbiAgICBpZiAoIXRoaXMuaW5zdGFuY2UpXG4gICAgICB0aGlzLmluc3RhbmNlID0gbmV3IE1vbGZpbGVIYW5kbGVyKGZpbGUpO1xuICAgIHJldHVybiB0aGlzLmluc3RhbmNlIGFzIE1vbGZpbGVIYW5kbGVyO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlQXRvbUFuZEJvbmRDb3VudHMhOiAoKSA9PiBBdG9tQW5kQm9uZENvdW50cztcbiAgcHJvdGVjdGVkIGdldENvdW50c0xpbmVJZHghOiAoKSA9PiBudW1iZXI7XG4gIHByb3RlY3RlZCBnZXRBdG9tQmxvY2tJZHghOiAoKSA9PiBudW1iZXI7XG4gIHByb3RlY3RlZCBzaGlmdElkeFRvWENvbHVtbiE6IChsaW5lU3RhcnRJZHg6IG51bWJlcikgPT4gbnVtYmVyO1xuICBwcm90ZWN0ZWQgc2hpZnRJZHhUb0F0b21UeXBlITogKGlkeDogbnVtYmVyKSA9PiBudW1iZXI7XG4gIHByb3RlY3RlZCBnZXRCb25kQmxvY2tJZHghOiAoKSA9PiBudW1iZXI7XG4gIHByb3RlY3RlZCBzaGlmdElkeFRvQm9uZGVkQXRvbXNQYWlyITogKGxpbmVTdGFydElkeDogbnVtYmVyKSA9PiBudW1iZXI7XG5cbiAgcHJvdGVjdGVkIHBhcnNlQXRvbVR5cGUoaWR4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJlZ2luID0gaWR4O1xuICAgIGNvbnN0IGVuZCA9IHRoaXMuZmlsZS5pbmRleE9mKCcgJywgYmVnaW4pO1xuICAgIHJldHVybiB0aGlzLmZpbGUuc3Vic3RyaW5nKGJlZ2luLCBlbmQpO1xuICB9XG5cbiAgLyoqIERldGVybWluZSB3aGV0aGVyIHRoZSBmaWxlIGlzIFYyMDAwL1YzMDAwLCBvciB0aHJvdyAqL1xuICBwcml2YXRlIHN0YXRpYyBkZXRlcm1pbmVNb2xmaWxlVmVyc2lvbihtb2xmaWxlOiBzdHJpbmcpOiBNT0xGSUxFX1ZFUlNJT04ge1xuICAgIGlmIChNb2xmaWxlSGFuZGxlci52YWxpZGF0ZVYzSyhtb2xmaWxlKSlcbiAgICAgIHJldHVybiBNT0xGSUxFX1ZFUlNJT04uVjMwMDA7XG4gICAgZWxzZSBpZiAoTW9sZmlsZUhhbmRsZXIudmFsaWRhdGVWMksobW9sZmlsZSkpXG4gICAgICByZXR1cm4gTU9MRklMRV9WRVJTSU9OLlYyMDAwO1xuICAgIGVsc2VcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWFsZm9ybWVkIG1vbGZpbGUnKTtcbiAgfVxuXG4gIHByaXZhdGUgc2hpZnRJZHhUb0F0b21UeXBlVjJLKGxpbmVTdGFydElkeDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zaGlmdElkeFRvU3BlY2lmaWVkQ29sdW1uKGxpbmVTdGFydElkeCwgVjJLX0NPTlNULkFUT01fVFlQRV9DT0wpO1xuICB9XG5cbiAgcHJpdmF0ZSBzaGlmdElkeFRvQXRvbVR5cGVWM0sobGluZVN0YXJ0SWR4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnNoaWZ0SWR4VG9TcGVjaWZpZWRDb2x1bW4obGluZVN0YXJ0SWR4LCBWM0tfQ09OU1QuQVRPTV9UWVBFX0NPTCk7XG4gIH1cblxuICBwcml2YXRlIGdldENvdW50c0xpbmVWMktJZHgoKTogbnVtYmVyIHtcbiAgICBsZXQgaWR4ID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IFYyS19DT05TVC5OVU1fT0ZfSEVBREVSX0xJTkVTOyArK2kpXG4gICAgICBpZHggPSB0aGlzLmdldE5leHRMaW5lSWR4KGlkeCk7XG4gICAgcmV0dXJuIGlkeDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q291bnRzTGluZVYzS0lkeCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmZpbGUuaW5kZXhPZihWM0tfQ09OU1QuQkVHSU5fQ09VTlRTX0xJTkUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBdG9tQmxvY2tJZHhWMksoKTogbnVtYmVyIHtcbiAgICBsZXQgaWR4ID0gdGhpcy5nZXRDb3VudHNMaW5lSWR4KCk7XG4gICAgaWR4ID0gdGhpcy5nZXROZXh0TGluZUlkeChpZHgpO1xuICAgIHJldHVybiBpZHg7XG4gIH1cblxuICBwcml2YXRlIGdldEF0b21CbG9ja0lkeFYzSygpOiBudW1iZXIge1xuICAgIGxldCBpZHggPSB0aGlzLmZpbGUuaW5kZXhPZihWM0tfQ09OU1QuQkVHSU5fQVRPTV9CTE9DSyk7XG4gICAgaWR4ID0gdGhpcy5nZXROZXh0TGluZUlkeChpZHgpO1xuICAgIHJldHVybiBpZHg7XG4gIH1cblxuICBwcml2YXRlIHNoaWZ0SWR4VG9YQ29sdW1uVjJLKGxpbmVTdGFydElkeDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXROZXh0Q29sdW1uSWR4KGxpbmVTdGFydElkeCk7XG4gIH1cblxuICBwcml2YXRlIHNoaWZ0SWR4VG9YQ29sdW1uVjNLKGxpbmVTdGFydElkeDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zaGlmdElkeFRvU3BlY2lmaWVkQ29sdW1uKGxpbmVTdGFydElkeCwgVjNLX0NPTlNULlhfQ09MKTtcbiAgfVxuXG4gIHByaXZhdGUgc2hpZnRJZHhUb0JvbmRlZEF0b21zUGFpclYySyhsaW5lU3RhcnRJZHg6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc2hpZnRJZHhUb1NwZWNpZmllZENvbHVtbihsaW5lU3RhcnRJZHgsIFYyS19DT05TVC5GSVJTVF9CT05ERURfQVRPTV9DT0wpO1xuICB9XG5cbiAgcHJpdmF0ZSBzaGlmdElkeFRvQm9uZGVkQXRvbXNQYWlyVjNLKGxpbmVTdGFydElkeDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zaGlmdElkeFRvU3BlY2lmaWVkQ29sdW1uKGxpbmVTdGFydElkeCwgVjNLX0NPTlNULkZJUlNUX0JPTkRFRF9BVE9NX0NPTCk7XG4gIH1cbiAgcHJpdmF0ZSBnZXRCb25kQmxvY2tJZHhWMksoKTogbnVtYmVyIHtcbiAgICBsZXQgaWR4ID0gdGhpcy5nZXRBdG9tQmxvY2tJZHgoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYXRvbUNvdW50OyBpKyspXG4gICAgICBpZHggPSB0aGlzLmdldE5leHRMaW5lSWR4KGlkeCk7XG4gICAgcmV0dXJuIGlkeDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Qm9uZEJsb2NrSWR4VjNLKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TmV4dExpbmVJZHgodGhpcy5maWxlLmluZGV4T2YoVjNLX0NPTlNULkJFR0lOX0JPTkRfQkxPQ0spKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHZhbGlkYXRlVjNLKG1vbGZpbGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAobW9sZmlsZS5pbmRleE9mKFYzS19DT05TVC5IRUFERVIpICE9PSAtMSAmJlxuICAgIG1vbGZpbGUuaW5kZXhPZihWM0tfQ09OU1QuRU5EKSAhPT0gLTEpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgdmFsaWRhdGVWMksobW9sZmlsZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChtb2xmaWxlLmluZGV4T2YoVjJLX0NPTlNULkhFQURFUikgIT09IC0xICYmXG4gICAgbW9sZmlsZS5pbmRleE9mKFYyS19DT05TVC5FTkQpICE9PSAtMSk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlQXRvbUFuZEJvbmRDb3VudHNWMksoKTogQXRvbUFuZEJvbmRDb3VudHMge1xuICAgIGxldCBiZWdpbiA9IHRoaXMuZ2V0Q291bnRzTGluZUlkeCgpO1xuICAgIGxldCBlbmQgPSBiZWdpbiArIFYyS19DT05TVC5OVU1fT0ZfQ09VTlRTX0RJR0lUUztcbiAgICBjb25zdCBhdG9tQ291bnQgPSBwYXJzZUludCh0aGlzLmZpbGUuc3Vic3RyaW5nKGJlZ2luLCBlbmQpKTtcbiAgICBiZWdpbiA9IGVuZDtcbiAgICBlbmQgKz0gVjJLX0NPTlNULk5VTV9PRl9DT1VOVFNfRElHSVRTO1xuICAgIGNvbnN0IGJvbmRDb3VudCA9IHBhcnNlSW50KHRoaXMuZmlsZS5zdWJzdHJpbmcoYmVnaW4sIGVuZCkpO1xuICAgIHJldHVybiB7YXRvbUNvdW50OiBhdG9tQ291bnQsIGJvbmRDb3VudDogYm9uZENvdW50fTtcbiAgfTtcblxuICBwcml2YXRlIHBhcnNlQXRvbUFuZEJvbmRDb3VudHNWM0soKTogQXRvbUFuZEJvbmRDb3VudHMge1xuICAgIC8vIHBhcnNlIGF0b20gY291bnRcbiAgICBsZXQgYmVnaW4gPSB0aGlzLmZpbGUuaW5kZXhPZihWM0tfQ09OU1QuQkVHSU5fQ09VTlRTX0xJTkUpICsgVjNLX0NPTlNULkNPVU5UU19TSElGVDtcbiAgICBsZXQgZW5kID0gdGhpcy5maWxlLmluZGV4T2YoJyAnLCBiZWdpbiArIDEpO1xuICAgIGNvbnN0IG51bU9mQXRvbXMgPSBwYXJzZUludCh0aGlzLmZpbGUuc3Vic3RyaW5nKGJlZ2luLCBlbmQpKTtcblxuICAgIC8vIHBhcnNlIGJvbmQgY291bnRcbiAgICBiZWdpbiA9IGVuZCArIDE7XG4gICAgZW5kID0gdGhpcy5maWxlLmluZGV4T2YoJyAnLCBiZWdpbiArIDEpO1xuICAgIGNvbnN0IG51bU9mQm9uZHMgPSBwYXJzZUludCh0aGlzLmZpbGUuc3Vic3RyaW5nKGJlZ2luLCBlbmQpKTtcblxuICAgIHJldHVybiB7YXRvbUNvdW50OiBudW1PZkF0b21zLCBib25kQ291bnQ6IG51bU9mQm9uZHN9O1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9sZmlsZS1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibW9sZmlsZS1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXhELDREQUE0RDtBQUM1RCxNQUFNLE9BQU8sY0FBYztJQUN6QixnQkFBdUIsQ0FBQztJQUV4QixNQUFNLENBQUMsV0FBVyxDQUFDLE9BQWU7UUFDaEMsSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQ3JDLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNuQyxJQUFJLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDMUMsT0FBTyxJQUFJLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDOztZQUV0QyxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDekMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2xmaWxlSGFuZGxlckJhc2V9IGZyb20gJy4vbW9sZmlsZS1oYW5kbGVyLWJhc2UnO1xuaW1wb3J0IHtNb2xmaWxlVjJLSGFuZGxlcn0gZnJvbSAnLi9tb2xmaWxlLXYyay1oYW5kbGVyJztcbmltcG9ydCB7TW9sZmlsZVYzS0hhbmRsZXJ9IGZyb20gJy4vbW9sZmlsZS12M2staGFuZGxlcic7XG5cbi8qKiBEZWZpbmVzIHRoZSBwcm9wZXIgaGFuZGxlciBiYXNlZCBvbiB0aGUgbW9sZmlsZSB0eXBlICAqL1xuZXhwb3J0IGNsYXNzIE1vbGZpbGVIYW5kbGVyIHtcbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgc3RhdGljIGdldEluc3RhbmNlKG1vbGZpbGU6IHN0cmluZyk6IE1vbGZpbGVIYW5kbGVyQmFzZSB7XG4gICAgaWYgKE1vbGZpbGVWMktIYW5kbGVyLnZhbGlkYXRlKG1vbGZpbGUpKVxuICAgICAgcmV0dXJuIG5ldyBNb2xmaWxlVjJLSGFuZGxlcihtb2xmaWxlKTtcbiAgICBlbHNlIGlmIChNb2xmaWxlVjNLSGFuZGxlci52YWxpZGF0ZShtb2xmaWxlKSlcbiAgICAgIHJldHVybiBuZXcgTW9sZmlsZVYzS0hhbmRsZXIobW9sZmlsZSk7XG4gICAgZWxzZVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNYWxmb3JtZWQgbW9sZmlsZScpO1xuICB9XG59XG4iXX0=

@@ -13,2 +13,3 @@ export interface RDModule {

d_default_Height: number;
is_qmol: boolean;
get_smiles(): string;

@@ -15,0 +16,0 @@ get_cxsmiles(): string;

export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmRraXQtYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmRraXQtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFJETW9kdWxlIHtcbiAgZ2V0X21vbChtb2xTdHJpbmc6IHN0cmluZywgb3B0aW9ucz86IHN0cmluZyk6IFJETW9sO1xuICBnZXRfcW1vbChzbWFydHM6IHN0cmluZyk6IFJETW9sO1xuICBnZXRfaW5jaGlrZXlfZm9yX2luY2hpKGlucHV0OiBzdHJpbmcpOiBzdHJpbmc7XG4gIHZlcnNpb24oKTogc3RyaW5nO1xuICBwcmVmZXJfY29vcmRnZW4ocHJlZmVyOiBib29sZWFuKTogdm9pZDtcbiAgZ2V0X3J4bihyZWFjdGlvblN0cmluZzogc3RyaW5nLCBvcHRpb25zPzogc3RyaW5nKTogUmVhY3Rpb247XG4gIHVzZV9sZWdhY3lfc3RlcmVvX3BlcmNlcHRpb24odmFsdWU6IGJvb2xlYW4pOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJETW9sIHtcbiAgZF9kZWZhdWx0V2lkdGg6IG51bWJlcjtcbiAgZF9kZWZhdWx0X0hlaWdodDogbnVtYmVyO1xuXG4gIGdldF9zbWlsZXMoKTogc3RyaW5nO1xuICBnZXRfY3hzbWlsZXMoKTogc3RyaW5nO1xuICBnZXRfc21hcnRzKCk6IHN0cmluZztcbiAgZ2V0X2N4c21hcnRzKCk6IHN0cmluZztcbiAgZ2V0X21vbGJsb2NrKCk6IHN0cmluZztcbiAgZ2V0X3YzS21vbGJsb2NrKCk6IHN0cmluZztcbiAgZ2V0X2luY2hpKCk6IHN0cmluZztcbiAgZ2V0X2pzb24oKTogc3RyaW5nO1xuICBnZXRfc3ZnKHdpZHRoPzogbnVtYmVyLCBoZWlnaHQ/OiBudW1iZXIpOiBzdHJpbmc7XG4gIGdldF9zdmdfd2l0aF9oaWdobGlnaHRzKGRldGFpbHM6IHN0cmluZyk6IHN0cmluZztcbiAgZ2V0X3N1YnN0cnVjdF9tYXRjaChxbW9sOiBSRE1vbCkgOiBzdHJpbmc7XG4gIGdldF9zdWJzdHJ1Y3RfbWF0Y2hlcyhxbW9sOiBSRE1vbCk6IHN0cmluZztcbiAgZ2V0X2Rlc2NyaXB0b3JzKCk6IHN0cmluZztcblxuICBnZXRfbW9yZ2FuX2ZwKGRldGFpbHM/OiBzdHJpbmcpOiBzdHJpbmc7XG4gIGdldF9tb3JnYW5fZnBfYXNfdWludDhhcnJheShkZXRhaWxzPzogc3RyaW5nKTogVWludDhBcnJheTtcbiAgZ2V0X3BhdHRlcm5fZnAoZGV0YWlscz86IHN0cmluZyk6IHN0cmluZztcbiAgZ2V0X3BhdHRlcm5fZnBfYXNfdWludDhhcnJheShkZXRhaWxzPzogc3RyaW5nKTogVWludDhBcnJheTtcblxuICBjb25kZW5zZV9hYmJyZXZpYXRpb25zKG1heENvdmVyYWdlPzogbnVtYmVyLCB1c2VMaW5rZXJzPzogYm9vbGVhbik6IHN0cmluZztcbiAgY29uZGVuc2VfYWJicmV2aWF0aW9uc19mcm9tX2RlZnMoZGVmaW5pdGlvbnM6IHN0cmluZywgbWF4Q292ZXJhZ2U6IG51bWJlciwgYXJlTGlua2VyczogYm9vbGVhbik6IHN0cmluZztcbiAgZ2VuZXJhdGVfYWxpZ25lZF9jb29yZHModGVtcGxhdGU6IFJETW9sLCBkZXRhaWxzPzogc3RyaW5nKTogc3RyaW5nO1xuXG4gIGRyYXdfdG9fY2FudmFzX3dpdGhfb2Zmc2V0KFxuICAgICAgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCwgb2Zmc2V0WDogbnVtYmVyLCBvZmZzZXRZOiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogc3RyaW5nO1xuICBkcmF3X3RvX2NhbnZhcyhjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50LCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcik6IHN0cmluZztcbiAgZHJhd190b19jYW52YXNfd2l0aF9oaWdobGlnaHRzKGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQsIGRldGFpbHM6IHN0cmluZyk6IHN0cmluZztcbiAgZ2V0X21vcmdhbl9mcF9hc191aW50OGFycmF5KHJhZGl1czogbnVtYmVyLCBmcGxlbjogbnVtYmVyKTogVWludDhBcnJheTtcblxuICBpc192YWxpZCgpOiBib29sZWFuO1xuICBoYXNfY29vcmRzKCk6IGJvb2xlYW47XG5cbiAgZ2V0X3N0ZXJlb190YWdzKCk6IHN0cmluZztcbiAgZ2V0X2Fyb21hdGljX2Zvcm0oKTogc3RyaW5nO1xuICBnZXRfa2VrdWxlX2Zvcm0oKTogc3RyaW5nO1xuICBnZXRfbmV3X2Nvb3Jkcyh1c2VDb29yZEdlbj86IGJvb2xlYW4pOiBzdHJpbmc7XG4gIHNldF9uZXdfY29vcmRzKHVzZUNvb3JkR2VuPzogYm9vbGVhbik6IGJvb2xlYW47XG4gIHJlbW92ZV9ocygpOiBzdHJpbmc7XG4gIGFkZF9ocygpOiBzdHJpbmc7XG5cbiAgbm9ybWFsaXplX2RlcGljdGlvbihjYW5vbmljYWxpemU6IG51bWJlciwgc2NhbGVGYWN0b3I/OiBudW1iZXIpOiB2b2lkO1xuICBzdHJhaWdodGVuX2RlcGljdGlvbihtaW5pbWl6ZVJvdGF0aW9uPzogYm9vbGVhbik6IHZvaWQ7XG5cbiAgLyoqIFJlY2xhaW1zIHRoZSBtZW1vcnkgdXNlZCBmb3IgdGhhdCBtb2xlY3VsZS4gKi9cbiAgZGVsZXRlKCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3Vic3RydWN0TGlicmFyeSB7XG4gIGRfbnVtX2JpdHM6IG51bWJlcjtcbiAgZF9kZWZhdWx0TnVtQml0czogbnVtYmVyO1xuICBkX2RlZmF1bHRVc2VDaGlyYWxpdHk6IGJvb2xlYW47XG4gIGRfZGVmYXVsdE51bVRocmVhZHM6IG51bWJlcjtcbiAgZF9kZWZhdWx0TWF4UmVzdWx0czogbnVtYmVyO1xuXG4gIGFkZF9tb2wobW9sOiBSRE1vbCk6IG51bWJlcjtcbiAgYWRkX3NtaWxlcyhzbWlsZXM6IHN0cmluZyk6IG51bWJlcjtcbiAgYWRkX3RydXN0ZWRfc21pbGVzKHNtaWxlczogc3RyaW5nKTogbnVtYmVyO1xuICBnZXRfbW9sKGk6IG51bWJlcik6IFJETW9sO1xuICBnZXRfbWF0Y2hlcyhxbW9sOiBSRE1vbCwgdXNlQ2hpcmFsaXR5PzogYm9vbGVhbiwgbnVtVGhyZWFkcz86IG51bWJlciwgbWF4UmVzdWx0cz86IG51bWJlcik6IHN0cmluZztcbiAgY291bnRfbWF0Y2hlcyhxbW9sOiBSRE1vbCwgdXNlQ2hpcmFsaXR5PzogYm9vbGVhbiwgbnVtVGhyZWFkcz86IG51bWJlcik6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWFjdGlvbiB7XG4gIGRfZGVmYXVsdFdpZHRoOiBudW1iZXI7XG4gIGRfZGVmYXVsdEhlaWdodDogbnVtYmVyO1xuXG4gIGlzX3ZhbGlkKCk6IGJvb2xlYW47XG4gIGdldF9zdmcod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpOiBzdHJpbmc7XG4gIGdldF9zdmcoKTogc3RyaW5nO1xuICBnZXRfc3ZnX3dpdGhfaGlnaGxpZ2h0cyhvcHRpb25zPzogc3RyaW5nKTogc3RyaW5nO1xuICBkcmF3X3RvX2NhbnZhc193aXRoX29mZnNldCgpOiBzdHJpbmc7XG4gIGRyYXdfdG9fY2FudmFzKGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogc3RyaW5nO1xuICBkcmF3X3RvX2NhbnZhc193aXRoX2hpZ2hsaWdodHMoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCwgZGV0YWlsczogc3RyaW5nKTogc3RyaW5nO1xuICBcbiAgIC8qKiBSZWNsYWltcyB0aGUgbWVtb3J5IHVzZWQgZm9yIHRoYXQgbW9sZWN1bGUuICovXG4gICBkZWxldGUoKTogdm9pZDtcbn1cblxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmRraXQtYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmRraXQtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFJETW9kdWxlIHtcbiAgZ2V0X21vbChtb2xTdHJpbmc6IHN0cmluZywgb3B0aW9ucz86IHN0cmluZyk6IFJETW9sO1xuICBnZXRfcW1vbChzbWFydHM6IHN0cmluZyk6IFJETW9sO1xuICBnZXRfaW5jaGlrZXlfZm9yX2luY2hpKGlucHV0OiBzdHJpbmcpOiBzdHJpbmc7XG4gIHZlcnNpb24oKTogc3RyaW5nO1xuICBwcmVmZXJfY29vcmRnZW4ocHJlZmVyOiBib29sZWFuKTogdm9pZDtcbiAgZ2V0X3J4bihyZWFjdGlvblN0cmluZzogc3RyaW5nLCBvcHRpb25zPzogc3RyaW5nKTogUmVhY3Rpb247XG4gIHVzZV9sZWdhY3lfc3RlcmVvX3BlcmNlcHRpb24odmFsdWU6IGJvb2xlYW4pOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJETW9sIHtcbiAgZF9kZWZhdWx0V2lkdGg6IG51bWJlcjtcbiAgZF9kZWZhdWx0X0hlaWdodDogbnVtYmVyO1xuICBpc19xbW9sOiBib29sZWFuO1xuXG4gIGdldF9zbWlsZXMoKTogc3RyaW5nO1xuICBnZXRfY3hzbWlsZXMoKTogc3RyaW5nO1xuICBnZXRfc21hcnRzKCk6IHN0cmluZztcbiAgZ2V0X2N4c21hcnRzKCk6IHN0cmluZztcbiAgZ2V0X21vbGJsb2NrKCk6IHN0cmluZztcbiAgZ2V0X3YzS21vbGJsb2NrKCk6IHN0cmluZztcbiAgZ2V0X2luY2hpKCk6IHN0cmluZztcbiAgZ2V0X2pzb24oKTogc3RyaW5nO1xuICBnZXRfc3ZnKHdpZHRoPzogbnVtYmVyLCBoZWlnaHQ/OiBudW1iZXIpOiBzdHJpbmc7XG4gIGdldF9zdmdfd2l0aF9oaWdobGlnaHRzKGRldGFpbHM6IHN0cmluZyk6IHN0cmluZztcbiAgZ2V0X3N1YnN0cnVjdF9tYXRjaChxbW9sOiBSRE1vbCkgOiBzdHJpbmc7XG4gIGdldF9zdWJzdHJ1Y3RfbWF0Y2hlcyhxbW9sOiBSRE1vbCk6IHN0cmluZztcbiAgZ2V0X2Rlc2NyaXB0b3JzKCk6IHN0cmluZztcblxuICBnZXRfbW9yZ2FuX2ZwKGRldGFpbHM/OiBzdHJpbmcpOiBzdHJpbmc7XG4gIGdldF9tb3JnYW5fZnBfYXNfdWludDhhcnJheShkZXRhaWxzPzogc3RyaW5nKTogVWludDhBcnJheTtcbiAgZ2V0X3BhdHRlcm5fZnAoZGV0YWlscz86IHN0cmluZyk6IHN0cmluZztcbiAgZ2V0X3BhdHRlcm5fZnBfYXNfdWludDhhcnJheShkZXRhaWxzPzogc3RyaW5nKTogVWludDhBcnJheTtcblxuICBjb25kZW5zZV9hYmJyZXZpYXRpb25zKG1heENvdmVyYWdlPzogbnVtYmVyLCB1c2VMaW5rZXJzPzogYm9vbGVhbik6IHN0cmluZztcbiAgY29uZGVuc2VfYWJicmV2aWF0aW9uc19mcm9tX2RlZnMoZGVmaW5pdGlvbnM6IHN0cmluZywgbWF4Q292ZXJhZ2U6IG51bWJlciwgYXJlTGlua2VyczogYm9vbGVhbik6IHN0cmluZztcbiAgZ2VuZXJhdGVfYWxpZ25lZF9jb29yZHModGVtcGxhdGU6IFJETW9sLCBkZXRhaWxzPzogc3RyaW5nKTogc3RyaW5nO1xuXG4gIGRyYXdfdG9fY2FudmFzX3dpdGhfb2Zmc2V0KFxuICAgICAgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCwgb2Zmc2V0WDogbnVtYmVyLCBvZmZzZXRZOiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogc3RyaW5nO1xuICBkcmF3X3RvX2NhbnZhcyhjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50LCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcik6IHN0cmluZztcbiAgZHJhd190b19jYW52YXNfd2l0aF9oaWdobGlnaHRzKGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQsIGRldGFpbHM6IHN0cmluZyk6IHN0cmluZztcbiAgZ2V0X21vcmdhbl9mcF9hc191aW50OGFycmF5KHJhZGl1czogbnVtYmVyLCBmcGxlbjogbnVtYmVyKTogVWludDhBcnJheTtcblxuICBpc192YWxpZCgpOiBib29sZWFuO1xuICBoYXNfY29vcmRzKCk6IGJvb2xlYW47XG5cbiAgZ2V0X3N0ZXJlb190YWdzKCk6IHN0cmluZztcbiAgZ2V0X2Fyb21hdGljX2Zvcm0oKTogc3RyaW5nO1xuICBnZXRfa2VrdWxlX2Zvcm0oKTogc3RyaW5nO1xuICBnZXRfbmV3X2Nvb3Jkcyh1c2VDb29yZEdlbj86IGJvb2xlYW4pOiBzdHJpbmc7XG4gIHNldF9uZXdfY29vcmRzKHVzZUNvb3JkR2VuPzogYm9vbGVhbik6IGJvb2xlYW47XG4gIHJlbW92ZV9ocygpOiBzdHJpbmc7XG4gIGFkZF9ocygpOiBzdHJpbmc7XG5cbiAgbm9ybWFsaXplX2RlcGljdGlvbihjYW5vbmljYWxpemU6IG51bWJlciwgc2NhbGVGYWN0b3I/OiBudW1iZXIpOiB2b2lkO1xuICBzdHJhaWdodGVuX2RlcGljdGlvbihtaW5pbWl6ZVJvdGF0aW9uPzogYm9vbGVhbik6IHZvaWQ7XG5cbiAgLyoqIFJlY2xhaW1zIHRoZSBtZW1vcnkgdXNlZCBmb3IgdGhhdCBtb2xlY3VsZS4gKi9cbiAgZGVsZXRlKCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3Vic3RydWN0TGlicmFyeSB7XG4gIGRfbnVtX2JpdHM6IG51bWJlcjtcbiAgZF9kZWZhdWx0TnVtQml0czogbnVtYmVyO1xuICBkX2RlZmF1bHRVc2VDaGlyYWxpdHk6IGJvb2xlYW47XG4gIGRfZGVmYXVsdE51bVRocmVhZHM6IG51bWJlcjtcbiAgZF9kZWZhdWx0TWF4UmVzdWx0czogbnVtYmVyO1xuXG4gIGFkZF9tb2wobW9sOiBSRE1vbCk6IG51bWJlcjtcbiAgYWRkX3NtaWxlcyhzbWlsZXM6IHN0cmluZyk6IG51bWJlcjtcbiAgYWRkX3RydXN0ZWRfc21pbGVzKHNtaWxlczogc3RyaW5nKTogbnVtYmVyO1xuICBnZXRfbW9sKGk6IG51bWJlcik6IFJETW9sO1xuICBnZXRfbWF0Y2hlcyhxbW9sOiBSRE1vbCwgdXNlQ2hpcmFsaXR5PzogYm9vbGVhbiwgbnVtVGhyZWFkcz86IG51bWJlciwgbWF4UmVzdWx0cz86IG51bWJlcik6IHN0cmluZztcbiAgY291bnRfbWF0Y2hlcyhxbW9sOiBSRE1vbCwgdXNlQ2hpcmFsaXR5PzogYm9vbGVhbiwgbnVtVGhyZWFkcz86IG51bWJlcik6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWFjdGlvbiB7XG4gIGRfZGVmYXVsdFdpZHRoOiBudW1iZXI7XG4gIGRfZGVmYXVsdEhlaWdodDogbnVtYmVyO1xuXG4gIGlzX3ZhbGlkKCk6IGJvb2xlYW47XG4gIGdldF9zdmcod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpOiBzdHJpbmc7XG4gIGdldF9zdmcoKTogc3RyaW5nO1xuICBnZXRfc3ZnX3dpdGhfaGlnaGxpZ2h0cyhvcHRpb25zPzogc3RyaW5nKTogc3RyaW5nO1xuICBkcmF3X3RvX2NhbnZhc193aXRoX29mZnNldCgpOiBzdHJpbmc7XG4gIGRyYXdfdG9fY2FudmFzKGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogc3RyaW5nO1xuICBkcmF3X3RvX2NhbnZhc193aXRoX2hpZ2hsaWdodHMoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCwgZGV0YWlsczogc3RyaW5nKTogc3RyaW5nO1xuXG4gICAvKiogUmVjbGFpbXMgdGhlIG1lbW9yeSB1c2VkIGZvciB0aGF0IG1vbGVjdWxlLiAqL1xuICAgZGVsZXRlKCk6IHZvaWQ7XG59XG4iXX0=

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc