typings-core
Advanced tools
+1
-0
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var path_1 = require("path"); | ||
@@ -3,0 +4,0 @@ var events_1 = require("events"); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":";AAAA,6BAAuC;AACvC,iCAAqC;AACrC,mDAA2D;AAC3D,yCAAsD;AACtD,iCAA8C;AAmB9C,gBAAwB,OAAsB;IACpC,IAAA,iBAAG,EAAE,uBAAM,EAAE,iBAAG,CAAY;IACpC,IAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,qBAAY,EAAE,CAAA;IACrD,IAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,MAAM,CAAA;IAE/C,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC;QAChB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC,CAAA;IAC9E,CAAC;IAED,MAAM,CAAC,qCAAsB,CAAC,EAAE,GAAG,KAAA,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,SAAA,EAAE,CAAC;SACvE,IAAI,CAAgB,UAAA,IAAI;QACvB,IAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAA;QAEtC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,SAAS,CACjC,yFAAyF,CAC1F,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,CAAC,iBAAO,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,KAAA,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,OAAO,SAAA,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAChF,CAAC,CAAC;SACD,IAAI,CAA2B,UAAC,MAAM;QACrC,IAAM,IAAI,GAAG,cAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAE9B,MAAM,CAAC,WAAM,CAAC,cAAO,CAAC,IAAI,CAAC,CAAC;aACzB,IAAI,CAAC;YACJ,MAAM,CAAC,cAAS,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;QACpD,CAAC,CAAC;aACD,IAAI,CAAC,cAAM,OAAA,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EAAvB,CAAuB,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;AACN,CAAC;AA9BD,wBA8BC","sourcesContent":["import { resolve, dirname } from 'path'\nimport { EventEmitter } from 'events'\nimport { resolveAllDependencies } from './lib/dependencies'\nimport { CompileResult, compile } from './lib/compile'\nimport { writeFile, mkdirp } from './utils/fs'\nimport { Emitter, DependencyTree } from './interfaces'\nimport { InstallResult } from './install'\n\n/**\n * Bundle configuration options.\n */\nexport interface BundleOptions {\n name?: string\n cwd: string\n global?: boolean\n resolution?: string\n out: string\n emitter?: Emitter\n}\n\n/**\n * Bundle the current typings project into a single global definition.\n */\nexport function bundle (options: BundleOptions): Promise<InstallResult> {\n const { cwd, global, out } = options\n const emitter = options.emitter || new EventEmitter()\n const resolution = options.resolution || 'main'\n\n if (out == null) {\n return Promise.reject(new TypeError('Out file path is required for bundle'))\n }\n\n return resolveAllDependencies({ cwd, dev: false, global: false, emitter })\n .then<CompileResult>(tree => {\n const name = options.name || tree.name\n\n if (name == null) {\n return Promise.reject(new TypeError(\n 'Unable to infer typings name from project. Use the `--name` flag to specify it manually'\n ))\n }\n\n return compile(tree, [resolution], { cwd, name, global, emitter, meta: true })\n })\n .then<{ tree: DependencyTree }>((output) => {\n const path = resolve(cwd, out)\n\n return mkdirp(dirname(path))\n .then(() => {\n return writeFile(path, output.results[resolution])\n })\n .then(() => ({ tree: output.tree }))\n })\n}\n"]} | ||
| {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":";;AAAA,6BAAuC;AACvC,iCAAqC;AACrC,mDAA2D;AAC3D,yCAAsD;AACtD,iCAA8C;AAmB9C,gBAAwB,OAAsB;IACpC,IAAA,iBAAG,EAAE,uBAAM,EAAE,iBAAG,CAAY;IACpC,IAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,qBAAY,EAAE,CAAA;IACrD,IAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,MAAM,CAAA;IAE/C,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC;QAChB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC,CAAA;IAC9E,CAAC;IAED,MAAM,CAAC,qCAAsB,CAAC,EAAE,GAAG,KAAA,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,SAAA,EAAE,CAAC;SACvE,IAAI,CAAgB,UAAA,IAAI;QACvB,IAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAA;QAEtC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,SAAS,CACjC,yFAAyF,CAC1F,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,CAAC,iBAAO,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,KAAA,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,OAAO,SAAA,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAChF,CAAC,CAAC;SACD,IAAI,CAA2B,UAAC,MAAM;QACrC,IAAM,IAAI,GAAG,cAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAE9B,MAAM,CAAC,WAAM,CAAC,cAAO,CAAC,IAAI,CAAC,CAAC;aACzB,IAAI,CAAC;YACJ,MAAM,CAAC,cAAS,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;QACpD,CAAC,CAAC;aACD,IAAI,CAAC,cAAM,OAAA,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EAAvB,CAAuB,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;AACN,CAAC;AA9BD,wBA8BC","sourcesContent":["import { resolve, dirname } from 'path'\nimport { EventEmitter } from 'events'\nimport { resolveAllDependencies } from './lib/dependencies'\nimport { CompileResult, compile } from './lib/compile'\nimport { writeFile, mkdirp } from './utils/fs'\nimport { Emitter, DependencyTree } from './interfaces'\nimport { InstallResult } from './install'\n\n/**\n * Bundle configuration options.\n */\nexport interface BundleOptions {\n name?: string\n cwd: string\n global?: boolean\n resolution?: string\n out: string\n emitter?: Emitter\n}\n\n/**\n * Bundle the current typings project into a single global definition.\n */\nexport function bundle (options: BundleOptions): Promise<InstallResult> {\n const { cwd, global, out } = options\n const emitter = options.emitter || new EventEmitter()\n const resolution = options.resolution || 'main'\n\n if (out == null) {\n return Promise.reject(new TypeError('Out file path is required for bundle'))\n }\n\n return resolveAllDependencies({ cwd, dev: false, global: false, emitter })\n .then<CompileResult>(tree => {\n const name = options.name || tree.name\n\n if (name == null) {\n return Promise.reject(new TypeError(\n 'Unable to infer typings name from project. Use the `--name` flag to specify it manually'\n ))\n }\n\n return compile(tree, [resolution], { cwd, name, global, emitter, meta: true })\n })\n .then<{ tree: DependencyTree }>((output) => {\n const path = resolve(cwd, out)\n\n return mkdirp(dirname(path))\n .then(() => {\n return writeFile(path, output.results[resolution])\n })\n .then(() => ({ tree: output.tree }))\n })\n}\n"]} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var test = require("blue-tape"); | ||
@@ -3,0 +4,0 @@ var path_1 = require("path"); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"bundle.spec.js","sourceRoot":"","sources":["../src/bundle.spec.ts"],"names":[],"mappings":";AAAA,gCAAkC;AAClC,6BAA2B;AAC3B,mCAAiC;AACjC,iCAA6C;AAC7C,iCAAqC;AAErC,IAAM,OAAO,GAAG,IAAI,qBAAY,EAAE,CAAA;AAElC,IAAI,CAAC,QAAQ,EAAE,UAAA,CAAC;IACd,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,UAAA,CAAC;QAC3B,IAAM,WAAW,GAAG,WAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAA;QAEtD,MAAM,CAAC,WAAM,CAAC,WAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;aACpC,IAAI,CAAC;YACJ,MAAM,CAAC,eAAM,CAAC;gBACZ,GAAG,EAAE,WAAW;gBAChB,IAAI,EAAE,SAAS;gBACf,GAAG,EAAE,WAAI,CAAC,WAAW,EAAE,KAAK,EAAE,aAAa,CAAC;gBAC5C,MAAM,EAAE,KAAK;gBACb,OAAO,SAAA;aACR,CAAC,CAAA;QACJ,CAAC,CAAC;aACD,IAAI,CAAC;YACJ,MAAM,CAAC,aAAQ,CAAC,WAAI,CAAC,WAAW,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAA;QAClE,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,QAAQ;YACtB,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAChB,yBAAyB;gBACzB,qCAAqC;gBACrC,uCAAyC;gBACzC,kCAAkC;gBAClC,GAAG;gBACH,EAAE;gBACF,yBAAyB;gBACzB,uBAAuB;gBACvB,4BAA8B;gBAC9B,2CAA6C;gBAC7C,GAAG;gBACH,EAAE;aACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACf,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import test = require('blue-tape')\nimport { join } from 'path'\nimport { bundle } from './bundle'\nimport { rimraf, readFile } from './utils/fs'\nimport { EventEmitter } from 'events'\n\nconst emitter = new EventEmitter()\n\ntest('bundle', t => {\n t.test('bundle everything', t => {\n const FIXTURE_DIR = join(__dirname, '__test__/bundle')\n\n return rimraf(join(FIXTURE_DIR, 'out'))\n .then(() => {\n return bundle({\n cwd: FIXTURE_DIR,\n name: 'example',\n out: join(FIXTURE_DIR, 'out', 'bundle.d.ts'),\n global: false,\n emitter\n })\n })\n .then(function () {\n return readFile(join(FIXTURE_DIR, 'out', 'bundle.d.ts'), 'utf8')\n })\n .then(function (contents) {\n t.equal(contents, [\n `// Generated by typings`,\n `// Source: custom_typings/test.d.ts`,\n `declare module \\'~example~test/test\\' {`,\n `export function test (): string;`,\n `}`,\n ``,\n `// Generated by typings`,\n `// Source: index.d.ts`,\n `declare module \\'example\\' {`,\n `export { test } from \\'~example~test/test\\'`,\n `}`,\n ''\n ].join('\\n'))\n })\n })\n})\n"]} | ||
| {"version":3,"file":"bundle.spec.js","sourceRoot":"","sources":["../src/bundle.spec.ts"],"names":[],"mappings":";;AAAA,gCAAkC;AAClC,6BAA2B;AAC3B,mCAAiC;AACjC,iCAA6C;AAC7C,iCAAqC;AAErC,IAAM,OAAO,GAAG,IAAI,qBAAY,EAAE,CAAA;AAElC,IAAI,CAAC,QAAQ,EAAE,UAAA,CAAC;IACd,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,UAAA,CAAC;QAC3B,IAAM,WAAW,GAAG,WAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAA;QAEtD,MAAM,CAAC,WAAM,CAAC,WAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;aACpC,IAAI,CAAC;YACJ,MAAM,CAAC,eAAM,CAAC;gBACZ,GAAG,EAAE,WAAW;gBAChB,IAAI,EAAE,SAAS;gBACf,GAAG,EAAE,WAAI,CAAC,WAAW,EAAE,KAAK,EAAE,aAAa,CAAC;gBAC5C,MAAM,EAAE,KAAK;gBACb,OAAO,SAAA;aACR,CAAC,CAAA;QACJ,CAAC,CAAC;aACD,IAAI,CAAC;YACJ,MAAM,CAAC,aAAQ,CAAC,WAAI,CAAC,WAAW,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAA;QAClE,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,QAAQ;YACtB,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAChB,yBAAyB;gBACzB,qCAAqC;gBACrC,uCAAyC;gBACzC,kCAAkC;gBAClC,GAAG;gBACH,EAAE;gBACF,yBAAyB;gBACzB,uBAAuB;gBACvB,4BAA8B;gBAC9B,2CAA6C;gBAC7C,GAAG;gBACH,EAAE;aACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACf,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import test = require('blue-tape')\nimport { join } from 'path'\nimport { bundle } from './bundle'\nimport { rimraf, readFile } from './utils/fs'\nimport { EventEmitter } from 'events'\n\nconst emitter = new EventEmitter()\n\ntest('bundle', t => {\n t.test('bundle everything', t => {\n const FIXTURE_DIR = join(__dirname, '__test__/bundle')\n\n return rimraf(join(FIXTURE_DIR, 'out'))\n .then(() => {\n return bundle({\n cwd: FIXTURE_DIR,\n name: 'example',\n out: join(FIXTURE_DIR, 'out', 'bundle.d.ts'),\n global: false,\n emitter\n })\n })\n .then(function () {\n return readFile(join(FIXTURE_DIR, 'out', 'bundle.d.ts'), 'utf8')\n })\n .then(function (contents) {\n t.equal(contents, [\n `// Generated by typings`,\n `// Source: custom_typings/test.d.ts`,\n `declare module \\'~example~test/test\\' {`,\n `export function test (): string;`,\n `}`,\n ``,\n `// Generated by typings`,\n `// Source: index.d.ts`,\n `declare module \\'example\\' {`,\n `export { test } from \\'~example~test/test\\'`,\n `}`,\n ''\n ].join('\\n'))\n })\n })\n})\n"]} |
+1
-0
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var extend = require("xtend"); | ||
@@ -3,0 +4,0 @@ var path_1 = require("path"); |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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","sourcesContent":["import extend = require('xtend')\nimport { join, basename } from 'path'\nimport { ConfigJson } from './interfaces'\nimport { writeJson, isFile, readJson } from './utils/fs'\nimport { CONFIG_FILE } from './utils/config'\n\nconst TSD_JSON_FILE = 'tsd.json'\nconst DEFINITELYTYPED_REPO = 'DefinitelyTyped/DefinitelyTyped'\nconst OLD_DEFINITELYTYPED_REPO = 'borisyankov/DefinitelyTyped'\n\n/**\n * Options for initializing a configuration.\n */\nexport interface InitOptions {\n cwd: string\n name?: string\n main?: string\n version?: string\n upgrade?: boolean\n}\n\n/**\n * The default configuration file to initialize.\n */\nconst DEFAULT_CONFIG: ConfigJson = {\n dependencies: {}\n}\n\n/**\n * The interface for `tsd.json`.\n */\ninterface TsdJson {\n version?: string\n repo?: string\n ref?: string\n path?: string\n bundle?: string\n githubHost?: string\n installed?: {\n [path: string]: {\n commit: string\n }\n }\n}\n\n/**\n * The files to check for existing names when naming a package.\n */\nconst PACKAGE_FILES: string[] = [\n 'package.json',\n 'bower.json'\n]\n\n/**\n * Update an old `tsd.json` format to the new format.\n */\nfunction upgradeTsdJson (tsdJson: TsdJson, config?: ConfigJson): ConfigJson {\n const typingsJson = extend(config)\n let repo = tsdJson.repo || DEFINITELYTYPED_REPO\n\n // Rewrite the old repo name which probably hasn't been updated in `tsd.json`.\n if (repo === OLD_DEFINITELYTYPED_REPO) {\n repo = DEFINITELYTYPED_REPO\n }\n\n // Copy all installed modules to global dependencies.\n if (tsdJson.installed) {\n typingsJson.globalDependencies = {}\n\n Object.keys(tsdJson.installed).forEach(function (path) {\n const dependency = tsdJson.installed[path]\n const name = basename(path, '.d.ts')\n const location = `github:${repo}/${path}#${dependency.commit}`\n\n typingsJson.globalDependencies[name] = location\n })\n }\n\n return typingsJson\n}\n\n/**\n * Upgrade from `tsd.json`.\n */\nfunction upgrade (options: InitOptions, config?: ConfigJson) {\n return readJson(join(options.cwd, TSD_JSON_FILE)).then(tsdJson => upgradeTsdJson(tsdJson, config))\n}\n\n/**\n * Make a smart guess of the project name from other config files.\n */\nfunction getProjectName (options: InitOptions): Promise<string> {\n if (options.name) {\n return Promise.resolve(options.name)\n }\n\n return PACKAGE_FILES.reduce(\n function (promise, packageFileName) {\n return promise.then(function (name) {\n if (name != null) {\n return name\n }\n\n return readJson(join(options.cwd, packageFileName))\n .then(\n (packageJson) => packageJson.name,\n () => undefined\n )\n })\n },\n Promise.resolve<string>(undefined)\n )\n}\n\n/**\n * Initialize a configuration file here.\n */\nexport function init (options: InitOptions) {\n const path = join(options.cwd, CONFIG_FILE)\n const { main, version } = options\n\n return isFile(path)\n .then<ConfigJson>(exists => {\n if (exists) {\n return Promise.reject(new TypeError(`A ${CONFIG_FILE} file already exists`))\n }\n })\n .then(() => getProjectName(options))\n .then(name => {\n if (options.upgrade) {\n return upgrade(options, { name, main, version })\n }\n\n return extend({ name, main, version }, DEFAULT_CONFIG)\n })\n .then(function (config) {\n return writeJson(path, config, 2)\n })\n}\n"]} | ||
| {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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","sourcesContent":["import extend = require('xtend')\nimport { join, basename } from 'path'\nimport { ConfigJson } from './interfaces'\nimport { writeJson, isFile, readJson } from './utils/fs'\nimport { CONFIG_FILE } from './utils/config'\n\nconst TSD_JSON_FILE = 'tsd.json'\nconst DEFINITELYTYPED_REPO = 'DefinitelyTyped/DefinitelyTyped'\nconst OLD_DEFINITELYTYPED_REPO = 'borisyankov/DefinitelyTyped'\n\n/**\n * Options for initializing a configuration.\n */\nexport interface InitOptions {\n cwd: string\n name?: string\n main?: string\n version?: string\n upgrade?: boolean\n}\n\n/**\n * The default configuration file to initialize.\n */\nconst DEFAULT_CONFIG: ConfigJson = {\n dependencies: {}\n}\n\n/**\n * The interface for `tsd.json`.\n */\ninterface TsdJson {\n version?: string\n repo?: string\n ref?: string\n path?: string\n bundle?: string\n githubHost?: string\n installed?: {\n [path: string]: {\n commit: string\n }\n }\n}\n\n/**\n * The files to check for existing names when naming a package.\n */\nconst PACKAGE_FILES: string[] = [\n 'package.json',\n 'bower.json'\n]\n\n/**\n * Update an old `tsd.json` format to the new format.\n */\nfunction upgradeTsdJson (tsdJson: TsdJson, config?: ConfigJson): ConfigJson {\n const typingsJson = extend(config)\n let repo = tsdJson.repo || DEFINITELYTYPED_REPO\n\n // Rewrite the old repo name which probably hasn't been updated in `tsd.json`.\n if (repo === OLD_DEFINITELYTYPED_REPO) {\n repo = DEFINITELYTYPED_REPO\n }\n\n // Copy all installed modules to global dependencies.\n if (tsdJson.installed) {\n typingsJson.globalDependencies = {}\n\n Object.keys(tsdJson.installed).forEach(function (path) {\n const dependency = tsdJson.installed[path]\n const name = basename(path, '.d.ts')\n const location = `github:${repo}/${path}#${dependency.commit}`\n\n typingsJson.globalDependencies[name] = location\n })\n }\n\n return typingsJson\n}\n\n/**\n * Upgrade from `tsd.json`.\n */\nfunction upgrade (options: InitOptions, config?: ConfigJson) {\n return readJson(join(options.cwd, TSD_JSON_FILE)).then(tsdJson => upgradeTsdJson(tsdJson, config))\n}\n\n/**\n * Make a smart guess of the project name from other config files.\n */\nfunction getProjectName (options: InitOptions): Promise<string> {\n if (options.name) {\n return Promise.resolve(options.name)\n }\n\n return PACKAGE_FILES.reduce(\n function (promise, packageFileName) {\n return promise.then(function (name) {\n if (name != null) {\n return name\n }\n\n return readJson(join(options.cwd, packageFileName))\n .then(\n (packageJson) => packageJson.name,\n () => undefined\n )\n })\n },\n Promise.resolve<string>(undefined)\n )\n}\n\n/**\n * Initialize a configuration file here.\n */\nexport function init (options: InitOptions) {\n const path = join(options.cwd, CONFIG_FILE)\n const { main, version } = options\n\n return isFile(path)\n .then<ConfigJson>(exists => {\n if (exists) {\n return Promise.reject(new TypeError(`A ${CONFIG_FILE} file already exists`))\n }\n })\n .then(() => getProjectName(options))\n .then(name => {\n if (options.upgrade) {\n return upgrade(options, { name, main, version })\n }\n\n return extend({ name, main, version }, DEFAULT_CONFIG)\n })\n .then(function (config) {\n return writeJson(path, config, 2)\n })\n}\n"]} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var test = require("blue-tape"); | ||
@@ -3,0 +4,0 @@ var thenify = require("thenify"); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"init.spec.js","sourceRoot":"","sources":["../src/init.spec.ts"],"names":[],"mappings":";AAAA,gCAAkC;AAClC,iCAAmC;AACnC,yBAA2B;AAC3B,6BAA2B;AAC3B,+BAA6B;AAC7B,yCAA4C;AAC5C,iCAAqC;AAErC,IAAI,CAAC,MAAM,EAAE,UAAA,CAAC;IACZ,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,UAAA,CAAC;QAC5B,IAAM,WAAW,GAAG,WAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;QACpD,IAAM,IAAI,GAAG,WAAI,CAAC,WAAW,EAAE,oBAAW,CAAC,CAAA;QAE3C,MAAM,CAAC,WAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;aAC9B,IAAI,CAAC;YACJ,MAAM,CAAC,aAAQ,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,MAAM;YACpB,CAAC,CAAC,EAAE,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAA;QAClC,CAAC,CAAC;aACD,IAAI,CAAC;YACJ,MAAM,CAAC,OAAO,CAAC,WAAM,CAAC,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAA,CAAC;QAC1B,IAAM,WAAW,GAAG,WAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAA;QAC5D,IAAM,IAAI,GAAG,WAAI,CAAC,WAAW,EAAE,oBAAW,CAAC,CAAA;QAE3C,MAAM,CAAC,WAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;aAC7C,IAAI,CAAC;YACJ,MAAM,CAAC,aAAQ,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,MAAM;YACpB,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE;gBAClB,kBAAkB,EAAE;oBAClB,UAAU,EAAE,mDAAmD;wBAC7D,2DAA2D;oBAC7D,MAAM,EAAE,+CAA+C;wBACrD,uDAAuD;oBACzD,IAAI,EAAE,gGAAgG;iBACvG;aACF,CAAC,CAAA;QACJ,CAAC,CAAC;aACD,IAAI,CAAC;YACJ,MAAM,CAAC,OAAO,CAAC,WAAM,CAAC,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,UAAA,CAAC;QAC5B,IAAM,WAAW,GAAG,WAAI,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAA;QAC/D,IAAM,IAAI,GAAG,WAAI,CAAC,WAAW,EAAE,oBAAW,CAAC,CAAA;QAE3C,MAAM,CAAC,WAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAC,CAAC;aAC7B,IAAI,CAAC;YACJ,MAAM,CAAC,aAAQ,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,MAAM;YACpB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;QACvC,CAAC,CAAC;aACD,IAAI,CAAC;YACJ,MAAM,CAAC,OAAO,CAAC,WAAM,CAAC,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import test = require('blue-tape')\nimport thenify = require('thenify')\nimport { unlink } from 'fs'\nimport { join } from 'path'\nimport { init } from './init'\nimport { CONFIG_FILE } from './utils/config'\nimport { readJson } from './utils/fs'\n\ntest('init', t => {\n t.test('init an empty file', t => {\n const FIXTURE_DIR = join(__dirname, '__test__/init')\n const path = join(FIXTURE_DIR, CONFIG_FILE)\n\n return init({ cwd: FIXTURE_DIR })\n .then(function () {\n return readJson(path)\n })\n .then(function (config) {\n t.ok(typeof config === 'object')\n })\n .then(function () {\n return thenify(unlink)(path)\n })\n })\n\n t.test('upgrade from tsd', t => {\n const FIXTURE_DIR = join(__dirname, '__test__/init-upgrade')\n const path = join(FIXTURE_DIR, CONFIG_FILE)\n\n return init({ cwd: FIXTURE_DIR, upgrade: true })\n .then(function () {\n return readJson(path)\n })\n .then(function (config) {\n t.deepEqual(config, {\n globalDependencies: {\n codemirror: 'github:DefinitelyTyped/DefinitelyTyped/codemirror' +\n '/codemirror.d.ts#01ce3ccf7f071514ff5057ef32a4550bf0b81dfe',\n jquery: 'github:DefinitelyTyped/DefinitelyTyped/jquery' +\n '/jquery.d.ts#01ce3ccf7f071514ff5057ef32a4550bf0b81dfe',\n node: 'github:DefinitelyTyped/DefinitelyTyped/node/node.d.ts#3b2ed809b9e8f7dc4fcc1d80199129a0b73fb277'\n }\n })\n })\n .then(function () {\n return thenify(unlink)(path)\n })\n })\n\n t.test('guess project name', t => {\n const FIXTURE_DIR = join(__dirname, '__test__/init-guess-name')\n const path = join(FIXTURE_DIR, CONFIG_FILE)\n\n return init({ cwd: FIXTURE_DIR})\n .then(function () {\n return readJson(path)\n })\n .then(function (config) {\n t.equals(config.name, 'typings-test')\n })\n .then(function () {\n return thenify(unlink)(path)\n })\n })\n})\n"]} | ||
| {"version":3,"file":"init.spec.js","sourceRoot":"","sources":["../src/init.spec.ts"],"names":[],"mappings":";;AAAA,gCAAkC;AAClC,iCAAmC;AACnC,yBAA2B;AAC3B,6BAA2B;AAC3B,+BAA6B;AAC7B,yCAA4C;AAC5C,iCAAqC;AAErC,IAAI,CAAC,MAAM,EAAE,UAAA,CAAC;IACZ,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,UAAA,CAAC;QAC5B,IAAM,WAAW,GAAG,WAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;QACpD,IAAM,IAAI,GAAG,WAAI,CAAC,WAAW,EAAE,oBAAW,CAAC,CAAA;QAE3C,MAAM,CAAC,WAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;aAC9B,IAAI,CAAC;YACJ,MAAM,CAAC,aAAQ,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,MAAM;YACpB,CAAC,CAAC,EAAE,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAA;QAClC,CAAC,CAAC;aACD,IAAI,CAAC;YACJ,MAAM,CAAC,OAAO,CAAC,WAAM,CAAC,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAA,CAAC;QAC1B,IAAM,WAAW,GAAG,WAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAA;QAC5D,IAAM,IAAI,GAAG,WAAI,CAAC,WAAW,EAAE,oBAAW,CAAC,CAAA;QAE3C,MAAM,CAAC,WAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;aAC7C,IAAI,CAAC;YACJ,MAAM,CAAC,aAAQ,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,MAAM;YACpB,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE;gBAClB,kBAAkB,EAAE;oBAClB,UAAU,EAAE,mDAAmD;wBAC7D,2DAA2D;oBAC7D,MAAM,EAAE,+CAA+C;wBACrD,uDAAuD;oBACzD,IAAI,EAAE,gGAAgG;iBACvG;aACF,CAAC,CAAA;QACJ,CAAC,CAAC;aACD,IAAI,CAAC;YACJ,MAAM,CAAC,OAAO,CAAC,WAAM,CAAC,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,UAAA,CAAC;QAC5B,IAAM,WAAW,GAAG,WAAI,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAA;QAC/D,IAAM,IAAI,GAAG,WAAI,CAAC,WAAW,EAAE,oBAAW,CAAC,CAAA;QAE3C,MAAM,CAAC,WAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAC,CAAC;aAC7B,IAAI,CAAC;YACJ,MAAM,CAAC,aAAQ,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,MAAM;YACpB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;QACvC,CAAC,CAAC;aACD,IAAI,CAAC;YACJ,MAAM,CAAC,OAAO,CAAC,WAAM,CAAC,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import test = require('blue-tape')\nimport thenify = require('thenify')\nimport { unlink } from 'fs'\nimport { join } from 'path'\nimport { init } from './init'\nimport { CONFIG_FILE } from './utils/config'\nimport { readJson } from './utils/fs'\n\ntest('init', t => {\n t.test('init an empty file', t => {\n const FIXTURE_DIR = join(__dirname, '__test__/init')\n const path = join(FIXTURE_DIR, CONFIG_FILE)\n\n return init({ cwd: FIXTURE_DIR })\n .then(function () {\n return readJson(path)\n })\n .then(function (config) {\n t.ok(typeof config === 'object')\n })\n .then(function () {\n return thenify(unlink)(path)\n })\n })\n\n t.test('upgrade from tsd', t => {\n const FIXTURE_DIR = join(__dirname, '__test__/init-upgrade')\n const path = join(FIXTURE_DIR, CONFIG_FILE)\n\n return init({ cwd: FIXTURE_DIR, upgrade: true })\n .then(function () {\n return readJson(path)\n })\n .then(function (config) {\n t.deepEqual(config, {\n globalDependencies: {\n codemirror: 'github:DefinitelyTyped/DefinitelyTyped/codemirror' +\n '/codemirror.d.ts#01ce3ccf7f071514ff5057ef32a4550bf0b81dfe',\n jquery: 'github:DefinitelyTyped/DefinitelyTyped/jquery' +\n '/jquery.d.ts#01ce3ccf7f071514ff5057ef32a4550bf0b81dfe',\n node: 'github:DefinitelyTyped/DefinitelyTyped/node/node.d.ts#3b2ed809b9e8f7dc4fcc1d80199129a0b73fb277'\n }\n })\n })\n .then(function () {\n return thenify(unlink)(path)\n })\n })\n\n t.test('guess project name', t => {\n const FIXTURE_DIR = join(__dirname, '__test__/init-guess-name')\n const path = join(FIXTURE_DIR, CONFIG_FILE)\n\n return init({ cwd: FIXTURE_DIR})\n .then(function () {\n return readJson(path)\n })\n .then(function (config) {\n t.equals(config.name, 'typings-test')\n })\n .then(function () {\n return thenify(unlink)(path)\n })\n })\n})\n"]} |
+1
-0
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var extend = require("xtend"); | ||
@@ -3,0 +4,0 @@ var path_1 = require("path"); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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","sourcesContent":["import extend = require('xtend')\nimport { dirname, join } from 'path'\nimport { EventEmitter } from 'events'\nimport { resolveDependency, resolveTypeDependencies, DEFAULT_DEPENDENCY } from './lib/dependencies'\nimport { compile, CompileResult } from './lib/compile'\nimport { findConfigFile, findUp } from './utils/find'\nimport {\n transformConfig,\n mkdirp,\n touch,\n transformDtsFile,\n writeJson,\n writeFile,\n readJson,\n readConfig,\n treeToJson\n} from './utils/fs'\nimport { resolveFrom, normalizeResolutions, getDependencyPath, getDefinitionPath } from './utils/path'\nimport { parseDependency, expandRegistry, parseDependencyExpression, buildDependencyExpression } from './utils/parse'\nimport { DependencyTree, Dependency, DependencyBranch, Emitter, ResolutionMap } from './interfaces'\nimport { CONFIG_FILE } from './utils/config'\n\n// Re-export useful expression building functions.\nexport { parseDependency, expandRegistry, parseDependencyExpression, buildDependencyExpression }\n\n/**\n * Options for installing a new dependency.\n */\nexport interface InstallDependencyOptions {\n save?: boolean\n saveDev?: boolean\n savePeer?: boolean\n global?: boolean\n cwd: string\n name?: string\n source?: string\n emitter?: Emitter\n}\n\n/**\n * Only options required for a full install.\n */\nexport interface InstallOptions {\n cwd: string\n production?: boolean\n emitter?: Emitter\n}\n\n/**\n * Consistent installation result.\n */\nexport interface InstallResult {\n tree: DependencyTree\n name?: string\n}\n\n/**\n * Options for compiling.\n */\nexport interface InstallDependencyNestedOptions extends InstallDependencyOptions {\n resolutions: ResolutionMap\n}\n\n/**\n * Install all dependencies on the current project.\n */\nexport function install (options: InstallOptions): Promise<InstallResult> {\n const { cwd, production } = options\n const emitter = options.emitter || new EventEmitter()\n\n return findConfigFile(cwd)\n .then(\n (configFile) => {\n const cwd = dirname(configFile)\n\n return readConfig(configFile)\n .then(config => {\n const resolutions = normalizeResolutions(config.resolution, options)\n\n return resolveTypeDependencies({\n cwd,\n emitter,\n global: true,\n peer: true,\n dev: !production\n })\n .then(tree => {\n const cwd = dirname(tree.src)\n const queue: Array<Promise<CompileResult>> = []\n\n function addToQueue (deps: DependencyBranch, global: boolean) {\n for (const name of Object.keys(deps)) {\n const tree = deps[name]\n\n queue.push(compile(tree, Object.keys(resolutions), {\n cwd,\n name,\n global,\n emitter,\n meta: true\n }))\n }\n }\n\n addToQueue(tree.dependencies, false)\n addToQueue(tree.devDependencies, false)\n addToQueue(tree.peerDependencies, false)\n addToQueue(tree.globalDependencies, true)\n addToQueue(tree.globalDevDependencies, true)\n\n return Promise.all(queue)\n .then(results => {\n return Promise.all(results.map(x => writeResult(x, { resolutions })))\n .then(() => writeBundle(results, { resolutions }))\n .then(() => ({ tree }))\n })\n })\n })\n },\n () => {\n emitter.emit('enoent', { path: join(cwd, CONFIG_FILE) })\n\n return { tree: extend(DEFAULT_DEPENDENCY) }\n }\n )\n\n}\n\n/**\n * Multiple installation expressions.\n */\nexport interface InstallExpression {\n name: string\n location: string\n}\n\n/**\n * Backward compat with single dependency install.\n */\nexport function installDependencyRaw (raw: string, options: InstallDependencyOptions) {\n return installDependenciesRaw([raw], options).then(x => x[0])\n}\n\n/**\n * Install raw dependency strings.\n */\nexport function installDependenciesRaw (raw: string[], options: InstallDependencyOptions): Promise<InstallResult[]> {\n return new Promise(resolve => {\n const expressions = raw.map(x => parseDependencyExpression(x, options))\n\n return resolve(installDependencies(expressions, options))\n })\n}\n\n/**\n * Single wrapper to install a single dependency.\n */\nexport function installDependency (\n expression: InstallExpression,\n options: InstallDependencyOptions\n): Promise<InstallResult> {\n return installDependencies([expression], options).then(x => x[0])\n}\n\n/**\n * Install a list of dependencies into the current project.\n */\nexport function installDependencies (\n expressions: InstallExpression[],\n options: InstallDependencyOptions\n): Promise<InstallResult[]> {\n const emitter = options.emitter || new EventEmitter()\n\n return findConfigFile(options.cwd)\n .then(\n (configFile) => {\n const cwd = dirname(configFile)\n\n return readConfig(configFile)\n .then(config => {\n const resolutions = normalizeResolutions(config.resolution, options)\n\n return extend(options, { resolutions, cwd, emitter })\n })\n },\n () => {\n const resolutions = normalizeResolutions(undefined, options)\n\n return extend(options, { emitter, resolutions })\n }\n )\n .then(options => {\n return Promise.all(expressions.map(x => compileDependency(x, options)))\n .then(results => {\n return Promise.all(results.map(x => writeResult(x, options)))\n .then(() => writeBundle(results, options))\n .then(() => writeToConfig(results, options))\n .then(() => results.map(({ name, tree }) => ({ name, tree })))\n })\n })\n}\n\n/**\n * Install from a dependency string.\n */\nfunction compileDependency (\n expression: InstallExpression,\n options: InstallDependencyNestedOptions\n): Promise<CompileResult> {\n const dependency = parseDependency(expression.location)\n const { cwd, global, resolutions } = options\n const emitter = options.emitter || new EventEmitter()\n const expName = expression.name || dependency.meta.name\n\n return checkTypings(dependency, options)\n .then(() => {\n return resolveDependency(dependency, { cwd, emitter, name: expName, dev: false, peer: false, global: false })\n })\n .then(tree => {\n const name = expName || tree.name\n\n if (!name) {\n return Promise.reject(new TypeError(`Unable to install dependency from \"${tree.raw}\" without a name`))\n }\n\n if (tree.postmessage) {\n emitter.emit('postmessage', { name, message: tree.postmessage })\n }\n\n return compile(tree, Object.keys(resolutions), {\n cwd,\n name,\n global,\n emitter,\n meta: true\n })\n })\n}\n\n/**\n * Write a dependency to the configuration file.\n */\nfunction writeToConfig (results: CompileResult[], options: InstallDependencyOptions) {\n if (options.save || options.saveDev || options.savePeer) {\n return transformConfig(options.cwd, config => {\n for (const { name, tree } of results) {\n const { raw } = tree\n\n // Extend different fields depending on the option passed in.\n if (options.save) {\n if (options.global) {\n config.globalDependencies = extend(config.globalDependencies, { [name]: raw })\n } else {\n config.dependencies = extend(config.dependencies, { [name]: raw })\n }\n } else if (options.saveDev) {\n if (options.global) {\n config.globalDevDependencies = extend(config.globalDevDependencies, { [name]: raw })\n } else {\n config.devDependencies = extend(config.devDependencies, { [name]: raw })\n }\n } else if (options.savePeer) {\n if (options.global) {\n throw new TypeError('Unable to use `savePeer` with the `global` flag')\n } else {\n config.peerDependencies = extend(config.peerDependencies, { [name]: raw })\n }\n }\n }\n\n return config\n })\n }\n\n return Promise.resolve()\n}\n\n/**\n * Write a dependency to the filesytem.\n */\nfunction writeBundle (results: CompileResult[], options: { resolutions: ResolutionMap }): Promise<any> {\n const { resolutions } = options\n\n return Promise.all(Object.keys(resolutions).map(resolution => {\n const path = resolutions[resolution]\n const paths = results.map(({ name, global }) => getDependencyPath({ path, name, global }).definition)\n\n return mkdirp(path)\n .then(() => {\n const bundle = getDefinitionPath(path)\n\n if (paths.length === 0) {\n return touch(bundle)\n }\n\n return transformDtsFile(bundle, x => x.concat(paths))\n })\n }))\n}\n\n/**\n * Write a compilation result.\n */\nfunction writeResult (result: CompileResult, options: { resolutions: ResolutionMap }): Promise<any> {\n const { name, global, tree, results } = result\n const { resolutions } = options\n\n return Promise.all(Object.keys(resolutions).map(resolution => {\n const path = resolutions[resolution]\n const contents = results[resolution]\n const { directory, config, definition } = getDependencyPath({ name, global, path })\n\n return mkdirp(directory)\n .then(() => {\n return Promise.all([\n writeJson(config, { resolution, tree: treeToJson(tree) }),\n writeFile(definition, contents)\n ])\n })\n }))\n}\n\n/**\n * Find existing `typings` that TypeScript supports.\n */\nfunction checkTypings (dependency: Dependency, options: InstallDependencyOptions) {\n const { type, meta } = dependency\n\n // TypeScript only support NPM, as of today.\n if (type === 'registry' && meta.source === 'npm') {\n return findUp(options.cwd, join('node_modules', meta.name, 'package.json'))\n .then(path => {\n return readJson(path)\n .then(packageJson => {\n if (packageJson && typeof packageJson.typings === 'string') {\n options.emitter.emit('hastypings', {\n name: meta.name,\n source: meta.source,\n path: path,\n typings: resolveFrom(path, packageJson.typings)\n })\n }\n })\n })\n .catch(() => undefined)\n }\n\n return Promise.resolve()\n}\n"]} | ||
| {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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","sourcesContent":["import extend = require('xtend')\nimport { dirname, join } from 'path'\nimport { EventEmitter } from 'events'\nimport { resolveDependency, resolveTypeDependencies, DEFAULT_DEPENDENCY } from './lib/dependencies'\nimport { compile, CompileResult } from './lib/compile'\nimport { findConfigFile, findUp } from './utils/find'\nimport {\n transformConfig,\n mkdirp,\n touch,\n transformDtsFile,\n writeJson,\n writeFile,\n readJson,\n readConfig,\n treeToJson\n} from './utils/fs'\nimport { resolveFrom, normalizeResolutions, getDependencyPath, getDefinitionPath } from './utils/path'\nimport { parseDependency, expandRegistry, parseDependencyExpression, buildDependencyExpression } from './utils/parse'\nimport { DependencyTree, Dependency, DependencyBranch, Emitter, ResolutionMap } from './interfaces'\nimport { CONFIG_FILE } from './utils/config'\n\n// Re-export useful expression building functions.\nexport { parseDependency, expandRegistry, parseDependencyExpression, buildDependencyExpression }\n\n/**\n * Options for installing a new dependency.\n */\nexport interface InstallDependencyOptions {\n save?: boolean\n saveDev?: boolean\n savePeer?: boolean\n global?: boolean\n cwd: string\n name?: string\n source?: string\n emitter?: Emitter\n}\n\n/**\n * Only options required for a full install.\n */\nexport interface InstallOptions {\n cwd: string\n production?: boolean\n emitter?: Emitter\n}\n\n/**\n * Consistent installation result.\n */\nexport interface InstallResult {\n tree: DependencyTree\n name?: string\n}\n\n/**\n * Options for compiling.\n */\nexport interface InstallDependencyNestedOptions extends InstallDependencyOptions {\n resolutions: ResolutionMap\n}\n\n/**\n * Install all dependencies on the current project.\n */\nexport function install (options: InstallOptions): Promise<InstallResult> {\n const { cwd, production } = options\n const emitter = options.emitter || new EventEmitter()\n\n return findConfigFile(cwd)\n .then(\n (configFile) => {\n const cwd = dirname(configFile)\n\n return readConfig(configFile)\n .then(config => {\n const resolutions = normalizeResolutions(config.resolution, options)\n\n return resolveTypeDependencies({\n cwd,\n emitter,\n global: true,\n peer: true,\n dev: !production\n })\n .then(tree => {\n const cwd = dirname(tree.src)\n const queue: Array<Promise<CompileResult>> = []\n\n function addToQueue (deps: DependencyBranch, global: boolean) {\n for (const name of Object.keys(deps)) {\n const tree = deps[name]\n\n queue.push(compile(tree, Object.keys(resolutions), {\n cwd,\n name,\n global,\n emitter,\n meta: true\n }))\n }\n }\n\n addToQueue(tree.dependencies, false)\n addToQueue(tree.devDependencies, false)\n addToQueue(tree.peerDependencies, false)\n addToQueue(tree.globalDependencies, true)\n addToQueue(tree.globalDevDependencies, true)\n\n return Promise.all(queue)\n .then(results => {\n return Promise.all(results.map(x => writeResult(x, { resolutions })))\n .then(() => writeBundle(results, { resolutions }))\n .then(() => ({ tree }))\n })\n })\n })\n },\n () => {\n emitter.emit('enoent', { path: join(cwd, CONFIG_FILE) })\n\n return { tree: extend(DEFAULT_DEPENDENCY) }\n }\n )\n\n}\n\n/**\n * Multiple installation expressions.\n */\nexport interface InstallExpression {\n name: string\n location: string\n}\n\n/**\n * Backward compat with single dependency install.\n */\nexport function installDependencyRaw (raw: string, options: InstallDependencyOptions) {\n return installDependenciesRaw([raw], options).then(x => x[0])\n}\n\n/**\n * Install raw dependency strings.\n */\nexport function installDependenciesRaw (raw: string[], options: InstallDependencyOptions): Promise<InstallResult[]> {\n return new Promise(resolve => {\n const expressions = raw.map(x => parseDependencyExpression(x, options))\n\n return resolve(installDependencies(expressions, options))\n })\n}\n\n/**\n * Single wrapper to install a single dependency.\n */\nexport function installDependency (\n expression: InstallExpression,\n options: InstallDependencyOptions\n): Promise<InstallResult> {\n return installDependencies([expression], options).then(x => x[0])\n}\n\n/**\n * Install a list of dependencies into the current project.\n */\nexport function installDependencies (\n expressions: InstallExpression[],\n options: InstallDependencyOptions\n): Promise<InstallResult[]> {\n const emitter = options.emitter || new EventEmitter()\n\n return findConfigFile(options.cwd)\n .then(\n (configFile) => {\n const cwd = dirname(configFile)\n\n return readConfig(configFile)\n .then(config => {\n const resolutions = normalizeResolutions(config.resolution, options)\n\n return extend(options, { resolutions, cwd, emitter })\n })\n },\n () => {\n const resolutions = normalizeResolutions(undefined, options)\n\n return extend(options, { emitter, resolutions })\n }\n )\n .then(options => {\n return Promise.all(expressions.map(x => compileDependency(x, options)))\n .then(results => {\n return Promise.all(results.map(x => writeResult(x, options)))\n .then(() => writeBundle(results, options))\n .then(() => writeToConfig(results, options))\n .then(() => results.map(({ name, tree }) => ({ name, tree })))\n })\n })\n}\n\n/**\n * Install from a dependency string.\n */\nfunction compileDependency (\n expression: InstallExpression,\n options: InstallDependencyNestedOptions\n): Promise<CompileResult> {\n const dependency = parseDependency(expression.location)\n const { cwd, global, resolutions } = options\n const emitter = options.emitter || new EventEmitter()\n const expName = expression.name || dependency.meta.name\n\n return checkTypings(dependency, options)\n .then(() => {\n return resolveDependency(dependency, { cwd, emitter, name: expName, dev: false, peer: false, global: false })\n })\n .then(tree => {\n const name = expName || tree.name\n\n if (!name) {\n return Promise.reject(new TypeError(`Unable to install dependency from \"${tree.raw}\" without a name`))\n }\n\n if (tree.postmessage) {\n emitter.emit('postmessage', { name, message: tree.postmessage })\n }\n\n return compile(tree, Object.keys(resolutions), {\n cwd,\n name,\n global,\n emitter,\n meta: true\n })\n })\n}\n\n/**\n * Write a dependency to the configuration file.\n */\nfunction writeToConfig (results: CompileResult[], options: InstallDependencyOptions) {\n if (options.save || options.saveDev || options.savePeer) {\n return transformConfig(options.cwd, config => {\n for (const { name, tree } of results) {\n const { raw } = tree\n\n // Extend different fields depending on the option passed in.\n if (options.save) {\n if (options.global) {\n config.globalDependencies = extend(config.globalDependencies, { [name]: raw })\n } else {\n config.dependencies = extend(config.dependencies, { [name]: raw })\n }\n } else if (options.saveDev) {\n if (options.global) {\n config.globalDevDependencies = extend(config.globalDevDependencies, { [name]: raw })\n } else {\n config.devDependencies = extend(config.devDependencies, { [name]: raw })\n }\n } else if (options.savePeer) {\n if (options.global) {\n throw new TypeError('Unable to use `savePeer` with the `global` flag')\n } else {\n config.peerDependencies = extend(config.peerDependencies, { [name]: raw })\n }\n }\n }\n\n return config\n })\n }\n\n return Promise.resolve()\n}\n\n/**\n * Write a dependency to the filesytem.\n */\nfunction writeBundle (results: CompileResult[], options: { resolutions: ResolutionMap }): Promise<any> {\n const { resolutions } = options\n\n return Promise.all(Object.keys(resolutions).map(resolution => {\n const path = resolutions[resolution]\n const paths = results.map(({ name, global }) => getDependencyPath({ path, name, global }).definition)\n\n return mkdirp(path)\n .then(() => {\n const bundle = getDefinitionPath(path)\n\n if (paths.length === 0) {\n return touch(bundle)\n }\n\n return transformDtsFile(bundle, x => x.concat(paths))\n })\n }))\n}\n\n/**\n * Write a compilation result.\n */\nfunction writeResult (result: CompileResult, options: { resolutions: ResolutionMap }): Promise<any> {\n const { name, global, tree, results } = result\n const { resolutions } = options\n\n return Promise.all(Object.keys(resolutions).map(resolution => {\n const path = resolutions[resolution]\n const contents = results[resolution]\n const { directory, config, definition } = getDependencyPath({ name, global, path })\n\n return mkdirp(directory)\n .then(() => {\n return Promise.all([\n writeJson(config, { resolution, tree: treeToJson(tree) }),\n writeFile(definition, contents)\n ])\n })\n }))\n}\n\n/**\n * Find existing `typings` that TypeScript supports.\n */\nfunction checkTypings (dependency: Dependency, options: InstallDependencyOptions) {\n const { type, meta } = dependency\n\n // TypeScript only support NPM, as of today.\n if (type === 'registry' && meta.source === 'npm') {\n return findUp(options.cwd, join('node_modules', meta.name, 'package.json'))\n .then(path => {\n return readJson(path)\n .then(packageJson => {\n if (packageJson && typeof packageJson.typings === 'string') {\n options.emitter.emit('hastypings', {\n name: meta.name,\n source: meta.source,\n path: path,\n typings: resolveFrom(path, packageJson.typings)\n })\n }\n })\n })\n .catch(() => undefined)\n }\n\n return Promise.resolve()\n}\n"]} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var test = require("blue-tape"); | ||
@@ -3,0 +4,0 @@ var path_1 = require("path"); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"install.spec.js","sourceRoot":"","sources":["../src/install.spec.ts"],"names":[],"mappings":";AAAA,gCAAkC;AAClC,6BAA2B;AAC3B,iCAAqC;AACrC,2BAA6B;AAC7B,qCAAyD;AACzD,iCAAoE;AACpE,yCAA4C;AAC5C,iCAA2B;AAE3B,IAAI,CAAC,SAAS,EAAE,UAAA,CAAC;IACf,IAAM,OAAO,GAAG,IAAI,qBAAY,EAAE,CAAA;IAElC,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,UAAA,CAAC;QAC5B,IAAM,WAAW,GAAG,WAAI,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAA;QAE/D,MAAM,CAAC,WAAM,CAAC,WAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;aACxC,IAAI,CAAC;YACJ,MAAM,CAAC,iBAAO,CAAC;gBACb,GAAG,EAAE,WAAW;gBAChB,OAAO,SAAA;aACR,CAAC,CAAA;QACJ,CAAC,CAAC;aACD,IAAI,CAAC;YACJ,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;gBACjB,aAAQ,CAAC,WAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC;gBACzD,aAAQ,CAAC,WAAI,CAAC,WAAW,EAAE,iCAAiC,CAAC,EAAE,MAAM,CAAC;gBACtE,aAAQ,CAAC,WAAI,CAAC,WAAW,EAAE,iCAAiC,CAAC,EAAE,MAAM,CAAC;aACvE,CAAC,CAAA;QACJ,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,EAAmC;gBAAlC,eAAO,EAAE,gBAAQ,EAAE,sBAAc;YAChD,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE;gBACf,oDAAkD;gBAClD,oDAAkD;gBAClD,EAAE;aACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YAEb,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAChB,yBAAyB;gBACzB,uCAAuC;gBACvC,yBAA2B;gBAC3B,2BAA2B;gBAC3B,EAAE;gBACF,qBAAqB;gBACrB,GAAG;gBACH,EAAE;aACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YAEb,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE;gBACtB,yBAAyB;gBACzB,uCAAuC;gBACvC,yBAAuB;gBACvB,EAAE;aACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACf,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,UAAA,CAAC;QAC5B,IAAM,UAAU,GAAG,6CAA6C,CAAA;QAChE,IAAM,mBAAmB,GAAG,wBAAwB,CAAA;QACpD,IAAM,eAAe,GAAG,wCAAwC,CAAA;QAChE,IAAM,iBAAiB,GAAG,iCAAiC,CAAA;QAC3D,IAAM,WAAW,GAAG,WAAI,CAAC,SAAS,EAAE,qCAAqC,CAAC,CAAA;QAC1E,IAAM,MAAM,GAAG,WAAI,CAAC,WAAW,EAAE,oBAAW,CAAC,CAAA;QAE7C,IAAI,CAAC,YAAE,CAAC,WAAW,CAAC;aACjB,GAAG,CAAC,4CAA4C,CAAC;aACjD,KAAK,CAAC,GAAG,EAAE;YACV,GAAG,EAAE,sBAAsB;YAC3B,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,gGAAgG;YAC1G,OAAO,EAAE,0BAA0B;SACpC,CAAC,CAAA;QAEJ,IAAI,CAAC,kCAAkC,CAAC;aACrC,GAAG,CAAC,0FAA0F,CAAC;aAC/F,KAAK,CAAC,GAAG,EAAE,sCAAsC,CAAC,CAAA;QAErD,YAAE,CAAC,WAAW,GAAG,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAA;QAEnD,MAAM,CAAC,cAAS,CAAC,MAAM,EAAE,IAAI,CAAC;aAC3B,IAAI,CAAC;YACJ,MAAM,CAAC,WAAM,CAAC,WAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAA;QAC7C,CAAC,CAAC;aACD,IAAI,CAAC;YACJ,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;gBACjB,8BAAoB,CAAC,UAAU,EAAE;oBAC/B,GAAG,EAAE,WAAW;oBAChB,OAAO,EAAE,IAAI;oBACb,OAAO,SAAA;iBACR,CAAC;gBACF,8BAAoB,CAAC,mBAAmB,EAAE;oBACxC,GAAG,EAAE,WAAW;oBAChB,IAAI,EAAE,IAAI;oBACV,MAAM,EAAE,IAAI;oBACZ,OAAO,SAAA;iBACR,CAAC;gBACF,8BAAoB,CAAC,iBAAiB,EAAE;oBACtC,GAAG,EAAE,WAAW;oBAChB,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,IAAI;oBACZ,OAAO,SAAA;iBACR,CAAC;gBACF,8BAAoB,CAAC,eAAe,EAAE;oBACpC,GAAG,EAAE,WAAW;oBAChB,QAAQ,EAAE,IAAI;oBACd,OAAO,SAAA;iBACR,CAAC;aACH,CAAC,CAAA;QACJ,CAAC,CAAC;aACD,IAAI,CAAC;YACJ,MAAM,CAAC,eAAU,CAAC,MAAM,CAAC,CAAA;QAC3B,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,MAAM;YACpB,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE;gBAClB,eAAe,EAAE;oBACf,aAAa,EAAE,iCAAiC;iBACjD;gBACD,gBAAgB,EAAE;oBAChB,KAAK,EAAE,eAAe;iBACvB;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,uCAAuC;iBAC9C;gBACD,qBAAqB,EAAE;oBACrB,MAAM,EAAE,iCAAiC;iBAC1C;aACF,CAAC,CAAA;QACJ,CAAC,CAAC;aACD,IAAI,CACL;YACE,YAAE,CAAC,WAAW,GAAG,EAAE,CAAA;QACrB,CAAC,EACD;YACE,YAAE,CAAC,WAAW,GAAG,EAAE,CAAA;QACrB,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,UAAA,CAAC;QACvB,IAAM,WAAW,GAAG,WAAI,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAA;QAE7D,MAAM,CAAC,iBAAO,CAAC;YACb,GAAG,EAAE,WAAW;YAChB,OAAO,SAAA;SACR,CAAC;aACC,IAAI,CAAC;YACJ,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;gBACjB,aAAQ,CAAC,WAAI,CAAC,WAAW,EAAE,yBAAyB,CAAC,EAAE,MAAM,CAAC;gBAC9D,aAAQ,CAAC,WAAI,CAAC,WAAW,EAAE,4BAA4B,CAAC,EAAE,MAAM,CAAC;aAClE,CAAC,CAAA;QACJ,CAAC,CAAC;aACD,IAAI,CAAC,UAAU,EAAe;gBAAd,YAAI,EAAE,eAAO;YAC5B,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;YACjB,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;QACtB,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,0CAA0C,EAAE,UAAA,CAAC;IAChD,IAAM,OAAO,GAAG,IAAI,qBAAY,EAAE,CAAA;IAClC,IAAM,WAAW,GAAG,WAAI,CAAC,SAAS,EAAE,gCAAgC,CAAC,CAAA;IACrE,MAAM,CAAC,8BAAoB,CAAC,iBAAiB,EAAE;QAC7C,GAAG,EAAE,WAAW;QAChB,OAAO,SAAA;KACR,CAAC;SACC,IAAI,CAAC;QACJ,MAAM,CAAC,aAAQ,CAAC,WAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC,CAAA;IAClE,CAAC,CAAC;SACD,IAAI,CAAC,UAAA,KAAK;QACT,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,0DAA0D,CAAC,CAAA;IAC5E,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA","sourcesContent":["import test = require('blue-tape')\nimport { join } from 'path'\nimport { EventEmitter } from 'events'\nimport nock = require('nock')\nimport { install, installDependencyRaw } from './install'\nimport { readFile, readConfig, writeFile, rimraf } from './utils/fs'\nimport { CONFIG_FILE } from './utils/config'\nimport rc from './utils/rc'\n\ntest('install', t => {\n const emitter = new EventEmitter()\n\n t.test('install everything', t => {\n const FIXTURE_DIR = join(__dirname, '__test__/install-fixture')\n\n return rimraf(join(FIXTURE_DIR, 'typings'))\n .then(() => {\n return install({\n cwd: FIXTURE_DIR,\n emitter\n })\n })\n .then(function () {\n return Promise.all([\n readFile(join(FIXTURE_DIR, 'typings/index.d.ts'), 'utf8'),\n readFile(join(FIXTURE_DIR, 'typings/modules/test/index.d.ts'), 'utf8'),\n readFile(join(FIXTURE_DIR, 'typings/globals/test/index.d.ts'), 'utf8')\n ])\n })\n .then(function ([mainDts, mainFile, globalMainFile]) {\n t.equal(mainDts, [\n `/// <reference path=\"globals/test/index.d.ts\" />`,\n `/// <reference path=\"modules/test/index.d.ts\" />`,\n ``\n ].join('\\n'))\n\n t.equal(mainFile, [\n `// Generated by typings`,\n `// Source: custom_typings/module.d.ts`,\n `declare module \\'test\\' {`,\n `function test (): boolean`,\n ``,\n `export default test`,\n `}`,\n ``\n ].join('\\n'))\n\n t.equal(globalMainFile, [\n `// Generated by typings`,\n `// Source: custom_typings/global.d.ts`,\n `declare module \"x\" {}`,\n ''\n ].join('\\n'))\n })\n })\n\n t.test('install dependency', t => {\n const DEPENDENCY = '@scope/test=file:custom_typings/module.d.ts'\n const REGISTRY_DEPENDENCY = 'registry:dt/node@>=4.0'\n const PEER_DEPENDENCY = 'file:custom_typings/named/typings.json'\n const GLOBAL_DEPENDENCY = 'file:custom_typings/global.d.ts'\n const FIXTURE_DIR = join(__dirname, '__test__/install-dependency-fixture')\n const CONFIG = join(FIXTURE_DIR, CONFIG_FILE)\n\n nock(rc.registryURL)\n .get('/entries/dt/node/versions/%3E%3D4.0/latest')\n .reply(200, {\n tag: '4.0.0+20160226132328',\n version: '4.0.0',\n description: null,\n compiler: null,\n location: 'github:DefinitelyTyped/DefinitelyTyped/node/node.d.ts#48c1e3c1d6baefa4f1a126f188c27c4fefd36bff',\n updated: '2016-02-26T13:23:28.000Z'\n })\n\n nock('https://raw.githubuserstuff.com/')\n .get('/DefinitelyTyped/DefinitelyTyped/48c1e3c1d6baefa4f1a126f188c27c4fefd36bff/node/node.d.ts')\n .reply(200, '// Type definitions for Node.js v4.x')\n\n rc.urlRewrites = { '(.*)content(.*)': '$1stuff$2' }\n\n return writeFile(CONFIG, '{}')\n .then(function () {\n return rimraf(join(FIXTURE_DIR, 'typings'))\n })\n .then(function () {\n return Promise.all([\n installDependencyRaw(DEPENDENCY, {\n cwd: FIXTURE_DIR,\n saveDev: true,\n emitter\n }),\n installDependencyRaw(REGISTRY_DEPENDENCY, {\n cwd: FIXTURE_DIR,\n save: true,\n global: true,\n emitter\n }),\n installDependencyRaw(GLOBAL_DEPENDENCY, {\n cwd: FIXTURE_DIR,\n saveDev: true,\n global: true,\n emitter\n }),\n installDependencyRaw(PEER_DEPENDENCY, {\n cwd: FIXTURE_DIR,\n savePeer: true,\n emitter\n })\n ])\n })\n .then(function () {\n return readConfig(CONFIG)\n })\n .then(function (config) {\n t.deepEqual(config, {\n devDependencies: {\n '@scope/test': 'file:custom_typings/module.d.ts'\n },\n peerDependencies: {\n named: PEER_DEPENDENCY\n },\n globalDependencies: {\n node: 'registry:dt/node#4.0.0+20160226132328'\n },\n globalDevDependencies: {\n global: 'file:custom_typings/global.d.ts'\n }\n })\n })\n .then(\n () => {\n rc.urlRewrites = {}\n },\n () => {\n rc.urlRewrites = {}\n })\n })\n\n t.test('install empty', t => {\n const FIXTURE_DIR = join(__dirname, '__test__/install-empty')\n\n return install({\n cwd: FIXTURE_DIR,\n emitter\n })\n .then(function () {\n return Promise.all([\n readFile(join(FIXTURE_DIR, 'typings/main/index.d.ts'), 'utf8'),\n readFile(join(FIXTURE_DIR, 'typings/browser/index.d.ts'), 'utf8')\n ])\n })\n .then(function ([main, browser]) {\n t.equal(main, '')\n t.equal(browser, '')\n })\n })\n})\n\ntest('install jspm module without package.json', t => {\n const emitter = new EventEmitter()\n const FIXTURE_DIR = join(__dirname, '__test__/jspm-typings-registry')\n return installDependencyRaw('jspm:make-error', {\n cwd: FIXTURE_DIR,\n emitter\n })\n .then(function () {\n return readFile(join(FIXTURE_DIR, 'typings/index.d.ts'), 'utf8')\n })\n .then(index => {\n t.equal(index, '/// <reference path=\"modules/make-error/index.d.ts\" />\\n')\n })\n})\n"]} | ||
| {"version":3,"file":"install.spec.js","sourceRoot":"","sources":["../src/install.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import test = require('blue-tape')\nimport { join } from 'path'\nimport { EventEmitter } from 'events'\nimport nock = require('nock')\nimport { install, installDependencyRaw } from './install'\nimport { readFile, readConfig, writeFile, rimraf } from './utils/fs'\nimport { CONFIG_FILE } from './utils/config'\nimport rc from './utils/rc'\n\ntest('install', t => {\n const emitter = new EventEmitter()\n\n t.test('install everything', t => {\n const FIXTURE_DIR = join(__dirname, '__test__/install-fixture')\n\n return rimraf(join(FIXTURE_DIR, 'typings'))\n .then(() => {\n return install({\n cwd: FIXTURE_DIR,\n emitter\n })\n })\n .then(function () {\n return Promise.all([\n readFile(join(FIXTURE_DIR, 'typings/index.d.ts'), 'utf8'),\n readFile(join(FIXTURE_DIR, 'typings/modules/test/index.d.ts'), 'utf8'),\n readFile(join(FIXTURE_DIR, 'typings/globals/test/index.d.ts'), 'utf8')\n ])\n })\n .then(function ([mainDts, mainFile, globalMainFile]) {\n t.equal(mainDts, [\n `/// <reference path=\"globals/test/index.d.ts\" />`,\n `/// <reference path=\"modules/test/index.d.ts\" />`,\n ``\n ].join('\\n'))\n\n t.equal(mainFile, [\n `// Generated by typings`,\n `// Source: custom_typings/module.d.ts`,\n `declare module \\'test\\' {`,\n `function test (): boolean`,\n ``,\n `export default test`,\n `}`,\n ``\n ].join('\\n'))\n\n t.equal(globalMainFile, [\n `// Generated by typings`,\n `// Source: custom_typings/global.d.ts`,\n `declare module \"x\" {}`,\n ''\n ].join('\\n'))\n })\n })\n\n t.test('install dependency', t => {\n const DEPENDENCY = '@scope/test=file:custom_typings/module.d.ts'\n const REGISTRY_DEPENDENCY = 'registry:dt/node@>=4.0'\n const PEER_DEPENDENCY = 'file:custom_typings/named/typings.json'\n const GLOBAL_DEPENDENCY = 'file:custom_typings/global.d.ts'\n const FIXTURE_DIR = join(__dirname, '__test__/install-dependency-fixture')\n const CONFIG = join(FIXTURE_DIR, CONFIG_FILE)\n\n nock(rc.registryURL)\n .get('/entries/dt/node/versions/%3E%3D4.0/latest')\n .reply(200, {\n tag: '4.0.0+20160226132328',\n version: '4.0.0',\n description: null,\n compiler: null,\n location: 'github:DefinitelyTyped/DefinitelyTyped/node/node.d.ts#48c1e3c1d6baefa4f1a126f188c27c4fefd36bff',\n updated: '2016-02-26T13:23:28.000Z'\n })\n\n nock('https://raw.githubuserstuff.com/')\n .get('/DefinitelyTyped/DefinitelyTyped/48c1e3c1d6baefa4f1a126f188c27c4fefd36bff/node/node.d.ts')\n .reply(200, '// Type definitions for Node.js v4.x')\n\n rc.urlRewrites = { '(.*)content(.*)': '$1stuff$2' }\n\n return writeFile(CONFIG, '{}')\n .then(function () {\n return rimraf(join(FIXTURE_DIR, 'typings'))\n })\n .then(function () {\n return Promise.all([\n installDependencyRaw(DEPENDENCY, {\n cwd: FIXTURE_DIR,\n saveDev: true,\n emitter\n }),\n installDependencyRaw(REGISTRY_DEPENDENCY, {\n cwd: FIXTURE_DIR,\n save: true,\n global: true,\n emitter\n }),\n installDependencyRaw(GLOBAL_DEPENDENCY, {\n cwd: FIXTURE_DIR,\n saveDev: true,\n global: true,\n emitter\n }),\n installDependencyRaw(PEER_DEPENDENCY, {\n cwd: FIXTURE_DIR,\n savePeer: true,\n emitter\n })\n ])\n })\n .then(function () {\n return readConfig(CONFIG)\n })\n .then(function (config) {\n t.deepEqual(config, {\n devDependencies: {\n '@scope/test': 'file:custom_typings/module.d.ts'\n },\n peerDependencies: {\n named: PEER_DEPENDENCY\n },\n globalDependencies: {\n node: 'registry:dt/node#4.0.0+20160226132328'\n },\n globalDevDependencies: {\n global: 'file:custom_typings/global.d.ts'\n }\n })\n })\n .then(\n () => {\n rc.urlRewrites = {}\n },\n () => {\n rc.urlRewrites = {}\n })\n })\n\n t.test('install empty', t => {\n const FIXTURE_DIR = join(__dirname, '__test__/install-empty')\n\n return install({\n cwd: FIXTURE_DIR,\n emitter\n })\n .then(function () {\n return Promise.all([\n readFile(join(FIXTURE_DIR, 'typings/main/index.d.ts'), 'utf8'),\n readFile(join(FIXTURE_DIR, 'typings/browser/index.d.ts'), 'utf8')\n ])\n })\n .then(function ([main, browser]) {\n t.equal(main, '')\n t.equal(browser, '')\n })\n })\n})\n\ntest('install jspm module without package.json', t => {\n const emitter = new EventEmitter()\n const FIXTURE_DIR = join(__dirname, '__test__/jspm-typings-registry')\n return installDependencyRaw('jspm:make-error', {\n cwd: FIXTURE_DIR,\n emitter\n })\n .then(function () {\n return readFile(join(FIXTURE_DIR, 'typings/index.d.ts'), 'utf8')\n })\n .then(index => {\n t.equal(index, '/// <reference path=\"modules/make-error/index.d.ts\" />\\n')\n })\n})\n"]} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| //# sourceMappingURL=interfaces.js.map |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| //# sourceMappingURL=config.js.map |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| //# sourceMappingURL=dependencies.js.map |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| //# sourceMappingURL=emitter.js.map |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| //# sourceMappingURL=rc.js.map |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var ts = require("typescript"); | ||
@@ -3,0 +4,0 @@ var extend = require("xtend"); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/lib/compile.ts"],"names":[],"mappings":"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","sourcesContent":["import * as ts from 'typescript'\nimport extend = require('xtend')\nimport has = require('has')\nimport { join, relative, basename } from 'path'\nimport { DependencyTree, Overrides, Emitter } from '../interfaces'\nimport { readFileFrom } from '../utils/fs'\nimport { EOL, normalizeEOL } from '../utils/path'\nimport {\n resolveFrom,\n relativeTo,\n isHttp,\n isModuleName,\n normalizeSlashes,\n pathFromDefinition,\n normalizeToDefinition,\n appendToPath\n} from '../utils/path'\nimport { REFERENCE_REGEXP } from '../utils/references'\nimport { PROJECT_NAME, DEPENDENCY_SEPARATOR } from '../utils/config'\nimport TypingsError from './error'\n\n/**\n * Options interface. Supply a name and the current working directory.\n */\nexport interface Options {\n cwd: string\n name: string\n global: boolean\n meta: boolean\n emitter: Emitter\n}\n\n/**\n * Result of compiling multiple resolutions.\n */\nexport interface ResolutionResult {\n main?: string\n browser?: string\n [name: string]: string\n}\n\n/**\n * The compiled output data.\n */\nexport interface CompileResult {\n cwd: string\n name: string\n tree: DependencyTree\n results: ResolutionResult\n global: boolean\n}\n\n/**\n * Compile a dependency tree using a root name.\n */\nexport function compile (tree: DependencyTree, resolutions: string[], options: Options): Promise<CompileResult> {\n const { name, cwd, global } = options\n const fileCache: ts.MapLike<Promise<string>> = {}\n\n // Ensure the global installation is valid.\n if (tree.global && !global) {\n return Promise.reject(new TypingsError(\n `Unable to compile \"${name}\", the typings are meant to be installed as ` +\n `global but attempted to be compiled as an external module`\n ))\n }\n\n // Ensure the resolution is a valid target.\n for (const resolution of resolutions) {\n if (resolution !== 'main' && resolution !== 'browser') {\n return Promise.reject(new TypingsError(\n `Unable to resolve using \"${resolution}\" setting`\n ))\n }\n }\n\n return Promise.all(resolutions.map(resolution => {\n const resolved: ts.MapLike<string> = {}\n const imported: ts.MapLike<Promise<ModuleInfo>> = {}\n\n return compileDependencyTree(tree, extend(options, {\n resolution,\n fileCache,\n imported,\n resolved\n }))\n }))\n .then((output) => {\n const results: ResolutionResult = {}\n\n for (let i = 0; i < output.length; i++) {\n results[resolutions[i]] = output[i]\n }\n\n return {\n cwd,\n name,\n tree,\n global,\n results\n }\n })\n}\n\n/**\n * Extends the default options with different compilation settings.\n */\ninterface CompileOptions extends Options {\n resolution: string\n fileCache: ts.MapLike<Promise<string>>\n resolved: ts.MapLike<string>\n imported: ts.MapLike<Promise<ModuleInfo>>\n emitter: Emitter\n}\n\n/**\n * Resolve import.\n */\nfunction resolveImportFrom (from: string, to: string) {\n return isModuleName(to) ? to : resolveFrom(from, to)\n}\n\n/**\n * Resolve override paths.\n */\nfunction resolveOverride (src: string, to: string | boolean, tree: DependencyTree): string {\n if (typeof to === 'string') {\n if (isModuleName(to)) {\n const [moduleName, modulePath] = getModuleNameParts(to, tree)\n\n return modulePath ? normalizeToDefinition(to) : moduleName\n }\n\n return resolveFrom(src, normalizeToDefinition(to))\n }\n\n return to ? src : undefined\n}\n\n/**\n * Get stringify options for a dependency.\n */\nfunction getStringifyOptions (\n tree: DependencyTree,\n options: CompileOptions,\n parent: StringifyOptions\n): StringifyOptions {\n const overrides: Overrides = {}\n const isTypings = typeof tree.typings === 'string'\n const main = isTypings ? tree.typings : tree.main\n const browser = isTypings ? tree.browserTypings : tree.browser\n\n if (options.resolution === 'browser' && browser) {\n if (typeof browser === 'string') {\n const mainDefinition = resolveFrom(tree.src, normalizeToDefinition(main))\n const browserDefinition = resolveFrom(tree.src, normalizeToDefinition(browser))\n\n overrides[mainDefinition] = browserDefinition\n } else {\n for (const key of Object.keys(browser)) {\n const from = resolveOverride(tree.src, key, tree) as string\n const to = resolveOverride(tree.src, browser[key], tree)\n\n overrides[from] = to\n }\n }\n }\n\n const referenced: ts.MapLike<boolean> = {}\n const dependencies: ts.MapLike<StringifyOptions> = {}\n const entry = main == null ? undefined : normalizeToDefinition(main)\n const prefix = `${parent ? parent.prefix : ''}${DEPENDENCY_SEPARATOR}${options.name}`\n\n return extend(options, {\n tree,\n entry,\n prefix,\n overrides,\n referenced,\n dependencies,\n parent\n })\n}\n\n/**\n * Compile a dependency tree to a single definition.\n */\nfunction compileDependencyTree (tree: DependencyTree, options: CompileOptions): Promise<string> {\n const stringifyOptions = getStringifyOptions(tree, options, undefined)\n const contents: Array<Promise<string>> = []\n const { name, global, resolution } = options\n\n options.emitter.emit('compiledependency', { tree, global, name, resolution })\n\n if (Array.isArray(tree.files)) {\n for (const file of tree.files) {\n contents.push(stringifyDependencyImport(resolveFrom(tree.src, file), DependencyImport.ALL_PATHS, false, stringifyOptions))\n }\n }\n\n if (stringifyOptions.entry) {\n contents.push(stringifyDependencyImport(resolveFrom(tree.src, stringifyOptions.entry), DependencyImport.ALL_PATHS, true, stringifyOptions))\n }\n\n if (contents.length === 0) {\n contents.push(stringifyDependencyImport(resolveFrom(tree.src, 'index.d.ts'), DependencyImport.DEFAULT_ONLY, true, stringifyOptions))\n }\n\n return Promise.all(contents).then(out => out.join(EOL))\n}\n\n/**\n * Stringify options extend the compiler options.\n */\ninterface StringifyOptions extends CompileOptions {\n entry: string\n prefix: string\n overrides: Overrides\n referenced: ts.MapLike<boolean>\n dependencies: ts.MapLike<StringifyOptions>\n tree: DependencyTree\n parent: StringifyOptions\n}\n\n/**\n * Read a file with a backup cache object.\n */\nfunction cachedReadFileFrom (path: string, options: StringifyOptions) {\n if (!has(options.fileCache, path)) {\n options.fileCache[path] = readFileFrom(path)\n }\n\n return options.fileCache[path]\n}\n\n/**\n * Return cached stringify options from the current options object.\n */\nfunction cachedStringifyOptions (name: string, compileOptions: CompileOptions, options: StringifyOptions) {\n if (!has(options.dependencies, name)) {\n const branch = options.tree.dependencies[name]\n\n if (branch) {\n options.dependencies[name] = getStringifyOptions(branch, compileOptions, options)\n } else {\n options.dependencies[name] = null\n }\n }\n\n return options.dependencies[name]\n}\n\n/**\n * Get possible path and dependency overrides.\n */\nfunction getPath (path: string, options: StringifyOptions) {\n if (has(options.overrides, path)) {\n return options.overrides[path]\n }\n\n return path\n}\n\n/**\n * Track options per-file.\n */\ninterface ModuleInfo {\n parent?: ModuleInfo\n path: string\n modulePath: string\n isEntry: boolean\n options: StringifyOptions\n sourceFile: ts.SourceFile\n fileInfo: ts.PreProcessedFileInfo\n}\n\n/**\n * Valid dependency import path resolution methods.\n */\nenum DependencyImport {\n DEFAULT_ONLY,\n SUFFIXES_ONLY,\n ALL_PATHS\n}\n\n/**\n * Transform a path and dependency import mode into the list of paths to test.\n */\nfunction getDependencyImportPaths (importPath: string, mode: DependencyImport) {\n const paths: string[] = []\n\n if (mode === DependencyImport.DEFAULT_ONLY || mode === DependencyImport.ALL_PATHS) {\n paths.push(importPath)\n }\n\n if (mode === DependencyImport.SUFFIXES_ONLY || mode === DependencyImport.ALL_PATHS) {\n paths.push(appendToPath(importPath, '.d.ts'), appendToPath(importPath, '/index.d.ts'))\n }\n\n return paths\n}\n\n/**\n * Try to resolve a dependency import.\n */\nfunction readDependencyImport (importPath: string, mode: DependencyImport, isEntry: boolean, stringifyOptions: StringifyOptions, parent?: ModuleInfo) {\n // Make an attempt at compiling the raw path and mapping module imports.\n function attempt (cause: Error, paths: string[], index: number, isEntry: boolean, options: StringifyOptions): Promise<ModuleInfo | null> {\n const { cwd, tree, resolution, fileCache, resolved, imported, emitter, meta } = options\n\n // Skip future resolution attempts.\n if (index >= paths.length) {\n const authorPhrase = options.parent ? `The author of \"${options.parent.name}\" needs to` : 'You should'\n const relativePath = isModuleName(importPath) ? importPath : relativeTo(options.tree.src, importPath)\n\n if (isEntry) {\n return Promise.reject(new TypingsError(\n `Unable to read typings for \"${options.name}\". ` +\n `${authorPhrase} check the entry paths in \"${basename(options.tree.src)}\" are up to date`,\n cause\n ))\n }\n\n return Promise.reject(new TypingsError(\n `Unable to read \"${relativePath}\" from \"${options.name}\". ` +\n `${authorPhrase} validate all import paths are accurate (case sensitive and relative)`,\n cause\n ))\n }\n\n const path = getPath(paths[index], options)\n\n if (isModuleName(path)) {\n const [moduleName, modulePath] = getModuleNameParts(path, tree)\n\n const childOptions = cachedStringifyOptions(moduleName, {\n cwd,\n resolution,\n fileCache,\n emitter,\n imported,\n resolved,\n name: moduleName,\n global: false,\n meta\n }, options)\n\n // When no options are returned, the dependency is a global and should be ignored.\n if (!childOptions) {\n stringifyOptions.resolved[getCachePath(importPath, stringifyOptions, false)] = path\n\n return Promise.resolve(null)\n }\n\n const paths = getDependencyImportPaths(\n resolveFrom(childOptions.tree.src, modulePath || childOptions.entry || 'index.d.ts'),\n modulePath ? DependencyImport.SUFFIXES_ONLY : (childOptions.entry ? DependencyImport.ALL_PATHS : DependencyImport.DEFAULT_ONLY)\n )\n\n return attempt(null, paths, 0, true, childOptions)\n }\n\n const cached = has(options.imported, path)\n\n // Avoid loading the same path twice.\n if (!cached) {\n options.imported[path] = readFileFrom(path).then(\n function (contents) {\n const fileInfo = ts.preProcessFile(contents)\n const sourceFile = ts.createSourceFile(path, contents.replace(REFERENCE_REGEXP, ''), ts.ScriptTarget.Latest, true)\n const modulePath = getCachePath(path, options, true)\n const moduleInfo: ModuleInfo = { path, modulePath, isEntry, parent, sourceFile, options, fileInfo }\n\n return moduleInfo\n },\n function (err) {\n if (err.code === 'ENOENT' || err.code === 'ENOTDIR' || err.code === 'EISDIR' || err.code === 'EINVALIDSTATUS') {\n return attempt(err, paths, index + 1, isEntry, options)\n }\n\n return Promise.reject(err)\n }\n )\n }\n\n return options.imported[path].then((moduleInfo) => {\n // When `moduleInfo` is defined, set the resolution path. It can sometimes\n // be undefined in the case when subsequent resolution attempts have resulted\n // in a different resolution method but the same cache hit.\n // Example: `./foo -> ./bar` and `./foo/bar/baz -> ./index`.\n if (moduleInfo) {\n // Cache at the original import path.\n stringifyOptions.resolved[getCachePath(importPath, stringifyOptions, false)] = moduleInfo.modulePath\n }\n\n return !cached ? moduleInfo : undefined\n })\n }\n\n return attempt(null, getDependencyImportPaths(importPath, mode), 0, isEntry, stringifyOptions)\n}\n\n/**\n * Try to stringify a dependency import.\n */\nfunction stringifyDependencyImport (importPath: string, mode: DependencyImport, isEntry: boolean, options: StringifyOptions, parent?: ModuleInfo) {\n return readDependencyImport(importPath, mode, isEntry, options, parent)\n .then((info) => info ? stringifyDependencyPath(info) : undefined)\n}\n\n/**\n * Return the path for the module.\n */\nfunction getCachePath (originalPath: string, options: StringifyOptions, strip: boolean) {\n const path = strip ? pathFromDefinition(originalPath) : originalPath\n\n if (isModuleName(path)) {\n return normalizeSlashes(`${options.prefix}${DEPENDENCY_SEPARATOR}${path}`)\n }\n\n return normalizeSlashes(join(options.prefix, relativeTo(options.tree.src, path)))\n}\n\n/**\n * Stringify a dependency file.\n */\nfunction stringifyDependencyPath (moduleInfo: ModuleInfo): Promise<string> {\n const { path, options, sourceFile, fileInfo } = moduleInfo\n const { tree, global, resolution, name, prefix, emitter } = options\n\n // Emit compile events for progression.\n emitter.emit('compile', { name, prefix, path, tree, resolution })\n\n const importedFiles = fileInfo.importedFiles.map(x => resolveImportFrom(path, x.fileName))\n const referencedFiles = fileInfo.referencedFiles.map(x => resolveFrom(path, x.fileName))\n\n // All dependencies MUST be imported for global modules.\n if (global) {\n Object.keys(tree.dependencies).forEach(x => importedFiles.push(x))\n }\n\n const imports = importedFiles.map(importedFile => {\n const mode = isModuleName(importedFile) ? DependencyImport.DEFAULT_ONLY : DependencyImport.SUFFIXES_ONLY\n\n return stringifyDependencyImport(importedFile, mode, false, options, moduleInfo)\n })\n\n return Promise.all(imports).then(imports => {\n const stringified = stringifyModuleFile(moduleInfo)\n\n for (const reference of referencedFiles) {\n emitter.emit('reference', { name, prefix, path, reference, tree, resolution })\n }\n\n const contents = imports.filter(x => x != null).concat(stringified).join(EOL)\n\n emitter.emit('compiled', { name, prefix, path, tree, resolution, contents })\n\n return contents\n })\n}\n\n/**\n * Separate the module name into pieces.\n */\nfunction getModuleNameParts (name: string, tree: DependencyTree): [string, string] {\n const parts = name.split(/[\\\\\\/]/g)\n let len = parts.length\n\n while (len) {\n len--\n\n const name = parts.slice(0, len).join('/')\n const path = parts.slice(len).join('/')\n\n if (tree.dependencies[name]) {\n return [name, path]\n }\n }\n\n return [parts.join('/'), null]\n}\n\n/**\n * Normalize import paths against the prefix.\n */\nfunction getImportPath (path: string, options: StringifyOptions) {\n return options.resolved[getCachePath(path, options, false)]\n}\n\n/**\n * Stringify a dependency file contents.\n */\nfunction stringifyModuleFile (info: ModuleInfo) {\n const { options, modulePath } = info\n const { tree, name, prefix, parent, cwd, global } = options\n\n // Output information for the original type source.\n const source = isHttp(info.path) ? info.path : normalizeSlashes(relative(cwd, info.path))\n const meta = options.meta ? `// Generated by ${PROJECT_NAME}${EOL}// Source: ${source}${EOL}` : ''\n\n if (global) {\n if (ts.isExternalModule(info.sourceFile)) {\n throw new TypingsError(\n `Attempted to compile \"${name}\" as a global ` +\n `module, but it looks like an external module. ` +\n `You'll need to remove the global option to continue.`\n )\n }\n\n return `${meta}${normalizeEOL(info.sourceFile.getText().trim(), EOL)}${EOL}`\n } else {\n if (!ts.isExternalModule(info.sourceFile) && !(info.parent && ts.isExternalModule(info.parent.sourceFile))) {\n throw new TypingsError(\n `Attempted to compile \"${name}\" as an external module, ` +\n `but it looks like a global module. ` +\n `You'll need to enable the global option to continue.`\n )\n }\n }\n\n let hasExports = false\n let hasDefaultExport = false\n let hasExportEquals = false\n let hasLocalImports = false\n let wasDeclared = false\n\n // Custom replacer function to rewrite the file.\n function replacer (node: ts.Node) {\n // Flag `export =` as the main re-definition needs to be written different.\n if (node.kind === ts.SyntaxKind.ExportAssignment) {\n hasDefaultExport = !(node as ts.ExportAssignment).isExportEquals\n hasExportEquals = !hasDefaultExport\n } else if (node.kind === ts.SyntaxKind.ExportDeclaration) {\n hasExports = true\n } else if (node.kind === ts.SyntaxKind.ExportSpecifier) {\n hasDefaultExport = hasDefaultExport || (node as ts.ExportSpecifier).name.getText() === 'default'\n }\n\n const flags = ts.getCombinedModifierFlags(node)\n\n hasExports = hasExports || !!(flags & ts.ModifierFlags.Export)\n hasDefaultExport = hasDefaultExport || !!(flags & ts.ModifierFlags.Default)\n\n if (\n node.kind === ts.SyntaxKind.StringLiteral &&\n (\n node.parent.kind === ts.SyntaxKind.ExportDeclaration ||\n node.parent.kind === ts.SyntaxKind.ImportDeclaration ||\n node.parent.kind === ts.SyntaxKind.ModuleDeclaration\n )\n ) {\n hasLocalImports = hasLocalImports || !isModuleName((node as ts.StringLiteral).text)\n\n return ` '${getImportPath(resolveImportFrom(info.path, (node as ts.StringLiteral).text), options)}'`\n }\n\n if (node.kind === ts.SyntaxKind.DeclareKeyword) {\n // Notify the reader to remove leading trivia.\n wasDeclared = true\n\n return info.sourceFile.text.slice(node.getFullStart(), node.getStart())\n }\n\n if (node.kind === ts.SyntaxKind.ExternalModuleReference) {\n const requirePath = getImportPath(resolveImportFrom(info.path, (node as any).expression.text), options)\n\n return ` require('${requirePath}')`\n }\n }\n\n // Read through the file.\n function read (start: number, end: number) {\n const text = info.sourceFile.text.slice(start, end)\n\n // Trim leading whitespace.\n if (start === 0) {\n return text.replace(/^\\s+$/, '')\n }\n\n // Trim trailing whitespace.\n if (end == null) {\n return text.replace(/\\s+$/, '')\n }\n\n // Remove leading whitespace from the statement after \"declare\".\n if (wasDeclared) {\n wasDeclared = false\n\n return text.replace(/^\\s+/, '')\n }\n\n return text\n }\n\n const moduleText = normalizeEOL(processTree(info.sourceFile, replacer, read), EOL)\n const moduleName = parent && parent.global ? name : modulePath\n\n // Direct usage of definition/typings. This is *not* a psuedo-module.\n if (info.isEntry && !hasLocalImports) {\n return meta + declareText(parent ? moduleName : name, moduleText)\n }\n\n const prettyPath = normalizeSlashes(join(name, relativeTo(tree.src, pathFromDefinition(info.path))))\n const declared = meta + declareText(modulePath, moduleText)\n\n // Create an alias/proxy module namespace to expose the implementation.\n function alias (name: string) {\n const imports: string[] = []\n\n if (hasExportEquals) {\n imports.push(`import main = require('${modulePath}');`)\n imports.push(`export = main;`)\n } else {\n if (hasExports) {\n imports.push(`export * from '${modulePath}';`)\n }\n\n if (hasDefaultExport) {\n imports.push(`export { default } from '${modulePath}';`)\n }\n }\n\n // No aliases, nothing exported.\n if (imports.length === 0) {\n return ''\n }\n\n return declareText(name, imports.join(EOL))\n }\n\n if (info.isEntry && !parent) {\n return declared + alias(prettyPath) + alias(name)\n }\n\n return declared + (parent ? '' : alias(prettyPath))\n}\n\n/**\n * Declare a module.\n */\nfunction declareText (name: string, text: string) {\n return `declare module '${name}' {${text ? EOL + text + EOL : ''}}${EOL}`\n}\n\n/**\n * Rewrite TypeScript source files.\n *\n * Reference: https://github.com/SitePen/dts-generator/blob/22402351ffd953bf32344a0e48f2ba073fc5b65a/index.ts#L70-L101\n */\nfunction processTree (\n sourceFile: ts.SourceFile,\n replacer: (node: ts.Node) => string,\n reader: (start: number, end?: number) => string\n): string {\n let code = ''\n let position = 0\n\n function skip (node: ts.Node) {\n position = node.end\n }\n\n function readThrough (node: ts.Node) {\n if (node.pos > position) {\n code += reader(position, node.pos)\n position = node.pos\n }\n }\n\n function visit (node: ts.Node) {\n readThrough(node)\n\n const replacement = replacer(node)\n\n if (replacement != null) {\n code += replacement\n skip(node)\n } else {\n ts.forEachChild(node, visit)\n }\n }\n\n visit(sourceFile)\n\n code += reader(position)\n\n return code\n}\n"]} | ||
| {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/lib/compile.ts"],"names":[],"mappings":"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","sourcesContent":["import * as ts from 'typescript'\nimport extend = require('xtend')\nimport has = require('has')\nimport { join, relative, basename } from 'path'\nimport { DependencyTree, Overrides, Emitter } from '../interfaces'\nimport { readFileFrom } from '../utils/fs'\nimport { EOL, normalizeEOL } from '../utils/path'\nimport {\n resolveFrom,\n relativeTo,\n isHttp,\n isModuleName,\n normalizeSlashes,\n pathFromDefinition,\n normalizeToDefinition,\n appendToPath\n} from '../utils/path'\nimport { REFERENCE_REGEXP } from '../utils/references'\nimport { PROJECT_NAME, DEPENDENCY_SEPARATOR } from '../utils/config'\nimport TypingsError from './error'\n\n/**\n * Options interface. Supply a name and the current working directory.\n */\nexport interface Options {\n cwd: string\n name: string\n global: boolean\n meta: boolean\n emitter: Emitter\n}\n\n/**\n * Result of compiling multiple resolutions.\n */\nexport interface ResolutionResult {\n main?: string\n browser?: string\n [name: string]: string\n}\n\n/**\n * The compiled output data.\n */\nexport interface CompileResult {\n cwd: string\n name: string\n tree: DependencyTree\n results: ResolutionResult\n global: boolean\n}\n\n/**\n * Compile a dependency tree using a root name.\n */\nexport function compile (tree: DependencyTree, resolutions: string[], options: Options): Promise<CompileResult> {\n const { name, cwd, global } = options\n const fileCache: ts.MapLike<Promise<string>> = {}\n\n // Ensure the global installation is valid.\n if (tree.global && !global) {\n return Promise.reject(new TypingsError(\n `Unable to compile \"${name}\", the typings are meant to be installed as ` +\n `global but attempted to be compiled as an external module`\n ))\n }\n\n // Ensure the resolution is a valid target.\n for (const resolution of resolutions) {\n if (resolution !== 'main' && resolution !== 'browser') {\n return Promise.reject(new TypingsError(\n `Unable to resolve using \"${resolution}\" setting`\n ))\n }\n }\n\n return Promise.all(resolutions.map(resolution => {\n const resolved: ts.MapLike<string> = {}\n const imported: ts.MapLike<Promise<ModuleInfo>> = {}\n\n return compileDependencyTree(tree, extend(options, {\n resolution,\n fileCache,\n imported,\n resolved\n }))\n }))\n .then((output) => {\n const results: ResolutionResult = {}\n\n for (let i = 0; i < output.length; i++) {\n results[resolutions[i]] = output[i]\n }\n\n return {\n cwd,\n name,\n tree,\n global,\n results\n }\n })\n}\n\n/**\n * Extends the default options with different compilation settings.\n */\ninterface CompileOptions extends Options {\n resolution: string\n fileCache: ts.MapLike<Promise<string>>\n resolved: ts.MapLike<string>\n imported: ts.MapLike<Promise<ModuleInfo>>\n emitter: Emitter\n}\n\n/**\n * Resolve import.\n */\nfunction resolveImportFrom (from: string, to: string) {\n return isModuleName(to) ? to : resolveFrom(from, to)\n}\n\n/**\n * Resolve override paths.\n */\nfunction resolveOverride (src: string, to: string | boolean, tree: DependencyTree): string {\n if (typeof to === 'string') {\n if (isModuleName(to)) {\n const [moduleName, modulePath] = getModuleNameParts(to, tree)\n\n return modulePath ? normalizeToDefinition(to) : moduleName\n }\n\n return resolveFrom(src, normalizeToDefinition(to))\n }\n\n return to ? src : undefined\n}\n\n/**\n * Get stringify options for a dependency.\n */\nfunction getStringifyOptions (\n tree: DependencyTree,\n options: CompileOptions,\n parent: StringifyOptions\n): StringifyOptions {\n const overrides: Overrides = {}\n const isTypings = typeof tree.typings === 'string'\n const main = isTypings ? tree.typings : tree.main\n const browser = isTypings ? tree.browserTypings : tree.browser\n\n if (options.resolution === 'browser' && browser) {\n if (typeof browser === 'string') {\n const mainDefinition = resolveFrom(tree.src, normalizeToDefinition(main))\n const browserDefinition = resolveFrom(tree.src, normalizeToDefinition(browser))\n\n overrides[mainDefinition] = browserDefinition\n } else {\n for (const key of Object.keys(browser)) {\n const from = resolveOverride(tree.src, key, tree) as string\n const to = resolveOverride(tree.src, browser[key], tree)\n\n overrides[from] = to\n }\n }\n }\n\n const referenced: ts.MapLike<boolean> = {}\n const dependencies: ts.MapLike<StringifyOptions> = {}\n const entry = main == null ? undefined : normalizeToDefinition(main)\n const prefix = `${parent ? parent.prefix : ''}${DEPENDENCY_SEPARATOR}${options.name}`\n\n return extend(options, {\n tree,\n entry,\n prefix,\n overrides,\n referenced,\n dependencies,\n parent\n })\n}\n\n/**\n * Compile a dependency tree to a single definition.\n */\nfunction compileDependencyTree (tree: DependencyTree, options: CompileOptions): Promise<string> {\n const stringifyOptions = getStringifyOptions(tree, options, undefined)\n const contents: Array<Promise<string>> = []\n const { name, global, resolution } = options\n\n options.emitter.emit('compiledependency', { tree, global, name, resolution })\n\n if (Array.isArray(tree.files)) {\n for (const file of tree.files) {\n contents.push(stringifyDependencyImport(resolveFrom(tree.src, file), DependencyImport.ALL_PATHS, false, stringifyOptions))\n }\n }\n\n if (stringifyOptions.entry) {\n contents.push(stringifyDependencyImport(resolveFrom(tree.src, stringifyOptions.entry), DependencyImport.ALL_PATHS, true, stringifyOptions))\n }\n\n if (contents.length === 0) {\n contents.push(stringifyDependencyImport(resolveFrom(tree.src, 'index.d.ts'), DependencyImport.DEFAULT_ONLY, true, stringifyOptions))\n }\n\n return Promise.all(contents).then(out => out.join(EOL))\n}\n\n/**\n * Stringify options extend the compiler options.\n */\ninterface StringifyOptions extends CompileOptions {\n entry: string\n prefix: string\n overrides: Overrides\n referenced: ts.MapLike<boolean>\n dependencies: ts.MapLike<StringifyOptions>\n tree: DependencyTree\n parent: StringifyOptions\n}\n\n/**\n * Read a file with a backup cache object.\n */\nfunction cachedReadFileFrom (path: string, options: StringifyOptions) {\n if (!has(options.fileCache, path)) {\n options.fileCache[path] = readFileFrom(path)\n }\n\n return options.fileCache[path]\n}\n\n/**\n * Return cached stringify options from the current options object.\n */\nfunction cachedStringifyOptions (name: string, compileOptions: CompileOptions, options: StringifyOptions) {\n if (!has(options.dependencies, name)) {\n const branch = options.tree.dependencies[name]\n\n if (branch) {\n options.dependencies[name] = getStringifyOptions(branch, compileOptions, options)\n } else {\n options.dependencies[name] = null\n }\n }\n\n return options.dependencies[name]\n}\n\n/**\n * Get possible path and dependency overrides.\n */\nfunction getPath (path: string, options: StringifyOptions) {\n if (has(options.overrides, path)) {\n return options.overrides[path]\n }\n\n return path\n}\n\n/**\n * Track options per-file.\n */\ninterface ModuleInfo {\n parent?: ModuleInfo\n path: string\n modulePath: string\n isEntry: boolean\n options: StringifyOptions\n sourceFile: ts.SourceFile\n fileInfo: ts.PreProcessedFileInfo\n}\n\n/**\n * Valid dependency import path resolution methods.\n */\nenum DependencyImport {\n DEFAULT_ONLY,\n SUFFIXES_ONLY,\n ALL_PATHS\n}\n\n/**\n * Transform a path and dependency import mode into the list of paths to test.\n */\nfunction getDependencyImportPaths (importPath: string, mode: DependencyImport) {\n const paths: string[] = []\n\n if (mode === DependencyImport.DEFAULT_ONLY || mode === DependencyImport.ALL_PATHS) {\n paths.push(importPath)\n }\n\n if (mode === DependencyImport.SUFFIXES_ONLY || mode === DependencyImport.ALL_PATHS) {\n paths.push(appendToPath(importPath, '.d.ts'), appendToPath(importPath, '/index.d.ts'))\n }\n\n return paths\n}\n\n/**\n * Try to resolve a dependency import.\n */\nfunction readDependencyImport (importPath: string, mode: DependencyImport, isEntry: boolean, stringifyOptions: StringifyOptions, parent?: ModuleInfo) {\n // Make an attempt at compiling the raw path and mapping module imports.\n function attempt (cause: Error, paths: string[], index: number, isEntry: boolean, options: StringifyOptions): Promise<ModuleInfo | null> {\n const { cwd, tree, resolution, fileCache, resolved, imported, emitter, meta } = options\n\n // Skip future resolution attempts.\n if (index >= paths.length) {\n const authorPhrase = options.parent ? `The author of \"${options.parent.name}\" needs to` : 'You should'\n const relativePath = isModuleName(importPath) ? importPath : relativeTo(options.tree.src, importPath)\n\n if (isEntry) {\n return Promise.reject(new TypingsError(\n `Unable to read typings for \"${options.name}\". ` +\n `${authorPhrase} check the entry paths in \"${basename(options.tree.src)}\" are up to date`,\n cause\n ))\n }\n\n return Promise.reject(new TypingsError(\n `Unable to read \"${relativePath}\" from \"${options.name}\". ` +\n `${authorPhrase} validate all import paths are accurate (case sensitive and relative)`,\n cause\n ))\n }\n\n const path = getPath(paths[index], options)\n\n if (isModuleName(path)) {\n const [moduleName, modulePath] = getModuleNameParts(path, tree)\n\n const childOptions = cachedStringifyOptions(moduleName, {\n cwd,\n resolution,\n fileCache,\n emitter,\n imported,\n resolved,\n name: moduleName,\n global: false,\n meta\n }, options)\n\n // When no options are returned, the dependency is a global and should be ignored.\n if (!childOptions) {\n stringifyOptions.resolved[getCachePath(importPath, stringifyOptions, false)] = path\n\n return Promise.resolve(null)\n }\n\n const paths = getDependencyImportPaths(\n resolveFrom(childOptions.tree.src, modulePath || childOptions.entry || 'index.d.ts'),\n modulePath ? DependencyImport.SUFFIXES_ONLY : (childOptions.entry ? DependencyImport.ALL_PATHS : DependencyImport.DEFAULT_ONLY)\n )\n\n return attempt(null, paths, 0, true, childOptions)\n }\n\n const cached = has(options.imported, path)\n\n // Avoid loading the same path twice.\n if (!cached) {\n options.imported[path] = readFileFrom(path).then(\n function (contents) {\n const fileInfo = ts.preProcessFile(contents)\n const sourceFile = ts.createSourceFile(path, contents.replace(REFERENCE_REGEXP, ''), ts.ScriptTarget.Latest, true)\n const modulePath = getCachePath(path, options, true)\n const moduleInfo: ModuleInfo = { path, modulePath, isEntry, parent, sourceFile, options, fileInfo }\n\n return moduleInfo\n },\n function (err) {\n if (err.code === 'ENOENT' || err.code === 'ENOTDIR' || err.code === 'EISDIR' || err.code === 'EINVALIDSTATUS') {\n return attempt(err, paths, index + 1, isEntry, options)\n }\n\n return Promise.reject(err)\n }\n )\n }\n\n return options.imported[path].then((moduleInfo) => {\n // When `moduleInfo` is defined, set the resolution path. It can sometimes\n // be undefined in the case when subsequent resolution attempts have resulted\n // in a different resolution method but the same cache hit.\n // Example: `./foo -> ./bar` and `./foo/bar/baz -> ./index`.\n if (moduleInfo) {\n // Cache at the original import path.\n stringifyOptions.resolved[getCachePath(importPath, stringifyOptions, false)] = moduleInfo.modulePath\n }\n\n return !cached ? moduleInfo : undefined\n })\n }\n\n return attempt(null, getDependencyImportPaths(importPath, mode), 0, isEntry, stringifyOptions)\n}\n\n/**\n * Try to stringify a dependency import.\n */\nfunction stringifyDependencyImport (importPath: string, mode: DependencyImport, isEntry: boolean, options: StringifyOptions, parent?: ModuleInfo) {\n return readDependencyImport(importPath, mode, isEntry, options, parent)\n .then((info) => info ? stringifyDependencyPath(info) : undefined)\n}\n\n/**\n * Return the path for the module.\n */\nfunction getCachePath (originalPath: string, options: StringifyOptions, strip: boolean) {\n const path = strip ? pathFromDefinition(originalPath) : originalPath\n\n if (isModuleName(path)) {\n return normalizeSlashes(`${options.prefix}${DEPENDENCY_SEPARATOR}${path}`)\n }\n\n return normalizeSlashes(join(options.prefix, relativeTo(options.tree.src, path)))\n}\n\n/**\n * Stringify a dependency file.\n */\nfunction stringifyDependencyPath (moduleInfo: ModuleInfo): Promise<string> {\n const { path, options, sourceFile, fileInfo } = moduleInfo\n const { tree, global, resolution, name, prefix, emitter } = options\n\n // Emit compile events for progression.\n emitter.emit('compile', { name, prefix, path, tree, resolution })\n\n const importedFiles = fileInfo.importedFiles.map(x => resolveImportFrom(path, x.fileName))\n const referencedFiles = fileInfo.referencedFiles.map(x => resolveFrom(path, x.fileName))\n\n // All dependencies MUST be imported for global modules.\n if (global) {\n Object.keys(tree.dependencies).forEach(x => importedFiles.push(x))\n }\n\n const imports = importedFiles.map(importedFile => {\n const mode = isModuleName(importedFile) ? DependencyImport.DEFAULT_ONLY : DependencyImport.SUFFIXES_ONLY\n\n return stringifyDependencyImport(importedFile, mode, false, options, moduleInfo)\n })\n\n return Promise.all(imports).then(imports => {\n const stringified = stringifyModuleFile(moduleInfo)\n\n for (const reference of referencedFiles) {\n emitter.emit('reference', { name, prefix, path, reference, tree, resolution })\n }\n\n const contents = imports.filter(x => x != null).concat(stringified).join(EOL)\n\n emitter.emit('compiled', { name, prefix, path, tree, resolution, contents })\n\n return contents\n })\n}\n\n/**\n * Separate the module name into pieces.\n */\nfunction getModuleNameParts (name: string, tree: DependencyTree): [string, string] {\n const parts = name.split(/[\\\\\\/]/g)\n let len = parts.length\n\n while (len) {\n len--\n\n const name = parts.slice(0, len).join('/')\n const path = parts.slice(len).join('/')\n\n if (tree.dependencies[name]) {\n return [name, path]\n }\n }\n\n return [parts.join('/'), null]\n}\n\n/**\n * Normalize import paths against the prefix.\n */\nfunction getImportPath (path: string, options: StringifyOptions) {\n return options.resolved[getCachePath(path, options, false)]\n}\n\n/**\n * Stringify a dependency file contents.\n */\nfunction stringifyModuleFile (info: ModuleInfo) {\n const { options, modulePath } = info\n const { tree, name, prefix, parent, cwd, global } = options\n\n // Output information for the original type source.\n const source = isHttp(info.path) ? info.path : normalizeSlashes(relative(cwd, info.path))\n const meta = options.meta ? `// Generated by ${PROJECT_NAME}${EOL}// Source: ${source}${EOL}` : ''\n\n if (global) {\n if (ts.isExternalModule(info.sourceFile)) {\n throw new TypingsError(\n `Attempted to compile \"${name}\" as a global ` +\n `module, but it looks like an external module. ` +\n `You'll need to remove the global option to continue.`\n )\n }\n\n return `${meta}${normalizeEOL(info.sourceFile.getText().trim(), EOL)}${EOL}`\n } else {\n if (!ts.isExternalModule(info.sourceFile) && !(info.parent && ts.isExternalModule(info.parent.sourceFile))) {\n throw new TypingsError(\n `Attempted to compile \"${name}\" as an external module, ` +\n `but it looks like a global module. ` +\n `You'll need to enable the global option to continue.`\n )\n }\n }\n\n let hasExports = false\n let hasDefaultExport = false\n let hasExportEquals = false\n let hasLocalImports = false\n let wasDeclared = false\n\n // Custom replacer function to rewrite the file.\n function replacer (node: ts.Node) {\n // Flag `export =` as the main re-definition needs to be written different.\n if (node.kind === ts.SyntaxKind.ExportAssignment) {\n hasDefaultExport = !(node as ts.ExportAssignment).isExportEquals\n hasExportEquals = !hasDefaultExport\n } else if (node.kind === ts.SyntaxKind.ExportDeclaration) {\n hasExports = true\n } else if (node.kind === ts.SyntaxKind.ExportSpecifier) {\n hasDefaultExport = hasDefaultExport || (node as ts.ExportSpecifier).name.getText() === 'default'\n }\n\n const flags = ts.getCombinedModifierFlags(node)\n\n hasExports = hasExports || !!(flags & ts.ModifierFlags.Export)\n hasDefaultExport = hasDefaultExport || !!(flags & ts.ModifierFlags.Default)\n\n if (\n node.kind === ts.SyntaxKind.StringLiteral &&\n (\n node.parent.kind === ts.SyntaxKind.ExportDeclaration ||\n node.parent.kind === ts.SyntaxKind.ImportDeclaration ||\n node.parent.kind === ts.SyntaxKind.ModuleDeclaration\n )\n ) {\n hasLocalImports = hasLocalImports || !isModuleName((node as ts.StringLiteral).text)\n\n return ` '${getImportPath(resolveImportFrom(info.path, (node as ts.StringLiteral).text), options)}'`\n }\n\n if (node.kind === ts.SyntaxKind.DeclareKeyword) {\n // Notify the reader to remove leading trivia.\n wasDeclared = true\n\n return info.sourceFile.text.slice(node.getFullStart(), node.getStart())\n }\n\n if (node.kind === ts.SyntaxKind.ExternalModuleReference) {\n const requirePath = getImportPath(resolveImportFrom(info.path, (node as any).expression.text), options)\n\n return ` require('${requirePath}')`\n }\n }\n\n // Read through the file.\n function read (start: number, end: number) {\n const text = info.sourceFile.text.slice(start, end)\n\n // Trim leading whitespace.\n if (start === 0) {\n return text.replace(/^\\s+$/, '')\n }\n\n // Trim trailing whitespace.\n if (end == null) {\n return text.replace(/\\s+$/, '')\n }\n\n // Remove leading whitespace from the statement after \"declare\".\n if (wasDeclared) {\n wasDeclared = false\n\n return text.replace(/^\\s+/, '')\n }\n\n return text\n }\n\n const moduleText = normalizeEOL(processTree(info.sourceFile, replacer, read), EOL)\n const moduleName = parent && parent.global ? name : modulePath\n\n // Direct usage of definition/typings. This is *not* a psuedo-module.\n if (info.isEntry && !hasLocalImports) {\n return meta + declareText(parent ? moduleName : name, moduleText)\n }\n\n const prettyPath = normalizeSlashes(join(name, relativeTo(tree.src, pathFromDefinition(info.path))))\n const declared = meta + declareText(modulePath, moduleText)\n\n // Create an alias/proxy module namespace to expose the implementation.\n function alias (name: string) {\n const imports: string[] = []\n\n if (hasExportEquals) {\n imports.push(`import main = require('${modulePath}');`)\n imports.push(`export = main;`)\n } else {\n if (hasExports) {\n imports.push(`export * from '${modulePath}';`)\n }\n\n if (hasDefaultExport) {\n imports.push(`export { default } from '${modulePath}';`)\n }\n }\n\n // No aliases, nothing exported.\n if (imports.length === 0) {\n return ''\n }\n\n return declareText(name, imports.join(EOL))\n }\n\n if (info.isEntry && !parent) {\n return declared + alias(prettyPath) + alias(name)\n }\n\n return declared + (parent ? '' : alias(prettyPath))\n}\n\n/**\n * Declare a module.\n */\nfunction declareText (name: string, text: string) {\n return `declare module '${name}' {${text ? EOL + text + EOL : ''}}${EOL}`\n}\n\n/**\n * Rewrite TypeScript source files.\n *\n * Reference: https://github.com/SitePen/dts-generator/blob/22402351ffd953bf32344a0e48f2ba073fc5b65a/index.ts#L70-L101\n */\nfunction processTree (\n sourceFile: ts.SourceFile,\n replacer: (node: ts.Node) => string,\n reader: (start: number, end?: number) => string\n): string {\n let code = ''\n let position = 0\n\n function skip (node: ts.Node) {\n position = node.end\n }\n\n function readThrough (node: ts.Node) {\n if (node.pos > position) {\n code += reader(position, node.pos)\n position = node.pos\n }\n }\n\n function visit (node: ts.Node) {\n readThrough(node)\n\n const replacement = replacer(node)\n\n if (replacement != null) {\n code += replacement\n skip(node)\n } else {\n ts.forEachChild(node, visit)\n }\n }\n\n visit(sourceFile)\n\n code += reader(position)\n\n return code\n}\n"]} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var test = require("blue-tape"); | ||
@@ -3,0 +4,0 @@ var nock = require("nock"); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"compile.spec.js","sourceRoot":"","sources":["../../src/lib/compile.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import test = require('blue-tape')\nimport nock = require('nock')\nimport { join } from 'path'\nimport { EventEmitter } from 'events'\nimport { compile } from './compile'\nimport { DependencyTree } from '../interfaces'\nimport { CONFIG_FILE } from '../utils/config'\nimport { resolveNpmDependencies } from './dependencies'\n\nconst FIXTURES_DIR = join(__dirname, '__test__/fixtures')\n\ntest('compile', t => {\n t.test('fixtures', t => {\n t.test('compile a normal definition', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'compile')\n\n const root: DependencyTree = {\n src: join(FIXTURE_DIR, CONFIG_FILE),\n main: 'root',\n raw: undefined,\n postmessage: undefined,\n global: false,\n browser: {\n 'b/b': 'browser'\n },\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const a: DependencyTree = {\n src: join(FIXTURE_DIR, `a/${CONFIG_FILE}`),\n main: undefined,\n raw: undefined,\n postmessage: undefined,\n global: false,\n typings: 'typed.d.ts',\n browserTypings: 'typed.browser.d.ts',\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const b: DependencyTree = {\n src: join(FIXTURE_DIR, 'bower.json'),\n main: undefined,\n raw: undefined,\n postmessage: undefined,\n global: false,\n typings: 'typings/b.d.ts',\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const browser: DependencyTree = {\n src: join(FIXTURE_DIR, 'package.json'),\n main: undefined,\n raw: undefined,\n postmessage: undefined,\n global: false,\n typings: 'browser.d.ts',\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const dep: DependencyTree = {\n src: join(FIXTURE_DIR, `dep/${CONFIG_FILE}`),\n main: 'dep/main.d.ts',\n raw: undefined,\n postmessage: undefined,\n global: false,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n ;(root as any).dependencies.a = a\n ;(root as any).dependencies['b/b'] = b\n ;(root as any).dependencies.browser = browser\n ;(a as any).dependencies.dep = dep\n\n const emitter = new EventEmitter()\n\n return compile(root, ['main', 'browser'], { name: 'root', cwd: __dirname, global: false, meta: true, emitter })\n .then((out) => {\n t.equal(out.results.main, [\n `// Generated by typings`,\n `// Source: __test__/fixtures/compile/dep/path.d.ts`,\n 'declare module \\'~root~a~dep/path\\' {',\n 'export const isDep: boolean',\n '}',\n '',\n `// Generated by typings`,\n `// Source: __test__/fixtures/compile/a/typed.d.ts`,\n 'declare module \\'~root~a/typed\\' {',\n 'import { isDep } from \\'~root~a~dep/path\\'',\n '',\n 'export interface ITest {',\n ' foo: string',\n ' bar: boolean',\n '}',\n '',\n 'export default function (): ITest',\n '}',\n '',\n `// Generated by typings`,\n `// Source: __test__/fixtures/compile/typings/b.d.ts`,\n 'declare module \\'~root~b/b/typings/b\\' {',\n 'export const foo: number',\n '}',\n '',\n `// Generated by typings`,\n `// Source: __test__/fixtures/compile/root.import.d.ts`,\n 'declare module \\'~root/root.import\\' {',\n 'export const test: string',\n '}',\n 'declare module \\'root/root.import\\' {',\n 'export * from \\'~root/root.import\\';',\n '}',\n '',\n `// Generated by typings`,\n `// Source: __test__/fixtures/compile/root.d.ts`,\n 'declare module \\'~root/root\\' {',\n 'import a from \\'~root~a/typed\\'',\n 'import b = require(\\'~root~b/b/typings/b\\')',\n 'export * from \\'~root/root.import\\'',\n 'export default a',\n '}',\n 'declare module \\'root/root\\' {',\n 'export * from \\'~root/root\\';',\n 'export { default } from \\'~root/root\\';',\n '}',\n 'declare module \\'root\\' {',\n 'export * from \\'~root/root\\';',\n 'export { default } from \\'~root/root\\';',\n '}',\n ''\n ].join('\\n'))\n\n t.equal(out.results.browser, [\n `// Generated by typings`,\n `// Source: __test__/fixtures/compile/a/typed.browser.d.ts`,\n 'declare module \\'~root~a/typed.browser\\' {',\n 'export function browser (): boolean',\n '}',\n '',\n `// Generated by typings`,\n `// Source: __test__/fixtures/compile/browser.d.ts`,\n 'declare module \\'~root~browser/browser\\' {',\n 'export const bar: boolean',\n '}',\n '',\n `// Generated by typings`,\n `// Source: __test__/fixtures/compile/root.import.d.ts`,\n 'declare module \\'~root/root.import\\' {',\n 'export const test: string',\n '}',\n 'declare module \\'root/root.import\\' {',\n 'export * from \\'~root/root.import\\';',\n '}',\n '',\n `// Generated by typings`,\n `// Source: __test__/fixtures/compile/root.d.ts`,\n 'declare module \\'~root/root\\' {',\n 'import a from \\'~root~a/typed.browser\\'',\n 'import b = require(\\'~root~browser/browser\\')',\n 'export * from \\'~root/root.import\\'',\n 'export default a',\n '}',\n 'declare module \\'root/root\\' {',\n 'export * from \\'~root/root\\';',\n 'export { default } from \\'~root/root\\';',\n '}',\n 'declare module \\'root\\' {',\n 'export * from \\'~root/root\\';',\n 'export { default } from \\'~root/root\\';',\n '}',\n ''\n ].join('\\n'))\n })\n })\n\n t.test('compile export equals', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'compile-export-equals')\n\n const file: DependencyTree = {\n src: join(FIXTURE_DIR, CONFIG_FILE),\n main: 'file.d.ts',\n raw: undefined,\n postmessage: undefined,\n global: false,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n return compile(\n file,\n ['main', 'browser'],\n { name: 'foobar', cwd: __dirname, global: false, meta: false, emitter }\n )\n .then(out => {\n t.equal(out.results.main, [\n 'declare module \\'foobar\\' {',\n 'function foo (value: string): foo.Bar;',\n '',\n 'module foo {',\n ' export interface Bar {',\n ' (message: any, ...args: any[]): void;',\n ' enabled: boolean;',\n ' namespace: string;',\n ' }',\n '}',\n '',\n 'export = foo;',\n '}',\n ''\n ].join('\\n'))\n\n t.equal(out.results.main, out.results.browser)\n })\n })\n\n t.test('compile export default', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'compile-export-default')\n\n const file: DependencyTree = {\n src: join(FIXTURE_DIR, CONFIG_FILE),\n main: 'index.d.ts',\n raw: undefined,\n postmessage: undefined,\n global: false,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n return compile(\n file,\n ['main'],\n { name: 'test', cwd: __dirname, global: false, meta: false, emitter }\n )\n .then(out => {\n t.equal(out.results.main, [\n 'declare module \\'test\\' {',\n 'const foo: string;',\n '',\n 'export default foo;',\n '}',\n ''\n ].join('\\n'))\n })\n })\n\n t.test('compile duplicate files from different import contexts', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'compile-dep-dupe')\n\n const root: DependencyTree = {\n src: join(FIXTURE_DIR, CONFIG_FILE),\n main: 'index.d.ts',\n raw: undefined,\n postmessage: undefined,\n global: false,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const foo: DependencyTree = {\n src: join(FIXTURE_DIR, 'foo', CONFIG_FILE),\n main: 'index.d.ts',\n parent: root,\n raw: undefined,\n postmessage: undefined,\n global: false,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n ;(root as any).dependencies.foo = foo\n\n const emitter = new EventEmitter()\n\n return compile(root, ['main'], { name: 'test', cwd: __dirname, global: false, meta: false, emitter })\n .then(out => {\n t.equal(out.results.main, [\n 'declare module \\'~test~foo/x\\' {',\n 'import * as bar from \\'~test~foo/index\\'',\n '',\n 'export { bar }',\n '}',\n '',\n 'declare module \\'~test~foo/index\\' {',\n 'export * from \\'~test~foo/x\\'',\n '}',\n '',\n 'declare module \\'test\\' {',\n 'import * as x from \\'~test~foo/x\\'',\n 'export * from \\'~test~foo/index\\'',\n '}',\n ''\n ].join('\\n'))\n })\n })\n\n t.test('compile module augmentation', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'compile-module-augmentation')\n\n const file: DependencyTree = {\n src: join(FIXTURE_DIR, CONFIG_FILE),\n main: 'index.d.ts',\n raw: undefined,\n postmessage: undefined,\n global: false,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n return compile(file, ['main'], { name: 'test', cwd: __dirname, global: false, meta: false, emitter })\n .then(out => {\n t.equal(out.results.main, [\n 'declare module \\'~test/import\\' {',\n 'function main (): boolean;',\n '',\n 'export { main }',\n '}',\n 'declare module \\'test/import\\' {',\n 'export * from \\'~test/import\\';',\n '}',\n '',\n 'declare module \\'~test/index\\' {',\n 'import * as imported from \\'~test/import\\'',\n '',\n 'module \\'~test/import\\' {',\n ' namespace main {',\n ' export function augmented (): boolean;',\n ' }',\n '}',\n '',\n 'export { imported }',\n '}',\n 'declare module \\'test/index\\' {',\n 'export * from \\'~test/index\\';',\n '}',\n 'declare module \\'test\\' {',\n 'export * from \\'~test/index\\';',\n '}',\n ''\n ].join('\\n'))\n })\n })\n\n t.test('compile a global definition', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'compile-global')\n\n const node: DependencyTree = {\n src: __filename,\n raw: undefined,\n postmessage: undefined,\n global: true,\n typings: join(FIXTURE_DIR, 'node.d.ts'),\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const fs: DependencyTree = {\n src: join(FIXTURE_DIR, 'fs.d.ts'),\n main: undefined,\n raw: undefined,\n postmessage: undefined,\n global: false,\n typings: join(FIXTURE_DIR, 'fs.d.ts'),\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n ;(node as any).dependencies.fs = fs\n\n const emitter = new EventEmitter()\n\n return compile(node, ['main'], { name: 'node', cwd: __dirname, global: true, meta: false, emitter })\n .then(out => {\n t.equal(out.results.main, [\n 'declare module \\'fs\\' {',\n 'export function readFileSync (path: string, encoding: string): string',\n 'export function readFileSync (path: string): Buffer',\n '}',\n '',\n 'declare var __dirname: string',\n ''\n ].join('\\n'))\n })\n })\n\n t.test('compile inline global definitions', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'compile-inline-global')\n const typings = join(FIXTURE_DIR, 'node.d.ts')\n\n const node: DependencyTree = {\n src: __filename,\n raw: undefined,\n postmessage: undefined,\n global: true,\n typings,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n return compile(node, ['main', 'browser'], { name: 'name', cwd: __dirname, global: true, meta: true, emitter })\n .then(out => {\n const contents = [\n `// Generated by typings`,\n `// Source: __test__/fixtures/compile-inline-global/node.d.ts`,\n 'declare const require: (module: string) => any;',\n '',\n 'declare module \"events\" {',\n '\\texport const test: boolean;',\n '}',\n '',\n 'declare module \"fs\" {',\n '\\timport * as events from \"events\";',\n '}',\n ''\n ].join('\\n')\n\n t.equal(out.results.main, contents)\n t.equal(out.results.main, out.results.browser)\n })\n })\n })\n\n t.test('missing error', t => {\n const node: DependencyTree = {\n src: 'http://example.com/typings/typings.json',\n raw: undefined,\n postmessage: undefined,\n global: false,\n typings: 'http://example.com/typings/index.d.ts',\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n t.plan(1)\n\n return compile(node, ['main'], { name: 'test', cwd: __dirname, global: false, meta: false, emitter })\n .catch(function (result) {\n t.equal(\n result.message,\n 'Unable to read typings for \"test\". You should check the entry paths in \"typings.json\" are up to date'\n )\n })\n })\n\n t.test('global flag compile error', t => {\n const node: DependencyTree = {\n src: 'http://example.com/typings.json',\n raw: undefined,\n postmessage: undefined,\n global: true,\n typings: 'http://example.com/index.d.ts',\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n t.plan(1)\n\n return compile(node, ['main'], { name: 'name', cwd: __dirname, global: false, meta: false, emitter })\n .catch(function (result) {\n t.equal(\n result.message,\n 'Unable to compile \"name\", the typings are meant to be installed as global ' +\n 'but attempted to be compiled as an external module'\n )\n })\n })\n\n t.test('global compile error', t => {\n const node: DependencyTree = {\n src: join(__dirname, '__test__/fixtures/compile-global/node.d.ts'),\n raw: undefined,\n postmessage: undefined,\n global: false,\n main: join(__dirname, '__test__/fixtures/compile-global/node.d.ts'),\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n t.plan(1)\n\n return compile(node, ['main'], { name: 'test', cwd: __dirname, global: false, meta: false, emitter })\n .catch(function (result) {\n t.equal(\n result.message,\n 'Attempted to compile \"test\" as an external module, ' +\n 'but it looks like a global module. ' +\n 'You\\'ll need to enable the global option to continue.'\n )\n })\n })\n\n t.test('external compile error', t => {\n const node: DependencyTree = {\n src: join(__dirname, '__test__/fixtures/compile/root.d.ts'),\n raw: undefined,\n postmessage: undefined,\n global: true,\n main: join(__dirname, '__test__/fixtures/compile/root.d.ts'),\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n t.plan(1)\n\n return compile(node, ['main'], { name: 'test', cwd: __dirname, global: true, meta: false, emitter })\n .catch(function (result) {\n t.equal(\n result.message,\n 'Attempted to compile \"test\" as a global module, ' +\n 'but it looks like an external module. ' +\n 'You\\'ll need to remove the global option to continue.'\n )\n })\n })\n\n t.test('no main or typings error', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'main-resolve-error')\n\n const main: DependencyTree = {\n src: join(FIXTURE_DIR, 'package.json'),\n raw: undefined,\n postmessage: undefined,\n global: false,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n t.plan(1)\n\n return compile(main, ['main'], { name: 'main', cwd: __dirname, global: false, meta: false, emitter })\n .catch(function (error) {\n t.ok(/^Unable to read typings for \"main\"/.test(error.message))\n })\n })\n\n t.test('no module dts file error', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'node-resolve-error')\n\n const main: DependencyTree = {\n src: join(FIXTURE_DIR, 'package.json'),\n main: 'index.js',\n raw: undefined,\n postmessage: undefined,\n global: false,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const dependency: DependencyTree = {\n main: 'index.js',\n raw: undefined,\n postmessage: undefined,\n global: false,\n src: join(FIXTURE_DIR, 'node_modules/test/package.json'),\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n ;(main as any).dependencies.test = dependency\n\n t.plan(1)\n\n return compile(main, ['main'], { name: 'main', cwd: __dirname, global: false, meta: false, emitter })\n .catch(function (error) {\n t.ok(/^Unable to read typings for \"test\"/.test(error.message))\n })\n })\n\n t.test('override dependency with local file', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'compile-module-file-override')\n const emitter = new EventEmitter()\n\n return resolveNpmDependencies({ cwd: FIXTURE_DIR, dev: false, emitter })\n .then(tree => {\n return compile(tree, ['browser'], { name: 'main', cwd: __dirname, global: false, meta: false, emitter })\n })\n .then(out => {\n t.equal(out.results.browser, [\n 'declare module \\'~main/override\\' {',\n 'function test (): string;',\n '',\n 'export = test;',\n '}',\n 'declare module \\'main/override\\' {',\n 'import main = require(\\'~main/override\\');',\n 'export = main;',\n '}',\n '',\n 'declare module \\'main\\' {',\n 'import * as foo from \\'~main/override\\'',\n '',\n 'export = foo',\n '}',\n ''\n ].join('\\n'))\n })\n })\n\n t.test('resolve and compile local file override with dependency', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'compile-file-module-override')\n const emitter = new EventEmitter()\n\n return resolveNpmDependencies({ cwd: FIXTURE_DIR, dev: false, emitter })\n .then(tree => {\n return compile(\n tree,\n ['main', 'browser'],\n { name: 'main', cwd: __dirname, global: false, meta: false, emitter }\n )\n })\n .then(out => {\n t.equal(out.results.main, [\n 'declare module \\'~main/imported/index\\' {',\n 'export function isNotDep (): boolean;',\n '}',\n 'declare module \\'main/imported/index\\' {',\n 'export * from \\'~main/imported/index\\';',\n '}',\n '',\n 'declare module \\'~main/index\\' {',\n 'export * from \\'~main/imported/index\\'',\n '}',\n 'declare module \\'main/index\\' {',\n 'export * from \\'~main/index\\';',\n '}',\n 'declare module \\'main\\' {',\n 'export * from \\'~main/index\\';',\n '}',\n ''\n ].join('\\n'))\n\n t.equal(out.results.browser, [\n 'declare module \\'~main~dep/index\\' {',\n 'export function isDep (): boolean;',\n '}',\n '',\n 'declare module \\'~main/index\\' {',\n 'export * from \\'~main~dep/index\\'',\n '}',\n 'declare module \\'main/index\\' {',\n 'export * from \\'~main/index\\';',\n '}',\n 'declare module \\'main\\' {',\n 'export * from \\'~main/index\\';',\n '}',\n ''\n ].join('\\n'))\n })\n })\n\n t.test('resolve over http', t => {\n const node: DependencyTree = {\n src: 'http://example.com/typings.json',\n raw: undefined,\n postmessage: undefined,\n global: false,\n main: 'http://example.com/index.d.ts?query=test',\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n nock('http://example.com')\n .get('/index.d.ts?query=test')\n .matchHeader('User-Agent', /^typings\\/\\d+\\.\\d+\\.\\d+ node\\/v\\d+\\.\\d+\\.\\d+.*$/)\n .reply(200, 'export * from \"./test\"')\n\n nock('http://example.com')\n .get('/test?query=test')\n .reply(404)\n\n nock('http://example.com')\n .get('/test.d.ts?query=test')\n .reply(200, 'export const test: boolean')\n\n return compile(node, ['main'], { name: 'test', cwd: __dirname, global: false, meta: false, emitter })\n .then(function (out) {\n t.equal(out.results.main, [\n 'declare module \\'~test/test\\' {',\n 'export const test: boolean',\n '}',\n 'declare module \\'test/test\\' {',\n 'export * from \\'~test/test\\';',\n '}',\n '',\n 'declare module \\'~test/index\\' {',\n 'export * from \\'~test/test\\'',\n '}',\n 'declare module \\'test/index\\' {',\n 'export * from \\'~test/index\\';',\n '}',\n 'declare module \\'test\\' {',\n 'export * from \\'~test/index\\';',\n '}',\n ''\n ].join('\\n'))\n })\n })\n\n t.test('resolve files array', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'compile-files-array')\n\n const tree: DependencyTree = {\n src: join(FIXTURE_DIR, 'typings.json'),\n raw: undefined,\n postmessage: undefined,\n global: false,\n files: ['a.d.ts', 'b.d.ts'],\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n return compile(tree, ['main', 'browser'], { name: 'test', cwd: __dirname, global: false, meta: false, emitter })\n .then(function (out) {\n t.equal(out.results.main, [\n 'declare module \\'~test/a\\' {',\n 'export const a: boolean;',\n '}',\n 'declare module \\'test/a\\' {',\n 'export * from \\'~test/a\\';',\n '}',\n '',\n 'declare module \\'~test/b\\' {',\n 'export const b: boolean;',\n '}',\n 'declare module \\'test/b\\' {',\n 'export * from \\'~test/b\\';',\n '}',\n ''\n ].join('\\n'))\n\n t.equal(out.results.main, out.results.browser)\n })\n })\n})\n"]} | ||
| {"version":3,"file":"compile.spec.js","sourceRoot":"","sources":["../../src/lib/compile.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import test = require('blue-tape')\nimport nock = require('nock')\nimport { join } from 'path'\nimport { EventEmitter } from 'events'\nimport { compile } from './compile'\nimport { DependencyTree } from '../interfaces'\nimport { CONFIG_FILE } from '../utils/config'\nimport { resolveNpmDependencies } from './dependencies'\n\nconst FIXTURES_DIR = join(__dirname, '__test__/fixtures')\n\ntest('compile', t => {\n t.test('fixtures', t => {\n t.test('compile a normal definition', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'compile')\n\n const root: DependencyTree = {\n src: join(FIXTURE_DIR, CONFIG_FILE),\n main: 'root',\n raw: undefined,\n postmessage: undefined,\n global: false,\n browser: {\n 'b/b': 'browser'\n },\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const a: DependencyTree = {\n src: join(FIXTURE_DIR, `a/${CONFIG_FILE}`),\n main: undefined,\n raw: undefined,\n postmessage: undefined,\n global: false,\n typings: 'typed.d.ts',\n browserTypings: 'typed.browser.d.ts',\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const b: DependencyTree = {\n src: join(FIXTURE_DIR, 'bower.json'),\n main: undefined,\n raw: undefined,\n postmessage: undefined,\n global: false,\n typings: 'typings/b.d.ts',\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const browser: DependencyTree = {\n src: join(FIXTURE_DIR, 'package.json'),\n main: undefined,\n raw: undefined,\n postmessage: undefined,\n global: false,\n typings: 'browser.d.ts',\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const dep: DependencyTree = {\n src: join(FIXTURE_DIR, `dep/${CONFIG_FILE}`),\n main: 'dep/main.d.ts',\n raw: undefined,\n postmessage: undefined,\n global: false,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n ;(root as any).dependencies.a = a\n ;(root as any).dependencies['b/b'] = b\n ;(root as any).dependencies.browser = browser\n ;(a as any).dependencies.dep = dep\n\n const emitter = new EventEmitter()\n\n return compile(root, ['main', 'browser'], { name: 'root', cwd: __dirname, global: false, meta: true, emitter })\n .then((out) => {\n t.equal(out.results.main, [\n `// Generated by typings`,\n `// Source: __test__/fixtures/compile/dep/path.d.ts`,\n 'declare module \\'~root~a~dep/path\\' {',\n 'export const isDep: boolean',\n '}',\n '',\n `// Generated by typings`,\n `// Source: __test__/fixtures/compile/a/typed.d.ts`,\n 'declare module \\'~root~a/typed\\' {',\n 'import { isDep } from \\'~root~a~dep/path\\'',\n '',\n 'export interface ITest {',\n ' foo: string',\n ' bar: boolean',\n '}',\n '',\n 'export default function (): ITest',\n '}',\n '',\n `// Generated by typings`,\n `// Source: __test__/fixtures/compile/typings/b.d.ts`,\n 'declare module \\'~root~b/b/typings/b\\' {',\n 'export const foo: number',\n '}',\n '',\n `// Generated by typings`,\n `// Source: __test__/fixtures/compile/root.import.d.ts`,\n 'declare module \\'~root/root.import\\' {',\n 'export const test: string',\n '}',\n 'declare module \\'root/root.import\\' {',\n 'export * from \\'~root/root.import\\';',\n '}',\n '',\n `// Generated by typings`,\n `// Source: __test__/fixtures/compile/root.d.ts`,\n 'declare module \\'~root/root\\' {',\n 'import a from \\'~root~a/typed\\'',\n 'import b = require(\\'~root~b/b/typings/b\\')',\n 'export * from \\'~root/root.import\\'',\n 'export default a',\n '}',\n 'declare module \\'root/root\\' {',\n 'export * from \\'~root/root\\';',\n 'export { default } from \\'~root/root\\';',\n '}',\n 'declare module \\'root\\' {',\n 'export * from \\'~root/root\\';',\n 'export { default } from \\'~root/root\\';',\n '}',\n ''\n ].join('\\n'))\n\n t.equal(out.results.browser, [\n `// Generated by typings`,\n `// Source: __test__/fixtures/compile/a/typed.browser.d.ts`,\n 'declare module \\'~root~a/typed.browser\\' {',\n 'export function browser (): boolean',\n '}',\n '',\n `// Generated by typings`,\n `// Source: __test__/fixtures/compile/browser.d.ts`,\n 'declare module \\'~root~browser/browser\\' {',\n 'export const bar: boolean',\n '}',\n '',\n `// Generated by typings`,\n `// Source: __test__/fixtures/compile/root.import.d.ts`,\n 'declare module \\'~root/root.import\\' {',\n 'export const test: string',\n '}',\n 'declare module \\'root/root.import\\' {',\n 'export * from \\'~root/root.import\\';',\n '}',\n '',\n `// Generated by typings`,\n `// Source: __test__/fixtures/compile/root.d.ts`,\n 'declare module \\'~root/root\\' {',\n 'import a from \\'~root~a/typed.browser\\'',\n 'import b = require(\\'~root~browser/browser\\')',\n 'export * from \\'~root/root.import\\'',\n 'export default a',\n '}',\n 'declare module \\'root/root\\' {',\n 'export * from \\'~root/root\\';',\n 'export { default } from \\'~root/root\\';',\n '}',\n 'declare module \\'root\\' {',\n 'export * from \\'~root/root\\';',\n 'export { default } from \\'~root/root\\';',\n '}',\n ''\n ].join('\\n'))\n })\n })\n\n t.test('compile export equals', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'compile-export-equals')\n\n const file: DependencyTree = {\n src: join(FIXTURE_DIR, CONFIG_FILE),\n main: 'file.d.ts',\n raw: undefined,\n postmessage: undefined,\n global: false,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n return compile(\n file,\n ['main', 'browser'],\n { name: 'foobar', cwd: __dirname, global: false, meta: false, emitter }\n )\n .then(out => {\n t.equal(out.results.main, [\n 'declare module \\'foobar\\' {',\n 'function foo (value: string): foo.Bar;',\n '',\n 'module foo {',\n ' export interface Bar {',\n ' (message: any, ...args: any[]): void;',\n ' enabled: boolean;',\n ' namespace: string;',\n ' }',\n '}',\n '',\n 'export = foo;',\n '}',\n ''\n ].join('\\n'))\n\n t.equal(out.results.main, out.results.browser)\n })\n })\n\n t.test('compile export default', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'compile-export-default')\n\n const file: DependencyTree = {\n src: join(FIXTURE_DIR, CONFIG_FILE),\n main: 'index.d.ts',\n raw: undefined,\n postmessage: undefined,\n global: false,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n return compile(\n file,\n ['main'],\n { name: 'test', cwd: __dirname, global: false, meta: false, emitter }\n )\n .then(out => {\n t.equal(out.results.main, [\n 'declare module \\'test\\' {',\n 'const foo: string;',\n '',\n 'export default foo;',\n '}',\n ''\n ].join('\\n'))\n })\n })\n\n t.test('compile duplicate files from different import contexts', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'compile-dep-dupe')\n\n const root: DependencyTree = {\n src: join(FIXTURE_DIR, CONFIG_FILE),\n main: 'index.d.ts',\n raw: undefined,\n postmessage: undefined,\n global: false,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const foo: DependencyTree = {\n src: join(FIXTURE_DIR, 'foo', CONFIG_FILE),\n main: 'index.d.ts',\n parent: root,\n raw: undefined,\n postmessage: undefined,\n global: false,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n ;(root as any).dependencies.foo = foo\n\n const emitter = new EventEmitter()\n\n return compile(root, ['main'], { name: 'test', cwd: __dirname, global: false, meta: false, emitter })\n .then(out => {\n t.equal(out.results.main, [\n 'declare module \\'~test~foo/x\\' {',\n 'import * as bar from \\'~test~foo/index\\'',\n '',\n 'export { bar }',\n '}',\n '',\n 'declare module \\'~test~foo/index\\' {',\n 'export * from \\'~test~foo/x\\'',\n '}',\n '',\n 'declare module \\'test\\' {',\n 'import * as x from \\'~test~foo/x\\'',\n 'export * from \\'~test~foo/index\\'',\n '}',\n ''\n ].join('\\n'))\n })\n })\n\n t.test('compile module augmentation', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'compile-module-augmentation')\n\n const file: DependencyTree = {\n src: join(FIXTURE_DIR, CONFIG_FILE),\n main: 'index.d.ts',\n raw: undefined,\n postmessage: undefined,\n global: false,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n return compile(file, ['main'], { name: 'test', cwd: __dirname, global: false, meta: false, emitter })\n .then(out => {\n t.equal(out.results.main, [\n 'declare module \\'~test/import\\' {',\n 'function main (): boolean;',\n '',\n 'export { main }',\n '}',\n 'declare module \\'test/import\\' {',\n 'export * from \\'~test/import\\';',\n '}',\n '',\n 'declare module \\'~test/index\\' {',\n 'import * as imported from \\'~test/import\\'',\n '',\n 'module \\'~test/import\\' {',\n ' namespace main {',\n ' export function augmented (): boolean;',\n ' }',\n '}',\n '',\n 'export { imported }',\n '}',\n 'declare module \\'test/index\\' {',\n 'export * from \\'~test/index\\';',\n '}',\n 'declare module \\'test\\' {',\n 'export * from \\'~test/index\\';',\n '}',\n ''\n ].join('\\n'))\n })\n })\n\n t.test('compile a global definition', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'compile-global')\n\n const node: DependencyTree = {\n src: __filename,\n raw: undefined,\n postmessage: undefined,\n global: true,\n typings: join(FIXTURE_DIR, 'node.d.ts'),\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const fs: DependencyTree = {\n src: join(FIXTURE_DIR, 'fs.d.ts'),\n main: undefined,\n raw: undefined,\n postmessage: undefined,\n global: false,\n typings: join(FIXTURE_DIR, 'fs.d.ts'),\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n ;(node as any).dependencies.fs = fs\n\n const emitter = new EventEmitter()\n\n return compile(node, ['main'], { name: 'node', cwd: __dirname, global: true, meta: false, emitter })\n .then(out => {\n t.equal(out.results.main, [\n 'declare module \\'fs\\' {',\n 'export function readFileSync (path: string, encoding: string): string',\n 'export function readFileSync (path: string): Buffer',\n '}',\n '',\n 'declare var __dirname: string',\n ''\n ].join('\\n'))\n })\n })\n\n t.test('compile inline global definitions', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'compile-inline-global')\n const typings = join(FIXTURE_DIR, 'node.d.ts')\n\n const node: DependencyTree = {\n src: __filename,\n raw: undefined,\n postmessage: undefined,\n global: true,\n typings,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n return compile(node, ['main', 'browser'], { name: 'name', cwd: __dirname, global: true, meta: true, emitter })\n .then(out => {\n const contents = [\n `// Generated by typings`,\n `// Source: __test__/fixtures/compile-inline-global/node.d.ts`,\n 'declare const require: (module: string) => any;',\n '',\n 'declare module \"events\" {',\n '\\texport const test: boolean;',\n '}',\n '',\n 'declare module \"fs\" {',\n '\\timport * as events from \"events\";',\n '}',\n ''\n ].join('\\n')\n\n t.equal(out.results.main, contents)\n t.equal(out.results.main, out.results.browser)\n })\n })\n })\n\n t.test('missing error', t => {\n const node: DependencyTree = {\n src: 'http://example.com/typings/typings.json',\n raw: undefined,\n postmessage: undefined,\n global: false,\n typings: 'http://example.com/typings/index.d.ts',\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n t.plan(1)\n\n return compile(node, ['main'], { name: 'test', cwd: __dirname, global: false, meta: false, emitter })\n .catch(function (result) {\n t.equal(\n result.message,\n 'Unable to read typings for \"test\". You should check the entry paths in \"typings.json\" are up to date'\n )\n })\n })\n\n t.test('global flag compile error', t => {\n const node: DependencyTree = {\n src: 'http://example.com/typings.json',\n raw: undefined,\n postmessage: undefined,\n global: true,\n typings: 'http://example.com/index.d.ts',\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n t.plan(1)\n\n return compile(node, ['main'], { name: 'name', cwd: __dirname, global: false, meta: false, emitter })\n .catch(function (result) {\n t.equal(\n result.message,\n 'Unable to compile \"name\", the typings are meant to be installed as global ' +\n 'but attempted to be compiled as an external module'\n )\n })\n })\n\n t.test('global compile error', t => {\n const node: DependencyTree = {\n src: join(__dirname, '__test__/fixtures/compile-global/node.d.ts'),\n raw: undefined,\n postmessage: undefined,\n global: false,\n main: join(__dirname, '__test__/fixtures/compile-global/node.d.ts'),\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n t.plan(1)\n\n return compile(node, ['main'], { name: 'test', cwd: __dirname, global: false, meta: false, emitter })\n .catch(function (result) {\n t.equal(\n result.message,\n 'Attempted to compile \"test\" as an external module, ' +\n 'but it looks like a global module. ' +\n 'You\\'ll need to enable the global option to continue.'\n )\n })\n })\n\n t.test('external compile error', t => {\n const node: DependencyTree = {\n src: join(__dirname, '__test__/fixtures/compile/root.d.ts'),\n raw: undefined,\n postmessage: undefined,\n global: true,\n main: join(__dirname, '__test__/fixtures/compile/root.d.ts'),\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n t.plan(1)\n\n return compile(node, ['main'], { name: 'test', cwd: __dirname, global: true, meta: false, emitter })\n .catch(function (result) {\n t.equal(\n result.message,\n 'Attempted to compile \"test\" as a global module, ' +\n 'but it looks like an external module. ' +\n 'You\\'ll need to remove the global option to continue.'\n )\n })\n })\n\n t.test('no main or typings error', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'main-resolve-error')\n\n const main: DependencyTree = {\n src: join(FIXTURE_DIR, 'package.json'),\n raw: undefined,\n postmessage: undefined,\n global: false,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n t.plan(1)\n\n return compile(main, ['main'], { name: 'main', cwd: __dirname, global: false, meta: false, emitter })\n .catch(function (error) {\n t.ok(/^Unable to read typings for \"main\"/.test(error.message))\n })\n })\n\n t.test('no module dts file error', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'node-resolve-error')\n\n const main: DependencyTree = {\n src: join(FIXTURE_DIR, 'package.json'),\n main: 'index.js',\n raw: undefined,\n postmessage: undefined,\n global: false,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const dependency: DependencyTree = {\n main: 'index.js',\n raw: undefined,\n postmessage: undefined,\n global: false,\n src: join(FIXTURE_DIR, 'node_modules/test/package.json'),\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n ;(main as any).dependencies.test = dependency\n\n t.plan(1)\n\n return compile(main, ['main'], { name: 'main', cwd: __dirname, global: false, meta: false, emitter })\n .catch(function (error) {\n t.ok(/^Unable to read typings for \"test\"/.test(error.message))\n })\n })\n\n t.test('override dependency with local file', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'compile-module-file-override')\n const emitter = new EventEmitter()\n\n return resolveNpmDependencies({ cwd: FIXTURE_DIR, dev: false, emitter })\n .then(tree => {\n return compile(tree, ['browser'], { name: 'main', cwd: __dirname, global: false, meta: false, emitter })\n })\n .then(out => {\n t.equal(out.results.browser, [\n 'declare module \\'~main/override\\' {',\n 'function test (): string;',\n '',\n 'export = test;',\n '}',\n 'declare module \\'main/override\\' {',\n 'import main = require(\\'~main/override\\');',\n 'export = main;',\n '}',\n '',\n 'declare module \\'main\\' {',\n 'import * as foo from \\'~main/override\\'',\n '',\n 'export = foo',\n '}',\n ''\n ].join('\\n'))\n })\n })\n\n t.test('resolve and compile local file override with dependency', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'compile-file-module-override')\n const emitter = new EventEmitter()\n\n return resolveNpmDependencies({ cwd: FIXTURE_DIR, dev: false, emitter })\n .then(tree => {\n return compile(\n tree,\n ['main', 'browser'],\n { name: 'main', cwd: __dirname, global: false, meta: false, emitter }\n )\n })\n .then(out => {\n t.equal(out.results.main, [\n 'declare module \\'~main/imported/index\\' {',\n 'export function isNotDep (): boolean;',\n '}',\n 'declare module \\'main/imported/index\\' {',\n 'export * from \\'~main/imported/index\\';',\n '}',\n '',\n 'declare module \\'~main/index\\' {',\n 'export * from \\'~main/imported/index\\'',\n '}',\n 'declare module \\'main/index\\' {',\n 'export * from \\'~main/index\\';',\n '}',\n 'declare module \\'main\\' {',\n 'export * from \\'~main/index\\';',\n '}',\n ''\n ].join('\\n'))\n\n t.equal(out.results.browser, [\n 'declare module \\'~main~dep/index\\' {',\n 'export function isDep (): boolean;',\n '}',\n '',\n 'declare module \\'~main/index\\' {',\n 'export * from \\'~main~dep/index\\'',\n '}',\n 'declare module \\'main/index\\' {',\n 'export * from \\'~main/index\\';',\n '}',\n 'declare module \\'main\\' {',\n 'export * from \\'~main/index\\';',\n '}',\n ''\n ].join('\\n'))\n })\n })\n\n t.test('resolve over http', t => {\n const node: DependencyTree = {\n src: 'http://example.com/typings.json',\n raw: undefined,\n postmessage: undefined,\n global: false,\n main: 'http://example.com/index.d.ts?query=test',\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n nock('http://example.com')\n .get('/index.d.ts?query=test')\n .matchHeader('User-Agent', /^typings\\/\\d+\\.\\d+\\.\\d+ node\\/v\\d+\\.\\d+\\.\\d+.*$/)\n .reply(200, 'export * from \"./test\"')\n\n nock('http://example.com')\n .get('/test?query=test')\n .reply(404)\n\n nock('http://example.com')\n .get('/test.d.ts?query=test')\n .reply(200, 'export const test: boolean')\n\n return compile(node, ['main'], { name: 'test', cwd: __dirname, global: false, meta: false, emitter })\n .then(function (out) {\n t.equal(out.results.main, [\n 'declare module \\'~test/test\\' {',\n 'export const test: boolean',\n '}',\n 'declare module \\'test/test\\' {',\n 'export * from \\'~test/test\\';',\n '}',\n '',\n 'declare module \\'~test/index\\' {',\n 'export * from \\'~test/test\\'',\n '}',\n 'declare module \\'test/index\\' {',\n 'export * from \\'~test/index\\';',\n '}',\n 'declare module \\'test\\' {',\n 'export * from \\'~test/index\\';',\n '}',\n ''\n ].join('\\n'))\n })\n })\n\n t.test('resolve files array', t => {\n const FIXTURE_DIR = join(FIXTURES_DIR, 'compile-files-array')\n\n const tree: DependencyTree = {\n src: join(FIXTURE_DIR, 'typings.json'),\n raw: undefined,\n postmessage: undefined,\n global: false,\n files: ['a.d.ts', 'b.d.ts'],\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const emitter = new EventEmitter()\n\n return compile(tree, ['main', 'browser'], { name: 'test', cwd: __dirname, global: false, meta: false, emitter })\n .then(function (out) {\n t.equal(out.results.main, [\n 'declare module \\'~test/a\\' {',\n 'export const a: boolean;',\n '}',\n 'declare module \\'test/a\\' {',\n 'export * from \\'~test/a\\';',\n '}',\n '',\n 'declare module \\'~test/b\\' {',\n 'export const b: boolean;',\n '}',\n 'declare module \\'test/b\\' {',\n 'export * from \\'~test/b\\';',\n '}',\n ''\n ].join('\\n'))\n\n t.equal(out.results.main, out.results.browser)\n })\n })\n})\n"]} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var extend = require("xtend"); | ||
@@ -3,0 +4,0 @@ var listify = require("listify"); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/lib/dependencies.ts"],"names":[],"mappings":"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","sourcesContent":["import extend = require('xtend')\nimport listify = require('listify')\nimport invariant = require('invariant')\nimport zipObject = require('zip-object')\nimport { resolve, dirname, join } from 'path'\nimport { resolve as resolveUrl } from 'url'\nimport { readJspmPackageJson, resolveByPackageJson, resolve as resolveJspm, ModuleNotFoundError } from 'jspm-config'\nimport { readJson, readConfigFrom, readJsonFrom } from '../utils/fs'\nimport { parseDependency } from '../utils/parse'\nimport { findUp, findConfigFile } from '../utils/find'\nimport { isDefinition, isHttp } from '../utils/path'\nimport { CONFIG_FILE } from '../utils/config'\nimport { search } from '../search'\nimport { Dependency, DependencyBranch, Dependencies, DependencyTree, Emitter } from '../interfaces'\nimport TypingsError from './error'\n\n/**\n * Default dependency config options.\n */\nexport const DEFAULT_DEPENDENCY: DependencyTree = {\n src: undefined,\n raw: undefined,\n main: undefined,\n browser: undefined,\n typings: undefined,\n browserTypings: undefined,\n version: undefined,\n files: undefined,\n global: undefined,\n postmessage: undefined,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n}\n\n/**\n * Options for resolving dependencies.\n */\nexport interface Options {\n cwd: string\n emitter: Emitter\n name?: string\n dev?: boolean\n peer?: boolean\n global?: boolean\n parent?: DependencyTree\n bowerComponentPath?: string\n jspmConfig?: any\n}\n\n/**\n * Resolve all dependencies at the current path.\n */\nexport function resolveAllDependencies (options: Options): Promise<DependencyTree> {\n return Promise.all([\n resolveBowerDependencies(options).catch(() => extend(DEFAULT_DEPENDENCY)),\n resolveNpmDependencies(options).catch(() => extend(DEFAULT_DEPENDENCY)),\n resolveJspmDependencies(options).catch(() => extend(DEFAULT_DEPENDENCY)),\n resolveTypeDependencies(options).catch(() => extend(DEFAULT_DEPENDENCY))\n ])\n .then((trees) => mergeDependencies(DEFAULT_DEPENDENCY, ...trees))\n}\n\n/**\n * Resolve a single dependency object.\n */\nexport function resolveDependency (dependency: Dependency, options: Options): Promise<DependencyTree> {\n const { type, location, raw, meta } = dependency\n\n if (type === 'registry') {\n return resolveDependencyRegistry(dependency, options)\n }\n\n if (type === 'github' || type === 'bitbucket') {\n if (meta.sha === 'master') {\n options.emitter.emit('badlocation', { type, raw, location })\n }\n }\n\n return resolveDependencyInternally(type, location, raw, options)\n}\n\n/**\n * Internal version of `resolveDependency`, skipping the registry handling.\n */\nfunction resolveDependencyInternally (type: string, location: string, raw: string, options: Options) {\n if (type === 'jspm' || (type === 'npm' && options.jspmConfig)) {\n return resolveJspmDependency(location, raw, options)\n }\n\n if (type === 'npm') {\n return resolveNpmDependency(location, raw, options)\n }\n\n if (type === 'bower') {\n return resolveBowerDependency(location, raw, options)\n }\n\n return resolveFileDependency(location, raw, options)\n}\n\n/**\n * Resolving a registry dependency has an intermediate step.\n */\nfunction resolveDependencyRegistry (dependency: Dependency, options: Options) {\n const { location, meta } = dependency\n\n return readJsonFrom(location)\n .then(\n function (entry) {\n // Rewrite dependency type and location, but recreate `raw`.\n const { type, location } = parseDependency(entry.location)\n const raw = `registry:${meta.source}/${meta.name}#${entry.tag}`\n\n if (entry.deprecated) {\n options.emitter.emit('deprecated', {\n parent: options.parent,\n raw: dependency.raw,\n date: new Date(entry.deprecated)\n })\n }\n\n return resolveDependencyInternally(type, location, raw, options)\n },\n function (error) {\n // Wrap 404 responses in user prompt.\n if (error.code === 'EINVALIDSTATUS' && error.status === 404) {\n return search({ name: meta.name })\n .then(res => {\n let message = `Unable to find \"${meta.name}\" (\"${meta.source}\") in the registry.`\n\n if (res.total > 0) {\n const plur = res.total === 1 ? 'source' : 'sources'\n\n message += `\\nHowever, we found \"${meta.name}\" for ${res.total} other ${plur}: `\n message += `${listify(res.results.map(x => JSON.stringify(x.source)))}`\n message += `\\nYou can install these using the \"source\" option.`\n }\n\n message += '\\nWe could use your help adding these typings to the registry: '\n message += 'https://github.com/typings/registry'\n\n return Promise.reject(new TypingsError(message, error))\n })\n }\n\n return Promise.reject(error)\n }\n )\n}\n\n/**\n * Resolve a dependency in NPM.\n */\nfunction resolveNpmDependency (pkgName: string, raw: string, options: Options) {\n return findUp(options.cwd, join('node_modules', pkgName))\n .then(\n function (modulePath: string) {\n if (isDefinition(modulePath)) {\n return resolveFileDependency(modulePath, raw, options)\n }\n\n return resolveNpmDependencyFrom(modulePath, raw, options)\n },\n function (error) {\n return Promise.reject(resolveError(raw, error, options))\n }\n )\n}\n\n/**\n * Resolve a dependency in Bower.\n */\nfunction resolveBowerDependency (name: string, raw: string, options: Options) {\n return resolveBowerComponentPath(options.cwd)\n .then(\n function (bowerComponentPath: string) {\n const modulePath = resolve(bowerComponentPath, name)\n\n if (isDefinition(modulePath)) {\n return resolveFileDependency(modulePath, raw, options)\n }\n\n return resolveBowerDependencyFrom(modulePath, raw, extend(options, { bowerComponentPath }))\n },\n function (error) {\n return Promise.reject(resolveError(raw, error, options))\n }\n )\n}\n\n/**\n * Resolve a local file dependency.\n */\nfunction resolveFileDependency (location: string, raw: string, options: Options): Promise<DependencyTree> {\n const { name, parent } = options\n let src: string\n\n if (isHttp(location)) {\n src = location\n } else if (parent && isHttp(parent.src)) {\n src = resolveUrl(parent.src, location)\n } else {\n src = resolve(options.cwd, location)\n }\n\n if (!isDefinition(src)) {\n return resolveTypeDependencyFrom(src, raw, options)\n }\n\n options.emitter.emit('resolve', { name, src, raw, parent })\n\n const tree: DependencyTree = extend(DEFAULT_DEPENDENCY, {\n typings: src,\n src,\n raw,\n parent\n })\n\n options.emitter.emit('resolved', { name, src, tree, raw, parent })\n\n // Resolve direct typings using `typings` property.\n return Promise.resolve(tree)\n}\n\n/**\n * Follow and resolve bower dependencies.\n */\nexport function resolveBowerDependencies (options: Options): Promise<DependencyTree> {\n return findUp(options.cwd, 'bower.json')\n .then(\n function (bowerJsonPath: string) {\n return resolveBowerComponentPath(dirname(bowerJsonPath))\n .then(function (bowerComponentPath: string) {\n return resolveBowerDependencyFrom(bowerJsonPath, undefined, extend(options, { bowerComponentPath }))\n })\n },\n function (cause) {\n return Promise.reject(new TypingsError(`Unable to resolve Bower dependencies`, cause))\n }\n )\n}\n\n/**\n * Resolve bower dependencies from a path.\n */\nfunction resolveBowerDependencyFrom (src: string, raw: string, options: Options): Promise<DependencyTree> {\n const { name, parent } = options\n\n checkCircularDependency(parent, src)\n\n options.emitter.emit('resolve', { name, src, raw, parent })\n\n return readJson(src)\n .then(\n function (bowerJson: any = {}) {\n const tree = extend(DEFAULT_DEPENDENCY, {\n name: bowerJson.name,\n version: bowerJson.version,\n main: bowerJson.main,\n browser: bowerJson.browser,\n typings: bowerJson.typings,\n browserTypings: bowerJson.browserTypings,\n src,\n raw,\n parent\n })\n\n const dependencyMap = extend(bowerJson.dependencies)\n const devDependencyMap = extend(options.dev ? bowerJson.devDependencies : {})\n const dependencyOptions = extend(options, { parent: tree })\n\n options.emitter.emit('resolved', { name: name || tree.name, src, tree, raw, parent })\n\n return Promise.all([\n resolveBowerDependencyMap(dependencyMap, dependencyOptions),\n resolveBowerDependencyMap(devDependencyMap, dependencyOptions),\n maybeResolveTypeDependencyFrom(join(src, '..', CONFIG_FILE), raw, options)\n ])\n .then(function ([dependencies, devDependencies, typedPackage]) {\n tree.dependencies = dependencies\n tree.devDependencies = devDependencies\n\n return mergeDependencies(tree, typedPackage)\n })\n },\n function (error) {\n return Promise.reject(resolveError(raw, error, options))\n }\n )\n}\n\n/**\n * Resolve the path to bower components.\n */\nfunction resolveBowerComponentPath (path: string): Promise<string> {\n return readJson(resolve(path, '.bowerrc'))\n .then(\n function (bowerrc: any = {}) {\n return resolve(path, bowerrc.directory || 'bower_components')\n },\n function () {\n return resolve(path, 'bower_components')\n }\n )\n}\n\n/**\n * Recursively resolve dependencies from a list and component path.\n */\nfunction resolveBowerDependencyMap (dependencies: Dependencies, options: Options): Promise<DependencyBranch> {\n const keys = Object.keys(dependencies)\n\n return Promise.all(keys.map(function (name) {\n const modulePath = resolve(options.bowerComponentPath, name, 'bower.json')\n const resolveOptions: Options = extend(options, { name, dev: false, global: false, peer: false })\n\n return resolveBowerDependencyFrom(modulePath, `bower:${name}`, resolveOptions)\n }))\n .then(results => zipObject(keys, results))\n}\n\n/**\n * Follow and resolve npm dependencies.\n */\nexport function resolveNpmDependencies (options: Options): Promise<DependencyTree> {\n return findUp(options.cwd, 'package.json')\n .then(\n function (packageJsonPath: string) {\n return resolveNpmDependencyFrom(packageJsonPath, undefined, options)\n },\n function (cause) {\n return Promise.reject(new TypingsError(`Unable to resolve NPM dependencies`, cause))\n }\n )\n}\n\n/**\n * Follow and resolve JSPM dependencies.\n */\nexport function resolveJspmDependencies (options: Options): Promise<DependencyTree> {\n return findUp(options.cwd, 'package.json')\n .then(function (packageJsonPath: string) {\n const cwd = dirname(packageJsonPath)\n\n return readJspmPackageJson({ cwd })\n .then(function (packageJson) {\n return resolveByPackageJson(packageJson, { cwd })\n .then(function (config) {\n const keys = Object.keys(config)\n\n return Promise.all(keys.map(function (name) {\n const jspmConfig = config[name]\n\n return resolveJspmDependencyFrom(name, `jspm:${name}`, extend(options, { jspmConfig }))\n }))\n .then(results => {\n const tree: DependencyTree = extend(DEFAULT_DEPENDENCY, {\n name: packageJson.name,\n version: packageJson.version,\n main: packageJson.main,\n browser: packageJson.browser,\n typings: packageJson.typings,\n browserTypings: packageJson.browserTypings,\n src: packageJsonPath,\n dependencies: zipObject(keys, results)\n })\n\n return tree\n })\n })\n })\n })\n}\n\n/**\n * Resolve NPM dependencies from `package.json`.\n */\nfunction resolveNpmDependencyFrom (src: string, raw: string, options: Options): Promise<DependencyTree> {\n const { name, parent } = options\n\n checkCircularDependency(parent, src)\n\n options.emitter.emit('resolve', { name, src, raw, parent })\n\n return readJson(src)\n .then(\n function (packageJson: any = {}) {\n const tree: DependencyTree = extend(DEFAULT_DEPENDENCY, {\n name: packageJson.name,\n version: packageJson.version,\n main: packageJson.main,\n browser: packageJson.browser,\n typings: packageJson.typings,\n browserTypings: packageJson.browserTypings,\n src,\n raw,\n parent\n })\n\n const dependencyMap = extend(packageJson.dependencies)\n const devDependencyMap = extend(options.dev ? packageJson.devDependencies : {})\n const peerDependencyMap = extend(options.peer ? packageJson.peerDependencies : {})\n const dependencyOptions = extend(options, { parent: tree })\n\n options.emitter.emit('resolved', { name: name || tree.name, src, tree, raw, parent })\n\n return Promise.all([\n resolveNpmDependencyMap(src, dependencyMap, dependencyOptions),\n resolveNpmDependencyMap(src, devDependencyMap, dependencyOptions),\n resolveNpmDependencyMap(src, peerDependencyMap, dependencyOptions),\n maybeResolveTypeDependencyFrom(join(src, '..', CONFIG_FILE), raw, options)\n ])\n .then(function ([dependencies, devDependencies, peerDependencies, typedPackage]) {\n tree.dependencies = dependencies\n tree.devDependencies = devDependencies\n tree.peerDependencies = peerDependencies\n\n return mergeDependencies(tree, typedPackage)\n })\n },\n function (error) {\n return Promise.reject(resolveError(raw, error, options))\n }\n )\n}\n\n/**\n * Recursively resolve dependencies from a list and component path.\n */\nfunction resolveNpmDependencyMap (src: string, dependencies: any, options: Options): Promise<DependencyBranch> {\n const cwd = dirname(src)\n const keys = Object.keys(dependencies)\n\n return Promise.all(keys.map(function (name) {\n const resolveOptions: Options = extend(options, { name, cwd, dev: false, peer: false, global: false })\n\n return resolveNpmDependency(join(name, 'package.json'), `npm:${name}`, resolveOptions)\n }))\n .then(results => zipObject(keys, results))\n}\n\n/**\n * Follow and resolve type dependencies.\n */\nexport function resolveTypeDependencies (options: Options): Promise<DependencyTree> {\n return findConfigFile(options.cwd)\n .then(\n function (path: string) {\n return resolveTypeDependencyFrom(path, undefined, options)\n },\n function (cause) {\n return Promise.reject(new TypingsError(`Unable to resolve Typings dependencies`, cause))\n }\n )\n}\n\n/**\n * Resolve type dependencies from an exact path.\n */\nfunction resolveTypeDependencyFrom (src: string, raw: string, options: Options) {\n const { name, parent } = options\n\n checkCircularDependency(parent, src)\n\n options.emitter.emit('resolve', { name, src, raw, parent })\n\n return readConfigFrom(src)\n .then<DependencyTree>(\n function (config) {\n const tree = extend(DEFAULT_DEPENDENCY, {\n name: config.name,\n main: config.main,\n version: config.version,\n browser: config.browser,\n files: Array.isArray(config.files) ? config.files : undefined,\n global: typeof config.global === 'boolean' ? !!config.global : undefined,\n postmessage: typeof config.postmessage === 'string' ? config.postmessage : undefined,\n src,\n raw,\n parent\n })\n\n const { global, dev, peer } = options\n\n const dependencyMap = extend(config.dependencies)\n const devDependencyMap = extend(dev ? config.devDependencies : {})\n const peerDependencyMap = extend(peer ? config.peerDependencies : {})\n const globalDependencyMap = extend(global ? config.globalDependencies : {})\n const globalDevDependencyMap = extend(global && dev ? config.globalDevDependencies : {})\n const dependencyOptions = extend(options, { parent: tree })\n\n options.emitter.emit('resolved', { name: name || tree.name, src, tree, raw, parent })\n\n // Emit \"expected\" global modules when installing top-level.\n if (parent == null && config.globalDependencies) {\n options.emitter.emit('globaldependencies', {\n name: name || tree.name,\n raw,\n dependencies: config.globalDependencies\n })\n }\n\n return Promise.all([\n resolveTypeDependencyMap(src, dependencyMap, dependencyOptions),\n resolveTypeDependencyMap(src, devDependencyMap, dependencyOptions),\n resolveTypeDependencyMap(src, peerDependencyMap, dependencyOptions),\n resolveTypeDependencyMap(src, globalDependencyMap, dependencyOptions),\n resolveTypeDependencyMap(src, globalDevDependencyMap, dependencyOptions)\n ])\n .then(function ([\n dependencies,\n devDependencies,\n peerDependencies,\n globalDependencies,\n globalDevDependencies\n ]) {\n tree.dependencies = dependencies\n tree.devDependencies = devDependencies\n tree.peerDependencies = peerDependencies\n tree.globalDependencies = globalDependencies\n tree.globalDevDependencies = globalDevDependencies\n\n return tree\n })\n },\n function (error) {\n return Promise.reject(resolveError(raw, error, options))\n }\n )\n}\n\n/**\n * Resolve type dependency ignoring not found issues (E.g. when mixed resolve NPM/Bower).\n */\nfunction maybeResolveTypeDependencyFrom (src: string, raw: string, options: Options) {\n return resolveTypeDependencyFrom(src, raw, options).catch(() => extend(DEFAULT_DEPENDENCY))\n}\n\n/**\n * Resolve type dependency map from a cache directory.\n */\nfunction resolveTypeDependencyMap (src: string, dependencies: any, options: Options) {\n const cwd = dirname(src)\n const keys = Object.keys(dependencies)\n\n return Promise.all(keys.map(function (name) {\n const resolveOptions: Options = extend(options, { name, cwd, dev: false, global: false, peer: false })\n\n return resolveDependency(parseDependency(dependencies[name]), resolveOptions)\n }))\n .then(results => zipObject(keys, results))\n}\n\n/**\n * Resolve a dependency from JSPM.\n */\nexport function resolveJspmDependency (pkgName: string, raw: string, options: Options): Promise<DependencyTree> {\n return findUp(options.cwd, 'package.json')\n .then(function (packageJsonPath) {\n return resolveJspm(pkgName, { cwd: dirname(packageJsonPath) })\n })\n .then(\n function (jspmConfig) {\n return resolveJspmDependencyFrom(pkgName, raw, extend(options, { jspmConfig }))\n },\n function (error) {\n if (error instanceof ModuleNotFoundError) {\n return resolveJspmDependencyFrom(pkgName, raw, options)\n }\n return Promise.reject(resolveError(raw, error, options))\n }\n )\n}\n\n/**\n * Resolve JSPM dependency.\n */\nfunction resolveJspmDependencyFrom (name: string, raw: string, options: Options): Promise<DependencyTree> {\n const { parent, jspmConfig } = options\n const modulePath = jspmConfig.path\n const src = resolve(options.cwd, modulePath, 'package.json')\n\n checkCircularDependency(parent, src)\n\n options.emitter.emit('resolve', { name, src, raw, parent })\n\n return readJson(src)\n .catch(function (err) {\n // Ignore `FileNotFound` errors.\n if (err.code === 'ENOENT') {\n return\n }\n\n return Promise.reject(err)\n })\n .then(function (meta: any = {}) {\n const tree = extend(DEFAULT_DEPENDENCY, {\n src,\n raw,\n parent,\n name: meta.name,\n version: meta.version,\n main: meta.main,\n browser: meta.browser,\n typings: meta.typings,\n browserTypings: meta.browserTypings\n })\n\n options.emitter.emit('resolved', { name, src, tree, raw, parent })\n\n const dependencyOptions = extend(options, { parent: tree })\n const configPath = resolve(options.cwd, modulePath, CONFIG_FILE)\n\n return Promise.all([\n resolveJspmDependencyMap(jspmConfig.map, dependencyOptions),\n maybeResolveTypeDependencyFrom(configPath, raw, options)\n ])\n .then(([dependencies, typedPackage]) => {\n tree.dependencies = dependencies\n\n return mergeDependencies(tree, typedPackage)\n })\n })\n}\n\n/**\n * Recursively resolve dependencies from a list and component path.\n */\nfunction resolveJspmDependencyMap (dependencies: DependencyBranch = {}, options: Options): Promise<DependencyBranch> {\n const keys = Object.keys(dependencies)\n\n return Promise.all(keys.map(function (name) {\n const resolveOptions = extend(options, { dev: false, peer: false, global: false, jspmConfig: dependencies[name] })\n\n return resolveJspmDependencyFrom(name, `jspm:${name}`, resolveOptions)\n }))\n .then(results => zipObject(keys, results))\n}\n\n/**\n * Check whether the filename is a circular dependency.\n */\nfunction checkCircularDependency (tree: DependencyTree, filename: string) {\n if (tree) {\n const currentSrc = tree.src\n\n while (tree) {\n invariant(tree.src !== filename, `Circular dependency detected using \"${currentSrc}\"`)\n\n tree = tree.parent\n }\n }\n}\n\n/**\n * Create a resolved failure error message.\n */\nfunction resolveError (raw: string, cause: Error, options: Options) {\n const { name } = options\n let message = `Unable to resolve ${raw == null ? 'typings' : `\"${raw}\"`}`\n\n if (name != null) {\n message += ` from \"${name}\"`\n }\n\n return new TypingsError(message, cause)\n}\n\n/**\n * Merge dependency trees together.\n */\nfunction mergeDependencies (root: DependencyTree, ...trees: DependencyTree[]): DependencyTree {\n const dependency = extend(root)\n\n for (const tree of trees) {\n // Skip empty dependency trees.\n if (tree == null) {\n continue\n }\n\n const { name, raw, src, main, browser, typings, browserTypings, parent, files, global } = tree\n\n // The parent needs to always be set.\n if (parent != null) {\n dependency.parent = parent\n }\n\n // Merge known global properties.\n if (global != null) {\n dependency.global = global\n }\n\n if (typeof name === 'string') {\n dependency.name = name\n }\n\n if (typeof raw === 'string') {\n dependency.raw = raw\n }\n\n // Handle `main` and `typings` overrides all together.\n if (main != null || browser != null || typings != null || browserTypings != null || files != null) {\n dependency.src = src\n dependency.main = main\n dependency.files = files\n dependency.browser = browser\n dependency.typings = typings\n dependency.browserTypings = browserTypings\n }\n\n dependency.postmessage = tree.postmessage || dependency.postmessage\n dependency.dependencies = extend(dependency.dependencies, tree.dependencies)\n dependency.devDependencies = extend(dependency.devDependencies, tree.devDependencies)\n dependency.peerDependencies = extend(dependency.peerDependencies, tree.peerDependencies)\n dependency.globalDependencies = extend(dependency.globalDependencies, tree.globalDependencies)\n dependency.globalDevDependencies = extend(dependency.globalDevDependencies, tree.globalDevDependencies)\n }\n\n return dependency\n}\n"]} | ||
| {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/lib/dependencies.ts"],"names":[],"mappings":";;AAAA,8BAAgC;AAChC,iCAAmC;AACnC,qCAAuC;AACvC,sCAAwC;AACxC,6BAA6C;AAC7C,2BAA2C;AAC3C,2CAAoH;AACpH,kCAAoE;AACpE,wCAAgD;AAChD,sCAAsD;AACtD,sCAAoD;AACpD,0CAA6C;AAC7C,oCAAkC;AAElC,iCAAkC;AAKrB,QAAA,kBAAkB,GAAmB;IAChD,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,cAAc,EAAE,SAAS;IACzB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,WAAW,EAAE,SAAS;IACtB,YAAY,EAAE,EAAE;IAChB,eAAe,EAAE,EAAE;IACnB,gBAAgB,EAAE,EAAE;IACpB,kBAAkB,EAAE,EAAE;IACtB,qBAAqB,EAAE,EAAE;CAC1B,CAAA;AAoBD,gCAAwC,OAAgB;IACtD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;QACjB,wBAAwB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,cAAM,OAAA,MAAM,CAAC,0BAAkB,CAAC,EAA1B,CAA0B,CAAC;QACzE,sBAAsB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,cAAM,OAAA,MAAM,CAAC,0BAAkB,CAAC,EAA1B,CAA0B,CAAC;QACvE,uBAAuB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,cAAM,OAAA,MAAM,CAAC,0BAAkB,CAAC,EAA1B,CAA0B,CAAC;QACxE,uBAAuB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,cAAM,OAAA,MAAM,CAAC,0BAAkB,CAAC,EAA1B,CAA0B,CAAC;KACzE,CAAC;SACC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,iBAAiB,gBAAC,0BAAkB,SAAK,KAAK,IAA9C,CAA+C,CAAC,CAAA;AACrE,CAAC;AARD,wDAQC;AAKD,2BAAmC,UAAsB,EAAE,OAAgB;IACjE,IAAA,sBAAI,EAAE,8BAAQ,EAAE,oBAAG,EAAE,sBAAI,CAAe;IAEhD,EAAE,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC;QACxB,MAAM,CAAC,yBAAyB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACvD,CAAC;IAED,EAAE,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC;QAC9C,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,MAAA,EAAE,GAAG,KAAA,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC;IAED,MAAM,CAAC,2BAA2B,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;AAClE,CAAC;AAdD,8CAcC;AAKD,qCAAsC,IAAY,EAAE,QAAgB,EAAE,GAAW,EAAE,OAAgB;IACjG,EAAE,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;IAED,EAAE,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC;QACnB,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IACrD,CAAC;IAED,EAAE,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC;QACrB,MAAM,CAAC,sBAAsB,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IACvD,CAAC;IAED,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;AACtD,CAAC;AAKD,mCAAoC,UAAsB,EAAE,OAAgB;IAClE,IAAA,8BAAQ,EAAE,sBAAI,CAAe;IAErC,MAAM,CAAC,iBAAY,CAAC,QAAQ,CAAC;SAC1B,IAAI,CACH,UAAU,KAAK;QAEP,IAAA,4CAAoD,EAAlD,cAAI,EAAE,sBAAQ,CAAoC;QAC1D,IAAM,GAAG,GAAG,cAAY,IAAI,CAAC,MAAM,SAAI,IAAI,CAAC,IAAI,SAAI,KAAK,CAAC,GAAK,CAAA;QAE/D,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YACrB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE;gBACjC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,GAAG,EAAE,UAAU,CAAC,GAAG;gBACnB,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;aACjC,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,CAAC,2BAA2B,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IAClE,CAAC,EACD,UAAU,KAAK;QAEb,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,eAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;iBAC/B,IAAI,CAAC,UAAA,GAAG;gBACP,IAAI,OAAO,GAAG,sBAAmB,IAAI,CAAC,IAAI,cAAO,IAAI,CAAC,MAAM,yBAAqB,CAAA;gBAEjF,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAM,IAAI,GAAG,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAA;oBAEnD,OAAO,IAAI,2BAAwB,IAAI,CAAC,IAAI,eAAS,GAAG,CAAC,KAAK,eAAU,IAAI,OAAI,CAAA;oBAChF,OAAO,IAAI,KAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,EAAxB,CAAwB,CAAC,CAAG,CAAA;oBACvE,OAAO,IAAI,sDAAoD,CAAA;gBACjE,CAAC;gBAED,OAAO,IAAI,iEAAiE,CAAA;gBAC5E,OAAO,IAAI,qCAAqC,CAAA;gBAEhD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,eAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;YACzD,CAAC,CAAC,CAAA;QACN,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC,CACF,CAAA;AACL,CAAC;AAKD,8BAA+B,OAAe,EAAE,GAAW,EAAE,OAAgB;IAC3E,MAAM,CAAC,aAAM,CAAC,OAAO,CAAC,GAAG,EAAE,WAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;SACtD,IAAI,CACH,UAAU,UAAkB;QAC1B,EAAE,CAAC,CAAC,mBAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,qBAAqB,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,CAAC,wBAAwB,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IAC3D,CAAC,EACD,UAAU,KAAK;QACb,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;IAC1D,CAAC,CACF,CAAA;AACL,CAAC;AAKD,gCAAiC,IAAY,EAAE,GAAW,EAAE,OAAgB;IAC1E,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,GAAG,CAAC;SAC1C,IAAI,CACH,UAAU,kBAA0B;QAClC,IAAM,UAAU,GAAG,cAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAA;QAEpD,EAAE,CAAC,CAAC,mBAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,qBAAqB,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,CAAC,0BAA0B,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,kBAAkB,oBAAA,EAAE,CAAC,CAAC,CAAA;IAC7F,CAAC,EACD,UAAU,KAAK;QACb,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;IAC1D,CAAC,CACF,CAAA;AACL,CAAC;AAKD,+BAAgC,QAAgB,EAAE,GAAW,EAAE,OAAgB;IACrE,IAAA,mBAAI,EAAE,uBAAM,CAAY;IAChC,IAAI,GAAW,CAAA;IAEf,EAAE,CAAC,CAAC,aAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACrB,GAAG,GAAG,QAAQ,CAAA;IAChB,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,aAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxC,GAAG,GAAG,aAAU,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IACxC,CAAC;IAAC,IAAI,CAAC,CAAC;QACN,GAAG,GAAG,cAAO,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IACtC,CAAC;IAED,EAAE,CAAC,CAAC,CAAC,mBAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,CAAC,yBAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IACrD,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,MAAA,EAAE,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAA;IAE3D,IAAM,IAAI,GAAmB,MAAM,CAAC,0BAAkB,EAAE;QACtD,OAAO,EAAE,GAAG;QACZ,GAAG,KAAA;QACH,GAAG,KAAA;QACH,MAAM,QAAA;KACP,CAAC,CAAA;IAEF,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,MAAA,EAAE,GAAG,KAAA,EAAE,IAAI,MAAA,EAAE,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAA;IAGlE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAC9B,CAAC;AAKD,kCAA0C,OAAgB;IACxD,MAAM,CAAC,aAAM,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC;SACrC,IAAI,CACH,UAAU,aAAqB;QAC7B,MAAM,CAAC,yBAAyB,CAAC,cAAO,CAAC,aAAa,CAAC,CAAC;aACrD,IAAI,CAAC,UAAU,kBAA0B;YACxC,MAAM,CAAC,0BAA0B,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,kBAAkB,oBAAA,EAAE,CAAC,CAAC,CAAA;QACtG,CAAC,CAAC,CAAA;IACN,CAAC,EACD,UAAU,KAAK;QACb,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,eAAY,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC,CAAA;IACxF,CAAC,CACF,CAAA;AACL,CAAC;AAbD,4DAaC;AAKD,oCAAqC,GAAW,EAAE,GAAW,EAAE,OAAgB;IACrE,IAAA,mBAAI,EAAE,uBAAM,CAAY;IAEhC,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAEpC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,MAAA,EAAE,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAA;IAE3D,MAAM,CAAC,aAAQ,CAAC,GAAG,CAAC;SACjB,IAAI,CACH,UAAU,SAAmB;QAAnB,0BAAA,EAAA,cAAmB;QAC3B,IAAM,IAAI,GAAG,MAAM,CAAC,0BAAkB,EAAE;YACtC,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,cAAc,EAAE,SAAS,CAAC,cAAc;YACxC,GAAG,KAAA;YACH,GAAG,KAAA;YACH,MAAM,QAAA;SACP,CAAC,CAAA;QAEF,IAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QACpD,IAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,eAAe,GAAG,EAAE,CAAC,CAAA;QAC7E,IAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QAE3D,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,KAAA,EAAE,IAAI,MAAA,EAAE,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAA;QAErF,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;YACjB,yBAAyB,CAAC,aAAa,EAAE,iBAAiB,CAAC;YAC3D,yBAAyB,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;YAC9D,8BAA8B,CAAC,WAAI,CAAC,GAAG,EAAE,IAAI,EAAE,oBAAW,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC;SAC3E,CAAC;aACC,IAAI,CAAC,UAAU,EAA6C;gBAA5C,oBAAY,EAAE,uBAAe,EAAE,oBAAY;YAC1D,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;YAChC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;YAEtC,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;IACN,CAAC,EACD,UAAU,KAAK;QACb,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;IAC1D,CAAC,CACF,CAAA;AACL,CAAC;AAKD,mCAAoC,IAAY;IAC9C,MAAM,CAAC,aAAQ,CAAC,cAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SACvC,IAAI,CACH,UAAU,OAAiB;QAAjB,wBAAA,EAAA,YAAiB;QACzB,MAAM,CAAC,cAAO,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC,CAAA;IAC/D,CAAC,EACD;QACE,MAAM,CAAC,cAAO,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IAC1C,CAAC,CACF,CAAA;AACL,CAAC;AAKD,mCAAoC,YAA0B,EAAE,OAAgB;IAC9E,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAEtC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI;QACxC,IAAM,UAAU,GAAG,cAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;QAC1E,IAAM,cAAc,GAAY,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,MAAA,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAEjG,MAAM,CAAC,0BAA0B,CAAC,UAAU,EAAE,WAAS,IAAM,EAAE,cAAc,CAAC,CAAA;IAChF,CAAC,CAAC,CAAC;SACA,IAAI,CAAC,UAAA,OAAO,IAAI,OAAA,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,EAAxB,CAAwB,CAAC,CAAA;AAC9C,CAAC;AAKD,gCAAwC,OAAgB;IACtD,MAAM,CAAC,aAAM,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC;SACvC,IAAI,CACH,UAAU,eAAuB;QAC/B,MAAM,CAAC,wBAAwB,CAAC,eAAe,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IACtE,CAAC,EACD,UAAU,KAAK;QACb,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,eAAY,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC,CAAA;IACtF,CAAC,CACF,CAAA;AACL,CAAC;AAVD,wDAUC;AAKD,iCAAyC,OAAgB;IACvD,MAAM,CAAC,aAAM,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC;SACvC,IAAI,CAAC,UAAU,eAAuB;QACrC,IAAM,GAAG,GAAG,cAAO,CAAC,eAAe,CAAC,CAAA;QAEpC,MAAM,CAAC,iCAAmB,CAAC,EAAE,GAAG,KAAA,EAAE,CAAC;aAChC,IAAI,CAAC,UAAU,WAAW;YACzB,MAAM,CAAC,kCAAoB,CAAC,WAAW,EAAE,EAAE,GAAG,KAAA,EAAE,CAAC;iBAC9C,IAAI,CAAC,UAAU,MAAM;gBACpB,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAEhC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI;oBACxC,IAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;oBAE/B,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,UAAQ,IAAM,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,UAAU,YAAA,EAAE,CAAC,CAAC,CAAA;gBACzF,CAAC,CAAC,CAAC;qBACA,IAAI,CAAC,UAAA,OAAO;oBACX,IAAM,IAAI,GAAmB,MAAM,CAAC,0BAAkB,EAAE;wBACtD,IAAI,EAAE,WAAW,CAAC,IAAI;wBACtB,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,IAAI,EAAE,WAAW,CAAC,IAAI;wBACtB,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,cAAc,EAAE,WAAW,CAAC,cAAc;wBAC1C,GAAG,EAAE,eAAe;wBACpB,YAAY,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC;qBACvC,CAAC,CAAA;oBAEF,MAAM,CAAC,IAAI,CAAA;gBACb,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC;AAjCD,0DAiCC;AAKD,kCAAmC,GAAW,EAAE,GAAW,EAAE,OAAgB;IACnE,IAAA,mBAAI,EAAE,uBAAM,CAAY;IAEhC,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAEpC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,MAAA,EAAE,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAA;IAE3D,MAAM,CAAC,aAAQ,CAAC,GAAG,CAAC;SACjB,IAAI,CACH,UAAU,WAAqB;QAArB,4BAAA,EAAA,gBAAqB;QAC7B,IAAM,IAAI,GAAmB,MAAM,CAAC,0BAAkB,EAAE;YACtD,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,cAAc,EAAE,WAAW,CAAC,cAAc;YAC1C,GAAG,KAAA;YACH,GAAG,KAAA;YACH,MAAM,QAAA;SACP,CAAC,CAAA;QAEF,IAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;QACtD,IAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC,eAAe,GAAG,EAAE,CAAC,CAAA;QAC/E,IAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAA;QAClF,IAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QAE3D,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,KAAA,EAAE,IAAI,MAAA,EAAE,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAA;QAErF,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;YACjB,uBAAuB,CAAC,GAAG,EAAE,aAAa,EAAE,iBAAiB,CAAC;YAC9D,uBAAuB,CAAC,GAAG,EAAE,gBAAgB,EAAE,iBAAiB,CAAC;YACjE,uBAAuB,CAAC,GAAG,EAAE,iBAAiB,EAAE,iBAAiB,CAAC;YAClE,8BAA8B,CAAC,WAAI,CAAC,GAAG,EAAE,IAAI,EAAE,oBAAW,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC;SAC3E,CAAC;aACC,IAAI,CAAC,UAAU,EAA+D;gBAA9D,oBAAY,EAAE,uBAAe,EAAE,wBAAgB,EAAE,oBAAY;YAC5E,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;YAChC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;YACtC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;YAExC,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;IACN,CAAC,EACD,UAAU,KAAK;QACb,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;IAC1D,CAAC,CACF,CAAA;AACL,CAAC;AAKD,iCAAkC,GAAW,EAAE,YAAiB,EAAE,OAAgB;IAChF,IAAM,GAAG,GAAG,cAAO,CAAC,GAAG,CAAC,CAAA;IACxB,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAEtC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI;QACxC,IAAM,cAAc,GAAY,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,MAAA,EAAE,GAAG,KAAA,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;QAEtG,MAAM,CAAC,oBAAoB,CAAC,WAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,SAAO,IAAM,EAAE,cAAc,CAAC,CAAA;IACxF,CAAC,CAAC,CAAC;SACA,IAAI,CAAC,UAAA,OAAO,IAAI,OAAA,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,EAAxB,CAAwB,CAAC,CAAA;AAC9C,CAAC;AAKD,iCAAyC,OAAgB;IACvD,MAAM,CAAC,qBAAc,CAAC,OAAO,CAAC,GAAG,CAAC;SAC/B,IAAI,CACH,UAAU,IAAY;QACpB,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IAC5D,CAAC,EACD,UAAU,KAAK;QACb,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,eAAY,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC,CAAA;IAC1F,CAAC,CACF,CAAA;AACL,CAAC;AAVD,0DAUC;AAKD,mCAAoC,GAAW,EAAE,GAAW,EAAE,OAAgB;IACpE,IAAA,mBAAI,EAAE,uBAAM,CAAY;IAEhC,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAEpC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,MAAA,EAAE,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAA;IAE3D,MAAM,CAAC,mBAAc,CAAC,GAAG,CAAC;SACvB,IAAI,CACH,UAAU,MAAM;QACd,IAAM,IAAI,GAAG,MAAM,CAAC,0BAAkB,EAAE;YACtC,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,SAAS;YAC7D,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,KAAK,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS;YACxE,WAAW,EAAE,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,GAAG,MAAM,CAAC,WAAW,GAAG,SAAS;YACpF,GAAG,KAAA;YACH,GAAG,KAAA;YACH,MAAM,QAAA;SACP,CAAC,CAAA;QAEM,IAAA,uBAAM,EAAE,iBAAG,EAAE,mBAAI,CAAY;QAErC,IAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QACjD,IAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,eAAe,GAAG,EAAE,CAAC,CAAA;QAClE,IAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAA;QACrE,IAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAA;QAC3E,IAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAA;QACxF,IAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QAE3D,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,KAAA,EAAE,IAAI,MAAA,EAAE,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAA;QAGrF,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBACzC,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;gBACvB,GAAG,KAAA;gBACH,YAAY,EAAE,MAAM,CAAC,kBAAkB;aACxC,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;YACjB,wBAAwB,CAAC,GAAG,EAAE,aAAa,EAAE,iBAAiB,CAAC;YAC/D,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,EAAE,iBAAiB,CAAC;YAClE,wBAAwB,CAAC,GAAG,EAAE,iBAAiB,EAAE,iBAAiB,CAAC;YACnE,wBAAwB,CAAC,GAAG,EAAE,mBAAmB,EAAE,iBAAiB,CAAC;YACrE,wBAAwB,CAAC,GAAG,EAAE,sBAAsB,EAAE,iBAAiB,CAAC;SACzE,CAAC;aACC,IAAI,CAAC,UAAU,EAMf;gBALC,oBAAY,EACZ,uBAAe,EACf,wBAAgB,EAChB,0BAAkB,EAClB,6BAAqB;YAErB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;YAChC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;YACtC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;YACxC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;YAC5C,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAA;YAElD,MAAM,CAAC,IAAI,CAAA;QACb,CAAC,CAAC,CAAA;IACN,CAAC,EACD,UAAU,KAAK;QACb,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;IAC1D,CAAC,CACF,CAAA;AACL,CAAC;AAKD,wCAAyC,GAAW,EAAE,GAAW,EAAE,OAAgB;IACjF,MAAM,CAAC,yBAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,cAAM,OAAA,MAAM,CAAC,0BAAkB,CAAC,EAA1B,CAA0B,CAAC,CAAA;AAC7F,CAAC;AAKD,kCAAmC,GAAW,EAAE,YAAiB,EAAE,OAAgB;IACjF,IAAM,GAAG,GAAG,cAAO,CAAC,GAAG,CAAC,CAAA;IACxB,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAEtC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI;QACxC,IAAM,cAAc,GAAY,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,MAAA,EAAE,GAAG,KAAA,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAEtG,MAAM,CAAC,iBAAiB,CAAC,uBAAe,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;IAC/E,CAAC,CAAC,CAAC;SACA,IAAI,CAAC,UAAA,OAAO,IAAI,OAAA,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,EAAxB,CAAwB,CAAC,CAAA;AAC9C,CAAC;AAKD,+BAAuC,OAAe,EAAE,GAAW,EAAE,OAAgB;IACnF,MAAM,CAAC,aAAM,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC;SACvC,IAAI,CAAC,UAAU,eAAe;QAC7B,MAAM,CAAC,qBAAW,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,cAAO,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;IAChE,CAAC,CAAC;SACD,IAAI,CACH,UAAU,UAAU;QAClB,MAAM,CAAC,yBAAyB,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,UAAU,YAAA,EAAE,CAAC,CAAC,CAAA;IACjF,CAAC,EACD,UAAU,KAAK;QACb,EAAE,CAAC,CAAC,KAAK,YAAY,iCAAmB,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,yBAAyB,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;QACzD,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;IAC1D,CAAC,CACF,CAAA;AACL,CAAC;AAhBD,sDAgBC;AAKD,mCAAoC,IAAY,EAAE,GAAW,EAAE,OAAgB;IACrE,IAAA,uBAAM,EAAE,+BAAU,CAAY;IACtC,IAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAA;IAClC,IAAM,GAAG,GAAG,cAAO,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,cAAc,CAAC,CAAA;IAE5D,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAEpC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,MAAA,EAAE,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAA;IAE3D,MAAM,CAAC,aAAQ,CAAC,GAAG,CAAC;SACjB,KAAK,CAAC,UAAU,GAAG;QAElB,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC1B,MAAM,CAAA;QACR,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC,CAAC;SACD,IAAI,CAAC,UAAU,IAAc;QAAd,qBAAA,EAAA,SAAc;QAC5B,IAAM,IAAI,GAAG,MAAM,CAAC,0BAAkB,EAAE;YACtC,GAAG,KAAA;YACH,GAAG,KAAA;YACH,MAAM,QAAA;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAA;QAEF,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,MAAA,EAAE,GAAG,KAAA,EAAE,IAAI,MAAA,EAAE,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAA;QAElE,IAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3D,IAAM,UAAU,GAAG,cAAO,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,oBAAW,CAAC,CAAA;QAEhE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;YACjB,wBAAwB,CAAC,UAAU,CAAC,GAAG,EAAE,iBAAiB,CAAC;YAC3D,8BAA8B,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC;SACzD,CAAC;aACC,IAAI,CAAC,UAAC,EAA4B;gBAA3B,oBAAY,EAAE,oBAAY;YAChC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;YAEhC,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC;AAKD,kCAAmC,YAAmC,EAAE,OAAgB;IAArD,6BAAA,EAAA,iBAAmC;IACpE,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAEtC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI;QACxC,IAAM,cAAc,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAElH,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,UAAQ,IAAM,EAAE,cAAc,CAAC,CAAA;IACxE,CAAC,CAAC,CAAC;SACA,IAAI,CAAC,UAAA,OAAO,IAAI,OAAA,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,EAAxB,CAAwB,CAAC,CAAA;AAC9C,CAAC;AAKD,iCAAkC,IAAoB,EAAE,QAAgB;IACtE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACT,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAA;QAE3B,OAAO,IAAI,EAAE,CAAC;YACZ,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,EAAE,0CAAuC,UAAU,OAAG,CAAC,CAAA;YAEtF,IAAI,GAAG,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;IACH,CAAC;AACH,CAAC;AAKD,sBAAuB,GAAW,EAAE,KAAY,EAAE,OAAgB;IACxD,IAAA,mBAAI,CAAY;IACxB,IAAI,OAAO,GAAG,wBAAqB,GAAG,IAAI,IAAI,GAAG,SAAS,GAAG,OAAI,GAAG,OAAG,CAAE,CAAA;IAEzE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;QACjB,OAAO,IAAI,aAAU,IAAI,OAAG,CAAA;IAC9B,CAAC;IAED,MAAM,CAAC,IAAI,eAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AACzC,CAAC;AAKD,2BAA4B,IAAoB;IAAE,eAA0B;SAA1B,UAA0B,EAA1B,qBAA0B,EAA1B,IAA0B;QAA1B,8BAA0B;;IAC1E,IAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAE/B,GAAG,CAAC,CAAe,UAAK,EAAL,eAAK,EAAL,mBAAK,EAAL,IAAK;QAAnB,IAAM,IAAI,cAAA;QAEb,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;YACjB,QAAQ,CAAA;QACV,CAAC;QAEO,IAAA,gBAAI,EAAE,cAAG,EAAE,cAAG,EAAE,gBAAI,EAAE,sBAAO,EAAE,sBAAO,EAAE,oCAAc,EAAE,oBAAM,EAAE,kBAAK,EAAE,sBAAM,CAAS;QAG9F,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;YACnB,UAAU,CAAC,MAAM,GAAG,MAAM,CAAA;QAC5B,CAAC;QAGD,EAAE,CAAC,CAAC,QAAM,IAAI,IAAI,CAAC,CAAC,CAAC;YACnB,UAAU,CAAC,MAAM,GAAG,QAAM,CAAA;QAC5B,CAAC;QAED,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC7B,UAAU,CAAC,IAAI,GAAG,IAAI,CAAA;QACxB,CAAC;QAED,EAAE,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC5B,UAAU,CAAC,GAAG,GAAG,GAAG,CAAA;QACtB,CAAC;QAGD,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,IAAI,cAAc,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;YAClG,UAAU,CAAC,GAAG,GAAG,GAAG,CAAA;YACpB,UAAU,CAAC,IAAI,GAAG,IAAI,CAAA;YACtB,UAAU,CAAC,KAAK,GAAG,KAAK,CAAA;YACxB,UAAU,CAAC,OAAO,GAAG,OAAO,CAAA;YAC5B,UAAU,CAAC,OAAO,GAAG,OAAO,CAAA;YAC5B,UAAU,CAAC,cAAc,GAAG,cAAc,CAAA;QAC5C,CAAC;QAED,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW,CAAA;QACnE,UAAU,CAAC,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;QAC5E,UAAU,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;QACrF,UAAU,CAAC,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;QACxF,UAAU,CAAC,kBAAkB,GAAG,MAAM,CAAC,UAAU,CAAC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAC9F,UAAU,CAAC,qBAAqB,GAAG,MAAM,CAAC,UAAU,CAAC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAA;KACxG;IAED,MAAM,CAAC,UAAU,CAAA;AACnB,CAAC","sourcesContent":["import extend = require('xtend')\nimport listify = require('listify')\nimport invariant = require('invariant')\nimport zipObject = require('zip-object')\nimport { resolve, dirname, join } from 'path'\nimport { resolve as resolveUrl } from 'url'\nimport { readJspmPackageJson, resolveByPackageJson, resolve as resolveJspm, ModuleNotFoundError } from 'jspm-config'\nimport { readJson, readConfigFrom, readJsonFrom } from '../utils/fs'\nimport { parseDependency } from '../utils/parse'\nimport { findUp, findConfigFile } from '../utils/find'\nimport { isDefinition, isHttp } from '../utils/path'\nimport { CONFIG_FILE } from '../utils/config'\nimport { search } from '../search'\nimport { Dependency, DependencyBranch, Dependencies, DependencyTree, Emitter } from '../interfaces'\nimport TypingsError from './error'\n\n/**\n * Default dependency config options.\n */\nexport const DEFAULT_DEPENDENCY: DependencyTree = {\n src: undefined,\n raw: undefined,\n main: undefined,\n browser: undefined,\n typings: undefined,\n browserTypings: undefined,\n version: undefined,\n files: undefined,\n global: undefined,\n postmessage: undefined,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n}\n\n/**\n * Options for resolving dependencies.\n */\nexport interface Options {\n cwd: string\n emitter: Emitter\n name?: string\n dev?: boolean\n peer?: boolean\n global?: boolean\n parent?: DependencyTree\n bowerComponentPath?: string\n jspmConfig?: any\n}\n\n/**\n * Resolve all dependencies at the current path.\n */\nexport function resolveAllDependencies (options: Options): Promise<DependencyTree> {\n return Promise.all([\n resolveBowerDependencies(options).catch(() => extend(DEFAULT_DEPENDENCY)),\n resolveNpmDependencies(options).catch(() => extend(DEFAULT_DEPENDENCY)),\n resolveJspmDependencies(options).catch(() => extend(DEFAULT_DEPENDENCY)),\n resolveTypeDependencies(options).catch(() => extend(DEFAULT_DEPENDENCY))\n ])\n .then((trees) => mergeDependencies(DEFAULT_DEPENDENCY, ...trees))\n}\n\n/**\n * Resolve a single dependency object.\n */\nexport function resolveDependency (dependency: Dependency, options: Options): Promise<DependencyTree> {\n const { type, location, raw, meta } = dependency\n\n if (type === 'registry') {\n return resolveDependencyRegistry(dependency, options)\n }\n\n if (type === 'github' || type === 'bitbucket') {\n if (meta.sha === 'master') {\n options.emitter.emit('badlocation', { type, raw, location })\n }\n }\n\n return resolveDependencyInternally(type, location, raw, options)\n}\n\n/**\n * Internal version of `resolveDependency`, skipping the registry handling.\n */\nfunction resolveDependencyInternally (type: string, location: string, raw: string, options: Options) {\n if (type === 'jspm' || (type === 'npm' && options.jspmConfig)) {\n return resolveJspmDependency(location, raw, options)\n }\n\n if (type === 'npm') {\n return resolveNpmDependency(location, raw, options)\n }\n\n if (type === 'bower') {\n return resolveBowerDependency(location, raw, options)\n }\n\n return resolveFileDependency(location, raw, options)\n}\n\n/**\n * Resolving a registry dependency has an intermediate step.\n */\nfunction resolveDependencyRegistry (dependency: Dependency, options: Options) {\n const { location, meta } = dependency\n\n return readJsonFrom(location)\n .then(\n function (entry) {\n // Rewrite dependency type and location, but recreate `raw`.\n const { type, location } = parseDependency(entry.location)\n const raw = `registry:${meta.source}/${meta.name}#${entry.tag}`\n\n if (entry.deprecated) {\n options.emitter.emit('deprecated', {\n parent: options.parent,\n raw: dependency.raw,\n date: new Date(entry.deprecated)\n })\n }\n\n return resolveDependencyInternally(type, location, raw, options)\n },\n function (error) {\n // Wrap 404 responses in user prompt.\n if (error.code === 'EINVALIDSTATUS' && error.status === 404) {\n return search({ name: meta.name })\n .then(res => {\n let message = `Unable to find \"${meta.name}\" (\"${meta.source}\") in the registry.`\n\n if (res.total > 0) {\n const plur = res.total === 1 ? 'source' : 'sources'\n\n message += `\\nHowever, we found \"${meta.name}\" for ${res.total} other ${plur}: `\n message += `${listify(res.results.map(x => JSON.stringify(x.source)))}`\n message += `\\nYou can install these using the \"source\" option.`\n }\n\n message += '\\nWe could use your help adding these typings to the registry: '\n message += 'https://github.com/typings/registry'\n\n return Promise.reject(new TypingsError(message, error))\n })\n }\n\n return Promise.reject(error)\n }\n )\n}\n\n/**\n * Resolve a dependency in NPM.\n */\nfunction resolveNpmDependency (pkgName: string, raw: string, options: Options) {\n return findUp(options.cwd, join('node_modules', pkgName))\n .then(\n function (modulePath: string) {\n if (isDefinition(modulePath)) {\n return resolveFileDependency(modulePath, raw, options)\n }\n\n return resolveNpmDependencyFrom(modulePath, raw, options)\n },\n function (error) {\n return Promise.reject(resolveError(raw, error, options))\n }\n )\n}\n\n/**\n * Resolve a dependency in Bower.\n */\nfunction resolveBowerDependency (name: string, raw: string, options: Options) {\n return resolveBowerComponentPath(options.cwd)\n .then(\n function (bowerComponentPath: string) {\n const modulePath = resolve(bowerComponentPath, name)\n\n if (isDefinition(modulePath)) {\n return resolveFileDependency(modulePath, raw, options)\n }\n\n return resolveBowerDependencyFrom(modulePath, raw, extend(options, { bowerComponentPath }))\n },\n function (error) {\n return Promise.reject(resolveError(raw, error, options))\n }\n )\n}\n\n/**\n * Resolve a local file dependency.\n */\nfunction resolveFileDependency (location: string, raw: string, options: Options): Promise<DependencyTree> {\n const { name, parent } = options\n let src: string\n\n if (isHttp(location)) {\n src = location\n } else if (parent && isHttp(parent.src)) {\n src = resolveUrl(parent.src, location)\n } else {\n src = resolve(options.cwd, location)\n }\n\n if (!isDefinition(src)) {\n return resolveTypeDependencyFrom(src, raw, options)\n }\n\n options.emitter.emit('resolve', { name, src, raw, parent })\n\n const tree: DependencyTree = extend(DEFAULT_DEPENDENCY, {\n typings: src,\n src,\n raw,\n parent\n })\n\n options.emitter.emit('resolved', { name, src, tree, raw, parent })\n\n // Resolve direct typings using `typings` property.\n return Promise.resolve(tree)\n}\n\n/**\n * Follow and resolve bower dependencies.\n */\nexport function resolveBowerDependencies (options: Options): Promise<DependencyTree> {\n return findUp(options.cwd, 'bower.json')\n .then(\n function (bowerJsonPath: string) {\n return resolveBowerComponentPath(dirname(bowerJsonPath))\n .then(function (bowerComponentPath: string) {\n return resolveBowerDependencyFrom(bowerJsonPath, undefined, extend(options, { bowerComponentPath }))\n })\n },\n function (cause) {\n return Promise.reject(new TypingsError(`Unable to resolve Bower dependencies`, cause))\n }\n )\n}\n\n/**\n * Resolve bower dependencies from a path.\n */\nfunction resolveBowerDependencyFrom (src: string, raw: string, options: Options): Promise<DependencyTree> {\n const { name, parent } = options\n\n checkCircularDependency(parent, src)\n\n options.emitter.emit('resolve', { name, src, raw, parent })\n\n return readJson(src)\n .then(\n function (bowerJson: any = {}) {\n const tree = extend(DEFAULT_DEPENDENCY, {\n name: bowerJson.name,\n version: bowerJson.version,\n main: bowerJson.main,\n browser: bowerJson.browser,\n typings: bowerJson.typings,\n browserTypings: bowerJson.browserTypings,\n src,\n raw,\n parent\n })\n\n const dependencyMap = extend(bowerJson.dependencies)\n const devDependencyMap = extend(options.dev ? bowerJson.devDependencies : {})\n const dependencyOptions = extend(options, { parent: tree })\n\n options.emitter.emit('resolved', { name: name || tree.name, src, tree, raw, parent })\n\n return Promise.all([\n resolveBowerDependencyMap(dependencyMap, dependencyOptions),\n resolveBowerDependencyMap(devDependencyMap, dependencyOptions),\n maybeResolveTypeDependencyFrom(join(src, '..', CONFIG_FILE), raw, options)\n ])\n .then(function ([dependencies, devDependencies, typedPackage]) {\n tree.dependencies = dependencies\n tree.devDependencies = devDependencies\n\n return mergeDependencies(tree, typedPackage)\n })\n },\n function (error) {\n return Promise.reject(resolveError(raw, error, options))\n }\n )\n}\n\n/**\n * Resolve the path to bower components.\n */\nfunction resolveBowerComponentPath (path: string): Promise<string> {\n return readJson(resolve(path, '.bowerrc'))\n .then(\n function (bowerrc: any = {}) {\n return resolve(path, bowerrc.directory || 'bower_components')\n },\n function () {\n return resolve(path, 'bower_components')\n }\n )\n}\n\n/**\n * Recursively resolve dependencies from a list and component path.\n */\nfunction resolveBowerDependencyMap (dependencies: Dependencies, options: Options): Promise<DependencyBranch> {\n const keys = Object.keys(dependencies)\n\n return Promise.all(keys.map(function (name) {\n const modulePath = resolve(options.bowerComponentPath, name, 'bower.json')\n const resolveOptions: Options = extend(options, { name, dev: false, global: false, peer: false })\n\n return resolveBowerDependencyFrom(modulePath, `bower:${name}`, resolveOptions)\n }))\n .then(results => zipObject(keys, results))\n}\n\n/**\n * Follow and resolve npm dependencies.\n */\nexport function resolveNpmDependencies (options: Options): Promise<DependencyTree> {\n return findUp(options.cwd, 'package.json')\n .then(\n function (packageJsonPath: string) {\n return resolveNpmDependencyFrom(packageJsonPath, undefined, options)\n },\n function (cause) {\n return Promise.reject(new TypingsError(`Unable to resolve NPM dependencies`, cause))\n }\n )\n}\n\n/**\n * Follow and resolve JSPM dependencies.\n */\nexport function resolveJspmDependencies (options: Options): Promise<DependencyTree> {\n return findUp(options.cwd, 'package.json')\n .then(function (packageJsonPath: string) {\n const cwd = dirname(packageJsonPath)\n\n return readJspmPackageJson({ cwd })\n .then(function (packageJson) {\n return resolveByPackageJson(packageJson, { cwd })\n .then(function (config) {\n const keys = Object.keys(config)\n\n return Promise.all(keys.map(function (name) {\n const jspmConfig = config[name]\n\n return resolveJspmDependencyFrom(name, `jspm:${name}`, extend(options, { jspmConfig }))\n }))\n .then(results => {\n const tree: DependencyTree = extend(DEFAULT_DEPENDENCY, {\n name: packageJson.name,\n version: packageJson.version,\n main: packageJson.main,\n browser: packageJson.browser,\n typings: packageJson.typings,\n browserTypings: packageJson.browserTypings,\n src: packageJsonPath,\n dependencies: zipObject(keys, results)\n })\n\n return tree\n })\n })\n })\n })\n}\n\n/**\n * Resolve NPM dependencies from `package.json`.\n */\nfunction resolveNpmDependencyFrom (src: string, raw: string, options: Options): Promise<DependencyTree> {\n const { name, parent } = options\n\n checkCircularDependency(parent, src)\n\n options.emitter.emit('resolve', { name, src, raw, parent })\n\n return readJson(src)\n .then(\n function (packageJson: any = {}) {\n const tree: DependencyTree = extend(DEFAULT_DEPENDENCY, {\n name: packageJson.name,\n version: packageJson.version,\n main: packageJson.main,\n browser: packageJson.browser,\n typings: packageJson.typings,\n browserTypings: packageJson.browserTypings,\n src,\n raw,\n parent\n })\n\n const dependencyMap = extend(packageJson.dependencies)\n const devDependencyMap = extend(options.dev ? packageJson.devDependencies : {})\n const peerDependencyMap = extend(options.peer ? packageJson.peerDependencies : {})\n const dependencyOptions = extend(options, { parent: tree })\n\n options.emitter.emit('resolved', { name: name || tree.name, src, tree, raw, parent })\n\n return Promise.all([\n resolveNpmDependencyMap(src, dependencyMap, dependencyOptions),\n resolveNpmDependencyMap(src, devDependencyMap, dependencyOptions),\n resolveNpmDependencyMap(src, peerDependencyMap, dependencyOptions),\n maybeResolveTypeDependencyFrom(join(src, '..', CONFIG_FILE), raw, options)\n ])\n .then(function ([dependencies, devDependencies, peerDependencies, typedPackage]) {\n tree.dependencies = dependencies\n tree.devDependencies = devDependencies\n tree.peerDependencies = peerDependencies\n\n return mergeDependencies(tree, typedPackage)\n })\n },\n function (error) {\n return Promise.reject(resolveError(raw, error, options))\n }\n )\n}\n\n/**\n * Recursively resolve dependencies from a list and component path.\n */\nfunction resolveNpmDependencyMap (src: string, dependencies: any, options: Options): Promise<DependencyBranch> {\n const cwd = dirname(src)\n const keys = Object.keys(dependencies)\n\n return Promise.all(keys.map(function (name) {\n const resolveOptions: Options = extend(options, { name, cwd, dev: false, peer: false, global: false })\n\n return resolveNpmDependency(join(name, 'package.json'), `npm:${name}`, resolveOptions)\n }))\n .then(results => zipObject(keys, results))\n}\n\n/**\n * Follow and resolve type dependencies.\n */\nexport function resolveTypeDependencies (options: Options): Promise<DependencyTree> {\n return findConfigFile(options.cwd)\n .then(\n function (path: string) {\n return resolveTypeDependencyFrom(path, undefined, options)\n },\n function (cause) {\n return Promise.reject(new TypingsError(`Unable to resolve Typings dependencies`, cause))\n }\n )\n}\n\n/**\n * Resolve type dependencies from an exact path.\n */\nfunction resolveTypeDependencyFrom (src: string, raw: string, options: Options) {\n const { name, parent } = options\n\n checkCircularDependency(parent, src)\n\n options.emitter.emit('resolve', { name, src, raw, parent })\n\n return readConfigFrom(src)\n .then<DependencyTree>(\n function (config) {\n const tree = extend(DEFAULT_DEPENDENCY, {\n name: config.name,\n main: config.main,\n version: config.version,\n browser: config.browser,\n files: Array.isArray(config.files) ? config.files : undefined,\n global: typeof config.global === 'boolean' ? !!config.global : undefined,\n postmessage: typeof config.postmessage === 'string' ? config.postmessage : undefined,\n src,\n raw,\n parent\n })\n\n const { global, dev, peer } = options\n\n const dependencyMap = extend(config.dependencies)\n const devDependencyMap = extend(dev ? config.devDependencies : {})\n const peerDependencyMap = extend(peer ? config.peerDependencies : {})\n const globalDependencyMap = extend(global ? config.globalDependencies : {})\n const globalDevDependencyMap = extend(global && dev ? config.globalDevDependencies : {})\n const dependencyOptions = extend(options, { parent: tree })\n\n options.emitter.emit('resolved', { name: name || tree.name, src, tree, raw, parent })\n\n // Emit \"expected\" global modules when installing top-level.\n if (parent == null && config.globalDependencies) {\n options.emitter.emit('globaldependencies', {\n name: name || tree.name,\n raw,\n dependencies: config.globalDependencies\n })\n }\n\n return Promise.all([\n resolveTypeDependencyMap(src, dependencyMap, dependencyOptions),\n resolveTypeDependencyMap(src, devDependencyMap, dependencyOptions),\n resolveTypeDependencyMap(src, peerDependencyMap, dependencyOptions),\n resolveTypeDependencyMap(src, globalDependencyMap, dependencyOptions),\n resolveTypeDependencyMap(src, globalDevDependencyMap, dependencyOptions)\n ])\n .then(function ([\n dependencies,\n devDependencies,\n peerDependencies,\n globalDependencies,\n globalDevDependencies\n ]) {\n tree.dependencies = dependencies\n tree.devDependencies = devDependencies\n tree.peerDependencies = peerDependencies\n tree.globalDependencies = globalDependencies\n tree.globalDevDependencies = globalDevDependencies\n\n return tree\n })\n },\n function (error) {\n return Promise.reject(resolveError(raw, error, options))\n }\n )\n}\n\n/**\n * Resolve type dependency ignoring not found issues (E.g. when mixed resolve NPM/Bower).\n */\nfunction maybeResolveTypeDependencyFrom (src: string, raw: string, options: Options) {\n return resolveTypeDependencyFrom(src, raw, options).catch(() => extend(DEFAULT_DEPENDENCY))\n}\n\n/**\n * Resolve type dependency map from a cache directory.\n */\nfunction resolveTypeDependencyMap (src: string, dependencies: any, options: Options) {\n const cwd = dirname(src)\n const keys = Object.keys(dependencies)\n\n return Promise.all(keys.map(function (name) {\n const resolveOptions: Options = extend(options, { name, cwd, dev: false, global: false, peer: false })\n\n return resolveDependency(parseDependency(dependencies[name]), resolveOptions)\n }))\n .then(results => zipObject(keys, results))\n}\n\n/**\n * Resolve a dependency from JSPM.\n */\nexport function resolveJspmDependency (pkgName: string, raw: string, options: Options): Promise<DependencyTree> {\n return findUp(options.cwd, 'package.json')\n .then(function (packageJsonPath) {\n return resolveJspm(pkgName, { cwd: dirname(packageJsonPath) })\n })\n .then(\n function (jspmConfig) {\n return resolveJspmDependencyFrom(pkgName, raw, extend(options, { jspmConfig }))\n },\n function (error) {\n if (error instanceof ModuleNotFoundError) {\n return resolveJspmDependencyFrom(pkgName, raw, options)\n }\n return Promise.reject(resolveError(raw, error, options))\n }\n )\n}\n\n/**\n * Resolve JSPM dependency.\n */\nfunction resolveJspmDependencyFrom (name: string, raw: string, options: Options): Promise<DependencyTree> {\n const { parent, jspmConfig } = options\n const modulePath = jspmConfig.path\n const src = resolve(options.cwd, modulePath, 'package.json')\n\n checkCircularDependency(parent, src)\n\n options.emitter.emit('resolve', { name, src, raw, parent })\n\n return readJson(src)\n .catch(function (err) {\n // Ignore `FileNotFound` errors.\n if (err.code === 'ENOENT') {\n return\n }\n\n return Promise.reject(err)\n })\n .then(function (meta: any = {}) {\n const tree = extend(DEFAULT_DEPENDENCY, {\n src,\n raw,\n parent,\n name: meta.name,\n version: meta.version,\n main: meta.main,\n browser: meta.browser,\n typings: meta.typings,\n browserTypings: meta.browserTypings\n })\n\n options.emitter.emit('resolved', { name, src, tree, raw, parent })\n\n const dependencyOptions = extend(options, { parent: tree })\n const configPath = resolve(options.cwd, modulePath, CONFIG_FILE)\n\n return Promise.all([\n resolveJspmDependencyMap(jspmConfig.map, dependencyOptions),\n maybeResolveTypeDependencyFrom(configPath, raw, options)\n ])\n .then(([dependencies, typedPackage]) => {\n tree.dependencies = dependencies\n\n return mergeDependencies(tree, typedPackage)\n })\n })\n}\n\n/**\n * Recursively resolve dependencies from a list and component path.\n */\nfunction resolveJspmDependencyMap (dependencies: DependencyBranch = {}, options: Options): Promise<DependencyBranch> {\n const keys = Object.keys(dependencies)\n\n return Promise.all(keys.map(function (name) {\n const resolveOptions = extend(options, { dev: false, peer: false, global: false, jspmConfig: dependencies[name] })\n\n return resolveJspmDependencyFrom(name, `jspm:${name}`, resolveOptions)\n }))\n .then(results => zipObject(keys, results))\n}\n\n/**\n * Check whether the filename is a circular dependency.\n */\nfunction checkCircularDependency (tree: DependencyTree, filename: string) {\n if (tree) {\n const currentSrc = tree.src\n\n while (tree) {\n invariant(tree.src !== filename, `Circular dependency detected using \"${currentSrc}\"`)\n\n tree = tree.parent\n }\n }\n}\n\n/**\n * Create a resolved failure error message.\n */\nfunction resolveError (raw: string, cause: Error, options: Options) {\n const { name } = options\n let message = `Unable to resolve ${raw == null ? 'typings' : `\"${raw}\"`}`\n\n if (name != null) {\n message += ` from \"${name}\"`\n }\n\n return new TypingsError(message, cause)\n}\n\n/**\n * Merge dependency trees together.\n */\nfunction mergeDependencies (root: DependencyTree, ...trees: DependencyTree[]): DependencyTree {\n const dependency = extend(root)\n\n for (const tree of trees) {\n // Skip empty dependency trees.\n if (tree == null) {\n continue\n }\n\n const { name, raw, src, main, browser, typings, browserTypings, parent, files, global } = tree\n\n // The parent needs to always be set.\n if (parent != null) {\n dependency.parent = parent\n }\n\n // Merge known global properties.\n if (global != null) {\n dependency.global = global\n }\n\n if (typeof name === 'string') {\n dependency.name = name\n }\n\n if (typeof raw === 'string') {\n dependency.raw = raw\n }\n\n // Handle `main` and `typings` overrides all together.\n if (main != null || browser != null || typings != null || browserTypings != null || files != null) {\n dependency.src = src\n dependency.main = main\n dependency.files = files\n dependency.browser = browser\n dependency.typings = typings\n dependency.browserTypings = browserTypings\n }\n\n dependency.postmessage = tree.postmessage || dependency.postmessage\n dependency.dependencies = extend(dependency.dependencies, tree.dependencies)\n dependency.devDependencies = extend(dependency.devDependencies, tree.devDependencies)\n dependency.peerDependencies = extend(dependency.peerDependencies, tree.peerDependencies)\n dependency.globalDependencies = extend(dependency.globalDependencies, tree.globalDependencies)\n dependency.globalDevDependencies = extend(dependency.globalDevDependencies, tree.globalDevDependencies)\n }\n\n return dependency\n}\n"]} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var test = require("blue-tape"); | ||
@@ -3,0 +4,0 @@ var path_1 = require("path"); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"dependencies.spec.js","sourceRoot":"","sources":["../../src/lib/dependencies.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import test = require('blue-tape')\nimport { join } from 'path'\nimport { EventEmitter } from 'events'\nimport { resolveAllDependencies, resolveDependency } from './dependencies'\nimport { DependencyTree, DependencyBranch } from '../interfaces'\n\nconst FIXTURE_DIR = join(__dirname, '__test__/fixtures')\nconst emitter = new EventEmitter()\n\ntest('dependencies', t => {\n const RESOLVE_FIXTURE_DIR = join(__dirname, '__test__/fixtures/resolve')\n\n t.test('resolve fixture', t => {\n t.test('resolve a dependency tree', t => {\n const expected: DependencyTree = {\n raw: undefined,\n global: undefined,\n postmessage: undefined,\n name: 'foobar',\n src: join(RESOLVE_FIXTURE_DIR, 'typings.json'),\n main: 'foo.d.ts',\n files: undefined,\n version: undefined,\n browser: undefined,\n typings: undefined,\n browserTypings: undefined,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const bowerDep: DependencyTree = {\n raw: 'bower:bower-dep',\n global: undefined,\n postmessage: undefined,\n src: join(RESOLVE_FIXTURE_DIR, 'bower_components/bower-dep/bower.json'),\n typings: 'bower-dep.d.ts',\n browserTypings: undefined,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {},\n name: 'bower-dep',\n files: undefined,\n version: undefined,\n main: 'index.js',\n browser: undefined\n }\n\n const exampleDep: DependencyTree = {\n raw: 'bower:example',\n global: undefined,\n postmessage: undefined,\n src: join(RESOLVE_FIXTURE_DIR, 'bower_components/example/bower.json'),\n main: undefined,\n browser: undefined,\n files: undefined,\n version: undefined,\n typings: undefined,\n browserTypings: undefined,\n name: 'example',\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const typedDep: DependencyTree = {\n raw: 'file:typings/dep.d.ts',\n global: undefined,\n postmessage: undefined,\n src: join(RESOLVE_FIXTURE_DIR, 'typings/dep.d.ts'),\n typings: join(RESOLVE_FIXTURE_DIR, 'typings/dep.d.ts'),\n main: undefined,\n browser: undefined,\n files: undefined,\n version: undefined,\n browserTypings: undefined,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const npmDep: DependencyTree = {\n raw: 'npm:npm-dep',\n global: undefined,\n postmessage: undefined,\n src: join(RESOLVE_FIXTURE_DIR, 'node_modules/npm-dep/package.json'),\n main: './index.js',\n browser: undefined,\n files: undefined,\n version: undefined,\n typings: undefined,\n browserTypings: undefined,\n name: 'npm-dep',\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const typedDevDep: DependencyTree = {\n globalDependencies: {},\n globalDevDependencies: {},\n browser: undefined,\n browserTypings: undefined,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n main: undefined,\n name: 'dep',\n raw: 'bower:dep',\n global: undefined,\n postmessage: undefined,\n src: join(RESOLVE_FIXTURE_DIR, 'bower_components/dep/bower.json'),\n typings: undefined,\n files: undefined,\n version: undefined\n }\n\n ;(expected as any).dependencies['bower-dep'] = bowerDep\n ;(expected as any).dependencies.dep = typedDep\n ;(expected as any).dependencies['npm-dep'] = npmDep\n ;(expected as any).devDependencies['dev-dep'] = typedDevDep\n\n ;(bowerDep as any).dependencies.example = exampleDep\n\n return resolveAllDependencies({\n cwd: RESOLVE_FIXTURE_DIR,\n dev: true,\n emitter\n })\n .then((result) => {\n t.equal(result.parent, undefined)\n t.ok((result.dependencies as any).dep.parent != null)\n t.ok((result.dependencies as any)['npm-dep'].parent != null)\n\n removeParentReference(result)\n\n t.deepEqual(result, expected)\n })\n })\n })\n\n t.test('jspm module without package.json', t => {\n const cwd = join(FIXTURE_DIR, 'jspm-typings-registry')\n\n const jspmDep = {\n raw: 'jspm:make-error',\n type: 'jspm',\n location: 'make-error',\n meta: {\n name: 'make-error'\n }\n }\n\n const makeErrorDep: DependencyTree = {\n src: join(cwd, 'jspm_packages/npm/make-error@1.2.0/package.json'),\n raw: 'jspm:make-error',\n main: undefined,\n browser: undefined,\n typings: undefined,\n browserTypings: undefined,\n version: undefined,\n files: undefined,\n global: undefined,\n postmessage: undefined,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {},\n parent: undefined,\n name: undefined\n }\n return resolveDependency(jspmDep, { cwd, emitter })\n .then(actual => {\n t.deepEqual(actual, makeErrorDep)\n })\n })\n\n t.test('jspm resolve dependency', t => {\n const cwd = join(FIXTURE_DIR, 'jspm-typings-github')\n\n const jspmDep = {\n raw: 'jspm:unthenify',\n type: 'jspm',\n location: 'unthenify',\n meta: {\n name: 'unthenify'\n }\n }\n\n const utilArityDep: DependencyTree = {\n src: join(cwd, 'jspm_packages/npm/util-arity@1.0.2/package.json'),\n raw: 'jspm:util-arity',\n main: 'arity.js',\n browser: undefined,\n typings: 'arity.d.ts',\n browserTypings: undefined,\n version: '1.0.2',\n files: undefined,\n global: undefined,\n postmessage: undefined,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {},\n name: 'util-arity'\n }\n\n const utilArityParent: DependencyTree = {\n src: join(cwd, 'jspm_packages/npm/unthenify@1.0.2/package.json'),\n raw: 'jspm:unthenify',\n main: 'dist/index.js',\n browser: undefined,\n typings: undefined,\n browserTypings: undefined,\n version: '1.0.2',\n files: undefined,\n global: undefined,\n postmessage: undefined,\n dependencies: {\n 'util-arity': utilArityDep\n },\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {},\n name: 'unthenify'\n }\n\n const es6PromiseDep: DependencyTree = {\n src: 'https://raw.githubusercontent.com/typings/typed-es6-promise/' +\n '94aac67ef7a14a8de8e9e1d3c1f9a26caa0d9fb1/typings.json',\n raw: 'github:typings/typed-es6-promise#94aac67ef7a14a8de8e9e1d3c1f9a26caa0d9fb1',\n main: 'dist/es6-promise.d.ts',\n browser: undefined,\n typings: undefined,\n browserTypings: undefined,\n version: undefined,\n files: undefined,\n global: undefined,\n postmessage: undefined,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {},\n name: 'es6-promise'\n }\n\n const es6PromiseParent: DependencyTree = {\n src: join(cwd, 'jspm_packages/npm/unthenify@1.0.2/typings.json'),\n raw: 'jspm:unthenify',\n main: undefined,\n browser: undefined,\n typings: undefined,\n browserTypings: undefined,\n version: undefined,\n files: undefined,\n global: undefined,\n postmessage: undefined,\n dependencies: { 'es6-promise': es6PromiseDep },\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {},\n name: undefined\n }\n\n const unthenifyDep: DependencyTree = {\n src: join(cwd, 'jspm_packages/npm/unthenify@1.0.2/package.json'),\n raw: 'jspm:unthenify',\n main: 'dist/index.js',\n browser: undefined,\n typings: undefined,\n browserTypings: undefined,\n version: '1.0.2',\n files: undefined,\n global: undefined,\n postmessage: undefined,\n dependencies: {\n 'util-arity': utilArityDep,\n 'es6-promise': es6PromiseDep\n },\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {},\n name: 'unthenify'\n }\n\n return resolveDependency(jspmDep, { cwd, emitter })\n .then(actual => {\n t.is(actual.parent, undefined, 'top of result should have no parent')\n\n t.true(actual.dependencies['util-arity'], '`util-arity` is a dependency')\n const actualUtilArityParent = actual.dependencies['util-arity'].parent\n removeParentReference(actualUtilArityParent)\n t.deepEqual(actualUtilArityParent, utilArityParent, '`util-arity` has correct parent')\n\n t.true(actual.dependencies['es6-promise'], '`es6-promise` is a dependency')\n const actualEs6PromiseParent = actual.dependencies['es6-promise'].parent\n removeParentReference(actualEs6PromiseParent)\n t.deepEqual(actualEs6PromiseParent, es6PromiseParent, '`es6-promise` has correct parent')\n\n removeParentReference(actual)\n t.deepEqual(actual, unthenifyDep, 'result as expected (after parent removed to avoid circular reference)')\n })\n })\n})\n\nfunction removeParentReference (tree: DependencyTree) {\n delete tree.parent\n\n removeParentReferenceFromDependencies(tree.dependencies)\n removeParentReferenceFromDependencies(tree.devDependencies)\n removeParentReferenceFromDependencies(tree.peerDependencies)\n removeParentReferenceFromDependencies(tree.globalDependencies)\n removeParentReferenceFromDependencies(tree.globalDevDependencies)\n\n return tree\n}\n\nfunction removeParentReferenceFromDependencies (dependencies: DependencyBranch) {\n Object.keys(dependencies).forEach(function (key) {\n removeParentReference(dependencies[key])\n })\n}\n"]} | ||
| {"version":3,"file":"dependencies.spec.js","sourceRoot":"","sources":["../../src/lib/dependencies.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import test = require('blue-tape')\nimport { join } from 'path'\nimport { EventEmitter } from 'events'\nimport { resolveAllDependencies, resolveDependency } from './dependencies'\nimport { DependencyTree, DependencyBranch } from '../interfaces'\n\nconst FIXTURE_DIR = join(__dirname, '__test__/fixtures')\nconst emitter = new EventEmitter()\n\ntest('dependencies', t => {\n const RESOLVE_FIXTURE_DIR = join(__dirname, '__test__/fixtures/resolve')\n\n t.test('resolve fixture', t => {\n t.test('resolve a dependency tree', t => {\n const expected: DependencyTree = {\n raw: undefined,\n global: undefined,\n postmessage: undefined,\n name: 'foobar',\n src: join(RESOLVE_FIXTURE_DIR, 'typings.json'),\n main: 'foo.d.ts',\n files: undefined,\n version: undefined,\n browser: undefined,\n typings: undefined,\n browserTypings: undefined,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const bowerDep: DependencyTree = {\n raw: 'bower:bower-dep',\n global: undefined,\n postmessage: undefined,\n src: join(RESOLVE_FIXTURE_DIR, 'bower_components/bower-dep/bower.json'),\n typings: 'bower-dep.d.ts',\n browserTypings: undefined,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {},\n name: 'bower-dep',\n files: undefined,\n version: undefined,\n main: 'index.js',\n browser: undefined\n }\n\n const exampleDep: DependencyTree = {\n raw: 'bower:example',\n global: undefined,\n postmessage: undefined,\n src: join(RESOLVE_FIXTURE_DIR, 'bower_components/example/bower.json'),\n main: undefined,\n browser: undefined,\n files: undefined,\n version: undefined,\n typings: undefined,\n browserTypings: undefined,\n name: 'example',\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const typedDep: DependencyTree = {\n raw: 'file:typings/dep.d.ts',\n global: undefined,\n postmessage: undefined,\n src: join(RESOLVE_FIXTURE_DIR, 'typings/dep.d.ts'),\n typings: join(RESOLVE_FIXTURE_DIR, 'typings/dep.d.ts'),\n main: undefined,\n browser: undefined,\n files: undefined,\n version: undefined,\n browserTypings: undefined,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const npmDep: DependencyTree = {\n raw: 'npm:npm-dep',\n global: undefined,\n postmessage: undefined,\n src: join(RESOLVE_FIXTURE_DIR, 'node_modules/npm-dep/package.json'),\n main: './index.js',\n browser: undefined,\n files: undefined,\n version: undefined,\n typings: undefined,\n browserTypings: undefined,\n name: 'npm-dep',\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {}\n }\n\n const typedDevDep: DependencyTree = {\n globalDependencies: {},\n globalDevDependencies: {},\n browser: undefined,\n browserTypings: undefined,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n main: undefined,\n name: 'dep',\n raw: 'bower:dep',\n global: undefined,\n postmessage: undefined,\n src: join(RESOLVE_FIXTURE_DIR, 'bower_components/dep/bower.json'),\n typings: undefined,\n files: undefined,\n version: undefined\n }\n\n ;(expected as any).dependencies['bower-dep'] = bowerDep\n ;(expected as any).dependencies.dep = typedDep\n ;(expected as any).dependencies['npm-dep'] = npmDep\n ;(expected as any).devDependencies['dev-dep'] = typedDevDep\n\n ;(bowerDep as any).dependencies.example = exampleDep\n\n return resolveAllDependencies({\n cwd: RESOLVE_FIXTURE_DIR,\n dev: true,\n emitter\n })\n .then((result) => {\n t.equal(result.parent, undefined)\n t.ok((result.dependencies as any).dep.parent != null)\n t.ok((result.dependencies as any)['npm-dep'].parent != null)\n\n removeParentReference(result)\n\n t.deepEqual(result, expected)\n })\n })\n })\n\n t.test('jspm module without package.json', t => {\n const cwd = join(FIXTURE_DIR, 'jspm-typings-registry')\n\n const jspmDep = {\n raw: 'jspm:make-error',\n type: 'jspm',\n location: 'make-error',\n meta: {\n name: 'make-error'\n }\n }\n\n const makeErrorDep: DependencyTree = {\n src: join(cwd, 'jspm_packages/npm/make-error@1.2.0/package.json'),\n raw: 'jspm:make-error',\n main: undefined,\n browser: undefined,\n typings: undefined,\n browserTypings: undefined,\n version: undefined,\n files: undefined,\n global: undefined,\n postmessage: undefined,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {},\n parent: undefined,\n name: undefined\n }\n return resolveDependency(jspmDep, { cwd, emitter })\n .then(actual => {\n t.deepEqual(actual, makeErrorDep)\n })\n })\n\n t.test('jspm resolve dependency', t => {\n const cwd = join(FIXTURE_DIR, 'jspm-typings-github')\n\n const jspmDep = {\n raw: 'jspm:unthenify',\n type: 'jspm',\n location: 'unthenify',\n meta: {\n name: 'unthenify'\n }\n }\n\n const utilArityDep: DependencyTree = {\n src: join(cwd, 'jspm_packages/npm/util-arity@1.0.2/package.json'),\n raw: 'jspm:util-arity',\n main: 'arity.js',\n browser: undefined,\n typings: 'arity.d.ts',\n browserTypings: undefined,\n version: '1.0.2',\n files: undefined,\n global: undefined,\n postmessage: undefined,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {},\n name: 'util-arity'\n }\n\n const utilArityParent: DependencyTree = {\n src: join(cwd, 'jspm_packages/npm/unthenify@1.0.2/package.json'),\n raw: 'jspm:unthenify',\n main: 'dist/index.js',\n browser: undefined,\n typings: undefined,\n browserTypings: undefined,\n version: '1.0.2',\n files: undefined,\n global: undefined,\n postmessage: undefined,\n dependencies: {\n 'util-arity': utilArityDep\n },\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {},\n name: 'unthenify'\n }\n\n const es6PromiseDep: DependencyTree = {\n src: 'https://raw.githubusercontent.com/typings/typed-es6-promise/' +\n '94aac67ef7a14a8de8e9e1d3c1f9a26caa0d9fb1/typings.json',\n raw: 'github:typings/typed-es6-promise#94aac67ef7a14a8de8e9e1d3c1f9a26caa0d9fb1',\n main: 'dist/es6-promise.d.ts',\n browser: undefined,\n typings: undefined,\n browserTypings: undefined,\n version: undefined,\n files: undefined,\n global: undefined,\n postmessage: undefined,\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {},\n name: 'es6-promise'\n }\n\n const es6PromiseParent: DependencyTree = {\n src: join(cwd, 'jspm_packages/npm/unthenify@1.0.2/typings.json'),\n raw: 'jspm:unthenify',\n main: undefined,\n browser: undefined,\n typings: undefined,\n browserTypings: undefined,\n version: undefined,\n files: undefined,\n global: undefined,\n postmessage: undefined,\n dependencies: { 'es6-promise': es6PromiseDep },\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {},\n name: undefined\n }\n\n const unthenifyDep: DependencyTree = {\n src: join(cwd, 'jspm_packages/npm/unthenify@1.0.2/package.json'),\n raw: 'jspm:unthenify',\n main: 'dist/index.js',\n browser: undefined,\n typings: undefined,\n browserTypings: undefined,\n version: '1.0.2',\n files: undefined,\n global: undefined,\n postmessage: undefined,\n dependencies: {\n 'util-arity': utilArityDep,\n 'es6-promise': es6PromiseDep\n },\n devDependencies: {},\n peerDependencies: {},\n globalDependencies: {},\n globalDevDependencies: {},\n name: 'unthenify'\n }\n\n return resolveDependency(jspmDep, { cwd, emitter })\n .then(actual => {\n t.is(actual.parent, undefined, 'top of result should have no parent')\n\n t.true(actual.dependencies['util-arity'], '`util-arity` is a dependency')\n const actualUtilArityParent = actual.dependencies['util-arity'].parent\n removeParentReference(actualUtilArityParent)\n t.deepEqual(actualUtilArityParent, utilArityParent, '`util-arity` has correct parent')\n\n t.true(actual.dependencies['es6-promise'], '`es6-promise` is a dependency')\n const actualEs6PromiseParent = actual.dependencies['es6-promise'].parent\n removeParentReference(actualEs6PromiseParent)\n t.deepEqual(actualEs6PromiseParent, es6PromiseParent, '`es6-promise` has correct parent')\n\n removeParentReference(actual)\n t.deepEqual(actual, unthenifyDep, 'result as expected (after parent removed to avoid circular reference)')\n })\n })\n})\n\nfunction removeParentReference (tree: DependencyTree) {\n delete tree.parent\n\n removeParentReferenceFromDependencies(tree.dependencies)\n removeParentReferenceFromDependencies(tree.devDependencies)\n removeParentReferenceFromDependencies(tree.peerDependencies)\n removeParentReferenceFromDependencies(tree.globalDependencies)\n removeParentReferenceFromDependencies(tree.globalDevDependencies)\n\n return tree\n}\n\nfunction removeParentReferenceFromDependencies (dependencies: DependencyBranch) {\n Object.keys(dependencies).forEach(function (key) {\n removeParentReference(dependencies[key])\n })\n}\n"]} |
+12
-7
| "use strict"; | ||
| var __extends = (this && this.__extends) || function (d, b) { | ||
| for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; | ||
| function __() { this.constructor = d; } | ||
| d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); | ||
| }; | ||
| var __extends = (this && this.__extends) || (function () { | ||
| var extendStatics = Object.setPrototypeOf || | ||
| ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || | ||
| function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; | ||
| return function (d, b) { | ||
| extendStatics(d, b); | ||
| function __() { this.constructor = d; } | ||
| d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); | ||
| }; | ||
| })(); | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var make_error_cause_1 = require("make-error-cause"); | ||
@@ -11,3 +17,3 @@ var TypingsError = (function (_super) { | ||
| function TypingsError() { | ||
| var _this = _super.apply(this, arguments) || this; | ||
| var _this = _super !== null && _super.apply(this, arguments) || this; | ||
| _this.name = 'TypingsError'; | ||
@@ -18,4 +24,3 @@ return _this; | ||
| }(make_error_cause_1.BaseError)); | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.default = TypingsError; | ||
| //# sourceMappingURL=error.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/lib/error.ts"],"names":[],"mappings":";;;;;;AAAA,qDAA4C;AAE5C;IAA0C,gCAAS;IAAnD;QAAA,kDAEC;QADC,UAAI,GAAG,cAAc,CAAA;;IACvB,CAAC;IAAD,mBAAC;AAAD,CAAC,AAFD,CAA0C,4BAAS,GAElD","sourcesContent":["import { BaseError } from 'make-error-cause'\n\nexport default class TypingsError extends BaseError {\n name = 'TypingsError'\n}\n"]} | ||
| {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/lib/error.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA4C;AAE5C;IAA0C,gCAAS;IAAnD;QAAA,qEAEC;QADC,UAAI,GAAG,cAAc,CAAA;;IACvB,CAAC;IAAD,mBAAC;AAAD,CAAC,AAFD,CAA0C,4BAAS,GAElD","sourcesContent":["import { BaseError } from 'make-error-cause'\n\nexport default class TypingsError extends BaseError {\n name = 'TypingsError'\n}\n"]} |
+1
-0
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var events_1 = require("events"); | ||
@@ -3,0 +4,0 @@ var dependencies_1 = require("./lib/dependencies"); |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"list.js","sourceRoot":"","sources":["../src/list.ts"],"names":[],"mappings":";AAAA,iCAAqC;AAErC,mDAA4D;AAW5D,cAAsB,OAAoB;IAChC,IAAA,iBAAG,CAAY;IACvB,IAAM,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAA;IAC/B,IAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,qBAAY,EAAE,CAAA;IAGrD,MAAM,CAAC,sCAAuB,CAAC,EAAE,GAAG,KAAA,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAA,EAAE,OAAO,SAAA,EAAE,CAAC,CAAA;AACrE,CAAC;AAPD,oBAOC","sourcesContent":["import { EventEmitter } from 'events'\nimport { Emitter, DependencyTree } from './interfaces'\nimport { resolveTypeDependencies } from './lib/dependencies'\n\nexport interface ListOptions {\n cwd: string\n production?: boolean\n emitter?: Emitter\n}\n\n/**\n * Generate a dependency tree of the project.\n */\nexport function list (options: ListOptions): Promise<DependencyTree> {\n const { cwd } = options\n const dev = !options.production\n const emitter = options.emitter || new EventEmitter()\n\n // TODO: Make this list locally.\n return resolveTypeDependencies({ cwd, global: true, dev, emitter })\n}\n"]} | ||
| {"version":3,"file":"list.js","sourceRoot":"","sources":["../src/list.ts"],"names":[],"mappings":";;AAAA,iCAAqC;AAErC,mDAA4D;AAW5D,cAAsB,OAAoB;IAChC,IAAA,iBAAG,CAAY;IACvB,IAAM,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAA;IAC/B,IAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,qBAAY,EAAE,CAAA;IAGrD,MAAM,CAAC,sCAAuB,CAAC,EAAE,GAAG,KAAA,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAA,EAAE,OAAO,SAAA,EAAE,CAAC,CAAA;AACrE,CAAC;AAPD,oBAOC","sourcesContent":["import { EventEmitter } from 'events'\nimport { Emitter, DependencyTree } from './interfaces'\nimport { resolveTypeDependencies } from './lib/dependencies'\n\nexport interface ListOptions {\n cwd: string\n production?: boolean\n emitter?: Emitter\n}\n\n/**\n * Generate a dependency tree of the project.\n */\nexport function list (options: ListOptions): Promise<DependencyTree> {\n const { cwd } = options\n const dev = !options.production\n const emitter = options.emitter || new EventEmitter()\n\n // TODO: Make this list locally.\n return resolveTypeDependencies({ cwd, global: true, dev, emitter })\n}\n"]} |
+1
-0
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var parse_1 = require("./utils/parse"); | ||
@@ -3,0 +4,0 @@ function open(raw, options) { |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"open.js","sourceRoot":"","sources":["../src/open.ts"],"names":[],"mappings":";AAAA,uCAA+C;AAO/C,cAAsB,GAAW,EAAE,OAAyB;IAAzB,wBAAA,EAAA,YAAyB;IAC1D,IAAM,UAAU,GAAG,uBAAe,CAAC,GAAG,CAAC,CAAA;IAIvC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAA;AAC5B,CAAC;AAND,oBAMC","sourcesContent":["import { parseDependency } from './utils/parse'\n\nexport interface OpenOptions {\n homepage?: boolean\n issues?: boolean\n}\n\nexport function open (raw: string, options: OpenOptions = {}): string {\n const dependency = parseDependency(raw)\n\n // TODO: Enable other expansions.\n\n return dependency.location\n}\n"]} | ||
| {"version":3,"file":"open.js","sourceRoot":"","sources":["../src/open.ts"],"names":[],"mappings":";;AAAA,uCAA+C;AAO/C,cAAsB,GAAW,EAAE,OAAyB;IAAzB,wBAAA,EAAA,YAAyB;IAC1D,IAAM,UAAU,GAAG,uBAAe,CAAC,GAAG,CAAC,CAAA;IAIvC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAA;AAC5B,CAAC;AAND,oBAMC","sourcesContent":["import { parseDependency } from './utils/parse'\n\nexport interface OpenOptions {\n homepage?: boolean\n issues?: boolean\n}\n\nexport function open (raw: string, options: OpenOptions = {}): string {\n const dependency = parseDependency(raw)\n\n // TODO: Enable other expansions.\n\n return dependency.location\n}\n"]} |
+1
-0
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var path_1 = require("path"); | ||
@@ -3,0 +4,0 @@ var extend = require("xtend"); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"prune.js","sourceRoot":"","sources":["../src/prune.ts"],"names":[],"mappings":"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","sourcesContent":["import { dirname } from 'path'\nimport extend = require('xtend')\nimport { EventEmitter } from 'events'\nimport { Emitter } from './interfaces'\nimport { findConfigFile } from './utils/find'\nimport { readConfig, transformDtsFile, rmdirUntil, unlink, isFile } from './utils/fs'\nimport { normalizeResolutions, getInfoFromDependencyLocation, getDefinitionPath, getDependencyPath } from './utils/path'\nimport { ConfigJson, Dependencies } from './interfaces'\n\nexport interface PruneOptions {\n cwd: string\n production?: boolean\n emitter?: Emitter\n}\n\n/**\n * Prune non-persisted type defintions.\n */\nexport function prune (options: PruneOptions): Promise<void> {\n const { cwd, production } = options\n const emitter = options.emitter || new EventEmitter()\n\n return findConfigFile(cwd)\n .then(path => {\n const cwd = dirname(path)\n\n return readConfig(path)\n .then(config => {\n return transformBundles(config, { cwd, production, emitter })\n })\n })\n}\n\n/**\n * Read the bundle and remove typings not in config file.\n */\nfunction transformBundles (config: ConfigJson, options: PruneOptions): Promise<void> {\n const { production } = options\n const resolutions = normalizeResolutions(config.resolution, options)\n const dependencies = extend(config.dependencies, config.peerDependencies, production ? {} : config.devDependencies)\n const globalDependencies = extend(config.globalDependencies, production ? {} : config.globalDevDependencies)\n\n return Promise.all(Object.keys(resolutions).map(type => {\n return transformBundle(resolutions[type], type, dependencies, globalDependencies, options)\n })).then(() => undefined)\n}\n\n/**\n * Transform a bundle file and remove extra dependencies.\n */\nfunction transformBundle (\n path: string,\n resolution: string,\n dependencies: Dependencies,\n globalDependencies: Dependencies,\n options: PruneOptions\n) {\n const { emitter } = options\n const rmQueue: Array<Promise<void>> = []\n const bundle = getDefinitionPath(path)\n\n return isFile(bundle)\n .then(exists => {\n // Avoid pruning an un-installed tree.\n if (!exists) {\n return\n }\n\n return transformDtsFile(bundle, typings => {\n const infos = typings.map(x => getInfoFromDependencyLocation(x, bundle))\n const validPaths: string[] = []\n\n for (const { name, global, location } of infos) {\n if (global) {\n if (!globalDependencies.hasOwnProperty(name)) {\n emitter.emit('prune', { name, global, resolution })\n rmQueue.push(rmDependency({ name, global, path, emitter }))\n } else {\n validPaths.push(location)\n }\n } else {\n if (!dependencies.hasOwnProperty(name)) {\n emitter.emit('prune', { name, global, resolution })\n rmQueue.push(rmDependency({ name, global, path, emitter }))\n } else {\n validPaths.push(location)\n }\n }\n }\n\n return validPaths\n })\n })\n .then(() => Promise.all(rmQueue))\n .then(() => undefined)\n}\n\n/**\n * Remove a dependency.\n */\nexport function rmDependency (options: { name: string, global: boolean, path: string, emitter: Emitter }) {\n const { path, emitter } = options\n const { directory, definition, config } = getDependencyPath(options)\n\n // Remove files and emit warning on ENOENT.\n function remove (path: string) {\n return isFile(path)\n .then(exists => {\n if (!exists) {\n emitter.emit('enoent', { path })\n\n return\n }\n\n return unlink(path)\n })\n }\n\n return Promise.all([\n remove(config),\n remove(definition)\n ])\n .then(() => rmdirUntil(directory, path))\n}\n"]} | ||
| {"version":3,"file":"prune.js","sourceRoot":"","sources":["../src/prune.ts"],"names":[],"mappings":"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","sourcesContent":["import { dirname } from 'path'\nimport extend = require('xtend')\nimport { EventEmitter } from 'events'\nimport { Emitter } from './interfaces'\nimport { findConfigFile } from './utils/find'\nimport { readConfig, transformDtsFile, rmdirUntil, unlink, isFile } from './utils/fs'\nimport { normalizeResolutions, getInfoFromDependencyLocation, getDefinitionPath, getDependencyPath } from './utils/path'\nimport { ConfigJson, Dependencies } from './interfaces'\n\nexport interface PruneOptions {\n cwd: string\n production?: boolean\n emitter?: Emitter\n}\n\n/**\n * Prune non-persisted type defintions.\n */\nexport function prune (options: PruneOptions): Promise<void> {\n const { cwd, production } = options\n const emitter = options.emitter || new EventEmitter()\n\n return findConfigFile(cwd)\n .then(path => {\n const cwd = dirname(path)\n\n return readConfig(path)\n .then(config => {\n return transformBundles(config, { cwd, production, emitter })\n })\n })\n}\n\n/**\n * Read the bundle and remove typings not in config file.\n */\nfunction transformBundles (config: ConfigJson, options: PruneOptions): Promise<void> {\n const { production } = options\n const resolutions = normalizeResolutions(config.resolution, options)\n const dependencies = extend(config.dependencies, config.peerDependencies, production ? {} : config.devDependencies)\n const globalDependencies = extend(config.globalDependencies, production ? {} : config.globalDevDependencies)\n\n return Promise.all(Object.keys(resolutions).map(type => {\n return transformBundle(resolutions[type], type, dependencies, globalDependencies, options)\n })).then(() => undefined)\n}\n\n/**\n * Transform a bundle file and remove extra dependencies.\n */\nfunction transformBundle (\n path: string,\n resolution: string,\n dependencies: Dependencies,\n globalDependencies: Dependencies,\n options: PruneOptions\n) {\n const { emitter } = options\n const rmQueue: Array<Promise<void>> = []\n const bundle = getDefinitionPath(path)\n\n return isFile(bundle)\n .then(exists => {\n // Avoid pruning an un-installed tree.\n if (!exists) {\n return\n }\n\n return transformDtsFile(bundle, typings => {\n const infos = typings.map(x => getInfoFromDependencyLocation(x, bundle))\n const validPaths: string[] = []\n\n for (const { name, global, location } of infos) {\n if (global) {\n if (!globalDependencies.hasOwnProperty(name)) {\n emitter.emit('prune', { name, global, resolution })\n rmQueue.push(rmDependency({ name, global, path, emitter }))\n } else {\n validPaths.push(location)\n }\n } else {\n if (!dependencies.hasOwnProperty(name)) {\n emitter.emit('prune', { name, global, resolution })\n rmQueue.push(rmDependency({ name, global, path, emitter }))\n } else {\n validPaths.push(location)\n }\n }\n }\n\n return validPaths\n })\n })\n .then(() => Promise.all(rmQueue))\n .then(() => undefined)\n}\n\n/**\n * Remove a dependency.\n */\nexport function rmDependency (options: { name: string, global: boolean, path: string, emitter: Emitter }) {\n const { path, emitter } = options\n const { directory, definition, config } = getDependencyPath(options)\n\n // Remove files and emit warning on ENOENT.\n function remove (path: string) {\n return isFile(path)\n .then(exists => {\n if (!exists) {\n emitter.emit('enoent', { path })\n\n return\n }\n\n return unlink(path)\n })\n }\n\n return Promise.all([\n remove(config),\n remove(definition)\n ])\n .then(() => rmdirUntil(directory, path))\n}\n"]} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var test = require("blue-tape"); | ||
@@ -3,0 +4,0 @@ var path_1 = require("path"); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"prune.spec.js","sourceRoot":"","sources":["../src/prune.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import test = require('blue-tape')\nimport { join } from 'path'\nimport { prune } from './prune'\nimport { readFile, writeFile, mkdirp, isFile } from './utils/fs'\n\nconst BROWSER_GLOBAL_TYPINGS = 'typings/browser/globals/test/index.d.ts'\nconst BROWSER_TYPINGS = 'typings/browser/modules/test/index.d.ts'\nconst MAIN_GLOBAL_TYPINGS = 'typings/main/globals/test/index.d.ts'\nconst MAIN_TYPINGS = 'typings/main/modules/test/index.d.ts'\nconst BROWSER_INDEX = 'typings/browser/index.d.ts'\nconst MAIN_INDEX = 'typings/main/index.d.ts'\n\ntest('prune', t => {\n t.test('remove extraneous typings', t => {\n const FIXTURE_DIR = join(__dirname, '__test__/prune-extraneous')\n\n return generateTestDefinitions(FIXTURE_DIR)\n .then(() => {\n return prune({ cwd: FIXTURE_DIR })\n })\n .then(() => {\n return Promise.all([\n readFile(join(FIXTURE_DIR, BROWSER_INDEX), 'utf8'),\n readFile(join(FIXTURE_DIR, MAIN_INDEX), 'utf8'),\n isFile(join(FIXTURE_DIR, BROWSER_GLOBAL_TYPINGS)),\n isFile(join(FIXTURE_DIR, BROWSER_TYPINGS)),\n isFile(join(FIXTURE_DIR, MAIN_GLOBAL_TYPINGS)),\n isFile(join(FIXTURE_DIR, MAIN_TYPINGS))\n ])\n })\n .then(([\n browserDts,\n mainDts,\n hasBrowserGlobalDefinition,\n hasBrowserDefinition,\n hasMainGlobalDefinition,\n hasMainDefinition\n ]) => {\n t.equal(browserDts, [\n `/// <reference path=\"globals/test/index.d.ts\" />`,\n `/// <reference path=\"modules/test/index.d.ts\" />`,\n ``\n ].join('\\n'))\n\n t.equal(mainDts, [\n `/// <reference path=\"globals/test/index.d.ts\" />`,\n `/// <reference path=\"modules/test/index.d.ts\" />`,\n ``\n ].join('\\n'))\n\n t.equal(hasBrowserGlobalDefinition, true)\n t.equal(hasBrowserDefinition, true)\n t.equal(hasMainGlobalDefinition, true)\n t.equal(hasMainDefinition, true)\n })\n })\n\n t.test('remove all dev dependencies', t => {\n const FIXTURE_DIR = join(__dirname, '__test__/prune-production')\n\n return generateTestDefinitions(FIXTURE_DIR)\n .then(() => {\n return prune({\n cwd: FIXTURE_DIR,\n production: true\n })\n })\n .then(() => {\n return Promise.all([\n readFile(join(FIXTURE_DIR, BROWSER_INDEX), 'utf8'),\n readFile(join(FIXTURE_DIR, MAIN_INDEX), 'utf8'),\n isFile(join(FIXTURE_DIR, BROWSER_GLOBAL_TYPINGS)),\n isFile(join(FIXTURE_DIR, BROWSER_TYPINGS)),\n isFile(join(FIXTURE_DIR, MAIN_GLOBAL_TYPINGS)),\n isFile(join(FIXTURE_DIR, MAIN_TYPINGS))\n ])\n })\n .then(([\n browserDts,\n mainDts,\n hasBrowserGlobalDefinition,\n hasBrowserDefinition,\n hasMainGlobalDefinition,\n hasMainDefinition\n ]) => {\n t.equal(browserDts, `\\n`)\n t.equal(mainDts, `\\n`)\n\n t.equal(hasBrowserGlobalDefinition, false)\n t.equal(hasBrowserDefinition, false)\n t.equal(hasMainGlobalDefinition, false)\n t.equal(hasMainDefinition, false)\n })\n })\n})\n\nfunction generateTestDefinitions (directory: string) {\n const FAKE_GLOBAL_MODULE = `declare module 'test' {}\\n`\n const FAKE_MODULE = `export function test (): boolean;\\n`\n\n const dirs = [\n join(directory, 'typings/main/globals/test'),\n join(directory, 'typings/browser/globals/test'),\n join(directory, 'typings/main/modules/test'),\n join(directory, 'typings/browser/modules/test')\n ]\n\n return Promise.all(dirs.map(dir => mkdirp(dir)))\n .then(() => {\n return Promise.all([\n writeFile(join(directory, BROWSER_GLOBAL_TYPINGS), FAKE_GLOBAL_MODULE),\n writeFile(join(directory, BROWSER_TYPINGS), FAKE_MODULE),\n writeFile(join(directory, MAIN_GLOBAL_TYPINGS), FAKE_GLOBAL_MODULE),\n writeFile(join(directory, MAIN_TYPINGS), FAKE_MODULE),\n writeFile(join(directory, BROWSER_INDEX), [\n `/// <reference path=\"globals/test/index.d.ts\" />`,\n `/// <reference path=\"modules/test/index.d.ts\" />`,\n `/// <reference path=\"modules/extraneous/index.d.ts\" />`,\n ``\n ].join('\\n')),\n writeFile(join(directory, MAIN_INDEX), [\n `/// <reference path=\"globals/test/index.d.ts\" />`,\n `/// <reference path=\"modules/test/index.d.ts\" />`,\n `/// <reference path=\"modules/extraneous/index.d.ts\" />`,\n ``\n ].join('\\n'))\n ])\n })\n}\n"]} | ||
| {"version":3,"file":"prune.spec.js","sourceRoot":"","sources":["../src/prune.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import test = require('blue-tape')\nimport { join } from 'path'\nimport { prune } from './prune'\nimport { readFile, writeFile, mkdirp, isFile } from './utils/fs'\n\nconst BROWSER_GLOBAL_TYPINGS = 'typings/browser/globals/test/index.d.ts'\nconst BROWSER_TYPINGS = 'typings/browser/modules/test/index.d.ts'\nconst MAIN_GLOBAL_TYPINGS = 'typings/main/globals/test/index.d.ts'\nconst MAIN_TYPINGS = 'typings/main/modules/test/index.d.ts'\nconst BROWSER_INDEX = 'typings/browser/index.d.ts'\nconst MAIN_INDEX = 'typings/main/index.d.ts'\n\ntest('prune', t => {\n t.test('remove extraneous typings', t => {\n const FIXTURE_DIR = join(__dirname, '__test__/prune-extraneous')\n\n return generateTestDefinitions(FIXTURE_DIR)\n .then(() => {\n return prune({ cwd: FIXTURE_DIR })\n })\n .then(() => {\n return Promise.all([\n readFile(join(FIXTURE_DIR, BROWSER_INDEX), 'utf8'),\n readFile(join(FIXTURE_DIR, MAIN_INDEX), 'utf8'),\n isFile(join(FIXTURE_DIR, BROWSER_GLOBAL_TYPINGS)),\n isFile(join(FIXTURE_DIR, BROWSER_TYPINGS)),\n isFile(join(FIXTURE_DIR, MAIN_GLOBAL_TYPINGS)),\n isFile(join(FIXTURE_DIR, MAIN_TYPINGS))\n ])\n })\n .then(([\n browserDts,\n mainDts,\n hasBrowserGlobalDefinition,\n hasBrowserDefinition,\n hasMainGlobalDefinition,\n hasMainDefinition\n ]) => {\n t.equal(browserDts, [\n `/// <reference path=\"globals/test/index.d.ts\" />`,\n `/// <reference path=\"modules/test/index.d.ts\" />`,\n ``\n ].join('\\n'))\n\n t.equal(mainDts, [\n `/// <reference path=\"globals/test/index.d.ts\" />`,\n `/// <reference path=\"modules/test/index.d.ts\" />`,\n ``\n ].join('\\n'))\n\n t.equal(hasBrowserGlobalDefinition, true)\n t.equal(hasBrowserDefinition, true)\n t.equal(hasMainGlobalDefinition, true)\n t.equal(hasMainDefinition, true)\n })\n })\n\n t.test('remove all dev dependencies', t => {\n const FIXTURE_DIR = join(__dirname, '__test__/prune-production')\n\n return generateTestDefinitions(FIXTURE_DIR)\n .then(() => {\n return prune({\n cwd: FIXTURE_DIR,\n production: true\n })\n })\n .then(() => {\n return Promise.all([\n readFile(join(FIXTURE_DIR, BROWSER_INDEX), 'utf8'),\n readFile(join(FIXTURE_DIR, MAIN_INDEX), 'utf8'),\n isFile(join(FIXTURE_DIR, BROWSER_GLOBAL_TYPINGS)),\n isFile(join(FIXTURE_DIR, BROWSER_TYPINGS)),\n isFile(join(FIXTURE_DIR, MAIN_GLOBAL_TYPINGS)),\n isFile(join(FIXTURE_DIR, MAIN_TYPINGS))\n ])\n })\n .then(([\n browserDts,\n mainDts,\n hasBrowserGlobalDefinition,\n hasBrowserDefinition,\n hasMainGlobalDefinition,\n hasMainDefinition\n ]) => {\n t.equal(browserDts, `\\n`)\n t.equal(mainDts, `\\n`)\n\n t.equal(hasBrowserGlobalDefinition, false)\n t.equal(hasBrowserDefinition, false)\n t.equal(hasMainGlobalDefinition, false)\n t.equal(hasMainDefinition, false)\n })\n })\n})\n\nfunction generateTestDefinitions (directory: string) {\n const FAKE_GLOBAL_MODULE = `declare module 'test' {}\\n`\n const FAKE_MODULE = `export function test (): boolean;\\n`\n\n const dirs = [\n join(directory, 'typings/main/globals/test'),\n join(directory, 'typings/browser/globals/test'),\n join(directory, 'typings/main/modules/test'),\n join(directory, 'typings/browser/modules/test')\n ]\n\n return Promise.all(dirs.map(dir => mkdirp(dir)))\n .then(() => {\n return Promise.all([\n writeFile(join(directory, BROWSER_GLOBAL_TYPINGS), FAKE_GLOBAL_MODULE),\n writeFile(join(directory, BROWSER_TYPINGS), FAKE_MODULE),\n writeFile(join(directory, MAIN_GLOBAL_TYPINGS), FAKE_GLOBAL_MODULE),\n writeFile(join(directory, MAIN_TYPINGS), FAKE_MODULE),\n writeFile(join(directory, BROWSER_INDEX), [\n `/// <reference path=\"globals/test/index.d.ts\" />`,\n `/// <reference path=\"modules/test/index.d.ts\" />`,\n `/// <reference path=\"modules/extraneous/index.d.ts\" />`,\n ``\n ].join('\\n')),\n writeFile(join(directory, MAIN_INDEX), [\n `/// <reference path=\"globals/test/index.d.ts\" />`,\n `/// <reference path=\"modules/test/index.d.ts\" />`,\n `/// <reference path=\"modules/extraneous/index.d.ts\" />`,\n ``\n ].join('\\n'))\n ])\n })\n}\n"]} |
+1
-0
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var extend = require("xtend"); | ||
@@ -3,0 +4,0 @@ var pick = require("object.pick"); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":";AAAA,8BAAgC;AAChC,kCAAoC;AACpC,2CAAuC;AACvC,2BAA6B;AAC7B,iCAAyC;AACzC,iCAA2B;AAiC3B,oBAAqC,MAAS;IAC5C,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAG7B,GAAG,CAAC,CAAc,UAAmB,EAAnB,KAAA,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAnB,cAAmB,EAAnB,IAAmB;QAAhC,IAAM,GAAG,SAAA;QACZ,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YACxB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;QACpB,CAAC;KACF;IAED,MAAM,CAAC,MAAM,CAAA;AACf,CAAC;AAKD,gBAAwB,OAA2B;IAA3B,wBAAA,EAAA,YAA2B;IACjD,IAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE;QACrC,OAAO;QACP,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,OAAO;QACP,MAAM;KACP,CAAC,CAAC,CAAA;IAEH,MAAM,CAAC,iBAAY,CAAC,aAAO,CAAC,YAAE,CAAC,WAAW,EAAE,YAAU,uBAAS,CAAC,KAAK,CAAG,CAAC,CAAC,CAAA;AAC5E,CAAC;AAZD,wBAYC","sourcesContent":["import extend = require('xtend')\nimport pick = require('object.pick')\nimport { stringify } from 'querystring'\nimport { resolve } from 'url'\nimport { readJsonFrom } from './utils/fs'\nimport rc from './utils/rc'\n\n/**\n * Query parameters used for searching.\n */\nexport interface SearchOptions {\n query?: string\n name?: string\n source?: string\n offset?: string\n limit?: string\n order?: string\n sort?: string\n}\n\n/**\n * The result from searching the API.\n */\nexport interface SearchResults {\n total: number\n results: Array<{\n name: string\n source: string\n homepage: string\n description: string\n updated: string\n versions: number\n }>\n}\n\n/**\n * Remove `null` keys before searching.\n */\nfunction tidyParams <T extends any> (params: T): T {\n const result = extend(params)\n\n // Loop over and delete empty values.\n for (const key of Object.keys(result)) {\n if (result[key] == null) {\n delete result[key]\n }\n }\n\n return result\n}\n\n/**\n * Search the registry for typings.\n */\nexport function search (options: SearchOptions = {}): Promise<SearchResults> {\n const query = tidyParams(pick(options, [\n 'query',\n 'name',\n 'source',\n 'offset',\n 'limit',\n 'order',\n 'sort'\n ]))\n\n return readJsonFrom(resolve(rc.registryURL, `search?${stringify(query)}`))\n}\n"]} | ||
| {"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":";;AAAA,8BAAgC;AAChC,kCAAoC;AACpC,2CAAuC;AACvC,2BAA6B;AAC7B,iCAAyC;AACzC,iCAA2B;AAiC3B,oBAAqC,MAAS;IAC5C,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAG7B,GAAG,CAAC,CAAc,UAAmB,EAAnB,KAAA,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAnB,cAAmB,EAAnB,IAAmB;QAAhC,IAAM,GAAG,SAAA;QACZ,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YACxB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;QACpB,CAAC;KACF;IAED,MAAM,CAAC,MAAM,CAAA;AACf,CAAC;AAKD,gBAAwB,OAA2B;IAA3B,wBAAA,EAAA,YAA2B;IACjD,IAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE;QACrC,OAAO;QACP,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,OAAO;QACP,MAAM;KACP,CAAC,CAAC,CAAA;IAEH,MAAM,CAAC,iBAAY,CAAC,aAAO,CAAC,YAAE,CAAC,WAAW,EAAE,YAAU,uBAAS,CAAC,KAAK,CAAG,CAAC,CAAC,CAAA;AAC5E,CAAC;AAZD,wBAYC","sourcesContent":["import extend = require('xtend')\nimport pick = require('object.pick')\nimport { stringify } from 'querystring'\nimport { resolve } from 'url'\nimport { readJsonFrom } from './utils/fs'\nimport rc from './utils/rc'\n\n/**\n * Query parameters used for searching.\n */\nexport interface SearchOptions {\n query?: string\n name?: string\n source?: string\n offset?: string\n limit?: string\n order?: string\n sort?: string\n}\n\n/**\n * The result from searching the API.\n */\nexport interface SearchResults {\n total: number\n results: Array<{\n name: string\n source: string\n homepage: string\n description: string\n updated: string\n versions: number\n }>\n}\n\n/**\n * Remove `null` keys before searching.\n */\nfunction tidyParams <T extends any> (params: T): T {\n const result = extend(params)\n\n // Loop over and delete empty values.\n for (const key of Object.keys(result)) {\n if (result[key] == null) {\n delete result[key]\n }\n }\n\n return result\n}\n\n/**\n * Search the registry for typings.\n */\nexport function search (options: SearchOptions = {}): Promise<SearchResults> {\n const query = tidyParams(pick(options, [\n 'query',\n 'name',\n 'source',\n 'offset',\n 'limit',\n 'order',\n 'sort'\n ]))\n\n return readJsonFrom(resolve(rc.registryURL, `search?${stringify(query)}`))\n}\n"]} |
+1
-0
@@ -5,2 +5,3 @@ "use strict"; | ||
| } | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| __export(require("./install")); | ||
@@ -7,0 +8,0 @@ __export(require("./uninstall")); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"typings.js","sourceRoot":"","sources":["../src/typings.ts"],"names":[],"mappings":";;;;AAAA,+BAAyB;AACzB,iCAA2B;AAC3B,4BAAsB;AACtB,8BAAwB;AACxB,8BAAwB;AAExB,4BAAsB;AACtB,4BAAsB;AACtB,4BAAsB;AACtB,6BAAuB;AAEV,QAAA,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAA","sourcesContent":["export * from './install'\nexport * from './uninstall'\nexport * from './init'\nexport * from './bundle'\nexport * from './search'\nexport * from './interfaces'\nexport * from './list'\nexport * from './open'\nexport * from './view'\nexport * from './prune'\n\nexport const VERSION = require('../package.json').version\n"]} | ||
| {"version":3,"file":"typings.js","sourceRoot":"","sources":["../src/typings.ts"],"names":[],"mappings":";;;;;AAAA,+BAAyB;AACzB,iCAA2B;AAC3B,4BAAsB;AACtB,8BAAwB;AACxB,8BAAwB;AAExB,4BAAsB;AACtB,4BAAsB;AACtB,4BAAsB;AACtB,6BAAuB;AAEV,QAAA,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAA","sourcesContent":["export * from './install'\nexport * from './uninstall'\nexport * from './init'\nexport * from './bundle'\nexport * from './search'\nexport * from './interfaces'\nexport * from './list'\nexport * from './open'\nexport * from './view'\nexport * from './prune'\n\nexport const VERSION = require('../package.json').version\n"]} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var test = require("blue-tape"); | ||
@@ -3,0 +4,0 @@ var typings_1 = require("./typings"); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"typings.spec.js","sourceRoot":"","sources":["../src/typings.spec.ts"],"names":[],"mappings":";AAAA,gCAAkC;AAClC,qCAAmC;AAEnC,IAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAEtC,IAAI,CAAC,SAAS,EAAE,UAAA,CAAC;IACf,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,UAAA,CAAC;QACjB,CAAC,CAAC,KAAK,CAAC,iBAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;QAC7B,CAAC,CAAC,GAAG,EAAE,CAAA;IACT,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import test = require('blue-tape')\nimport { VERSION } from './typings'\n\nconst pkg = require('../package.json')\n\ntest('typings', t => {\n t.test('version', t => {\n t.equal(VERSION, pkg.version)\n t.end()\n })\n})\n"]} | ||
| {"version":3,"file":"typings.spec.js","sourceRoot":"","sources":["../src/typings.spec.ts"],"names":[],"mappings":";;AAAA,gCAAkC;AAClC,qCAAmC;AAEnC,IAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAEtC,IAAI,CAAC,SAAS,EAAE,UAAA,CAAC;IACf,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,UAAA,CAAC;QACjB,CAAC,CAAC,KAAK,CAAC,iBAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;QAC7B,CAAC,CAAC,GAAG,EAAE,CAAA;IACT,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import test = require('blue-tape')\nimport { VERSION } from './typings'\n\nconst pkg = require('../package.json')\n\ntest('typings', t => {\n t.test('version', t => {\n t.equal(VERSION, pkg.version)\n t.end()\n })\n})\n"]} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var extend = require("xtend"); | ||
@@ -30,3 +31,3 @@ var events_1 = require("events"); | ||
| .then(function () { return writeToConfig(names, options); }) | ||
| .then(function () { return undefined; }); | ||
| .then(function () { return options; }); | ||
| }); | ||
@@ -33,0 +34,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../src/uninstall.ts"],"names":[],"mappings":"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","sourcesContent":["import extend = require('xtend')\nimport { EventEmitter } from 'events'\nimport { dirname } from 'path'\nimport { transformConfig, transformDtsFile, rmdirUntil, unlink, isFile, readConfig } from './utils/fs'\nimport { findConfigFile } from './utils/find'\nimport { getDependencyPath, normalizeResolutions, getDefinitionPath } from './utils/path'\nimport { Emitter, ResolutionMap } from './interfaces'\n\n/**\n * Uninstall options.\n */\nexport interface UninstallDependencyOptions {\n save?: boolean\n saveDev?: boolean\n savePeer?: boolean\n global?: boolean\n cwd: string\n emitter?: Emitter\n}\n\n/**\n * Uninstall a single dependency.\n */\nexport function uninstallDependency (name: string, options: UninstallDependencyOptions) {\n return uninstallDependencies([name], options)\n}\n\n/**\n * Uninstall a list of dependencies.\n */\nexport function uninstallDependencies (names: string[], options: UninstallDependencyOptions) {\n const emitter = options.emitter || new EventEmitter()\n\n return findConfigFile(options.cwd)\n .then(\n (configFile) => {\n const cwd = dirname(configFile)\n\n return readConfig(configFile)\n .then(config => {\n const resolutions = normalizeResolutions(config.resolution, options)\n\n return extend(options, { resolutions, cwd, emitter })\n })\n },\n () => {\n const resolutions = normalizeResolutions(undefined, options)\n\n return extend(options, { emitter, resolutions })\n }\n )\n .then(options => {\n return Promise.all(names.map(x => uninstallFrom(x, options)))\n .then(() => writeBundle(names, options))\n .then(() => writeToConfig(names, options))\n .then(() => undefined)\n })\n}\n\ninterface UninstallDependencyNestedOptions extends UninstallDependencyOptions {\n resolutions: ResolutionMap\n}\n\n/**\n * Uninstall the dependency.\n */\nfunction uninstallFrom (name: string, options: UninstallDependencyNestedOptions) {\n const { cwd, global, emitter, resolutions } = options\n\n return Promise.all(Object.keys(resolutions).map(type => {\n const path = resolutions[type]\n const { directory, definition, config } = getDependencyPath({ path, name, global })\n\n return isFile(definition)\n .then(exists => {\n if (!exists) {\n emitter.emit('enoent', { path: definition })\n\n return\n }\n\n return Promise.all([\n unlink(definition),\n unlink(config)\n ])\n .then(() => rmdirUntil(directory, cwd))\n })\n }))\n}\n\n/**\n * Delete the dependency from the configuration file.\n */\nfunction writeToConfig (names: string[], options: UninstallDependencyOptions) {\n if (options.save || options.saveDev || options.savePeer) {\n return transformConfig(options.cwd, config => {\n for (const name of names) {\n if (options.save) {\n if (options.global) {\n if (config.globalDependencies && config.globalDependencies[name]) {\n delete config.globalDependencies[name]\n } else {\n return Promise.reject(new TypeError(`Typings for \"${name}\" are not listed in global dependencies`))\n }\n } else {\n if (config.dependencies && config.dependencies[name]) {\n delete config.dependencies[name]\n } else {\n return Promise.reject(new TypeError(`Typings for \"${name}\" are not listed in dependencies`))\n }\n }\n }\n\n if (options.saveDev) {\n if (options.global) {\n if (config.globalDevDependencies && config.globalDevDependencies[name]) {\n delete config.globalDevDependencies[name]\n } else {\n return Promise.reject(new TypeError(`Typings for \"${name}\" are not listed in global dev dependencies`))\n }\n } else {\n if (config.devDependencies && config.devDependencies[name]) {\n delete config.devDependencies[name]\n } else {\n return Promise.reject(new TypeError(`Typings for \"${name}\" are not listed in dev dependencies`))\n }\n }\n }\n\n if (options.savePeer) {\n if (config.peerDependencies && config.peerDependencies[name]) {\n delete config.peerDependencies[name]\n } else {\n return Promise.reject(new TypeError(`Typings for \"${name}\" are not listed in peer dependencies`))\n }\n }\n }\n\n return config\n })\n }\n}\n\n/**\n * Write the uninstall result to the bundle.\n */\nfunction writeBundle (names: string[], options: UninstallDependencyNestedOptions) {\n const { global, resolutions } = options\n\n return Promise.all(Object.keys(resolutions).map(type => {\n const path = resolutions[type]\n const bundle = getDefinitionPath(path)\n const paths = names.map(name => getDependencyPath({ path, name, global }).definition)\n\n return transformDtsFile(bundle, references => {\n return references.filter(x => paths.indexOf(x) === -1)\n })\n }))\n}\n"]} | ||
| {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../src/uninstall.ts"],"names":[],"mappings":"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","sourcesContent":["import extend = require('xtend')\nimport { EventEmitter } from 'events'\nimport { dirname } from 'path'\nimport { transformConfig, transformDtsFile, rmdirUntil, unlink, isFile, readConfig } from './utils/fs'\nimport { findConfigFile } from './utils/find'\nimport { getDependencyPath, normalizeResolutions, getDefinitionPath } from './utils/path'\nimport { Emitter, ResolutionMap } from './interfaces'\n\n/**\n * Uninstall options.\n */\nexport interface UninstallDependencyOptions {\n save?: boolean\n saveDev?: boolean\n savePeer?: boolean\n global?: boolean\n cwd: string\n emitter?: Emitter\n}\n\n/**\n * Uninstall a single dependency.\n */\nexport function uninstallDependency (name: string, options: UninstallDependencyOptions) {\n return uninstallDependencies([name], options)\n}\n\n/**\n * Uninstall a list of dependencies.\n */\nexport function uninstallDependencies (names: string[], options: UninstallDependencyOptions) {\n const emitter = options.emitter || new EventEmitter()\n\n return findConfigFile(options.cwd)\n .then(\n (configFile) => {\n const cwd = dirname(configFile)\n\n return readConfig(configFile)\n .then(config => {\n const resolutions = normalizeResolutions(config.resolution, options)\n\n return extend(options, { resolutions, cwd, emitter })\n })\n },\n () => {\n const resolutions = normalizeResolutions(undefined, options)\n\n return extend(options, { emitter, resolutions })\n }\n )\n .then(options => {\n return Promise.all(names.map(x => uninstallFrom(x, options)))\n .then(() => writeBundle(names, options))\n .then(() => writeToConfig(names, options))\n .then(() => options)\n })\n}\n\ninterface UninstallDependencyNestedOptions extends UninstallDependencyOptions {\n resolutions: ResolutionMap\n}\n\n/**\n * Uninstall the dependency.\n */\nfunction uninstallFrom (name: string, options: UninstallDependencyNestedOptions) {\n const { cwd, global, emitter, resolutions } = options\n\n return Promise.all(Object.keys(resolutions).map(type => {\n const path = resolutions[type]\n const { directory, definition, config } = getDependencyPath({ path, name, global })\n\n return isFile(definition)\n .then(exists => {\n if (!exists) {\n emitter.emit('enoent', { path: definition })\n\n return\n }\n\n return Promise.all([\n unlink(definition),\n unlink(config)\n ])\n .then(() => rmdirUntil(directory, cwd))\n })\n }))\n}\n\n/**\n * Delete the dependency from the configuration file.\n */\nfunction writeToConfig (names: string[], options: UninstallDependencyOptions) {\n if (options.save || options.saveDev || options.savePeer) {\n return transformConfig(options.cwd, config => {\n for (const name of names) {\n if (options.save) {\n if (options.global) {\n if (config.globalDependencies && config.globalDependencies[name]) {\n delete config.globalDependencies[name]\n } else {\n return Promise.reject(new TypeError(`Typings for \"${name}\" are not listed in global dependencies`))\n }\n } else {\n if (config.dependencies && config.dependencies[name]) {\n delete config.dependencies[name]\n } else {\n return Promise.reject(new TypeError(`Typings for \"${name}\" are not listed in dependencies`))\n }\n }\n }\n\n if (options.saveDev) {\n if (options.global) {\n if (config.globalDevDependencies && config.globalDevDependencies[name]) {\n delete config.globalDevDependencies[name]\n } else {\n return Promise.reject(new TypeError(`Typings for \"${name}\" are not listed in global dev dependencies`))\n }\n } else {\n if (config.devDependencies && config.devDependencies[name]) {\n delete config.devDependencies[name]\n } else {\n return Promise.reject(new TypeError(`Typings for \"${name}\" are not listed in dev dependencies`))\n }\n }\n }\n\n if (options.savePeer) {\n if (config.peerDependencies && config.peerDependencies[name]) {\n delete config.peerDependencies[name]\n } else {\n return Promise.reject(new TypeError(`Typings for \"${name}\" are not listed in peer dependencies`))\n }\n }\n }\n\n return config\n })\n }\n}\n\n/**\n * Write the uninstall result to the bundle.\n */\nfunction writeBundle (names: string[], options: UninstallDependencyNestedOptions) {\n const { global, resolutions } = options\n\n return Promise.all(Object.keys(resolutions).map(type => {\n const path = resolutions[type]\n const bundle = getDefinitionPath(path)\n const paths = names.map(name => getDependencyPath({ path, name, global }).definition)\n\n return transformDtsFile(bundle, references => {\n return references.filter(x => paths.indexOf(x) === -1)\n })\n }))\n}\n"]} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.PROJECT_NAME = 'typings'; | ||
@@ -3,0 +4,0 @@ exports.PRETTY_PROJECT_NAME = 'Typings'; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";AAAa,QAAA,YAAY,GAAG,SAAS,CAAA;AACxB,QAAA,mBAAmB,GAAG,SAAS,CAAA;AAC/B,QAAA,WAAW,GAAM,oBAAY,UAAO,CAAA;AACpC,QAAA,mBAAmB,GAAG,oBAAY,CAAA;AAElC,QAAA,QAAQ,GAAG,oCAAoC,CAAA;AAC/C,QAAA,eAAe,GAAG,2CAA2C,CAAA;AAE7D,QAAA,oBAAoB,GAAG,GAAG,CAAA;AAE1B,QAAA,YAAY,GAAG,yBAAyB,CAAA","sourcesContent":["export const PROJECT_NAME = 'typings'\nexport const PRETTY_PROJECT_NAME = 'Typings'\nexport const CONFIG_FILE = `${PROJECT_NAME}.json`\nexport const DEFAULT_TYPINGS_DIR = PROJECT_NAME\n\nexport const HOMEPAGE = 'https://github.com/typings/typings'\nexport const ISSUES_HOMEPAGE = 'https://github.com/typings/typings/issues'\n\nexport const DEPENDENCY_SEPARATOR = '~'\n\nexport const REGISTRY_URL = 'https://api.typings.org'\n"]} | ||
| {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";;AAAa,QAAA,YAAY,GAAG,SAAS,CAAA;AACxB,QAAA,mBAAmB,GAAG,SAAS,CAAA;AAC/B,QAAA,WAAW,GAAM,oBAAY,UAAO,CAAA;AACpC,QAAA,mBAAmB,GAAG,oBAAY,CAAA;AAElC,QAAA,QAAQ,GAAG,oCAAoC,CAAA;AAC/C,QAAA,eAAe,GAAG,2CAA2C,CAAA;AAE7D,QAAA,oBAAoB,GAAG,GAAG,CAAA;AAE1B,QAAA,YAAY,GAAG,yBAAyB,CAAA","sourcesContent":["export const PROJECT_NAME = 'typings'\nexport const PRETTY_PROJECT_NAME = 'Typings'\nexport const CONFIG_FILE = `${PROJECT_NAME}.json`\nexport const DEFAULT_TYPINGS_DIR = PROJECT_NAME\n\nexport const HOMEPAGE = 'https://github.com/typings/typings'\nexport const ISSUES_HOMEPAGE = 'https://github.com/typings/typings/issues'\n\nexport const DEPENDENCY_SEPARATOR = '~'\n\nexport const REGISTRY_URL = 'https://api.typings.org'\n"]} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var debug = require("debug"); | ||
| var config_1 = require("./config"); | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.default = debug(config_1.PROJECT_NAME); | ||
| //# sourceMappingURL=debug.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/utils/debug.ts"],"names":[],"mappings":";AAAA,6BAA+B;AAC/B,mCAAuC;;AAEvC,kBAAe,KAAK,CAAC,qBAAY,CAAC,CAAA","sourcesContent":["import debug = require('debug')\nimport { PROJECT_NAME } from './config'\n\nexport default debug(PROJECT_NAME)\n"]} | ||
| {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/utils/debug.ts"],"names":[],"mappings":";;AAAA,6BAA+B;AAC/B,mCAAuC;AAEvC,kBAAe,KAAK,CAAC,qBAAY,CAAC,CAAA","sourcesContent":["import debug = require('debug')\nimport { PROJECT_NAME } from './config'\n\nexport default debug(PROJECT_NAME)\n"]} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var path_1 = require("path"); | ||
@@ -3,0 +4,0 @@ var fs_1 = require("../utils/fs"); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"find.js","sourceRoot":"","sources":["../../src/utils/find.ts"],"names":[],"mappings":";AAAA,6BAAoC;AACpC,kCAAoC;AACpC,mCAAsC;AAEtC,qBAA6B,GAAW;IACtC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAO,CAAC,CAAA;AAC1C,CAAC;AAFD,kCAEC;AAED,wBAAgC,GAAW;IACzC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,oBAAW,CAAC,CAAA;AACjC,CAAC;AAFD,wCAEC;AAED,gBAAwB,GAAW,EAAE,QAAgB,EAAE,IAAU;IAAV,qBAAA,EAAA,UAAU;IAC/D,IAAM,IAAI,GAAG,WAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IAEhC,MAAM,CAAC,WAAM,CAAC,IAAI,CAAC;SAChB,IAAI,CAAC,UAAU,MAAM;QACpB,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;AACN,CAAC;AAPD,wBAOC;AAED,sBAAuB,GAAW,EAAE,QAAgB,EAAE,IAAY;IAChE,IAAM,SAAS,GAAG,cAAO,CAAC,GAAG,CAAC,CAAA;IAE9B,EAAE,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC;QACtB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAO,IAAI,KAAK,CAAC,sBAAmB,QAAQ,kBAAW,IAAI,OAAG,CAAC,CAAC,CAAA;IACvF,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;AAC1C,CAAC","sourcesContent":["import { join, dirname } from 'path'\nimport { isFile } from '../utils/fs'\nimport { CONFIG_FILE } from './config'\n\nexport function findProject (dir: string): Promise<string> {\n return findConfigFile(dir).then(dirname)\n}\n\nexport function findConfigFile (dir: string): Promise<string> {\n return findUp(dir, CONFIG_FILE)\n}\n\nexport function findUp (dir: string, filename: string, from = dir): Promise<string> {\n const path = join(dir, filename)\n\n return isFile(path)\n .then(function (exists) {\n return exists ? path : findUpParent(dir, filename, from)\n })\n}\n\nfunction findUpParent (dir: string, filename: string, from: string): Promise<string | void> {\n const parentDir = dirname(dir)\n\n if (dir === parentDir) {\n return Promise.reject<void>(new Error(`Unable to find \"${filename}\" from \"${from}\"`))\n }\n\n return findUp(parentDir, filename, from)\n}\n"]} | ||
| {"version":3,"file":"find.js","sourceRoot":"","sources":["../../src/utils/find.ts"],"names":[],"mappings":";;AAAA,6BAAoC;AACpC,kCAAoC;AACpC,mCAAsC;AAEtC,qBAA6B,GAAW;IACtC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAO,CAAC,CAAA;AAC1C,CAAC;AAFD,kCAEC;AAED,wBAAgC,GAAW;IACzC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,oBAAW,CAAC,CAAA;AACjC,CAAC;AAFD,wCAEC;AAED,gBAAwB,GAAW,EAAE,QAAgB,EAAE,IAAU;IAAV,qBAAA,EAAA,UAAU;IAC/D,IAAM,IAAI,GAAG,WAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IAEhC,MAAM,CAAC,WAAM,CAAC,IAAI,CAAC;SAChB,IAAI,CAAC,UAAU,MAAM;QACpB,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;AACN,CAAC;AAPD,wBAOC;AAED,sBAAuB,GAAW,EAAE,QAAgB,EAAE,IAAY;IAChE,IAAM,SAAS,GAAG,cAAO,CAAC,GAAG,CAAC,CAAA;IAE9B,EAAE,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC;QACtB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAO,IAAI,KAAK,CAAC,sBAAmB,QAAQ,kBAAW,IAAI,OAAG,CAAC,CAAC,CAAA;IACvF,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;AAC1C,CAAC","sourcesContent":["import { join, dirname } from 'path'\nimport { isFile } from '../utils/fs'\nimport { CONFIG_FILE } from './config'\n\nexport function findProject (dir: string): Promise<string> {\n return findConfigFile(dir).then(dirname)\n}\n\nexport function findConfigFile (dir: string): Promise<string> {\n return findUp(dir, CONFIG_FILE)\n}\n\nexport function findUp (dir: string, filename: string, from = dir): Promise<string> {\n const path = join(dir, filename)\n\n return isFile(path)\n .then(function (exists) {\n return exists ? path : findUpParent(dir, filename, from)\n })\n}\n\nfunction findUpParent (dir: string, filename: string, from: string): Promise<string | void> {\n const parentDir = dirname(dir)\n\n if (dir === parentDir) {\n return Promise.reject<void>(new Error(`Unable to find \"${filename}\" from \"${from}\"`))\n }\n\n return findUp(parentDir, filename, from)\n}\n"]} |
+1
-0
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var fs = require("graceful-fs"); | ||
@@ -3,0 +4,0 @@ var extend = require("xtend"); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":";AAAA,gCAAiC;AACjC,8BAAgC;AAChC,iCAAmC;AACnC,oCAAsC;AACtC,kCAAoC;AACpC,mCAAqC;AACrC,gDAAkD;AAClD,8CAAgD;AAChD,kDAAoD;AACpD,4CAA8C;AAC9C,oCAAsC;AACtC,+BAAiC;AACjC,iCAAmC;AACnC,mCAAqC;AACrC,+BAAiC;AACjC,kDAAoD;AACpD,+BAAiC;AACjC,mDAA4C;AAC5C,6BAA+B;AAC/B,6BAAoC;AACpC,2BAAuC;AACvC,0CAA4C;AAC5C,mCAAsC;AACtC,+BAA6D;AAC7D,2CAAmE;AAEnE,2BAAqB;AACrB,iCAA2B;AAC3B,iCAA2B;AAE3B,IAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;AACzC,IAAM,WAAW,GAAG,WAAQ,CAAC,YAAE,CAAC,WAAW,CAAC,CAAA;AAC5C,IAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;AAUjB,QAAA,KAAK,GAAY,MAAM,CAAC,EAAE,EAAE,OAAO,CAA8B,KAAK,CAAC,CAAC,CAAA;AACxE,QAAA,IAAI,GAAkB,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;AAClD,QAAA,QAAQ,GAAe,MAAM,CAAC,EAAE,EAAE,OAAO,CAAyB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;AAC/E,QAAA,SAAS,GAAgB,OAAO,CAAgC,EAAE,CAAC,SAAS,CAAC,CAAA;AAC7E,QAAA,MAAM,GAAmB,MAAM,CAAC,EAAE,EAAE,OAAO,CAAiB,MAAM,CAAC,CAAC,CAAA;AACpE,QAAA,MAAM,GAAiB,MAAM,CAAC,EAAE,EAAE,OAAO,CAAe,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;AACnE,QAAA,IAAI,GAAW,MAAM,CAAC,EAAE,EAAE,OAAO,CAAiC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;AACjF,QAAA,MAAM,GAAiB,MAAM,CAAC,EAAE,EAAE,OAAO,CAAe,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;AACzE,QAAA,MAAM,GAAiB,MAAM,CAAC,EAAE,EAAE,OAAO,CAAe,MAAM,CAAC,CAAC,CAAA;AAChE,QAAA,OAAO,GAAqB,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;AAC3D,QAAA,KAAK,GAAiB,MAAM,CAAC,EAAE,EAAE,OAAO,CAAe,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;AAK9E,oBAA4B,IAAY,EAAE,KAAa;IACrD,EAAE,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC;QACnB,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;IAED,MAAM,CAAC,eAAO,CAAC,IAAI,CAAC;SACjB,IAAI,CAAC,UAAA,KAAK;QAET,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACjB,MAAM,CAAA;QACR,CAAC;QAED,MAAM,CAAC,aAAK,CAAC,IAAI,CAAC;aACf,IAAI,CAAC,cAAM,OAAA,UAAU,CAAC,cAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAhC,CAAgC,CAAC,CAAA;IACjD,CAAC,CAAC;SACD,KAAK,CAAC,UAAA,GAAG;QACR,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC1B,MAAM,CAAA;QACR,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,MAAM,CAAO,GAAG,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;AACN,CAAC;AAtBD,gCAsBC;AAKD,gBAAwB,IAAY;IAClC,MAAM,CAAC,YAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,MAAM,EAAE,EAAb,CAAa,EAAE,cAAM,OAAA,KAAK,EAAL,CAAK,CAAC,CAAA;AAC5D,CAAC;AAFD,wBAEC;AAKD,kBAA0B,IAAY,EAAE,UAAoB;IAC1D,MAAM,CAAC,gBAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;SAC1B,IAAI,CAAC,QAAQ,CAAC;SACd,IAAI,CAAC,UAAA,QAAQ,IAAI,OAAA,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,EAArC,CAAqC,CAAC,CAAA;AAC5D,CAAC;AAJD,4BAIC;AAKD,mBAA2B,IAAY,EAAE,IAAS,EAAE,MAAwB,EAAE,GAAY;IACxF,MAAM,CAAC,iBAAS,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;AAC1D,CAAC;AAFD,8BAEC;AAKD,oBAA4B,IAAY;IACtC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAvB,CAAuB,CAAC,CAAA;AACnE,CAAC;AAFD,gCAEC;AAKD,wBAAgC,IAAY;IAC1C,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAvB,CAAuB,CAAC,CAAA;AACvE,CAAC;AAFD,wCAEC;AAKD,qBAA6B,MAAkB,EAAE,IAAY;IAE3D,MAAM,CAAC,MAAM,CAAA;AACf,CAAC;AAHD,kCAGC;AAKY,QAAA,KAAK,GAAG,WAAW,CAAC;IAC/B,KAAK,EAAE,YAAE,CAAC,KAAK;IACf,SAAS,EAAE,YAAE,CAAC,SAAS;IACvB,UAAU,EAAE,YAAE,CAAC,UAAU;IACzB,OAAO,EAAE,YAAE,CAAC,OAAO;CACpB,CAAC,CAAA;AAKW,QAAA,QAAQ,GAAG,MAAM,CAAC,CAAC,EAAE,kBAAmB,GAAW;IACtD,IAAA,oDAAkB,EAAE,oBAAE,EAAE,sBAAG,EAAE,wBAAI,EAAE,kCAAS,CAAO;IAE3D,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAClB,GAAG,KAAA;QACH,OAAO,EAAE;YACP,YAAY,EAAE,QAAQ,CAAC,SAAS,EAAE;gBAChC,WAAW,EAAE,OAAO,CAAC,OAAO;gBAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,cAAc,EAAE,GAAG,CAAC,OAAO;aAC5B,CAAC;SACH;QACD,SAAS,EAAE,QAAQ,CAAC,eAAe,CAAC;YAClC,EAAE,IAAA;YACF,GAAG,KAAA;YACH,IAAI,MAAA;YACJ,KAAK,EAAE,aAAK,CAAC,GAAG,CAAC;YACjB,kBAAkB,oBAAA;SACnB,CAAC;KACH,CAAC;SAEC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;SAExB,GAAG,CAAC,eAAe,CAAC,YAAE,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;SAE1C,GAAG,CAAC,UAAU,OAAO,EAAE,IAAI;QAC1B,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1C,EAAE,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;YACzD,CAAC;YAED,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,QAAQ;gBACnC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;oBACtC,eAAK,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAA;gBAC1D,CAAC;gBAED,MAAM,CAAC,QAAQ,CAAA;YACjB,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,CAAC,IAAI,EAAE,CAAA;IACf,CAAC,CAAC;SAED,GAAG,CAAC,UAAU,OAAO,EAAE,IAAI;QAClB,IAAA,+BAAQ,CAAgB;QAEhC,EAAE,CAAC,CAAC,YAAE,CAAC,WAAW,IAAI,CAAC,QAAQ,KAAK,2BAA2B,IAAI,QAAQ,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAClG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,WAAS,YAAE,CAAC,WAAa,CAAC,CAAA;QACzD,CAAC;QAED,MAAM,CAAC,IAAI,EAAE,CAAA;IACf,CAAC,CAAC;SAED,GAAG,CAAC,aAAa,EAAE,CAAC;SAEpB,IAAI,CAAC,UAAU,QAAQ;QACtB,eAAK,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;QAEzC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAA;IACtB,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA;AAKF,sBAA8B,IAAY;IACxC,MAAM,CAAC,aAAM,CAAC,IAAI,CAAC,GAAG,gBAAQ,CAAC,IAAI,CAAC,GAAG,gBAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;AAC/D,CAAC;AAFD,oCAEC;AAKD,sBAA8B,IAAY,EAAE,UAAoB;IAC9D,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;SACtB,IAAI,CAAC,QAAQ,CAAC;SACd,IAAI,CAAC,UAAA,QAAQ,IAAI,OAAA,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,EAArC,CAAqC,CAAC,CAAA;AAC5D,CAAC;AAJD,oCAIC;AAKD,uBAA+B,IAAS,EAAE,MAAwB,EAAE,GAAiB;IAAjB,oBAAA,EAAA,gBAAiB;IACnF,MAAM,CAAC,mBAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAA;AACzE,CAAC;AAFD,sCAEC;AAKD,mBAA2B,QAAgB,EAAE,IAAY,EAAE,UAAmB;IAC5E,EAAE,CAAC,CAAC,QAAQ,KAAK,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,EAAE,CAAA;IACX,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AACpC,CAAC;AAND,8BAMC;AAKD,uBAA+B,IAAY,EAAE,SAAyD;IACpG,gBAAiB,QAAgB;QAC/B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;aACxC,IAAI,CAAC,UAAA,QAAQ,IAAI,OAAA,iBAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAzB,CAAyB,CAAC,CAAA;IAChD,CAAC;IAED,IAAM,QAAQ,GAAM,IAAI,UAAO,CAAA;IAC/B,IAAM,WAAW,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IAE5D,IAAM,MAAM,GAAG,YAAI,CAAC,QAAQ,EAAE,WAAW,CAAC;SACvC,IAAI,CAAC;QACJ,MAAM,CAAC,gBAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC/B,CAAC,CAAC;SACD,IAAI,CACH,UAAC,QAAQ,IAAK,OAAA,MAAM,CAAC,QAAQ,CAAC,EAAhB,CAAgB,EAC9B,cAAM,OAAA,MAAM,CAAC,SAAS,CAAC,EAAjB,CAAiB,CACxB,CAAA;IAEH,MAAM,CAAC,yBAAc,CAAC,MAAM,EAAE,cAAM,OAAA,cAAM,CAAC,QAAQ,CAAC,EAAhB,CAAgB,CAAC,CAAA;AACvD,CAAC;AAnBD,sCAmBC;AAKD,uBAAmC,IAAY,EAAE,SAAyB,EAAE,UAAoB;IAC9F,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,UAAC,QAAQ;QAClC,IAAM,MAAM,GAAG,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,SAAS,CAAA;QACnE,IAAM,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,GAAG,SAAS,CAAA;QACnF,IAAM,GAAG,GAAG,QAAQ,GAAG,gBAAS,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAA;QAEtD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACpC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAhC,CAAgC,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;AACJ,CAAC;AATD,sCASC;AAKD,yBAAiC,GAAW,EAAE,SAA6C;IACzF,IAAM,IAAI,GAAG,WAAI,CAAC,GAAG,EAAE,oBAAW,CAAC,CAAA;IAEnC,MAAM,CAAC,aAAa,CAClB,IAAI,EACJ,UAAC,MAAW;QAAX,uBAAA,EAAA,WAAW;QACV,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;aACzD,IAAI,CAAC,UAAA,MAAM;YACV,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;gBACxB,MAAM,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;YACrD,CAAC;YAED,EAAE,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;YAC7D,CAAC;YAED,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;gBAC3B,MAAM,CAAC,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;YAC3D,CAAC;YAED,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBAC9B,MAAM,CAAC,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;YACjE,CAAC;YAED,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBACjC,MAAM,CAAC,qBAAqB,GAAG,QAAQ,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAA;YACvE,CAAC;YAED,MAAM,CAAC,MAAM,CAAA;QACf,CAAC,CAAC,CAAA;IACN,CAAC,EACD,IAAI,CACL,CAAA;AACH,CAAC;AAjCD,0CAiCC;AAKD,0BAAkC,IAAY,EAAE,SAA8D;IAC5G,IAAM,GAAG,GAAG,cAAO,CAAC,IAAI,CAAC,CAAA;IAEzB,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,UAAA,QAAQ;QACjC,IAAM,OAAO,GAAG,4BAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;QAE9C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;aACvC,IAAI,CAAC,UAAA,OAAO,IAAI,OAAA,gCAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,EAA9C,CAA8C,CAAC,CAAA;IACpE,CAAC,CAAC,CAAA;AACJ,CAAC;AATD,4CASC;AAKD,oBAA4B,IAAoB;IAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QAClB,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC;QACnD,eAAe,EAAE,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC;QACzD,gBAAgB,EAAE,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAC3D,kBAAkB,EAAE,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAC/D,qBAAqB,EAAE,kBAAkB,CAAC,IAAI,CAAC,qBAAqB,CAAC;KACtE,CAAC,CAAA;AACJ,CAAC;AATD,gCASC;AAKD,4BAAoC,YAA8B;IAChE,IAAM,IAAI,GAAqB,EAAE,CAAA;IACjC,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAGtC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,CAAA;IACR,CAAC;IAED,GAAG,CAAC,CAAc,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI;QAAjB,IAAM,GAAG,aAAA;QACZ,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;KAC1C;IAED,MAAM,CAAC,IAAI,CAAA;AACb,CAAC;AAdD,gDAcC","sourcesContent":["import * as fs from 'graceful-fs'\nimport extend = require('xtend')\nimport thenify = require('thenify')\nimport stripBom = require('strip-bom')\nimport parse = require('parse-json')\nimport popsicle = require('popsicle')\nimport popsicleStatus = require('popsicle-status')\nimport popsicleRetry = require('popsicle-retry')\nimport popsicleRewrite = require('popsicle-rewrite')\nimport detectIndent = require('detect-indent')\nimport sortKeys = require('sort-keys')\nimport Mkdirp = require('mkdirp')\nimport uniq = require('array-uniq')\nimport lockfile = require('lockfile')\nimport Rimraf = require('rimraf')\nimport createProxy = require('popsicle-proxy-agent')\nimport Throat = require('throat')\nimport promiseFinally from 'promise-finally'\nimport Touch = require('touch')\nimport { join, dirname } from 'path'\nimport { parse as parseUrl } from 'url'\nimport template = require('string-template')\nimport { CONFIG_FILE } from './config'\nimport { isHttp, EOL, detectEOL, normalizeEOL } from './path'\nimport { parseReferences, stringifyReferences } from './references'\nimport { ConfigJson, DependencyTree, DependencyBranch } from '../interfaces'\nimport rc from './rc'\nimport store from './store'\nimport debug from './debug'\n\nconst pkg = require('../../package.json')\nconst registryURL = parseUrl(rc.registryURL)\nconst throat = Throat(Promise)\n\nexport type Stats = fs.Stats\n\nexport type LockOp = (path: string, options?: lockfile.Options) => Promise<void>\nexport type TouchOp = (path: string, options?: Touch.Options) => Promise<void>\nexport type ReadFileOp = (path: string, encoding: string) => Promise<string>\nexport type WriteFileOp = (path: string, contents: string | Buffer) => Promise<void>\nexport type PathOp <T> = (path: string) => Promise<T>\n\nexport const touch: TouchOp = throat(10, thenify<string, Touch.Options, void>(Touch))\nexport const stat: PathOp<Stats> = throat(10, thenify(fs.stat))\nexport const readFile: ReadFileOp = throat(10, thenify<string, string, string>(fs.readFile))\nexport const writeFile: WriteFileOp = thenify<string, string | Buffer, void>(fs.writeFile)\nexport const mkdirp: PathOp<string> = throat(10, thenify<string, string>(Mkdirp))\nexport const unlink: PathOp<void> = throat(10, thenify<string, void>(fs.unlink))\nexport const lock: LockOp = throat(10, thenify<string, lockfile.Options, void>(lockfile.lock))\nexport const unlock: PathOp<void> = throat(10, thenify<string, void>(lockfile.unlock))\nexport const rimraf: PathOp<void> = throat(10, thenify<string, void>(Rimraf))\nexport const readdir: PathOp<string[]> = throat(10, thenify(fs.readdir))\nexport const rmdir: PathOp<void> = throat(10, thenify<string, void>(fs.rmdir))\n\n/**\n * Remove directories until a root directory, while empty.\n */\nexport function rmdirUntil (path: string, until: string): Promise<void> {\n if (path === until) {\n return Promise.resolve()\n }\n\n return readdir(path)\n .then(files => {\n // Exit loop when files exist.\n if (files.length) {\n return\n }\n\n return rmdir(path)\n .then(() => rmdirUntil(dirname(path), until))\n })\n .catch(err => {\n if (err.code === 'ENOENT') {\n return\n }\n\n return Promise.reject<void>(err)\n })\n}\n\n/**\n * Verify a path exists and is a file.\n */\nexport function isFile (path: string): Promise<boolean> {\n return stat(path).then(stat => stat.isFile(), () => false)\n}\n\n/**\n * Read JSON from a path.\n */\nexport function readJson (path: string, allowEmpty?: boolean): Promise<any> {\n return readFile(path, 'utf8')\n .then(stripBom)\n .then(contents => parseJson(contents, path, allowEmpty))\n}\n\n/**\n * Write JSON to a file.\n */\nexport function writeJson (path: string, json: any, indent?: string | number, eol?: string) {\n return writeFile(path, stringifyJson(json, indent, eol))\n}\n\n/**\n * Read a configuration file.\n */\nexport function readConfig (path: string): Promise<ConfigJson> {\n return readJson(path, true).then(data => parseConfig(data, path))\n}\n\n/**\n * Read a configuration file from anywhere (HTTP or local).\n */\nexport function readConfigFrom (path: string): Promise<ConfigJson> {\n return readJsonFrom(path, true).then(data => parseConfig(data, path))\n}\n\n/**\n * Parse a config object with helpful validation.\n */\nexport function parseConfig (config: ConfigJson, path: string): ConfigJson {\n // TODO(blakeembrey): Validate config object.\n return config\n}\n\n/**\n * Create a proxy agent function.\n */\nexport const proxy = createProxy({\n proxy: rc.proxy,\n httpProxy: rc.httpProxy,\n httpsProxy: rc.httpsProxy,\n noProxy: rc.noProxy\n})\n\n/**\n * Read a file over HTTP, using a file cache and status check.\n */\nexport const readHttp = throat(5, function readHttp (url: string): Promise<string> {\n const { rejectUnauthorized, ca, key, cert, userAgent } = rc\n\n return popsicle.get({\n url,\n headers: {\n 'User-Agent': template(userAgent, {\n nodeVersion: process.version,\n platform: process.platform,\n arch: process.arch,\n typingsVersion: pkg.version\n })\n },\n transport: popsicle.createTransport({\n ca,\n key,\n cert,\n agent: proxy(url),\n rejectUnauthorized\n })\n })\n // Check responses are \"200 OK\".\n .use(popsicleStatus(200))\n // Enable URL rewrite\n .use(popsicleRewrite(rc.urlRewrites || {}))\n // Enable tracking of repeat users on the registry.\n .use(function (request, next) {\n if (request.Url.host === registryURL.host) {\n if (store.get('clientId')) {\n request.set('Typings-Client-Id', store.get('clientId'))\n }\n\n return next().then(function (response) {\n if (response.get('Typings-Client-Id')) {\n store.set('clientId', response.get('Typings-Client-Id'))\n }\n\n return response\n })\n }\n\n return next()\n })\n // Enable access tokens with GitHub.\n .use(function (request, next) {\n const { hostname } = request.Url\n\n if (rc.githubToken && (hostname === 'raw.githubusercontent.com' || hostname === 'api.github.com')) {\n request.set('Authorization', `token ${rc.githubToken}`)\n }\n\n return next()\n })\n // Retry failed HTTP requests.\n .use(popsicleRetry())\n // Return only the response body.\n .then(function (response) {\n debug('http response', response.toJSON())\n\n return response.body\n })\n})\n\n/**\n * Read a file from anywhere (HTTP or local filesystem).\n */\nexport function readFileFrom (from: string): Promise<string> {\n return isHttp(from) ? readHttp(from) : readFile(from, 'utf8')\n}\n\n/**\n * Read JSON from anywhere.\n */\nexport function readJsonFrom (from: string, allowEmpty?: boolean): Promise<any> {\n return readFileFrom(from)\n .then(stripBom)\n .then(contents => parseJson(contents, from, allowEmpty))\n}\n\n/**\n * Stringify an object as JSON for the filesystem (appends EOL).\n */\nexport function stringifyJson (json: any, indent?: number | string, eol: string = EOL) {\n return normalizeEOL(JSON.stringify(json, null, indent || 2), eol) + eol\n}\n\n/**\n * Parse a string as JSON.\n */\nexport function parseJson (contents: string, path: string, allowEmpty: boolean) {\n if (contents === '' && allowEmpty) {\n return {}\n }\n\n return parse(contents, null, path)\n}\n\n/**\n * Transform a file contents (read and write in a single operation).\n */\nexport function transformFile (path: string, transform: (contents: string) => string | Promise<string>): Promise<void> {\n function handle (contents: string) {\n return Promise.resolve(transform(contents))\n .then(contents => writeFile(path, contents))\n }\n\n const lockfile = `${path}.lock`\n const lockOptions = { wait: 250, retries: 25, stale: 60000 }\n\n const result = lock(lockfile, lockOptions)\n .then(() => {\n return readFile(path, 'utf8')\n })\n .then(\n (contents) => handle(contents),\n () => handle(undefined)\n )\n\n return promiseFinally(result, () => unlock(lockfile))\n}\n\n/**\n * Transform a JSON file in a single operation.\n */\nexport function transformJson <T> (path: string, transform: (json: T) => T, allowEmpty?: boolean) {\n return transformFile(path, (contents) => {\n const indent = contents ? detectIndent(contents).indent : undefined\n const json = contents ? parseJson(stripBom(contents), path, allowEmpty) : undefined\n const eol = contents ? detectEOL(contents) : undefined\n\n return Promise.resolve(transform(json))\n .then(json => stringifyJson(json, indent, eol))\n })\n}\n\n/**\n * Transform a configuration file in a single operation.\n */\nexport function transformConfig (cwd: string, transform: (config: ConfigJson) => ConfigJson) {\n const path = join(cwd, CONFIG_FILE)\n\n return transformJson<ConfigJson>(\n path,\n (config = {}) => {\n return Promise.resolve(transform(parseConfig(config, path)))\n .then(config => {\n if (config.dependencies) {\n config.dependencies = sortKeys(config.dependencies)\n }\n\n if (config.peerDependencies) {\n config.peerDependencies = sortKeys(config.peerDependencies)\n }\n\n if (config.devDependencies) {\n config.devDependencies = sortKeys(config.devDependencies)\n }\n\n if (config.globalDependencies) {\n config.globalDependencies = sortKeys(config.globalDependencies)\n }\n\n if (config.globalDevDependencies) {\n config.globalDevDependencies = sortKeys(config.globalDevDependencies)\n }\n\n return config\n })\n },\n true\n )\n}\n\n/**\n * Transform a `.d.ts` file with references in-place.\n */\nexport function transformDtsFile (path: string, transform: (typings: string[]) => string[] | Promise<string[]>) {\n const cwd = dirname(path)\n\n return transformFile(path, contents => {\n const typings = parseReferences(contents, cwd)\n\n return Promise.resolve(transform(typings))\n .then(typings => stringifyReferences(uniq(typings).sort(), cwd))\n })\n}\n\n/**\n * Convert the dependency tree into a JSON-safe structure.\n */\nexport function treeToJson (tree: DependencyTree) {\n return extend(tree, {\n parent: undefined,\n dependencies: dependenciesToJson(tree.dependencies),\n devDependencies: dependenciesToJson(tree.devDependencies),\n peerDependencies: dependenciesToJson(tree.peerDependencies),\n globalDependencies: dependenciesToJson(tree.globalDependencies),\n globalDevDependencies: dependenciesToJson(tree.globalDevDependencies)\n })\n}\n\n/**\n * Convert a map of dependencies to JSON-safe structures.\n */\nexport function dependenciesToJson (dependencies: DependencyBranch) {\n const json: DependencyBranch = {}\n const keys = Object.keys(dependencies)\n\n // Omit empty dependency objects.\n if (keys.length === 0) {\n return\n }\n\n for (const key of keys) {\n json[key] = treeToJson(dependencies[key])\n }\n\n return json\n}\n"]} | ||
| {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fs from 'graceful-fs'\nimport extend = require('xtend')\nimport thenify = require('thenify')\nimport stripBom = require('strip-bom')\nimport parse = require('parse-json')\nimport popsicle = require('popsicle')\nimport popsicleStatus = require('popsicle-status')\nimport popsicleRetry = require('popsicle-retry')\nimport popsicleRewrite = require('popsicle-rewrite')\nimport detectIndent = require('detect-indent')\nimport sortKeys = require('sort-keys')\nimport Mkdirp = require('mkdirp')\nimport uniq = require('array-uniq')\nimport lockfile = require('lockfile')\nimport Rimraf = require('rimraf')\nimport createProxy = require('popsicle-proxy-agent')\nimport Throat = require('throat')\nimport promiseFinally from 'promise-finally'\nimport Touch = require('touch')\nimport { join, dirname } from 'path'\nimport { parse as parseUrl } from 'url'\nimport template = require('string-template')\nimport { CONFIG_FILE } from './config'\nimport { isHttp, EOL, detectEOL, normalizeEOL } from './path'\nimport { parseReferences, stringifyReferences } from './references'\nimport { ConfigJson, DependencyTree, DependencyBranch } from '../interfaces'\nimport rc from './rc'\nimport store from './store'\nimport debug from './debug'\n\nconst pkg = require('../../package.json')\nconst registryURL = parseUrl(rc.registryURL)\nconst throat = Throat(Promise)\n\nexport type Stats = fs.Stats\n\nexport type LockOp = (path: string, options?: lockfile.Options) => Promise<void>\nexport type TouchOp = (path: string, options?: Touch.Options) => Promise<void>\nexport type ReadFileOp = (path: string, encoding: string) => Promise<string>\nexport type WriteFileOp = (path: string, contents: string | Buffer) => Promise<void>\nexport type PathOp <T> = (path: string) => Promise<T>\n\nexport const touch: TouchOp = throat(10, thenify<string, Touch.Options, void>(Touch))\nexport const stat: PathOp<Stats> = throat(10, thenify(fs.stat))\nexport const readFile: ReadFileOp = throat(10, thenify<string, string, string>(fs.readFile))\nexport const writeFile: WriteFileOp = thenify<string, string | Buffer, void>(fs.writeFile)\nexport const mkdirp: PathOp<string> = throat(10, thenify<string, string>(Mkdirp))\nexport const unlink: PathOp<void> = throat(10, thenify<string, void>(fs.unlink))\nexport const lock: LockOp = throat(10, thenify<string, lockfile.Options, void>(lockfile.lock))\nexport const unlock: PathOp<void> = throat(10, thenify<string, void>(lockfile.unlock))\nexport const rimraf: PathOp<void> = throat(10, thenify<string, void>(Rimraf))\nexport const readdir: PathOp<string[]> = throat(10, thenify(fs.readdir))\nexport const rmdir: PathOp<void> = throat(10, thenify<string, void>(fs.rmdir))\n\n/**\n * Remove directories until a root directory, while empty.\n */\nexport function rmdirUntil (path: string, until: string): Promise<void> {\n if (path === until) {\n return Promise.resolve()\n }\n\n return readdir(path)\n .then(files => {\n // Exit loop when files exist.\n if (files.length) {\n return\n }\n\n return rmdir(path)\n .then(() => rmdirUntil(dirname(path), until))\n })\n .catch(err => {\n if (err.code === 'ENOENT') {\n return\n }\n\n return Promise.reject<void>(err)\n })\n}\n\n/**\n * Verify a path exists and is a file.\n */\nexport function isFile (path: string): Promise<boolean> {\n return stat(path).then(stat => stat.isFile(), () => false)\n}\n\n/**\n * Read JSON from a path.\n */\nexport function readJson (path: string, allowEmpty?: boolean): Promise<any> {\n return readFile(path, 'utf8')\n .then(stripBom)\n .then(contents => parseJson(contents, path, allowEmpty))\n}\n\n/**\n * Write JSON to a file.\n */\nexport function writeJson (path: string, json: any, indent?: string | number, eol?: string) {\n return writeFile(path, stringifyJson(json, indent, eol))\n}\n\n/**\n * Read a configuration file.\n */\nexport function readConfig (path: string): Promise<ConfigJson> {\n return readJson(path, true).then(data => parseConfig(data, path))\n}\n\n/**\n * Read a configuration file from anywhere (HTTP or local).\n */\nexport function readConfigFrom (path: string): Promise<ConfigJson> {\n return readJsonFrom(path, true).then(data => parseConfig(data, path))\n}\n\n/**\n * Parse a config object with helpful validation.\n */\nexport function parseConfig (config: ConfigJson, path: string): ConfigJson {\n // TODO(blakeembrey): Validate config object.\n return config\n}\n\n/**\n * Create a proxy agent function.\n */\nexport const proxy = createProxy({\n proxy: rc.proxy,\n httpProxy: rc.httpProxy,\n httpsProxy: rc.httpsProxy,\n noProxy: rc.noProxy\n})\n\n/**\n * Read a file over HTTP, using a file cache and status check.\n */\nexport const readHttp = throat(5, function readHttp (url: string): Promise<string> {\n const { rejectUnauthorized, ca, key, cert, userAgent } = rc\n\n return popsicle.get({\n url,\n headers: {\n 'User-Agent': template(userAgent, {\n nodeVersion: process.version,\n platform: process.platform,\n arch: process.arch,\n typingsVersion: pkg.version\n })\n },\n transport: popsicle.createTransport({\n ca,\n key,\n cert,\n agent: proxy(url),\n rejectUnauthorized\n })\n })\n // Check responses are \"200 OK\".\n .use(popsicleStatus(200))\n // Enable URL rewrite\n .use(popsicleRewrite(rc.urlRewrites || {}))\n // Enable tracking of repeat users on the registry.\n .use(function (request, next) {\n if (request.Url.host === registryURL.host) {\n if (store.get('clientId')) {\n request.set('Typings-Client-Id', store.get('clientId'))\n }\n\n return next().then(function (response) {\n if (response.get('Typings-Client-Id')) {\n store.set('clientId', response.get('Typings-Client-Id'))\n }\n\n return response\n })\n }\n\n return next()\n })\n // Enable access tokens with GitHub.\n .use(function (request, next) {\n const { hostname } = request.Url\n\n if (rc.githubToken && (hostname === 'raw.githubusercontent.com' || hostname === 'api.github.com')) {\n request.set('Authorization', `token ${rc.githubToken}`)\n }\n\n return next()\n })\n // Retry failed HTTP requests.\n .use(popsicleRetry())\n // Return only the response body.\n .then(function (response) {\n debug('http response', response.toJSON())\n\n return response.body\n })\n})\n\n/**\n * Read a file from anywhere (HTTP or local filesystem).\n */\nexport function readFileFrom (from: string): Promise<string> {\n return isHttp(from) ? readHttp(from) : readFile(from, 'utf8')\n}\n\n/**\n * Read JSON from anywhere.\n */\nexport function readJsonFrom (from: string, allowEmpty?: boolean): Promise<any> {\n return readFileFrom(from)\n .then(stripBom)\n .then(contents => parseJson(contents, from, allowEmpty))\n}\n\n/**\n * Stringify an object as JSON for the filesystem (appends EOL).\n */\nexport function stringifyJson (json: any, indent?: number | string, eol: string = EOL) {\n return normalizeEOL(JSON.stringify(json, null, indent || 2), eol) + eol\n}\n\n/**\n * Parse a string as JSON.\n */\nexport function parseJson (contents: string, path: string, allowEmpty: boolean) {\n if (contents === '' && allowEmpty) {\n return {}\n }\n\n return parse(contents, null, path)\n}\n\n/**\n * Transform a file contents (read and write in a single operation).\n */\nexport function transformFile (path: string, transform: (contents: string) => string | Promise<string>): Promise<void> {\n function handle (contents: string) {\n return Promise.resolve(transform(contents))\n .then(contents => writeFile(path, contents))\n }\n\n const lockfile = `${path}.lock`\n const lockOptions = { wait: 250, retries: 25, stale: 60000 }\n\n const result = lock(lockfile, lockOptions)\n .then(() => {\n return readFile(path, 'utf8')\n })\n .then(\n (contents) => handle(contents),\n () => handle(undefined)\n )\n\n return promiseFinally(result, () => unlock(lockfile))\n}\n\n/**\n * Transform a JSON file in a single operation.\n */\nexport function transformJson <T> (path: string, transform: (json: T) => T, allowEmpty?: boolean) {\n return transformFile(path, (contents) => {\n const indent = contents ? detectIndent(contents).indent : undefined\n const json = contents ? parseJson(stripBom(contents), path, allowEmpty) : undefined\n const eol = contents ? detectEOL(contents) : undefined\n\n return Promise.resolve(transform(json))\n .then(json => stringifyJson(json, indent, eol))\n })\n}\n\n/**\n * Transform a configuration file in a single operation.\n */\nexport function transformConfig (cwd: string, transform: (config: ConfigJson) => ConfigJson) {\n const path = join(cwd, CONFIG_FILE)\n\n return transformJson<ConfigJson>(\n path,\n (config = {}) => {\n return Promise.resolve(transform(parseConfig(config, path)))\n .then(config => {\n if (config.dependencies) {\n config.dependencies = sortKeys(config.dependencies)\n }\n\n if (config.peerDependencies) {\n config.peerDependencies = sortKeys(config.peerDependencies)\n }\n\n if (config.devDependencies) {\n config.devDependencies = sortKeys(config.devDependencies)\n }\n\n if (config.globalDependencies) {\n config.globalDependencies = sortKeys(config.globalDependencies)\n }\n\n if (config.globalDevDependencies) {\n config.globalDevDependencies = sortKeys(config.globalDevDependencies)\n }\n\n return config\n })\n },\n true\n )\n}\n\n/**\n * Transform a `.d.ts` file with references in-place.\n */\nexport function transformDtsFile (path: string, transform: (typings: string[]) => string[] | Promise<string[]>) {\n const cwd = dirname(path)\n\n return transformFile(path, contents => {\n const typings = parseReferences(contents, cwd)\n\n return Promise.resolve(transform(typings))\n .then(typings => stringifyReferences(uniq(typings).sort(), cwd))\n })\n}\n\n/**\n * Convert the dependency tree into a JSON-safe structure.\n */\nexport function treeToJson (tree: DependencyTree) {\n return extend(tree, {\n parent: undefined,\n dependencies: dependenciesToJson(tree.dependencies),\n devDependencies: dependenciesToJson(tree.devDependencies),\n peerDependencies: dependenciesToJson(tree.peerDependencies),\n globalDependencies: dependenciesToJson(tree.globalDependencies),\n globalDevDependencies: dependenciesToJson(tree.globalDevDependencies)\n })\n}\n\n/**\n * Convert a map of dependencies to JSON-safe structures.\n */\nexport function dependenciesToJson (dependencies: DependencyBranch) {\n const json: DependencyBranch = {}\n const keys = Object.keys(dependencies)\n\n // Omit empty dependency objects.\n if (keys.length === 0) {\n return\n }\n\n for (const key of keys) {\n json[key] = treeToJson(dependencies[key])\n }\n\n return json\n}\n"]} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var invariant = require("invariant"); | ||
@@ -3,0 +4,0 @@ var url_1 = require("url"); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/utils/parse.ts"],"names":[],"mappings":"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","sourcesContent":["import invariant = require('invariant')\nimport { resolve as resolveUrl } from 'url'\nimport { normalize, join, basename, dirname } from 'path'\nimport { Dependency, DependencyMeta } from '../interfaces'\nimport { CONFIG_FILE } from './config'\nimport { isDefinition, normalizeSlashes, pathFromDefinition, joinUrl } from './path'\nimport rc from './rc'\n\n/**\n * Parse the git host options from the raw string.\n */\nfunction gitFromPath (src: string) {\n const index = src.indexOf('#')\n const sha = index === -1 ? 'master' : src.substr(index + 1)\n const segments = index === -1 ? src.split('/') : src.substr(0, index).split('/')\n const org = segments.shift()\n const repo = segments.shift()\n let path = segments.join('/')\n let name: string\n\n // Automatically look for the config file in the root.\n if (segments.length === 0) {\n path = CONFIG_FILE\n } else if (isDefinition(path)) {\n name = basename(pathFromDefinition(path))\n } else if (segments[segments.length - 1] !== CONFIG_FILE) {\n path += `/${CONFIG_FILE}`\n }\n\n return { org, repo, path, sha, name }\n}\n\n/**\n * Split the protocol from the rest of the string.\n */\nfunction splitProtocol (raw: string): [string, string] {\n const index = raw.indexOf(':')\n\n if (index === -1) {\n return [undefined, raw]\n }\n\n return [raw.substr(0, index), normalizeSlashes(raw.substr(index + 1))]\n}\n\n/**\n * Parse the dependency string.\n */\nexport function parseDependency (raw: string): Dependency {\n const [type, src] = splitProtocol(raw)\n\n // `file:path/to/file.d.ts`\n if (type === 'file') {\n const location = normalize(src)\n const filename = basename(location)\n const name = isDefinition(filename) ? pathFromDefinition(filename) : undefined\n\n invariant(\n filename === CONFIG_FILE || isDefinition(filename),\n `Only \".d.ts\" and \"${CONFIG_FILE}\" files are supported`\n )\n\n return {\n raw,\n type,\n meta: {\n name: name,\n path: location\n },\n location\n }\n }\n\n // `bitbucket:org/repo/path#sha`\n if (type === 'github') {\n const meta = gitFromPath(src)\n const { org, repo, path, sha } = meta\n const location = `https://raw.githubusercontent.com/${org}/${repo}/${sha}/${path}`\n\n return {\n raw,\n meta,\n type,\n location\n }\n }\n\n // `bitbucket:org/repo/path#sha`\n if (type === 'bitbucket') {\n const meta = gitFromPath(src)\n const { org, repo, path, sha } = meta\n const location = `https://bitbucket.org/${org}/${repo}/raw/${sha}/${path}`\n\n return {\n raw,\n meta,\n type,\n location\n }\n }\n\n // `jspm:dependency`\n if (type === 'jspm') {\n return {\n raw,\n type: 'jspm',\n location: src,\n meta: {\n name: src\n }\n }\n }\n\n // `npm:dependency`, `npm:@scoped/dependency`\n if (type === 'npm') {\n const parts = src.split('/')\n const isScoped = parts.length > 0 && parts[0].charAt(0) === '@'\n const hasPath = isScoped ? parts.length > 2 : parts.length > 1\n\n if (!hasPath) {\n parts.push('package.json')\n }\n\n return {\n raw,\n type: 'npm',\n meta: {\n name: isScoped ? parts.slice(0, 2).join('/') : parts[0],\n path: join(...parts.slice(isScoped ? 2 : 1))\n },\n location: join(...parts)\n }\n }\n\n // `bower:dependency`\n if (type === 'bower') {\n const parts = src.split('/')\n\n if (parts.length === 1) {\n parts.push('bower.json')\n }\n\n return {\n raw,\n type: 'bower',\n meta: {\n name: parts[0],\n path: join(...parts.slice(1))\n },\n location: join(...parts)\n }\n }\n\n // `http://example.com/foo.d.ts`\n if (type === 'http' || type === 'https') {\n return {\n raw,\n type,\n meta: {},\n location: raw\n }\n }\n\n // `registry:source/module#tag`, `registry:source/module@version`\n if (type === 'registry') {\n const parts = /^([^\\/]+)\\/(.+?)(?:@(.*?)|#(.*?))?$/.exec(src)\n\n if (parts == null) {\n throw new TypeError(`Unable to parse: ${raw}`)\n }\n\n const [, source, name, version, tag] = parts\n\n if (version != null && tag != null) {\n throw new TypeError(`Unable to use tag and version together: ${raw}`)\n }\n\n let path = `entries/${encodeURIComponent(source)}/${encodeURIComponent(name)}`\n\n // Select the best API to get the registry version.\n if (tag) {\n path += `/tags/${encodeURIComponent(tag)}`\n } else if (version) {\n path += `/versions/${encodeURIComponent(version)}/latest`\n } else {\n path += '/versions/latest'\n }\n\n return {\n raw,\n type,\n meta: {\n source,\n name,\n version,\n tag\n },\n location: joinUrl(rc.registryURL, path)\n }\n }\n\n throw new TypeError(`Unknown dependency: ${raw}`)\n}\n\n/**\n * Resolve a path relative to the raw string.\n */\nexport function resolveDependency (raw: string, filename: string) {\n const { type, meta, location } = parseDependency(raw)\n\n if (type === 'http' || type === 'https') {\n return resolveUrl(location, filename)\n }\n\n if (type === 'github' || type === 'bitbucket') {\n const { org, repo, sha } = meta\n const path = join(dirname(meta.path), filename)\n\n return buildDependencyExpression(type, { org, repo, sha, path })\n }\n\n if (type === 'npm' || type === 'bower') {\n const { name } = meta\n const path = join(dirname(meta.path), filename)\n\n return buildDependencyExpression(type, { name, path })\n }\n\n if (type === 'file') {\n const path = join(location, filename)\n\n return buildDependencyExpression(type, { path })\n }\n\n throw new TypeError(`Unable to resolve dependency from \"${raw}\"`)\n}\n\n/**\n * Options to use when parsing a dependency string.\n */\nexport interface ParseDependencyOptions {\n name?: string\n source?: string\n}\n\n/**\n * Parse and expand the CLI dependency expression.\n */\nexport function parseDependencyExpression (raw: string, options?: ParseDependencyOptions) {\n const [, name, scheme, registry] = /^(?:([^=!:#]+)=)?(?:([\\w]+\\:.+)|((?:[\\w]+\\~)?.+))$/.exec(raw)\n\n return {\n name: name || options.name,\n location: scheme || expandRegistry(registry, options)\n }\n}\n\n/**\n * Build a dependency expression from metadata.\n */\nexport function buildDependencyExpression (type: string, meta: DependencyMeta): string {\n if (type === 'github' || type === 'bitbucket') {\n const { org, repo, sha } = meta\n const resolvedPath = normalizeSlashes(meta.path)\n\n return `${type}:${org}/${repo}/${resolvedPath}${sha === 'master' ? '' : '#' + sha}`\n }\n\n if (type === 'npm' || type === 'bower') {\n const { path } = meta\n const resolvedPath = path ? `/${normalizeSlashes(path)}` : ''\n\n return `${type}:${meta.name}${resolvedPath}`\n }\n\n if (type === 'file') {\n return `file:${normalizeSlashes(meta.path)}`\n }\n\n throw new TypeError(`Unable to expand dependency type: \"${type}\"`)\n}\n\n/**\n * Parse the registry dependency string.\n */\nexport function expandRegistry (raw: string, options: ParseDependencyOptions = {}) {\n if (typeof raw !== 'string') {\n throw new TypeError(`Expected registry name to be a string, not ${typeof raw}`)\n }\n\n const indexOf = raw.indexOf('~')\n let source = options.source || rc.defaultSource\n let name: string\n\n if (indexOf === -1) {\n name = raw\n } else {\n source = raw.substr(0, indexOf)\n name = raw.substr(indexOf + 1)\n }\n\n return `registry:${source}/${name}`\n}\n"]} | ||
| {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/utils/parse.ts"],"names":[],"mappings":"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","sourcesContent":["import invariant = require('invariant')\nimport { resolve as resolveUrl } from 'url'\nimport { normalize, join, basename, dirname } from 'path'\nimport { Dependency, DependencyMeta } from '../interfaces'\nimport { CONFIG_FILE } from './config'\nimport { isDefinition, normalizeSlashes, pathFromDefinition, joinUrl } from './path'\nimport rc from './rc'\n\n/**\n * Parse the git host options from the raw string.\n */\nfunction gitFromPath (src: string) {\n const index = src.indexOf('#')\n const sha = index === -1 ? 'master' : src.substr(index + 1)\n const segments = index === -1 ? src.split('/') : src.substr(0, index).split('/')\n const org = segments.shift()\n const repo = segments.shift()\n let path = segments.join('/')\n let name: string\n\n // Automatically look for the config file in the root.\n if (segments.length === 0) {\n path = CONFIG_FILE\n } else if (isDefinition(path)) {\n name = basename(pathFromDefinition(path))\n } else if (segments[segments.length - 1] !== CONFIG_FILE) {\n path += `/${CONFIG_FILE}`\n }\n\n return { org, repo, path, sha, name }\n}\n\n/**\n * Split the protocol from the rest of the string.\n */\nfunction splitProtocol (raw: string): [string, string] {\n const index = raw.indexOf(':')\n\n if (index === -1) {\n return [undefined, raw]\n }\n\n return [raw.substr(0, index), normalizeSlashes(raw.substr(index + 1))]\n}\n\n/**\n * Parse the dependency string.\n */\nexport function parseDependency (raw: string): Dependency {\n const [type, src] = splitProtocol(raw)\n\n // `file:path/to/file.d.ts`\n if (type === 'file') {\n const location = normalize(src)\n const filename = basename(location)\n const name = isDefinition(filename) ? pathFromDefinition(filename) : undefined\n\n invariant(\n filename === CONFIG_FILE || isDefinition(filename),\n `Only \".d.ts\" and \"${CONFIG_FILE}\" files are supported`\n )\n\n return {\n raw,\n type,\n meta: {\n name: name,\n path: location\n },\n location\n }\n }\n\n // `bitbucket:org/repo/path#sha`\n if (type === 'github') {\n const meta = gitFromPath(src)\n const { org, repo, path, sha } = meta\n const location = `https://raw.githubusercontent.com/${org}/${repo}/${sha}/${path}`\n\n return {\n raw,\n meta,\n type,\n location\n }\n }\n\n // `bitbucket:org/repo/path#sha`\n if (type === 'bitbucket') {\n const meta = gitFromPath(src)\n const { org, repo, path, sha } = meta\n const location = `https://bitbucket.org/${org}/${repo}/raw/${sha}/${path}`\n\n return {\n raw,\n meta,\n type,\n location\n }\n }\n\n // `jspm:dependency`\n if (type === 'jspm') {\n return {\n raw,\n type: 'jspm',\n location: src,\n meta: {\n name: src\n }\n }\n }\n\n // `npm:dependency`, `npm:@scoped/dependency`\n if (type === 'npm') {\n const parts = src.split('/')\n const isScoped = parts.length > 0 && parts[0].charAt(0) === '@'\n const hasPath = isScoped ? parts.length > 2 : parts.length > 1\n\n if (!hasPath) {\n parts.push('package.json')\n }\n\n return {\n raw,\n type: 'npm',\n meta: {\n name: isScoped ? parts.slice(0, 2).join('/') : parts[0],\n path: join(...parts.slice(isScoped ? 2 : 1))\n },\n location: join(...parts)\n }\n }\n\n // `bower:dependency`\n if (type === 'bower') {\n const parts = src.split('/')\n\n if (parts.length === 1) {\n parts.push('bower.json')\n }\n\n return {\n raw,\n type: 'bower',\n meta: {\n name: parts[0],\n path: join(...parts.slice(1))\n },\n location: join(...parts)\n }\n }\n\n // `http://example.com/foo.d.ts`\n if (type === 'http' || type === 'https') {\n return {\n raw,\n type,\n meta: {},\n location: raw\n }\n }\n\n // `registry:source/module#tag`, `registry:source/module@version`\n if (type === 'registry') {\n const parts = /^([^\\/]+)\\/(.+?)(?:@(.*?)|#(.*?))?$/.exec(src)\n\n if (parts == null) {\n throw new TypeError(`Unable to parse: ${raw}`)\n }\n\n const [, source, name, version, tag] = parts\n\n if (version != null && tag != null) {\n throw new TypeError(`Unable to use tag and version together: ${raw}`)\n }\n\n let path = `entries/${encodeURIComponent(source)}/${encodeURIComponent(name)}`\n\n // Select the best API to get the registry version.\n if (tag) {\n path += `/tags/${encodeURIComponent(tag)}`\n } else if (version) {\n path += `/versions/${encodeURIComponent(version)}/latest`\n } else {\n path += '/versions/latest'\n }\n\n return {\n raw,\n type,\n meta: {\n source,\n name,\n version,\n tag\n },\n location: joinUrl(rc.registryURL, path)\n }\n }\n\n throw new TypeError(`Unknown dependency: ${raw}`)\n}\n\n/**\n * Resolve a path relative to the raw string.\n */\nexport function resolveDependency (raw: string, filename: string) {\n const { type, meta, location } = parseDependency(raw)\n\n if (type === 'http' || type === 'https') {\n return resolveUrl(location, filename)\n }\n\n if (type === 'github' || type === 'bitbucket') {\n const { org, repo, sha } = meta\n const path = join(dirname(meta.path), filename)\n\n return buildDependencyExpression(type, { org, repo, sha, path })\n }\n\n if (type === 'npm' || type === 'bower') {\n const { name } = meta\n const path = join(dirname(meta.path), filename)\n\n return buildDependencyExpression(type, { name, path })\n }\n\n if (type === 'file') {\n const path = join(location, filename)\n\n return buildDependencyExpression(type, { path })\n }\n\n throw new TypeError(`Unable to resolve dependency from \"${raw}\"`)\n}\n\n/**\n * Options to use when parsing a dependency string.\n */\nexport interface ParseDependencyOptions {\n name?: string\n source?: string\n}\n\n/**\n * Parse and expand the CLI dependency expression.\n */\nexport function parseDependencyExpression (raw: string, options?: ParseDependencyOptions) {\n const [, name, scheme, registry] = /^(?:([^=!:#]+)=)?(?:([\\w]+\\:.+)|((?:[\\w]+\\~)?.+))$/.exec(raw)\n\n return {\n name: name || options.name,\n location: scheme || expandRegistry(registry, options)\n }\n}\n\n/**\n * Build a dependency expression from metadata.\n */\nexport function buildDependencyExpression (type: string, meta: DependencyMeta): string {\n if (type === 'github' || type === 'bitbucket') {\n const { org, repo, sha } = meta\n const resolvedPath = normalizeSlashes(meta.path)\n\n return `${type}:${org}/${repo}/${resolvedPath}${sha === 'master' ? '' : '#' + sha}`\n }\n\n if (type === 'npm' || type === 'bower') {\n const { path } = meta\n const resolvedPath = path ? `/${normalizeSlashes(path)}` : ''\n\n return `${type}:${meta.name}${resolvedPath}`\n }\n\n if (type === 'file') {\n return `file:${normalizeSlashes(meta.path)}`\n }\n\n throw new TypeError(`Unable to expand dependency type: \"${type}\"`)\n}\n\n/**\n * Parse the registry dependency string.\n */\nexport function expandRegistry (raw: string, options: ParseDependencyOptions = {}) {\n if (typeof raw !== 'string') {\n throw new TypeError(`Expected registry name to be a string, not ${typeof raw}`)\n }\n\n const indexOf = raw.indexOf('~')\n let source = options.source || rc.defaultSource\n let name: string\n\n if (indexOf === -1) {\n name = raw\n } else {\n source = raw.substr(0, indexOf)\n name = raw.substr(indexOf + 1)\n }\n\n return `registry:${source}/${name}`\n}\n"]} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var test = require("blue-tape"); | ||
@@ -3,0 +4,0 @@ var path_1 = require("path"); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"parse.spec.js","sourceRoot":"","sources":["../../src/utils/parse.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import test = require('blue-tape')\nimport { normalize } from 'path'\nimport { parseDependency, resolveDependency, expandRegistry } from './parse'\nimport { CONFIG_FILE } from './config'\nimport { Dependency } from '../interfaces'\n\ntest('parse', t => {\n t.test('parse dependency', t => {\n t.test('parse filename', t => {\n const actual = parseDependency('file:./foo/bar.d.ts')\n const expected: Dependency = {\n raw: 'file:./foo/bar.d.ts',\n location: normalize('foo/bar.d.ts'),\n meta: {\n name: 'bar',\n path: normalize('foo/bar.d.ts')\n },\n type: 'file'\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse filename relative', t => {\n const actual = parseDependency('file:foo/bar.d.ts')\n const expected: Dependency = {\n raw: 'file:foo/bar.d.ts',\n location: normalize('foo/bar.d.ts'),\n meta: {\n name: 'bar',\n path: normalize('foo/bar.d.ts')\n },\n type: 'file'\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse npm', t => {\n const actual = parseDependency('npm:foobar')\n const expected: Dependency = {\n raw: 'npm:foobar',\n type: 'npm',\n meta: {\n name: 'foobar',\n path: 'package.json'\n },\n location: normalize('foobar/package.json')\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse scoped npm packages', t => {\n const actual = parseDependency('npm:@foo/bar')\n const expected: Dependency = {\n raw: 'npm:@foo/bar',\n type: 'npm',\n meta: {\n name: '@foo/bar',\n path: 'package.json'\n },\n location: normalize('@foo/bar/package.json')\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse npm filename', t => {\n const actual = parseDependency('npm:typescript/bin/lib.es6.d.ts')\n const expected: Dependency = {\n raw: 'npm:typescript/bin/lib.es6.d.ts',\n type: 'npm',\n meta: {\n name: 'typescript',\n path: normalize('bin/lib.es6.d.ts')\n },\n location: normalize('typescript/bin/lib.es6.d.ts')\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse bower', t => {\n const actual = parseDependency('bower:foobar')\n const expected: Dependency = {\n raw: 'bower:foobar',\n type: 'bower',\n meta: {\n name: 'foobar',\n path: 'bower.json'\n },\n location: normalize('foobar/bower.json')\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse bower filename', t => {\n const actual = parseDependency('bower:foobar/' + CONFIG_FILE)\n const expected: Dependency = {\n raw: 'bower:foobar/' + CONFIG_FILE,\n type: 'bower',\n meta: {\n name: 'foobar',\n path: CONFIG_FILE\n },\n location: normalize('foobar/' + CONFIG_FILE)\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse github', t => {\n const actual = parseDependency('github:foo/bar')\n const expected: Dependency = {\n raw: 'github:foo/bar',\n type: 'github',\n meta: {\n name: undefined,\n org: 'foo',\n path: CONFIG_FILE,\n repo: 'bar',\n sha: 'master'\n },\n location: 'https://raw.githubusercontent.com/foo/bar/master/' + CONFIG_FILE\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse github with sha and append config file', t => {\n const actual = parseDependency('github:foo/bar#test')\n const expected: Dependency = {\n raw: 'github:foo/bar#test',\n type: 'github',\n meta: {\n name: undefined,\n org: 'foo',\n path: CONFIG_FILE,\n repo: 'bar',\n sha: 'test'\n },\n location: 'https://raw.githubusercontent.com/foo/bar/test/' + CONFIG_FILE\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse github paths to `.d.ts` files', t => {\n const actual = parseDependency('github:foo/bar/typings/file.d.ts')\n const expected: Dependency = {\n raw: 'github:foo/bar/typings/file.d.ts',\n type: 'github',\n meta: {\n name: 'file',\n org: 'foo',\n path: 'typings/file.d.ts',\n repo: 'bar',\n sha: 'master'\n },\n location: 'https://raw.githubusercontent.com/foo/bar/master/typings/file.d.ts'\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse github paths to config file', t => {\n const actual = parseDependency('github:foo/bar/src/' + CONFIG_FILE)\n const expected: Dependency = {\n raw: 'github:foo/bar/src/' + CONFIG_FILE,\n type: 'github',\n meta: {\n name: undefined,\n org: 'foo',\n path: `src/${CONFIG_FILE}`,\n repo: 'bar',\n sha: 'master'\n },\n location: 'https://raw.githubusercontent.com/foo/bar/master/src/' + CONFIG_FILE\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse bitbucket', t => {\n const actual = parseDependency('bitbucket:foo/bar')\n const expected: Dependency = {\n raw: 'bitbucket:foo/bar',\n type: 'bitbucket',\n meta: {\n name: undefined,\n org: 'foo',\n path: CONFIG_FILE,\n repo: 'bar',\n sha: 'master'\n },\n location: 'https://bitbucket.org/foo/bar/raw/master/' + CONFIG_FILE\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse bitbucket and append config file to path', t => {\n const actual = parseDependency('bitbucket:foo/bar/dir')\n const expected: Dependency = {\n raw: 'bitbucket:foo/bar/dir',\n type: 'bitbucket',\n meta: {\n name: undefined,\n org: 'foo',\n path: `dir/${CONFIG_FILE}`,\n repo: 'bar',\n sha: 'master'\n },\n location: 'https://bitbucket.org/foo/bar/raw/master/dir/' + CONFIG_FILE\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse bitbucket with sha', t => {\n const actual = parseDependency('bitbucket:foo/bar#abc')\n const expected: Dependency = {\n raw: 'bitbucket:foo/bar#abc',\n type: 'bitbucket',\n meta: {\n name: undefined,\n org: 'foo',\n path: CONFIG_FILE,\n repo: 'bar',\n sha: 'abc'\n },\n location: 'https://bitbucket.org/foo/bar/raw/abc/' + CONFIG_FILE\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse url', t => {\n const actual = parseDependency('http://example.com/foo/' + CONFIG_FILE)\n const expected: Dependency = {\n raw: 'http://example.com/foo/' + CONFIG_FILE,\n type: 'http',\n meta: {},\n location: 'http://example.com/foo/' + CONFIG_FILE\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse registry', t => {\n const actual = parseDependency('registry:dt/node')\n const expected: Dependency = {\n raw: 'registry:dt/node',\n type: 'registry',\n meta: { name: 'node', source: 'dt', tag: undefined as string, version: undefined as string },\n location: 'https://api.typings.org/entries/dt/node/versions/latest'\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse registry with scoped package', t => {\n const actual = parseDependency('registry:npm/@scoped/npm')\n const expected: Dependency = {\n raw: 'registry:npm/@scoped/npm',\n type: 'registry',\n meta: { name: '@scoped/npm', source: 'npm', tag: undefined as string, version: undefined as string },\n location: 'https://api.typings.org/entries/npm/%40scoped%2Fnpm/versions/latest'\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse registry with tag', t => {\n const actual = parseDependency('registry:npm/dep#3.0.0-2016')\n const expected: Dependency = {\n raw: 'registry:npm/dep#3.0.0-2016',\n type: 'registry',\n meta: { name: 'dep', source: 'npm', tag: '3.0.0-2016', version: undefined as string },\n location: 'https://api.typings.org/entries/npm/dep/tags/3.0.0-2016'\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse registry with version', t => {\n const actual = parseDependency('registry:npm/dep@^4.0')\n const expected: Dependency = {\n raw: 'registry:npm/dep@^4.0',\n type: 'registry',\n meta: { name: 'dep', source: 'npm', tag: undefined as string, version: '^4.0' },\n location: 'https://api.typings.org/entries/npm/dep/versions/%5E4.0/latest'\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse jspm', t => {\n const actual = parseDependency('jspm:domready')\n const expected: Dependency = {\n raw: 'jspm:domready',\n type: 'jspm',\n location: 'domready',\n meta: {\n name: 'domready'\n }\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('expand registry with default source', t => {\n const actual = expandRegistry('domready')\n const expected = 'registry:npm/domready'\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('expand registry with provided source', t => {\n const actual = expandRegistry('env~atom')\n const expected = 'registry:env/atom'\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('unknown scheme', t => {\n t.throws(() => parseDependency('random:fake/dep'), /Unknown dependency: /)\n t.end()\n })\n })\n\n t.test('resolve dependency', t => {\n t.equal(resolveDependency('github:foo/bar/baz/x.d.ts', '../lib/test.d.ts'), 'github:foo/bar/lib/test.d.ts')\n t.equal(resolveDependency('http://example.com/foo/bar.d.ts', 'x.d.ts'), 'http://example.com/foo/x.d.ts')\n\n t.end()\n })\n})\n"]} | ||
| {"version":3,"file":"parse.spec.js","sourceRoot":"","sources":["../../src/utils/parse.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import test = require('blue-tape')\nimport { normalize } from 'path'\nimport { parseDependency, resolveDependency, expandRegistry } from './parse'\nimport { CONFIG_FILE } from './config'\nimport { Dependency } from '../interfaces'\n\ntest('parse', t => {\n t.test('parse dependency', t => {\n t.test('parse filename', t => {\n const actual = parseDependency('file:./foo/bar.d.ts')\n const expected: Dependency = {\n raw: 'file:./foo/bar.d.ts',\n location: normalize('foo/bar.d.ts'),\n meta: {\n name: 'bar',\n path: normalize('foo/bar.d.ts')\n },\n type: 'file'\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse filename relative', t => {\n const actual = parseDependency('file:foo/bar.d.ts')\n const expected: Dependency = {\n raw: 'file:foo/bar.d.ts',\n location: normalize('foo/bar.d.ts'),\n meta: {\n name: 'bar',\n path: normalize('foo/bar.d.ts')\n },\n type: 'file'\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse npm', t => {\n const actual = parseDependency('npm:foobar')\n const expected: Dependency = {\n raw: 'npm:foobar',\n type: 'npm',\n meta: {\n name: 'foobar',\n path: 'package.json'\n },\n location: normalize('foobar/package.json')\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse scoped npm packages', t => {\n const actual = parseDependency('npm:@foo/bar')\n const expected: Dependency = {\n raw: 'npm:@foo/bar',\n type: 'npm',\n meta: {\n name: '@foo/bar',\n path: 'package.json'\n },\n location: normalize('@foo/bar/package.json')\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse npm filename', t => {\n const actual = parseDependency('npm:typescript/bin/lib.es6.d.ts')\n const expected: Dependency = {\n raw: 'npm:typescript/bin/lib.es6.d.ts',\n type: 'npm',\n meta: {\n name: 'typescript',\n path: normalize('bin/lib.es6.d.ts')\n },\n location: normalize('typescript/bin/lib.es6.d.ts')\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse bower', t => {\n const actual = parseDependency('bower:foobar')\n const expected: Dependency = {\n raw: 'bower:foobar',\n type: 'bower',\n meta: {\n name: 'foobar',\n path: 'bower.json'\n },\n location: normalize('foobar/bower.json')\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse bower filename', t => {\n const actual = parseDependency('bower:foobar/' + CONFIG_FILE)\n const expected: Dependency = {\n raw: 'bower:foobar/' + CONFIG_FILE,\n type: 'bower',\n meta: {\n name: 'foobar',\n path: CONFIG_FILE\n },\n location: normalize('foobar/' + CONFIG_FILE)\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse github', t => {\n const actual = parseDependency('github:foo/bar')\n const expected: Dependency = {\n raw: 'github:foo/bar',\n type: 'github',\n meta: {\n name: undefined,\n org: 'foo',\n path: CONFIG_FILE,\n repo: 'bar',\n sha: 'master'\n },\n location: 'https://raw.githubusercontent.com/foo/bar/master/' + CONFIG_FILE\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse github with sha and append config file', t => {\n const actual = parseDependency('github:foo/bar#test')\n const expected: Dependency = {\n raw: 'github:foo/bar#test',\n type: 'github',\n meta: {\n name: undefined,\n org: 'foo',\n path: CONFIG_FILE,\n repo: 'bar',\n sha: 'test'\n },\n location: 'https://raw.githubusercontent.com/foo/bar/test/' + CONFIG_FILE\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse github paths to `.d.ts` files', t => {\n const actual = parseDependency('github:foo/bar/typings/file.d.ts')\n const expected: Dependency = {\n raw: 'github:foo/bar/typings/file.d.ts',\n type: 'github',\n meta: {\n name: 'file',\n org: 'foo',\n path: 'typings/file.d.ts',\n repo: 'bar',\n sha: 'master'\n },\n location: 'https://raw.githubusercontent.com/foo/bar/master/typings/file.d.ts'\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse github paths to config file', t => {\n const actual = parseDependency('github:foo/bar/src/' + CONFIG_FILE)\n const expected: Dependency = {\n raw: 'github:foo/bar/src/' + CONFIG_FILE,\n type: 'github',\n meta: {\n name: undefined,\n org: 'foo',\n path: `src/${CONFIG_FILE}`,\n repo: 'bar',\n sha: 'master'\n },\n location: 'https://raw.githubusercontent.com/foo/bar/master/src/' + CONFIG_FILE\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse bitbucket', t => {\n const actual = parseDependency('bitbucket:foo/bar')\n const expected: Dependency = {\n raw: 'bitbucket:foo/bar',\n type: 'bitbucket',\n meta: {\n name: undefined,\n org: 'foo',\n path: CONFIG_FILE,\n repo: 'bar',\n sha: 'master'\n },\n location: 'https://bitbucket.org/foo/bar/raw/master/' + CONFIG_FILE\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse bitbucket and append config file to path', t => {\n const actual = parseDependency('bitbucket:foo/bar/dir')\n const expected: Dependency = {\n raw: 'bitbucket:foo/bar/dir',\n type: 'bitbucket',\n meta: {\n name: undefined,\n org: 'foo',\n path: `dir/${CONFIG_FILE}`,\n repo: 'bar',\n sha: 'master'\n },\n location: 'https://bitbucket.org/foo/bar/raw/master/dir/' + CONFIG_FILE\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse bitbucket with sha', t => {\n const actual = parseDependency('bitbucket:foo/bar#abc')\n const expected: Dependency = {\n raw: 'bitbucket:foo/bar#abc',\n type: 'bitbucket',\n meta: {\n name: undefined,\n org: 'foo',\n path: CONFIG_FILE,\n repo: 'bar',\n sha: 'abc'\n },\n location: 'https://bitbucket.org/foo/bar/raw/abc/' + CONFIG_FILE\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse url', t => {\n const actual = parseDependency('http://example.com/foo/' + CONFIG_FILE)\n const expected: Dependency = {\n raw: 'http://example.com/foo/' + CONFIG_FILE,\n type: 'http',\n meta: {},\n location: 'http://example.com/foo/' + CONFIG_FILE\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse registry', t => {\n const actual = parseDependency('registry:dt/node')\n const expected: Dependency = {\n raw: 'registry:dt/node',\n type: 'registry',\n meta: { name: 'node', source: 'dt', tag: undefined as string, version: undefined as string },\n location: 'https://api.typings.org/entries/dt/node/versions/latest'\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse registry with scoped package', t => {\n const actual = parseDependency('registry:npm/@scoped/npm')\n const expected: Dependency = {\n raw: 'registry:npm/@scoped/npm',\n type: 'registry',\n meta: { name: '@scoped/npm', source: 'npm', tag: undefined as string, version: undefined as string },\n location: 'https://api.typings.org/entries/npm/%40scoped%2Fnpm/versions/latest'\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse registry with tag', t => {\n const actual = parseDependency('registry:npm/dep#3.0.0-2016')\n const expected: Dependency = {\n raw: 'registry:npm/dep#3.0.0-2016',\n type: 'registry',\n meta: { name: 'dep', source: 'npm', tag: '3.0.0-2016', version: undefined as string },\n location: 'https://api.typings.org/entries/npm/dep/tags/3.0.0-2016'\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse registry with version', t => {\n const actual = parseDependency('registry:npm/dep@^4.0')\n const expected: Dependency = {\n raw: 'registry:npm/dep@^4.0',\n type: 'registry',\n meta: { name: 'dep', source: 'npm', tag: undefined as string, version: '^4.0' },\n location: 'https://api.typings.org/entries/npm/dep/versions/%5E4.0/latest'\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('parse jspm', t => {\n const actual = parseDependency('jspm:domready')\n const expected: Dependency = {\n raw: 'jspm:domready',\n type: 'jspm',\n location: 'domready',\n meta: {\n name: 'domready'\n }\n }\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('expand registry with default source', t => {\n const actual = expandRegistry('domready')\n const expected = 'registry:npm/domready'\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('expand registry with provided source', t => {\n const actual = expandRegistry('env~atom')\n const expected = 'registry:env/atom'\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('unknown scheme', t => {\n t.throws(() => parseDependency('random:fake/dep'), /Unknown dependency: /)\n t.end()\n })\n })\n\n t.test('resolve dependency', t => {\n t.equal(resolveDependency('github:foo/bar/baz/x.d.ts', '../lib/test.d.ts'), 'github:foo/bar/lib/test.d.ts')\n t.equal(resolveDependency('http://example.com/foo/bar.d.ts', 'x.d.ts'), 'http://example.com/foo/x.d.ts')\n\n t.end()\n })\n})\n"]} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var path_1 = require("path"); | ||
@@ -3,0 +4,0 @@ var url_1 = require("url"); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/utils/path.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolve, dirname, relative, extname, join, sep, normalize } from 'path'\nimport { resolve as resolveUrl, parse as parseUrl, format as formatUrl } from 'url'\nimport isAbsolute = require('is-absolute')\nimport { DEFAULT_TYPINGS_DIR } from './config'\nimport { ResolutionMap } from '../interfaces'\n\n/**\n * Consistent EOL behaviour.\n */\nexport const EOL = '\\n'\n\n/**\n * Check if a path looks like a HTTP url.\n */\nexport function isHttp (url: string) {\n return /^https?\\:\\/\\//i.test(url)\n}\n\n/**\n * Check if a path looks like a definition file.\n */\nexport function isDefinition (path: string): boolean {\n if (isHttp(path)) {\n return isDefinition(parseUrl(path).pathname)\n }\n\n return /\\.d\\.ts$/.test(path)\n}\n\n/**\n * Check if a path looks like a module name.\n */\nexport function isModuleName (value: string) {\n return !isHttp(value) && !isAbsolute(value) && value.charAt(0) !== '.'\n}\n\n/**\n * Normalize Windows slashes.\n */\nexport function normalizeSlashes (path: string) {\n return path.replace(/\\\\/g, '/')\n}\n\n/**\n * Join URL parts together.\n */\nexport function joinUrl (from: string, to: string) {\n return `${from.replace(/\\/$/, '')}/${to.replace(/^\\//, '')}`\n}\n\n/**\n * Resolve a path directly from another.\n */\nexport function resolveFrom (from: string, to: string) {\n // Replace the entire path.\n if (isHttp(to)) {\n return to\n }\n\n // Resolve relative HTTP requests.\n if (isHttp(from)) {\n const url = parseUrl(from)\n url.pathname = resolveUrl(url.pathname, to)\n return formatUrl(url)\n }\n\n return resolve(dirname(from), to)\n}\n\n/**\n * Make a path relative to another.\n */\nexport function relativeTo (from: string, to: string): string {\n if (isHttp(from)) {\n const fromUrl = parseUrl(from)\n\n if (isHttp(to)) {\n const toUrl = parseUrl(to)\n\n if (toUrl.auth !== fromUrl.auth || toUrl.host !== fromUrl.host) {\n return to\n }\n\n let relativeUrl = relativeTo(fromUrl.pathname, toUrl.pathname)\n\n if (toUrl.search) {\n relativeUrl += toUrl.search\n }\n\n if (toUrl.hash) {\n relativeUrl += toUrl.hash\n }\n\n return relativeUrl\n }\n\n return relativeTo(fromUrl.pathname, to)\n }\n\n return relative(dirname(from), to)\n}\n\n/**\n * Append a suffix to the path.\n */\nexport function appendToPath (path: string, suffix: string) {\n if (isHttp(path)) {\n const url = parseUrl(path)\n url.pathname = appendToPath(url.pathname, suffix)\n return formatUrl(url)\n }\n\n return path + normalize(suffix)\n}\n\n/**\n * Remove `.d.ts` from a path.\n */\nexport function pathFromDefinition (path: string): string {\n if (isHttp(path)) {\n return pathFromDefinition(parseUrl(path).pathname)\n }\n\n return path.replace(/\\.d\\.ts$/, '')\n}\n\n/**\n * Normalize a path to `.d.ts` file.\n */\nexport function normalizeToDefinition (path: string) {\n if (isDefinition(path)) {\n return path\n }\n\n if (isHttp(path)) {\n const url = parseUrl(path)\n url.pathname = normalizeToDefinition(path)\n return formatUrl(url)\n }\n\n const ext = extname(path)\n\n return appendToPath(ext ? path.slice(0, -ext.length) : path, '.d.ts')\n}\n\n/**\n * Get definition installation paths.\n */\nexport function getDefinitionPath (path: string): string {\n return join(path, 'index.d.ts')\n}\n\nexport interface LocationOptions {\n name: string\n path: string\n global: boolean\n}\n\nexport interface DependencyLocationResult {\n definition: string\n directory: string\n config: string\n}\n\n/**\n * Return the dependency output locations based on definition options.\n */\nexport function getDependencyPath (options: LocationOptions): DependencyLocationResult {\n const type = options.global ? 'globals' : 'modules'\n\n const directory = join(options.path, type, options.name)\n const definition = getDefinitionPath(directory)\n const config = join(directory, 'typings.json')\n\n return { directory, definition, config }\n}\n\n/**\n * Return information about the typings path.\n */\nexport function getInfoFromDependencyLocation (location: string, bundle: string) {\n const parts = relativeTo(bundle, location).split(sep)\n\n return {\n location,\n global: parts[0] === 'globals',\n name: parts.slice(1, -1).join('/')\n }\n}\n\n/**\n * Detect the EOL character of a string.\n */\nexport function detectEOL (contents: string) {\n const match = contents.match(/\\r\\n|\\r|\\n/)\n return match ? match[0] : undefined\n}\n\n/**\n * Replace new line characters globally.\n */\nexport function normalizeEOL (contents: string, eol: string) {\n return contents.replace(/\\r\\n|\\r|\\n/g, eol)\n}\n\n/**\n * Generate a resolved locations map.\n */\nexport function normalizeResolutions (resolutions: string | ResolutionMap, options: { cwd: string }): ResolutionMap {\n const resolutionMap: ResolutionMap = {}\n\n if (typeof resolutions === 'object') {\n for (const type of Object.keys(resolutions)) {\n resolutionMap[type] = join(options.cwd, resolutions[type])\n }\n } else if (typeof resolutions === 'string') {\n resolutionMap.main = join(options.cwd, resolutions)\n } else {\n resolutionMap.main = join(options.cwd, DEFAULT_TYPINGS_DIR)\n }\n\n return resolutionMap\n}\n"]} | ||
| {"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/utils/path.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolve, dirname, relative, extname, join, sep, normalize } from 'path'\nimport { resolve as resolveUrl, parse as parseUrl, format as formatUrl } from 'url'\nimport isAbsolute = require('is-absolute')\nimport { DEFAULT_TYPINGS_DIR } from './config'\nimport { ResolutionMap } from '../interfaces'\n\n/**\n * Consistent EOL behaviour.\n */\nexport const EOL = '\\n'\n\n/**\n * Check if a path looks like a HTTP url.\n */\nexport function isHttp (url: string) {\n return /^https?\\:\\/\\//i.test(url)\n}\n\n/**\n * Check if a path looks like a definition file.\n */\nexport function isDefinition (path: string): boolean {\n if (isHttp(path)) {\n return isDefinition(parseUrl(path).pathname)\n }\n\n return /\\.d\\.ts$/.test(path)\n}\n\n/**\n * Check if a path looks like a module name.\n */\nexport function isModuleName (value: string) {\n return !isHttp(value) && !isAbsolute(value) && value.charAt(0) !== '.'\n}\n\n/**\n * Normalize Windows slashes.\n */\nexport function normalizeSlashes (path: string) {\n return path.replace(/\\\\/g, '/')\n}\n\n/**\n * Join URL parts together.\n */\nexport function joinUrl (from: string, to: string) {\n return `${from.replace(/\\/$/, '')}/${to.replace(/^\\//, '')}`\n}\n\n/**\n * Resolve a path directly from another.\n */\nexport function resolveFrom (from: string, to: string) {\n // Replace the entire path.\n if (isHttp(to)) {\n return to\n }\n\n // Resolve relative HTTP requests.\n if (isHttp(from)) {\n const url = parseUrl(from)\n url.pathname = resolveUrl(url.pathname, to)\n return formatUrl(url)\n }\n\n return resolve(dirname(from), to)\n}\n\n/**\n * Make a path relative to another.\n */\nexport function relativeTo (from: string, to: string): string {\n if (isHttp(from)) {\n const fromUrl = parseUrl(from)\n\n if (isHttp(to)) {\n const toUrl = parseUrl(to)\n\n if (toUrl.auth !== fromUrl.auth || toUrl.host !== fromUrl.host) {\n return to\n }\n\n let relativeUrl = relativeTo(fromUrl.pathname, toUrl.pathname)\n\n if (toUrl.search) {\n relativeUrl += toUrl.search\n }\n\n if (toUrl.hash) {\n relativeUrl += toUrl.hash\n }\n\n return relativeUrl\n }\n\n return relativeTo(fromUrl.pathname, to)\n }\n\n return relative(dirname(from), to)\n}\n\n/**\n * Append a suffix to the path.\n */\nexport function appendToPath (path: string, suffix: string) {\n if (isHttp(path)) {\n const url = parseUrl(path)\n url.pathname = appendToPath(url.pathname, suffix)\n return formatUrl(url)\n }\n\n return path + normalize(suffix)\n}\n\n/**\n * Remove `.d.ts` from a path.\n */\nexport function pathFromDefinition (path: string): string {\n if (isHttp(path)) {\n return pathFromDefinition(parseUrl(path).pathname)\n }\n\n return path.replace(/\\.d\\.ts$/, '')\n}\n\n/**\n * Normalize a path to `.d.ts` file.\n */\nexport function normalizeToDefinition (path: string) {\n if (isDefinition(path)) {\n return path\n }\n\n if (isHttp(path)) {\n const url = parseUrl(path)\n url.pathname = normalizeToDefinition(path)\n return formatUrl(url)\n }\n\n const ext = extname(path)\n\n return appendToPath(ext ? path.slice(0, -ext.length) : path, '.d.ts')\n}\n\n/**\n * Get definition installation paths.\n */\nexport function getDefinitionPath (path: string): string {\n return join(path, 'index.d.ts')\n}\n\nexport interface LocationOptions {\n name: string\n path: string\n global: boolean\n}\n\nexport interface DependencyLocationResult {\n definition: string\n directory: string\n config: string\n}\n\n/**\n * Return the dependency output locations based on definition options.\n */\nexport function getDependencyPath (options: LocationOptions): DependencyLocationResult {\n const type = options.global ? 'globals' : 'modules'\n\n const directory = join(options.path, type, options.name)\n const definition = getDefinitionPath(directory)\n const config = join(directory, 'typings.json')\n\n return { directory, definition, config }\n}\n\n/**\n * Return information about the typings path.\n */\nexport function getInfoFromDependencyLocation (location: string, bundle: string) {\n const parts = relativeTo(bundle, location).split(sep)\n\n return {\n location,\n global: parts[0] === 'globals',\n name: parts.slice(1, -1).join('/')\n }\n}\n\n/**\n * Detect the EOL character of a string.\n */\nexport function detectEOL (contents: string) {\n const match = contents.match(/\\r\\n|\\r|\\n/)\n return match ? match[0] : undefined\n}\n\n/**\n * Replace new line characters globally.\n */\nexport function normalizeEOL (contents: string, eol: string) {\n return contents.replace(/\\r\\n|\\r|\\n/g, eol)\n}\n\n/**\n * Generate a resolved locations map.\n */\nexport function normalizeResolutions (resolutions: string | ResolutionMap, options: { cwd: string }): ResolutionMap {\n const resolutionMap: ResolutionMap = {}\n\n if (typeof resolutions === 'object') {\n for (const type of Object.keys(resolutions)) {\n resolutionMap[type] = join(options.cwd, resolutions[type])\n }\n } else if (typeof resolutions === 'string') {\n resolutionMap.main = join(options.cwd, resolutions)\n } else {\n resolutionMap.main = join(options.cwd, DEFAULT_TYPINGS_DIR)\n }\n\n return resolutionMap\n}\n"]} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var test = require("blue-tape"); | ||
@@ -3,0 +4,0 @@ var path_1 = require("./path"); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"path.spec.js","sourceRoot":"","sources":["../../src/utils/path.spec.ts"],"names":[],"mappings":";AAAA,gCAAkC;AAClC,+BAA2C;AAE3C,IAAI,CAAC,OAAO,EAAE,UAAA,CAAC;IACb,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAAE,UAAA,CAAC;QAC9B,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,UAAA,CAAC;YACd,CAAC,CAAC,KAAK,CAAC,yBAAkB,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,CAAA;YACtD,CAAC,CAAC,GAAG,EAAE,CAAA;QACT,CAAC,CAAC,CAAA;QAEF,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,UAAA,CAAC;YACb,CAAC,CAAC,KAAK,CAAC,yBAAkB,CAAC,8BAA8B,CAAC,EAAE,OAAO,CAAC,CAAA;YACpE,CAAC,CAAC,GAAG,EAAE,CAAA;QACT,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import test = require('blue-tape')\nimport { pathFromDefinition } from './path'\n\ntest('parse', t => {\n t.test('path from definition', t => {\n t.test('path', t => {\n t.equal(pathFromDefinition('foo/bar.d.ts'), 'foo/bar')\n t.end()\n })\n\n t.test('url', t => {\n t.equal(pathFromDefinition('http://example.com/test.d.ts'), '/test')\n t.end()\n })\n })\n})\n"]} | ||
| {"version":3,"file":"path.spec.js","sourceRoot":"","sources":["../../src/utils/path.spec.ts"],"names":[],"mappings":";;AAAA,gCAAkC;AAClC,+BAA2C;AAE3C,IAAI,CAAC,OAAO,EAAE,UAAA,CAAC;IACb,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAAE,UAAA,CAAC;QAC9B,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,UAAA,CAAC;YACd,CAAC,CAAC,KAAK,CAAC,yBAAkB,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,CAAA;YACtD,CAAC,CAAC,GAAG,EAAE,CAAA;QACT,CAAC,CAAC,CAAA;QAEF,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,UAAA,CAAC;YACb,CAAC,CAAC,KAAK,CAAC,yBAAkB,CAAC,8BAA8B,CAAC,EAAE,OAAO,CAAC,CAAA;YACpE,CAAC,CAAC,GAAG,EAAE,CAAA;QACT,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import test = require('blue-tape')\nimport { pathFromDefinition } from './path'\n\ntest('parse', t => {\n t.test('path from definition', t => {\n t.test('path', t => {\n t.equal(pathFromDefinition('foo/bar.d.ts'), 'foo/bar')\n t.end()\n })\n\n t.test('url', t => {\n t.equal(pathFromDefinition('http://example.com/test.d.ts'), '/test')\n t.end()\n })\n })\n})\n"]} |
+1
-1
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var rc = require("rc"); | ||
@@ -10,4 +11,3 @@ var extend = require("xtend"); | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.default = extend(exports.DEFAULTS, rc(config_1.PROJECT_NAME)); | ||
| //# sourceMappingURL=rc.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"rc.js","sourceRoot":"","sources":["../../src/utils/rc.ts"],"names":[],"mappings":";AAAA,uBAAyB;AACzB,8BAAgC;AAChC,mCAAqD;AAGxC,QAAA,QAAQ,GAAG;IACtB,SAAS,EAAK,qBAAY,2DAAwD;IAClF,WAAW,EAAE,qBAAY;IACzB,aAAa,EAAE,KAAK;CACrB,CAAA;;AAED,kBAAe,MAAM,CAAC,gBAAQ,EAAE,EAAE,CAAC,qBAAY,CAAC,CAAa,CAAA","sourcesContent":["import rc = require('rc')\nimport extend = require('xtend')\nimport { PROJECT_NAME, REGISTRY_URL } from './config'\nimport { RcConfig } from '../interfaces'\n\nexport const DEFAULTS = {\n userAgent: `${PROJECT_NAME}/{typingsVersion} node/{nodeVersion} {platform} {arch}`,\n registryURL: REGISTRY_URL,\n defaultSource: 'npm'\n}\n\nexport default extend(DEFAULTS, rc(PROJECT_NAME)) as RcConfig\n"]} | ||
| {"version":3,"file":"rc.js","sourceRoot":"","sources":["../../src/utils/rc.ts"],"names":[],"mappings":";;AAAA,uBAAyB;AACzB,8BAAgC;AAChC,mCAAqD;AAGxC,QAAA,QAAQ,GAAG;IACtB,SAAS,EAAK,qBAAY,2DAAwD;IAClF,WAAW,EAAE,qBAAY;IACzB,aAAa,EAAE,KAAK;CACrB,CAAA;AAED,kBAAe,MAAM,CAAC,gBAAQ,EAAE,EAAE,CAAC,qBAAY,CAAC,CAAa,CAAA","sourcesContent":["import rc = require('rc')\nimport extend = require('xtend')\nimport { PROJECT_NAME, REGISTRY_URL } from './config'\nimport { RcConfig } from '../interfaces'\n\nexport const DEFAULTS = {\n userAgent: `${PROJECT_NAME}/{typingsVersion} node/{nodeVersion} {platform} {arch}`,\n registryURL: REGISTRY_URL,\n defaultSource: 'npm'\n}\n\nexport default extend(DEFAULTS, rc(PROJECT_NAME)) as RcConfig\n"]} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var path_1 = require("path"); | ||
@@ -3,0 +4,0 @@ var isAbsolute = require("is-absolute"); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"references.js","sourceRoot":"","sources":["../../src/utils/references.ts"],"names":[],"mappings":";AAAA,6BAAmD;AACnD,wCAA0C;AAC1C,+BAA8C;AAMjC,QAAA,gBAAgB,GAAG,0EAA0E,CAAA;AAY1G,2BAAmC,QAAgB,EAAE,GAAW;IAC9D,IAAM,IAAI,GAAgB,EAAE,CAAA;IAC5B,IAAI,CAAkB,CAAA;IAEtB,GAAG,CAAC;QACF,CAAC,GAAG,wBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAEnC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YACd,KAAK,CAAA;QACP,CAAC;QAED,IAAI,CAAC,IAAI,CAAC;YACR,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,GAAG,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;YAC1B,IAAI,EAAE,cAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SACzB,CAAC,CAAA;IACJ,CAAC,QAAQ,CAAC,EAAC;IAEX,MAAM,CAAC,IAAI,CAAA;AACb,CAAC;AAnBD,8CAmBC;AAED,yBAAiC,QAAgB,EAAE,GAAW;IAC5D,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,cAAO,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,EAAtB,CAAsB,CAAC,CAAA;AAC5E,CAAC;AAFD,0CAEC;AAED,6BAAqC,KAAe,EAAE,GAAW;IAC/D,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,EAAtB,CAAsB,CAAC,CAAC,IAAI,CAAC,UAAG,CAAC,GAAG,UAAG,CAAA;AAClE,CAAC;AAFD,kDAEC;AAED,qBAA6B,IAAY,EAAE,GAAW;IACpD,MAAM,CAAC,2BAAwB,uBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,eAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,gBAAS,CAAC,IAAI,CAAC,CAAC,UAAM,CAAA;AACjH,CAAC;AAFD,kCAEC","sourcesContent":["import { resolve, relative, normalize } from 'path'\nimport isAbsolute = require('is-absolute')\nimport { normalizeSlashes, EOL } from './path'\n\n/**\n * Match reference tags in a file. Matching the newline before the\n * reference to remove unwanted data when removing the line from the file.\n */\nexport const REFERENCE_REGEXP = /^\\/\\/\\/[ \\t]*<reference[ \\t]+path[ \\t]*=(\"|')(.*?)\\1.*?\\/>[ \\t]*\\r?\\n?/gm\n\n/**\n * References come back in a semi-useful structure to enable slicing them\n * from the source code that was passed in.\n */\nexport interface Reference {\n start: number\n end: number\n path: string\n}\n\nexport function extractReferences (contents: string, cwd: string): Reference[] {\n const refs: Reference[] = []\n let m: RegExpExecArray\n\n do {\n m = REFERENCE_REGEXP.exec(contents)\n\n if (m == null) {\n break\n }\n\n refs.push({\n start: m.index,\n end: m.index + m[0].length,\n path: resolve(cwd, m[2])\n })\n } while (m)\n\n return refs\n}\n\nexport function parseReferences (contents: string, cwd: string): string[] {\n return extractReferences(contents, cwd).map(ref => resolve(cwd, ref.path))\n}\n\nexport function stringifyReferences (paths: string[], cwd: string): string {\n return paths.map(path => toReference(path, cwd)).join(EOL) + EOL\n}\n\nexport function toReference (path: string, cwd: string): string {\n return `/// <reference path=\"${normalizeSlashes(isAbsolute(path) ? relative(cwd, path) : normalize(path))}\" />`\n}\n"]} | ||
| {"version":3,"file":"references.js","sourceRoot":"","sources":["../../src/utils/references.ts"],"names":[],"mappings":";;AAAA,6BAAmD;AACnD,wCAA0C;AAC1C,+BAA8C;AAMjC,QAAA,gBAAgB,GAAG,0EAA0E,CAAA;AAY1G,2BAAmC,QAAgB,EAAE,GAAW;IAC9D,IAAM,IAAI,GAAgB,EAAE,CAAA;IAC5B,IAAI,CAAkB,CAAA;IAEtB,GAAG,CAAC;QACF,CAAC,GAAG,wBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAEnC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YACd,KAAK,CAAA;QACP,CAAC;QAED,IAAI,CAAC,IAAI,CAAC;YACR,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,GAAG,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;YAC1B,IAAI,EAAE,cAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SACzB,CAAC,CAAA;IACJ,CAAC,QAAQ,CAAC,EAAC;IAEX,MAAM,CAAC,IAAI,CAAA;AACb,CAAC;AAnBD,8CAmBC;AAED,yBAAiC,QAAgB,EAAE,GAAW;IAC5D,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,cAAO,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,EAAtB,CAAsB,CAAC,CAAA;AAC5E,CAAC;AAFD,0CAEC;AAED,6BAAqC,KAAe,EAAE,GAAW;IAC/D,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,EAAtB,CAAsB,CAAC,CAAC,IAAI,CAAC,UAAG,CAAC,GAAG,UAAG,CAAA;AAClE,CAAC;AAFD,kDAEC;AAED,qBAA6B,IAAY,EAAE,GAAW;IACpD,MAAM,CAAC,2BAAwB,uBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,eAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,gBAAS,CAAC,IAAI,CAAC,CAAC,UAAM,CAAA;AACjH,CAAC;AAFD,kCAEC","sourcesContent":["import { resolve, relative, normalize } from 'path'\nimport isAbsolute = require('is-absolute')\nimport { normalizeSlashes, EOL } from './path'\n\n/**\n * Match reference tags in a file. Matching the newline before the\n * reference to remove unwanted data when removing the line from the file.\n */\nexport const REFERENCE_REGEXP = /^\\/\\/\\/[ \\t]*<reference[ \\t]+path[ \\t]*=(\"|')(.*?)\\1.*?\\/>[ \\t]*\\r?\\n?/gm\n\n/**\n * References come back in a semi-useful structure to enable slicing them\n * from the source code that was passed in.\n */\nexport interface Reference {\n start: number\n end: number\n path: string\n}\n\nexport function extractReferences (contents: string, cwd: string): Reference[] {\n const refs: Reference[] = []\n let m: RegExpExecArray\n\n do {\n m = REFERENCE_REGEXP.exec(contents)\n\n if (m == null) {\n break\n }\n\n refs.push({\n start: m.index,\n end: m.index + m[0].length,\n path: resolve(cwd, m[2])\n })\n } while (m)\n\n return refs\n}\n\nexport function parseReferences (contents: string, cwd: string): string[] {\n return extractReferences(contents, cwd).map(ref => resolve(cwd, ref.path))\n}\n\nexport function stringifyReferences (paths: string[], cwd: string): string {\n return paths.map(path => toReference(path, cwd)).join(EOL) + EOL\n}\n\nexport function toReference (path: string, cwd: string): string {\n return `/// <reference path=\"${normalizeSlashes(isAbsolute(path) ? relative(cwd, path) : normalize(path))}\" />`\n}\n"]} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var test = require("blue-tape"); | ||
@@ -3,0 +4,0 @@ var path_1 = require("path"); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"references.spec.js","sourceRoot":"","sources":["../../src/utils/references.spec.ts"],"names":[],"mappings":";AAAA,gCAAkC;AAClC,6BAA2B;AAC3B,yCAA0C;AAE1C,IAAI,CAAC,YAAY,EAAE,UAAA,CAAC;IAClB,CAAC,CAAC,IAAI,CAAC,8BAA8B,EAAE,UAAA,CAAC;QACtC,IAAM,IAAI,GAAG,yFAIhB,CAAA;QAEG,IAAM,MAAM,GAAG,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QAE5D,IAAM,QAAQ,GAAG;YACf;gBACE,KAAK,EAAE,CAAC;gBACR,GAAG,EAAE,EAAE;gBACP,IAAI,EAAE,WAAI,CAAC,SAAS,EAAE,aAAa,CAAC;aACrC;YACD;gBACE,KAAK,EAAE,EAAE;gBACT,GAAG,EAAE,EAAE;gBACP,IAAI,EAAE,WAAI,CAAC,SAAS,EAAE,cAAc,CAAC;aACtC;SACF,CAAA;QAED,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC7B,CAAC,CAAC,GAAG,EAAE,CAAA;IACT,CAAC,CAAC,CAAA;IAEF,CAAC,CAAC,IAAI,CAAC,oCAAoC,EAAE,UAAA,CAAC;QAC5C,IAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;QAC/D,IAAM,QAAQ,GAAG,sCAAsC,CAAA;QAEvD,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACzB,CAAC,CAAC,GAAG,EAAE,CAAA;IACT,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import test = require('blue-tape')\nimport { join } from 'path'\nimport * as references from './references'\n\ntest('references', t => {\n t.test('parse references from string', t => {\n const file = `\n/// <reference path=\"foobar.d.ts\" />\n\n///\\t<reference\\t path=\"example.d.ts\"/>\n`\n\n const actual = references.extractReferences(file, __dirname)\n\n const expected = [\n {\n start: 1,\n end: 38,\n path: join(__dirname, 'foobar.d.ts')\n },\n {\n start: 39,\n end: 77,\n path: join(__dirname, 'example.d.ts')\n }\n ]\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('compile a path to reference string', t => {\n const actual = references.toReference('foobar.d.ts', __dirname)\n const expected = '/// <reference path=\"foobar.d.ts\" />'\n\n t.equal(actual, expected)\n t.end()\n })\n})\n"]} | ||
| {"version":3,"file":"references.spec.js","sourceRoot":"","sources":["../../src/utils/references.spec.ts"],"names":[],"mappings":";;AAAA,gCAAkC;AAClC,6BAA2B;AAC3B,yCAA0C;AAE1C,IAAI,CAAC,YAAY,EAAE,UAAA,CAAC;IAClB,CAAC,CAAC,IAAI,CAAC,8BAA8B,EAAE,UAAA,CAAC;QACtC,IAAM,IAAI,GAAG,yFAIhB,CAAA;QAEG,IAAM,MAAM,GAAG,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QAE5D,IAAM,QAAQ,GAAG;YACf;gBACE,KAAK,EAAE,CAAC;gBACR,GAAG,EAAE,EAAE;gBACP,IAAI,EAAE,WAAI,CAAC,SAAS,EAAE,aAAa,CAAC;aACrC;YACD;gBACE,KAAK,EAAE,EAAE;gBACT,GAAG,EAAE,EAAE;gBACP,IAAI,EAAE,WAAI,CAAC,SAAS,EAAE,cAAc,CAAC;aACtC;SACF,CAAA;QAED,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC7B,CAAC,CAAC,GAAG,EAAE,CAAA;IACT,CAAC,CAAC,CAAA;IAEF,CAAC,CAAC,IAAI,CAAC,oCAAoC,EAAE,UAAA,CAAC;QAC5C,IAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;QAC/D,IAAM,QAAQ,GAAG,sCAAsC,CAAA;QAEvD,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACzB,CAAC,CAAC,GAAG,EAAE,CAAA;IACT,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import test = require('blue-tape')\nimport { join } from 'path'\nimport * as references from './references'\n\ntest('references', t => {\n t.test('parse references from string', t => {\n const file = `\n/// <reference path=\"foobar.d.ts\" />\n\n///\\t<reference\\t path=\"example.d.ts\"/>\n`\n\n const actual = references.extractReferences(file, __dirname)\n\n const expected = [\n {\n start: 1,\n end: 38,\n path: join(__dirname, 'foobar.d.ts')\n },\n {\n start: 39,\n end: 77,\n path: join(__dirname, 'example.d.ts')\n }\n ]\n\n t.deepEqual(actual, expected)\n t.end()\n })\n\n t.test('compile a path to reference string', t => {\n const actual = references.toReference('foobar.d.ts', __dirname)\n const expected = '/// <reference path=\"foobar.d.ts\" />'\n\n t.equal(actual, expected)\n t.end()\n })\n})\n"]} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var ConfigStore = require("configstore"); | ||
| var config_1 = require("./config"); | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.default = new ConfigStore(config_1.PROJECT_NAME); | ||
| //# sourceMappingURL=store.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/utils/store.ts"],"names":[],"mappings":";AAAA,yCAA2C;AAC3C,mCAAuC;;AAEvC,kBAAe,IAAI,WAAW,CAAC,qBAAY,CAAC,CAAA","sourcesContent":["import ConfigStore = require('configstore')\nimport { PROJECT_NAME } from './config'\n\nexport default new ConfigStore(PROJECT_NAME)\n"]} | ||
| {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/utils/store.ts"],"names":[],"mappings":";;AAAA,yCAA2C;AAC3C,mCAAuC;AAEvC,kBAAe,IAAI,WAAW,CAAC,qBAAY,CAAC,CAAA","sourcesContent":["import ConfigStore = require('configstore')\nimport { PROJECT_NAME } from './config'\n\nexport default new ConfigStore(PROJECT_NAME)\n"]} |
+1
-0
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| var path_1 = require("./utils/path"); | ||
@@ -3,0 +4,0 @@ var fs_1 = require("./utils/fs"); |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"view.js","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":";AAAA,qCAAsC;AACtC,iCAAyC;AACzC,uCAA+D;AAC/D,iCAA2B;AAI3B,mBAA2B,GAAW,EAAE,OAAoB;IAC1D,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO;QACjB,IAAA,gEAAI,CAAyC;QACrD,IAAM,IAAI,GAAG,aAAW,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAG,CAAA;QAE1F,MAAM,CAAC,OAAO,CAAC,iBAAY,CAAC,cAAO,CAAC,YAAE,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;AACJ,CAAC;AAPD,8BAOC;AAED,sBAA8B,GAAW,EAAE,OAAoB;IAC7D,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO;QACjB,IAAA,gEAAI,CAAyC;QACrD,IAAI,IAAI,GAAG,aAAW,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAW,CAAA;QAEjG,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACjB,IAAI,IAAI,MAAI,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAG,CAAA;QAChD,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,iBAAY,CAAC,cAAO,CAAC,YAAE,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;AACJ,CAAC;AAXD,oCAWC","sourcesContent":["import { joinUrl } from './utils/path'\nimport { readJsonFrom } from './utils/fs'\nimport { expandRegistry, parseDependency } from './utils/parse'\nimport rc from './utils/rc'\n\nexport interface ViewOptions {}\n\nexport function viewEntry (raw: string, options: ViewOptions) {\n return new Promise((resolve) => {\n const { meta } = parseDependency(expandRegistry(raw))\n const path = `entries/${encodeURIComponent(meta.source)}/${encodeURIComponent(meta.name)}`\n\n return resolve(readJsonFrom(joinUrl(rc.registryURL, path)))\n })\n}\n\nexport function viewVersions (raw: string, options: ViewOptions) {\n return new Promise((resolve) => {\n const { meta } = parseDependency(expandRegistry(raw))\n let path = `entries/${encodeURIComponent(meta.source)}/${encodeURIComponent(meta.name)}/versions`\n\n if (meta.version) {\n path += `/${encodeURIComponent(meta.version)}`\n }\n\n return resolve(readJsonFrom(joinUrl(rc.registryURL, path)))\n })\n}\n"]} | ||
| {"version":3,"file":"view.js","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":";;AAAA,qCAAsC;AACtC,iCAAyC;AACzC,uCAA+D;AAC/D,iCAA2B;AAI3B,mBAA2B,GAAW,EAAE,OAAoB;IAC1D,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO;QACjB,IAAA,gEAAI,CAAyC;QACrD,IAAM,IAAI,GAAG,aAAW,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAG,CAAA;QAE1F,MAAM,CAAC,OAAO,CAAC,iBAAY,CAAC,cAAO,CAAC,YAAE,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;AACJ,CAAC;AAPD,8BAOC;AAED,sBAA8B,GAAW,EAAE,OAAoB;IAC7D,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO;QACjB,IAAA,gEAAI,CAAyC;QACrD,IAAI,IAAI,GAAG,aAAW,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAW,CAAA;QAEjG,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACjB,IAAI,IAAI,MAAI,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAG,CAAA;QAChD,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,iBAAY,CAAC,cAAO,CAAC,YAAE,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;AACJ,CAAC;AAXD,oCAWC","sourcesContent":["import { joinUrl } from './utils/path'\nimport { readJsonFrom } from './utils/fs'\nimport { expandRegistry, parseDependency } from './utils/parse'\nimport rc from './utils/rc'\n\nexport interface ViewOptions {}\n\nexport function viewEntry (raw: string, options: ViewOptions) {\n return new Promise((resolve) => {\n const { meta } = parseDependency(expandRegistry(raw))\n const path = `entries/${encodeURIComponent(meta.source)}/${encodeURIComponent(meta.name)}`\n\n return resolve(readJsonFrom(joinUrl(rc.registryURL, path)))\n })\n}\n\nexport function viewVersions (raw: string, options: ViewOptions) {\n return new Promise((resolve) => {\n const { meta } = parseDependency(expandRegistry(raw))\n let path = `entries/${encodeURIComponent(meta.source)}/${encodeURIComponent(meta.name)}/versions`\n\n if (meta.version) {\n path += `/${encodeURIComponent(meta.version)}`\n }\n\n return resolve(readJsonFrom(joinUrl(rc.registryURL, path)))\n })\n}\n"]} |
+4
-4
| { | ||
| "name": "typings-core", | ||
| "version": "2.3.2", | ||
| "version": "2.3.3", | ||
| "description": "The logic of Typings", | ||
@@ -86,6 +86,6 @@ "main": "dist/typings.js", | ||
| "tap-diff": "^0.1.1", | ||
| "ts-node": "^2.0.0", | ||
| "tslint": "^4.4.2", | ||
| "tslint-config-standard": "^4.0.0" | ||
| "ts-node": "^3.0.0", | ||
| "tslint": "^5.0.0", | ||
| "tslint-config-standard": "^5.0.0" | ||
| } | ||
| } |
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
506932
0.47%4576
0.84%