From dbf67afdce8595b3fb6d0e4267a313a0c3c24d1a Mon Sep 17 00:00:00 2001
From: David Sehnal <david.sehnal@gmail.com>
Date: Thu, 2 Nov 2017 15:54:33 +0100
Subject: [PATCH] Fixed module resolution (no more ../../../../../)

---
 package.json                                           |  4 ++--
 src/mol-data/structure/_spec/atom-set.spec.ts          |  2 +-
 src/mol-data/structure/model/builders/mmcif.ts         |  8 ++++----
 src/mol-data/structure/model/constants.ts              |  2 +-
 src/mol-data/structure/model/data-format.ts            |  2 +-
 src/mol-data/structure/model/model.ts                  |  2 +-
 .../structure/model/properties/conformation.ts         |  4 ++--
 src/mol-data/structure/model/properties/hierarchy.ts   |  8 ++++----
 src/mol-data/structure/model/properties/transforms.ts  |  2 +-
 src/mol-data/structure/model/utils/hierarchy-keys.ts   |  4 ++--
 src/mol-data/structure/query/generators.ts             |  2 +-
 src/mol-data/structure/query/selection.ts              |  4 ++--
 src/mol-data/structure/structure/atom.ts               |  2 +-
 src/mol-data/structure/structure/atom/set.ts           |  2 +-
 src/mol-data/structure/structure/atom/set/builder.ts   |  4 ++--
 src/mol-data/structure/structure/atom/set/impl.ts      |  6 +++---
 src/mol-data/structure/structure/operator.ts           |  2 +-
 src/mol-data/structure/structure/structure.ts          |  2 +-
 src/mol-io/reader/_spec/column.spec.ts                 |  2 +-
 src/mol-io/reader/cif/binary/field.ts                  |  2 +-
 src/mol-io/reader/cif/binary/parser.ts                 |  2 +-
 src/mol-io/reader/cif/data-model.ts                    |  2 +-
 src/mol-io/reader/cif/schema.ts                        |  4 ++--
 src/mol-io/reader/cif/text/field.ts                    |  2 +-
 src/mol-io/reader/cif/text/parser.ts                   |  2 +-
 src/mol-io/reader/common/text/column/fixed.ts          |  2 +-
 src/mol-io/reader/common/text/column/token.ts          |  2 +-
 src/mol-io/reader/common/text/tokenizer.ts             |  2 +-
 src/mol-io/reader/gro/parser.ts                        |  4 ++--
 src/mol-io/reader/gro/schema.d.ts                      |  2 +-
 src/mol-io/reader/mol2/schema.d.ts                     |  2 +-
 src/perf-tests/chunked-array-vs-native.ts              |  2 +-
 src/perf-tests/column.ts                               |  2 +-
 src/perf-tests/iterators.ts                            |  2 +-
 src/perf-tests/sets.ts                                 |  4 ++--
 src/perf-tests/sort.ts                                 |  2 +-
 src/perf-tests/structure.ts                            | 10 +++++-----
 src/script.ts                                          | 10 +++++-----
 tsconfig.json                                          |  9 +++++++--
 39 files changed, 69 insertions(+), 64 deletions(-)

diff --git a/package.json b/package.json
index 44477c283..02761decc 100644
--- a/package.json
+++ b/package.json
@@ -12,8 +12,8 @@
     "bundle": "./node_modules/.bin/rollup -c",
     "test": "./node_modules/.bin/jest",
     "dist": "./node_modules/.bin/uglifyjs build/js/molio.dev.js -cm > dist/molio.js && cp build/js/molio.esm.js dist/molio.esm.js",
