@datagrok-libraries/chem-meta
Advanced tools
Comparing version 1.0.9 to 1.0.10
{ | ||
"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
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
84518
39
701
1