-    "script": "./node_modules/.bin/rollup build/js/src/script.js -e fs -f cjs -o build/js/script.js",
-    "runscript": "node build/js/src/script.js",
+    "script": "./node_modules/.bin/rollup build/node_modules/script.js -e fs -f cjs -o build/js/script.js",
+    "runscript": "node build/node_modules/script.js",
     "download-dics": "./node_modules/.bin/download -o build/dics http://mmcif.wwpdb.org/dictionaries/ascii/mmcif_pdbx_v50.dic && ./node_modules/.bin/download -o build/dics http://mmcif.wwpdb.org/dictionaries/ascii/mmcif_ddl.dic"
   },
   "jest": {
diff --git a/src/mol-data/structure/_spec/atom-set.spec.ts b/src/mol-data/structure/_spec/atom-set.spec.ts
index 2ca79d8f9..ace171796 100644
--- a/src/mol-data/structure/_spec/atom-set.spec.ts
+++ b/src/mol-data/structure/_spec/atom-set.spec.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { OrderedSet } from '../../../mol-base/collections/integer'
+import { OrderedSet } from 'mol-base/collections/integer'
 import AtomSet from '../structure/atom/set'
 import Atom from '../structure/atom'
 
diff --git a/src/mol-data/structure/model/builders/mmcif.ts b/src/mol-data/structure/model/builders/mmcif.ts
index 3fa96b038..26591bf4b 100644
--- a/src/mol-data/structure/model/builders/mmcif.ts
+++ b/src/mol-data/structure/model/builders/mmcif.ts
@@ -6,10 +6,10 @@
 
 import { mmCIF } from '../data-format'
 import Model from '../model'
-import Column from '../../../../mol-base/collections/column'
-import Table from '../../../../mol-base/collections/table'
-import { Interval, Segmentation } from '../../../../mol-base/collections/integer'
-import { newUUID } from '../../../../mol-base/utils/uuid'
+import Column from 'mol-base/collections/column'
+import Table from 'mol-base/collections/table'
+import { Interval, Segmentation } from 'mol-base/collections/integer'
+import { newUUID } from 'mol-base/utils/uuid'
 import * as Hierarchy from '../properties/hierarchy'
 import Conformation from '../properties/conformation'
 import findHierarchyKeys from '../utils/hierarchy-keys'
diff --git a/src/mol-data/structure/model/constants.ts b/src/mol-data/structure/model/constants.ts
index 48c863c7f..03072eb6f 100644
--- a/src/mol-data/structure/model/constants.ts
+++ b/src/mol-data/structure/model/constants.ts
@@ -5,7 +5,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import BitFlags from '../../../mol-base/utils/bit-flags'
+import BitFlags from 'mol-base/utils/bit-flags'
 
 export const enum EntityType {
     Unknown = 'unknown',
diff --git a/src/mol-data/structure/model/data-format.ts b/src/mol-data/structure/model/data-format.ts
index c5c4aa2e7..2ffd22ca3 100644
--- a/src/mol-data/structure/model/data-format.ts
+++ b/src/mol-data/structure/model/data-format.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Frame as mmCIF_Frame } from '../../../mol-io/reader/cif/schema/mmcif'
+import { Frame as mmCIF_Frame } from 'mol-io/reader/cif/schema/mmcif'
 
 export interface mmCIF { kind: 'mmCIF', data: mmCIF_Frame }
 
diff --git a/src/mol-data/structure/model/model.ts b/src/mol-data/structure/model/model.ts
index b2dbf68fc..4eef29c37 100644
--- a/src/mol-data/structure/model/model.ts
+++ b/src/mol-data/structure/model/model.ts
@@ -7,7 +7,7 @@
 import DataFormat from './data-format'
 import HierarchyProperties from './properties/hierarchy'
 import ConformationProperties from './properties/conformation'
-import UUID from '../../../mol-base/utils/uuid'
+import UUID from 'mol-base/utils/uuid'
 
 import buildMmCIF from './builders/mmcif'
 
diff --git a/src/mol-data/structure/model/properties/conformation.ts b/src/mol-data/structure/model/properties/conformation.ts
index a80739667..9014a0a93 100644
--- a/src/mol-data/structure/model/properties/conformation.ts
+++ b/src/mol-data/structure/model/properties/conformation.ts
@@ -4,8 +4,8 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import Column from '../../../../mol-base/collections/column'
-import UUID from '../../../../mol-base/utils/uuid'
+import Column from 'mol-base/collections/column'
+import UUID from 'mol-base/utils/uuid'
 
 interface Conformation {
     id: UUID,
diff --git a/src/mol-data/structure/model/properties/hierarchy.ts b/src/mol-data/structure/model/properties/hierarchy.ts
index dceb055c4..fec5de265 100644
--- a/src/mol-data/structure/model/properties/hierarchy.ts
+++ b/src/mol-data/structure/model/properties/hierarchy.ts
@@ -4,10 +4,10 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import Column from '../../../../mol-base/collections/column'
-import Table from '../../../../mol-base/collections/table'
-import { Segmentation } from '../../../../mol-base/collections/integer'
-import { Schema as mmCIF } from '../../../../mol-io/reader/cif/schema/mmcif'
+import Column from 'mol-base/collections/column'
+import Table from 'mol-base/collections/table'
+import { Segmentation } from 'mol-base/collections/integer'
+import { Schema as mmCIF } from 'mol-io/reader/cif/schema/mmcif'
 
 const _esCache = Object.create(null);
 export interface ElementSymbol extends String { '@type': 'element-symbol' }
diff --git a/src/mol-data/structure/model/properties/transforms.ts b/src/mol-data/structure/model/properties/transforms.ts
index f43641255..9c6fdc465 100644
--- a/src/mol-data/structure/model/properties/transforms.ts
+++ b/src/mol-data/structure/model/properties/transforms.ts
@@ -6,4 +6,4 @@
 
 // TODO: symmetry and assebmlies descriptors
 
-//import Column from '../../../mol-base/collections/column'
\ No newline at end of file
+//import Column from 'mol-base/collections/column'
\ No newline at end of file
diff --git a/src/mol-data/structure/model/utils/hierarchy-keys.ts b/src/mol-data/structure/model/utils/hierarchy-keys.ts
index b99cec069..fe4391e42 100644
--- a/src/mol-data/structure/model/utils/hierarchy-keys.ts
+++ b/src/mol-data/structure/model/utils/hierarchy-keys.ts
@@ -4,9 +4,9 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import Column from '../../../../mol-base/collections/column'
+import Column from 'mol-base/collections/column'
 import { Data, Segments, Keys } from '../properties/hierarchy'
-import { Interval, Segmentation } from '../../../../mol-base/collections/integer'
+import { Interval, Segmentation } from 'mol-base/collections/integer'
 
 function getResidueId(comp_id: string, seq_id: number, ins_code: string) {
     return `${comp_id} ${seq_id} ${ins_code}`;
diff --git a/src/mol-data/structure/query/generators.ts b/src/mol-data/structure/query/generators.ts
index a647260f6..0ea357af4 100644
--- a/src/mol-data/structure/query/generators.ts
+++ b/src/mol-data/structure/query/generators.ts
@@ -8,7 +8,7 @@ import Query from './query'
 //import Selection from './selection'
 import * as P from './properties'
 import { AtomSet, Atom } from '../structure'
-import { OrderedSet } from '../../../mol-base/collections/integer'
+import { OrderedSet } from 'mol-base/collections/integer'
 
 export interface AtomGroupsSpec {
     entityTest: Atom.Predicate,
diff --git a/src/mol-data/structure/query/selection.ts b/src/mol-data/structure/query/selection.ts
index 8e46f0f36..126657247 100644
--- a/src/mol-data/structure/query/selection.ts
+++ b/src/mol-data/structure/query/selection.ts
@@ -4,8 +4,8 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import Iterator from '../../../mol-base/collections/iterator'
-import HashSet from '../../../mol-base/collections/hash-set'
+import Iterator from 'mol-base/collections/iterator'
+import HashSet from 'mol-base/collections/hash-set'
 import { Structure, Atom, AtomSet } from '../structure'
 
 type Selection =
diff --git a/src/mol-data/structure/structure/atom.ts b/src/mol-data/structure/structure/atom.ts
index ddce507fd..f40e08de9 100644
--- a/src/mol-data/structure/structure/atom.ts
+++ b/src/mol-data/structure/structure/atom.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Tuple } from '../../../mol-base/collections/integer'
+import { Tuple } from 'mol-base/collections/integer'
 import Unit from './unit'
 import Structure from './structure'
 
diff --git a/src/mol-data/structure/structure/atom/set.ts b/src/mol-data/structure/structure/atom/set.ts
index 25a77f423..ecf186439 100644
--- a/src/mol-data/structure/structure/atom/set.ts
+++ b/src/mol-data/structure/structure/atom/set.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { OrderedSet, SortedArray, Iterator } from '../../../../mol-base/collections/integer'
+import { OrderedSet, SortedArray, Iterator } from 'mol-base/collections/integer'
 import Atom from '../atom'
 import * as Impl from './set/impl'
 import createBuilder from './set/builder'
diff --git a/src/mol-data/structure/structure/atom/set/builder.ts b/src/mol-data/structure/structure/atom/set/builder.ts
index 1e6c4beda..7c27a2fe8 100644
--- a/src/mol-data/structure/structure/atom/set/builder.ts
+++ b/src/mol-data/structure/structure/atom/set/builder.ts
@@ -5,8 +5,8 @@
  */
 
 import AtomSet from '../set'
-import { OrderedSet } from '../../../../../mol-base/collections/integer'
-import { sortArray } from '../../../../../mol-base/collections/sort'
+import { OrderedSet } from 'mol-base/collections/integer'
+import { sortArray } from 'mol-base/collections/sort'
 
 class Builder {
     private keys: number[] = [];
diff --git a/src/mol-data/structure/structure/atom/set/impl.ts b/src/mol-data/structure/structure/atom/set/impl.ts
index 7f2f2d15f..ebd2fcf4a 100644
--- a/src/mol-data/structure/structure/atom/set/impl.ts
+++ b/src/mol-data/structure/structure/atom/set/impl.ts
@@ -4,9 +4,9 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { SortedArray, Interval, Iterator, OrderedSet } from '../../../../../mol-base/collections/integer'
-import { sortArray } from '../../../../../mol-base/collections/sort'
-import { hash1 } from '../../../../../mol-base/collections/hash-functions'
+import { SortedArray, Interval, Iterator, OrderedSet } from 'mol-base/collections/integer'
+import { sortArray } from 'mol-base/collections/sort'
+import { hash1 } from 'mol-base/collections/hash-functions'
 import Atom from '../../atom'
 
 /** Long and painful implementation starts here */
diff --git a/src/mol-data/structure/structure/operator.ts b/src/mol-data/structure/structure/operator.ts
index 363331f27..b2e5e7811 100644
--- a/src/mol-data/structure/structure/operator.ts
+++ b/src/mol-data/structure/structure/operator.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Mat4 } from '../../../mol-base/math/linear-algebra'
+import { Mat4 } from 'mol-base/math/linear-algebra'
 
 interface Operator extends Readonly<{
     name: string,
diff --git a/src/mol-data/structure/structure/structure.ts b/src/mol-data/structure/structure/structure.ts
index 31e001a27..4b2cf5daa 100644
--- a/src/mol-data/structure/structure/structure.ts
+++ b/src/mol-data/structure/structure/structure.ts
@@ -8,7 +8,7 @@ import { Model } from '../model'
 import Unit from './unit'
 import Operator from './operator'
 import AtomSet from './atom/set'
-import { OrderedSet } from '../../../mol-base/collections/integer'
+import { OrderedSet } from 'mol-base/collections/integer'
 
 interface Structure extends Readonly<{
     units: { readonly [id: number]: Unit },
diff --git a/src/mol-io/reader/_spec/column.spec.ts b/src/mol-io/reader/_spec/column.spec.ts
index aa6723a3d..a0242c39f 100644
--- a/src/mol-io/reader/_spec/column.spec.ts
+++ b/src/mol-io/reader/_spec/column.spec.ts
@@ -7,7 +7,7 @@
 
 import FixedColumn from '../common/text/column/fixed'
 import TokenColumn from '../common/text/column/token'
-import Column, { ColumnHelpers } from '../../../mol-base/collections/column'
+import Column, { ColumnHelpers } from 'mol-base/collections/column'
 
 const lines = [
     '1.123 abc',
diff --git a/src/mol-io/reader/cif/binary/field.ts b/src/mol-io/reader/cif/binary/field.ts
index 30ebd0ccd..1a629ea2f 100644
--- a/src/mol-io/reader/cif/binary/field.ts
+++ b/src/mol-io/reader/cif/binary/field.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import Column, { ColumnHelpers } from '../../../../mol-base/collections/column'
+import Column, { ColumnHelpers } from 'mol-base/collections/column'
 import * as Data from '../data-model'
 import { EncodedColumn } from './encoding'
 import decode from './decoder'
diff --git a/src/mol-io/reader/cif/binary/parser.ts b/src/mol-io/reader/cif/binary/parser.ts
index 84b3907ed..0225eab25 100644
--- a/src/mol-io/reader/cif/binary/parser.ts
+++ b/src/mol-io/reader/cif/binary/parser.ts
@@ -9,7 +9,7 @@ import * as Encoding from './encoding'
 import Field from './field'
 import Result from '../../result'
 import decodeMsgPack from '../../../utils/msgpack/decode'
-import Computation from '../../../../mol-base/computation'
+import Computation from 'mol-base/computation'
 
 function checkVersions(min: number[], current: number[]) {
     for (let i = 0; i < 2; i++) {
diff --git a/src/mol-io/reader/cif/data-model.ts b/src/mol-io/reader/cif/data-model.ts
index 3d8c6edf4..bd8cf4ec7 100644
--- a/src/mol-io/reader/cif/data-model.ts
+++ b/src/mol-io/reader/cif/data-model.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import Column from '../../../mol-base/collections/column'
+import Column from 'mol-base/collections/column'
 
 export interface File {
     readonly name?: string,
diff --git a/src/mol-io/reader/cif/schema.ts b/src/mol-io/reader/cif/schema.ts
index b1e7d8d35..7984870d7 100644
--- a/src/mol-io/reader/cif/schema.ts
+++ b/src/mol-io/reader/cif/schema.ts
@@ -5,8 +5,8 @@
  */
 
 import * as Data from './data-model'
-import Column, { ColumnHelpers } from '../../../mol-base/collections/column'
-import Table from '../../../mol-base/collections/table'
+import Column, { ColumnHelpers } from 'mol-base/collections/column'
+import Table from 'mol-base/collections/table'
 
 export function toTypedFrame<Schema extends FrameSchema, Frame extends TypedFrame<Schema> = TypedFrame<Schema>>(schema: Schema, frame: Data.Frame): Frame {
     return createTypedFrame(schema, frame) as Frame;
diff --git a/src/mol-io/reader/cif/text/field.ts b/src/mol-io/reader/cif/text/field.ts
index 86ba415c3..b124fed3c 100644
--- a/src/mol-io/reader/cif/text/field.ts
+++ b/src/mol-io/reader/cif/text/field.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import Column, { ColumnHelpers } from '../../../../mol-base/collections/column'
+import Column, { ColumnHelpers } from 'mol-base/collections/column'
 import * as TokenColumn from '../../common/text/column/token'
 import { Tokens } from '../../common/text/tokenizer'
 import * as Data from '../data-model'
diff --git a/src/mol-io/reader/cif/text/parser.ts b/src/mol-io/reader/cif/text/parser.ts
index 4426877dc..e657ee4eb 100644
--- a/src/mol-io/reader/cif/text/parser.ts
+++ b/src/mol-io/reader/cif/text/parser.ts
@@ -26,7 +26,7 @@ import * as Data from '../data-model'
 import Field from './field'
 import { Tokens, TokenBuilder } from '../../common/text/tokenizer'
 import Result from '../../result'
-import Computation from '../../../../mol-base/computation'
+import Computation from 'mol-base/computation'
 
 /**
  * Types of supported mmCIF tokens.
diff --git a/src/mol-io/reader/common/text/column/fixed.ts b/src/mol-io/reader/common/text/column/fixed.ts
index 06a2a89d9..2644ac70a 100644
--- a/src/mol-io/reader/common/text/column/fixed.ts
+++ b/src/mol-io/reader/common/text/column/fixed.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import Column, { ColumnHelpers } from '../../../../../mol-base/collections/column'
+import Column, { ColumnHelpers } from 'mol-base/collections/column'
 import { trimStr, Tokens } from '../tokenizer'
 import { parseIntSkipLeadingWhitespace, parseFloatSkipLeadingWhitespace } from '../number-parser'
 
diff --git a/src/mol-io/reader/common/text/column/token.ts b/src/mol-io/reader/common/text/column/token.ts
index 6284121aa..21fd44a7a 100644
--- a/src/mol-io/reader/common/text/column/token.ts
+++ b/src/mol-io/reader/common/text/column/token.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import Column, { ColumnHelpers } from '../../../../../mol-base/collections/column'
+import Column, { ColumnHelpers } from 'mol-base/collections/column'
 import { Tokens } from '../tokenizer'
 import { parseInt as fastParseInt, parseFloat as fastParseFloat } from '../number-parser'
 
diff --git a/src/mol-io/reader/common/text/tokenizer.ts b/src/mol-io/reader/common/text/tokenizer.ts
index cbddb018b..2d48a3fc1 100644
--- a/src/mol-io/reader/common/text/tokenizer.ts
+++ b/src/mol-io/reader/common/text/tokenizer.ts
@@ -6,7 +6,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import Computation from '../../../../mol-base/computation'
+import Computation from 'mol-base/computation'
 
 export interface Tokenizer {
     data: string,
diff --git a/src/mol-io/reader/gro/parser.ts b/src/mol-io/reader/gro/parser.ts
index 7a849ccc3..68f05a9df 100644
--- a/src/mol-io/reader/gro/parser.ts
+++ b/src/mol-io/reader/gro/parser.ts
@@ -7,10 +7,10 @@
 
 import Tokenizer from '../common/text/tokenizer'
 import FixedColumn from '../common/text/column/fixed'
-import Column from '../../../mol-base/collections/column'
+import Column from 'mol-base/collections/column'
 import * as Schema from './schema'
 import Result from '../result'
-import Computation from '../../../mol-base/computation'
+import Computation from 'mol-base/computation'
 
 interface State {
     tokenizer: Tokenizer,
diff --git a/src/mol-io/reader/gro/schema.d.ts b/src/mol-io/reader/gro/schema.d.ts
index a32f34ee1..d5edb09da 100644
--- a/src/mol-io/reader/gro/schema.d.ts
+++ b/src/mol-io/reader/gro/schema.d.ts
@@ -5,7 +5,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import Column from '../../../mol-base/collections/column'
+import Column from 'mol-base/collections/column'
 
 export interface Header {
     title: string,
diff --git a/src/mol-io/reader/mol2/schema.d.ts b/src/mol-io/reader/mol2/schema.d.ts
index 15a2ca7af..c99074e34 100644
--- a/src/mol-io/reader/mol2/schema.d.ts
+++ b/src/mol-io/reader/mol2/schema.d.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import Column from '../../../mol-base/collections/column'
+import Column from 'mol-base/collections/column'
 
 // Full format http://chemyang.ccnu.edu.cn/ccb/server/AIMMS/mol2.pdf
 // there are many records but for now ignore (pass over) all but the following
diff --git a/src/perf-tests/chunked-array-vs-native.ts b/src/perf-tests/chunked-array-vs-native.ts
index 7ac14c454..80fc3ff31 100644
--- a/src/perf-tests/chunked-array-vs-native.ts
+++ b/src/perf-tests/chunked-array-vs-native.ts
@@ -1,5 +1,5 @@
 import * as B from 'benchmark'
-import ChunkedArray from '../mol-base/collections/chunked-array'
+import ChunkedArray from 'mol-base/collections/chunked-array'
 
 function testNative(size: number) {
     const xs = new Array(size);
diff --git a/src/perf-tests/column.ts b/src/perf-tests/column.ts
index c5173a57b..d43a32a5c 100644
--- a/src/perf-tests/column.ts
+++ b/src/perf-tests/column.ts
@@ -1,5 +1,5 @@
 import * as B from 'benchmark'
-import C from '../mol-base/collections/column'
+import C from 'mol-base/collections/column'
 
 export namespace Column {
     function createData(n: number) {
diff --git a/src/perf-tests/iterators.ts b/src/perf-tests/iterators.ts
index b2f10b3fd..c98036308 100644
--- a/src/perf-tests/iterators.ts
+++ b/src/perf-tests/iterators.ts
@@ -1,5 +1,5 @@
 import * as B from 'benchmark'
-import It from '../mol-base/collections/iterator'
+import It from 'mol-base/collections/iterator'
 
 function createData(n: number) {
     const data = [];//new Int32Array(n);
diff --git a/src/perf-tests/sets.ts b/src/perf-tests/sets.ts
index b499ae2a3..9a3461414 100644
--- a/src/perf-tests/sets.ts
+++ b/src/perf-tests/sets.ts
@@ -1,6 +1,6 @@
 import * as B from 'benchmark'
-import { Tuple, Segmentation, OrderedSet as OrdSet } from '../mol-base/collections/integer'
-import { AtomSet } from '../mol-data/structure/structure'
+import { Tuple, Segmentation, OrderedSet as OrdSet } from 'mol-base/collections/integer'
+import { AtomSet } from 'mol-data/structure/structure'
 
 export namespace Iteration {
     const U = 1000, V = 2500;
diff --git a/src/perf-tests/sort.ts b/src/perf-tests/sort.ts
index 3b4bab9f3..d4461e91e 100644
--- a/src/perf-tests/sort.ts
+++ b/src/perf-tests/sort.ts
@@ -1,5 +1,5 @@
 import * as B from 'benchmark'
-import * as Sort from '../mol-base/collections/sort'
+import * as Sort from 'mol-base/collections/sort'
 
 function shuffle(a: number[]) {
     for (let i = a.length - 1; i > 0; i--) {
diff --git a/src/perf-tests/structure.ts b/src/perf-tests/structure.ts
index 7da905f45..5f14762b8 100644
--- a/src/perf-tests/structure.ts
+++ b/src/perf-tests/structure.ts
@@ -8,12 +8,12 @@ import * as B from 'benchmark'
 
 import * as util from 'util'
 import * as fs from 'fs'
-import CIF from '../mol-io/reader/cif'
+import CIF from 'mol-io/reader/cif'
 
-import { Model } from '../mol-data/structure/model'
-import { Structure, Atom, AtomSet } from '../mol-data/structure/structure'
-import * as Q from '../mol-data/structure/query'
-import { OrderedSet as OrdSet, Segmentation } from '../mol-base/collections/integer'
+import { Model } from 'mol-data/structure/model'
+import { Structure, Atom, AtomSet } from 'mol-data/structure/structure'
+import * as Q from 'mol-data/structure/query'
+import { OrderedSet as OrdSet, Segmentation } from 'mol-base/collections/integer'
 
 require('util.promisify').shim();
 const readFileAsync = util.promisify(fs.readFile);
diff --git a/src/script.ts b/src/script.ts
index 7408e72ea..55a43f4b3 100644
--- a/src/script.ts
+++ b/src/script.ts
@@ -12,15 +12,15 @@ require('util.promisify').shim();
 const readFileAsync = util.promisify(fs.readFile);
 const writeFileAsync = util.promisify(fs.writeFile);
 
-import Gro from './mol-io/reader/gro/parser'
-import CIF from './mol-io/reader/cif'
+import Gro from 'mol-io/reader/gro/parser'
+import CIF from 'mol-io/reader/cif'
 
-import Computation from './mol-base/computation'
+import Computation from 'mol-base/computation'
 
-import buildModels from './mol-data/structure/model/builders/mmcif'
+import buildModels from 'mol-data/structure/model/builders/mmcif'
 
 // import { toTypedFrame as applySchema } from './reader/cif/schema'
-import { generateSchema } from './mol-io/reader/cif/schema/utils'
+import { generateSchema } from 'mol-io/reader/cif/schema/utils'
 
 const file = '1crn.gro'
 // const file = 'water.gro'
diff --git a/tsconfig.json b/tsconfig.json
index b0f81fbe9..d25a81888 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -10,8 +10,13 @@
         "strictFunctionTypes": true,
         //"downlevelIteration": true,
         "lib": [ "es6", "dom" ],
-        "outDir": "build/js/src",
-        "baseUrl": "src"
+        "outDir": "build/node_modules",
+        "baseUrl": "src",
+        "paths": {
+            "mol-base": ["./mol-base"],
+            "mol-data": ["./mol-data"],
+            "mol-io": ["./mol-io"]
+        }
     },
     "include": [ "**/*" ]
 }
\ No newline at end of file
-- 
GitLab