From 9c67efe589d193537da7fae2cb8f8b73558ab8be Mon Sep 17 00:00:00 2001 From: Sven SAULEAU Date: Fri, 6 Apr 2018 15:26:51 +0200 Subject: [PATCH 1/9] feat: add WasmModule --- package.json | 4 +- src/Chunk.ts | 3 + src/Graph.ts | 53 +++++++++--- src/Module.ts | 2 +- src/WasmModule.ts | 193 ++++++++++++++++++++++++++++++++++++++++++ src/rollup/index.ts | 8 +- src/rollup/types.d.ts | 8 +- 7 files changed, 254 insertions(+), 17 deletions(-) create mode 100644 src/WasmModule.ts diff --git a/package.json b/package.json index 6c76c829011..6a561e9bc57 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,9 @@ "homepage": "https://github.com/rollup/rollup", "dependencies": { "@types/estree": "0.0.38", - "@types/node": "*" + "@types/node": "*", + "@webassemblyjs/ast": "^1.2.2", + "@webassemblyjs/wasm-parser": "^1.2.2" }, "devDependencies": { "acorn": "^5.5.3", diff --git a/src/Chunk.ts b/src/Chunk.ts index b91d8ad8982..63429fc4a10 100644 --- a/src/Chunk.ts +++ b/src/Chunk.ts @@ -11,6 +11,7 @@ import { normalize, resolve, extname, dirname, relative, basename } from './util import { RawSourceMap } from 'source-map'; import Graph from './Graph'; import ExternalModule from './ExternalModule'; +import WasmModule from './WasmModule'; import { isExportDefaultVariable } from './ast/variables/ExportDefaultVariable'; import Variable from './ast/variables/Variable'; import NamespaceVariable from './ast/variables/NamespaceVariable'; @@ -478,6 +479,8 @@ export default class Chunk { } else if (resolution instanceof ExternalModule) { node.renderFinalResolution(code, `"${resolution.id}"`); // AST Node -> source replacement + } else if (resolution instanceof WasmModule) { + node.renderFinalResolution(code, `"${resolution.id}"`); } else { node.renderFinalResolution(code, resolution); } diff --git a/src/Graph.ts b/src/Graph.ts index 2eacae84dd0..ac5be0421a5 100644 --- a/src/Graph.ts +++ b/src/Graph.ts @@ -3,6 +3,7 @@ import injectDynamicImportPlugin from 'acorn-dynamic-import/lib/inject'; import { timeEnd, timeStart } from './utils/timers'; import first from './utils/first'; import Module from './Module'; +import WasmModule from './WasmModule'; import ExternalModule from './ExternalModule'; import ensureArray from './utils/ensureArray'; import { handleMissingExport, load, makeOnwarn, resolveId } from './utils/defaults'; @@ -10,7 +11,7 @@ import { mapSequence } from './utils/promise'; import transform from './utils/transform'; import relativeId, { nameWithoutExtension } from './utils/relativeId'; import error from './utils/error'; -import { isRelative, resolve, basename, relative } from './utils/path'; +import { isRelative, resolve, basename, relative, extname } from './utils/path'; import { InputOptions, IsExternalHook, @@ -52,7 +53,7 @@ export default class Graph { importedModule: string, importerStart?: number ) => void; - moduleById: Map; + moduleById: Map; modules: Module[]; onwarn: WarningHandler; plugins: Plugin[]; @@ -425,9 +426,9 @@ export default class Graph { timeStart('generate chunks', 2); // TODO: there is one special edge case unhandled here and that is that any module - // exposed as an unresolvable export * (to a graph external export *, - // either as a namespace import reexported or top-level export *) - // should be made to be its own entry point module before chunking + // exposed as an unresolvable export * (to a graph external export *, + // either as a namespace import reexported or top-level export *) + // should be made to be its own entry point module before chunking const chunkList: Chunk[] = []; if (!preserveModules) { const chunkModules: { [entryHashSum: string]: Module[] } = {}; @@ -497,14 +498,14 @@ export default class Graph { let curEntry: Module, curEntryHash: Uint8Array; const allSeen: { [id: string]: boolean } = {}; - const orderedModules: Module[] = []; + const orderedModules: Module | WasmModule[] = []; - const dynamicImports: Module[] = []; + const dynamicImports: Module | WasmModule[] = []; const dynamicImportAliases: string[] = []; let parents: { [id: string]: string }; - const visit = (module: Module) => { + const visit = (module: Module | WasmModule) => { // Track entry point graph colouring by tracing all modules loaded by a given // entry point and colouring those modules by the hash of its id. Colours are mixed as // hash xors, providing the unique colouring of the graph into unique hash chunks. @@ -523,6 +524,7 @@ export default class Graph { for (let depModule of module.dependencies) { if (depModule instanceof ExternalModule) continue; + if (depModule instanceof WasmModule) continue; if (depModule.id in parents) { if (!allSeen[depModule.id]) { @@ -537,7 +539,10 @@ export default class Graph { if (this.dynamicImport) { for (let dynamicModule of module.dynamicImportResolutions) { - if (dynamicModule.resolution instanceof Module) { + if ( + dynamicModule.resolution instanceof Module || + dynamicModule.resolution instanceof WasmModule + ) { if (dynamicImports.indexOf(dynamicModule.resolution) === -1) { dynamicImports.push(dynamicModule.resolution); dynamicImportAliases.push(dynamicModule.alias); @@ -611,12 +616,35 @@ Try defining "${chunkName}" first in the manualChunks definitions of the Rollup }); } - private fetchModule(id: string, importer: string): Promise { + private fetchModule(id: string, importer: string): Promise { // short-circuit cycles const existingModule = this.moduleById.get(id); if (existingModule) { if (existingModule.isExternal) throw new Error(`Cannot fetch external module ${id}`); - return Promise.resolve(existingModule); + return Promise.resolve(existingModule); + } + + if (extname(id) === '.wasm') { + const module = new WasmModule(this, id); + this.moduleById.set(id, module); + + // FIXME(sven): alternatively we can use a loadBinary method + return this.load(id) + .catch((err: Error) => { + // FIXME(sven): error handling here + throw err; + }) + .then((data: string) => { + // TODO(sven): still check magic header here + const bin = new Buffer(data); + module.setSource(bin); + + this.fetchAllDependencies(module); + + this.modules.push(module); + + return module; + }); } const module: Module = new Module(this, id); @@ -705,7 +733,7 @@ Try defining "${chunkName}" first in the manualChunks definitions of the Rollup }); } - private fetchAllDependencies(module: Module) { + private fetchAllDependencies(module: Module | WasmModule) { // resolve and fetch dynamic imports where possible const fetchDynamicImportsPromise = !this.dynamicImport ? Promise.resolve() @@ -721,6 +749,7 @@ Try defining "${chunkName}" first in the manualChunks definitions of the Rollup }; return; } + const alias = nameWithoutExtension(basename(replacement)); if (typeof dynamicImportExpression !== 'string') { module.dynamicImportResolutions[index] = { alias, resolution: replacement }; diff --git a/src/Module.ts b/src/Module.ts index 4f14c2a829e..2e8cea82e34 100644 --- a/src/Module.ts +++ b/src/Module.ts @@ -104,7 +104,7 @@ export default class Module { code: string; comments: CommentDescription[]; context: string; - dependencies: (Module | ExternalModule)[]; + dependencies: (Module | ExternalModule | WasmModule)[]; excludeFromSourcemap: boolean; exports: { [name: string]: ExportDescription }; exportsAll: { [name: string]: string }; diff --git a/src/WasmModule.ts b/src/WasmModule.ts new file mode 100644 index 00000000000..ebbe25f6e5c --- /dev/null +++ b/src/WasmModule.ts @@ -0,0 +1,193 @@ +import { decode } from '@webassemblyjs/wasm-parser'; +import ast from '@webassemblyjs/ast'; + +import Graph from './Graph'; +import { IdMap, ModuleJSON, WebAssemblyJSAst } from './rollup/types'; + +import { makeLegal } from './utils/identifierHelpers'; +import { RenderOptions } from './utils/renderHelpers'; +import { basename, extname } from './utils/path'; + +import ExternalModule from './ExternalModule'; +import Module from './Module'; + +import ModuleScope from './ast/scopes/ModuleScope'; +import Variable from './ast/variables/Variable'; +import NamespaceVariable from './ast/variables/NamespaceVariable'; + +const decoderOpts = { + ignoreCodeSection: true, + ignoreDataSection: true +}; + +const buildLoader = ({ URL, IMPORT_OBJECT }) => ` + function then(resolve) { + if (typeof WebAssembly.instantiateStreaming !== 'function') { + throw new Error('WebAssembly.instantiateStreaming is not supported'); + } + + if (typeof window.fetch !== 'function') { + throw new Error('window.fetch is not supported'); + } + + const req = window.fetch('${URL}'); + + WebAssembly + .instantiateStreaming(req, ${IMPORT_OBJECT || '{}'}) + .then(res => res.instance.exports) + .then(resolve) + .catch(resolve); + } +`; + +export interface ExportDescription { + localName: string; + identifier?: string; +} + +export interface ImportDescription { + source: string; + name: string; + module: Module | ExternalModule | null; +} + +export default class WasmModule { + id: string; + graph: Graph; + code: Buffer; + + scope: ModuleScope; + + ast: WebAssemblyJSAst.Program; + + sources: string[]; + resolvedIds: IdMap; + + dynamicImportResolutions: { + alias: string; + resolution: Module | ExternalModule | string | void; + }[]; + dependencies: (Module | ExternalModule | WasmModule)[]; + + imports: { [name: string]: ImportDescription }; + exports: { [name: string]: ExportDescription }; + + // this is unused on Module, + // only used for namespace and then ExternalExport.declarations + declarations: { + '*'?: NamespaceVariable; + [name: string]: Variable | undefined; + }; + + isExternal: false; + + constructor(graph: Graph, id: string) { + this.id = id; + this.graph = graph; + this.code = new Buffer(''); + + this.ast = null; + + // imports and exports, indexed by local name + this.imports = Object.create(null); + this.exports = Object.create(null); + this.resolvedIds = Object.create(null); + this.declarations = Object.create(null); + + // all dependencies + this.dynamicImportResolutions = []; + this.sources = []; + this.dependencies = []; + + this.scope = new ModuleScope(this); + + // expose Thenable + this.exports.then = { + localName: 'then' + }; + } + + render(options: RenderOptions) { + const URL = 'foo'; + const content = buildLoader({ URL }); + + return { trim() {}, content }; + } + + getDynamicImportExpressions(): (string | Node)[] { + // FIXME(sven): consider ModuleImport as dynamicImports? + return []; + } + + markExports() {} + + // TODO(sven): what is this? + namespace(): NamespaceVariable { + if (!this.declarations['*']) { + this.declarations['*'] = new NamespaceVariable(this); + } + + return this.declarations['*']; + } + + basename() { + const base = basename(this.id); + const ext = extname(this.id); + + return makeLegal(ext ? base.slice(0, -ext.length) : base); + } + + getExports() { + return Object.keys(this.exports); + } + + getReexports() { + return []; + } + + includeInBundle() { + return false; + } + + linkDependencies() { + const { imports, exports } = this; + + ast.traverse(this.ast, { + // ModuleImport({node}: any) { + // const source = node.module + // const name = node.name; + // imports[`${source}.${name}`] = { source, name, module: null }; + // }, + // ModuleExport({node}: any) { + // const name = node.name; + // exports[name] = { + // localName: name + // }; + // } + }); + } + + bindReferences() {} + + toJSON(): ModuleJSON { + return { + id: this.id, + dependencies: this.dependencies.map(module => module.id), + code: this.code, + originalCode: '', + originalSourcemap: undefined, + ast: this.ast, + sourcemapChain: null, + resolvedIds: this.resolvedIds + }; + } + + traceExport(name: string): Variable { + return new Variable(name); + } + + setSource(bin: Buffer) { + this.code = bin; + this.ast = decode(bin, decoderOpts); + } +} diff --git a/src/rollup/index.ts b/src/rollup/index.ts index c5f88b60f5d..892f5e034eb 100644 --- a/src/rollup/index.ts +++ b/src/rollup/index.ts @@ -1,5 +1,5 @@ import { getTimings, initialiseTimers, timeEnd, timeStart } from '../utils/timers'; -import { basename } from '../utils/path'; +import { basename, extname } from '../utils/path'; import { writeFile } from '../utils/fs'; import { mapSequence } from '../utils/promise'; import error from '../utils/error'; @@ -238,6 +238,12 @@ export default function rollup( code += `//# ${SOURCEMAPPING_URL}=${url}\n`; } + const wasmModule = modules.find(x => extname(x.id) === '.wasm'); + + if (wasmModule !== undefined) { + promises.push(writeFile('./dist/addTwo.wasm', wasmModule.code)); + } + promises.push(writeFile(file, code)); return ( Promise.all(promises) diff --git a/src/rollup/types.d.ts b/src/rollup/types.d.ts index d4010aaf40f..c407a3c6177 100644 --- a/src/rollup/types.d.ts +++ b/src/rollup/types.d.ts @@ -3,6 +3,10 @@ import * as ESTree from 'estree'; export const VERSION: string; +export interface WebAssemblyJSAst { + Program: object; +} + export interface IdMap { [key: string]: string; } @@ -56,10 +60,10 @@ export interface SourceDescription { export interface ModuleJSON { id: string; dependencies: string[]; - code: string; + code: string | Buffer; originalCode: string; originalSourcemap: RawSourceMap | void; - ast: ESTree.Program; + ast: ESTree.Program | WebAssemblyJSAst.Program; sourcemapChain: RawSourceMap[]; resolvedIds: IdMap; } From 5297d6c00f6a6441b451a48ee6c99c767a40ba24 Mon Sep 17 00:00:00 2001 From: Sven SAULEAU Date: Fri, 6 Apr 2018 21:44:05 +0200 Subject: [PATCH 2/9] fix: resolution --- src/Chunk.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Chunk.ts b/src/Chunk.ts index 63429fc4a10..7108b4cf119 100644 --- a/src/Chunk.ts +++ b/src/Chunk.ts @@ -452,6 +452,9 @@ export default class Chunk { } else if (resolution instanceof ExternalModule) { node.setResolution(true); // AST Node -> source replacement + } else if (resolution instanceof WasmModule) { + // refer to the entrypoint of the module which is our loader + node.setResolution(false, resolution.basename()); } else { node.setResolution(false); } @@ -480,7 +483,7 @@ export default class Chunk { node.renderFinalResolution(code, `"${resolution.id}"`); // AST Node -> source replacement } else if (resolution instanceof WasmModule) { - node.renderFinalResolution(code, `"${resolution.id}"`); + // do nothing } else { node.renderFinalResolution(code, resolution); } From 2f154caba0e1e2c5d58a197244abb01af90f52d5 Mon Sep 17 00:00:00 2001 From: Sven SAULEAU Date: Fri, 6 Apr 2018 21:44:19 +0200 Subject: [PATCH 3/9] feat: allow multiple modules --- src/WasmModule.ts | 17 ++++++++++++----- src/rollup/index.ts | 10 ++++++---- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/WasmModule.ts b/src/WasmModule.ts index ebbe25f6e5c..5adc4f68abc 100644 --- a/src/WasmModule.ts +++ b/src/WasmModule.ts @@ -20,7 +20,8 @@ const decoderOpts = { ignoreDataSection: true }; -const buildLoader = ({ URL, IMPORT_OBJECT }) => ` +const buildLoader = ({ NAME, URL, IMPORT_OBJECT }) => ` + // function then$${NAME}(resolve) { function then(resolve) { if (typeof WebAssembly.instantiateStreaming !== 'function') { throw new Error('WebAssembly.instantiateStreaming is not supported'); @@ -42,7 +43,6 @@ const buildLoader = ({ URL, IMPORT_OBJECT }) => ` export interface ExportDescription { localName: string; - identifier?: string; } export interface ImportDescription { @@ -101,15 +101,22 @@ export default class WasmModule { this.scope = new ModuleScope(this); - // expose Thenable + // expose Thenable which is the entry point of our loader + // this.exports['then$' + this.basename()] = { this.exports.then = { localName: 'then' }; + + // FIXME(sven): a different then allows multiple wasm modules to be load + // in the same chunk (avoids collision). I need to figure out how to + // have an object like {then: then$foo} as the export; } render(options: RenderOptions) { - const URL = 'foo'; - const content = buildLoader({ URL }); + const NAME = this.basename(); + const URL = `/dist/${NAME}.wasm`; + + const content = buildLoader({ URL, NAME }); return { trim() {}, content }; } diff --git a/src/rollup/index.ts b/src/rollup/index.ts index 892f5e034eb..9279f29eac4 100644 --- a/src/rollup/index.ts +++ b/src/rollup/index.ts @@ -238,11 +238,13 @@ export default function rollup( code += `//# ${SOURCEMAPPING_URL}=${url}\n`; } - const wasmModule = modules.find(x => extname(x.id) === '.wasm'); + modules.forEach(module => { + const isWasmModule = extname(module.id) === '.wasm'; - if (wasmModule !== undefined) { - promises.push(writeFile('./dist/addTwo.wasm', wasmModule.code)); - } + if (isWasmModule === true) { + promises.push(writeFile(`./dist/${basename(module.id)}`, module.code)); + } + }); promises.push(writeFile(file, code)); return ( From 9791a12e7d281be0229b088612ec34b594fc384b Mon Sep 17 00:00:00 2001 From: Sven SAULEAU Date: Fri, 6 Apr 2018 21:46:17 +0200 Subject: [PATCH 4/9] chore: [skip ci] remove unnecessary change --- src/Graph.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Graph.ts b/src/Graph.ts index ac5be0421a5..f7c570dd9cc 100644 --- a/src/Graph.ts +++ b/src/Graph.ts @@ -749,7 +749,6 @@ Try defining "${chunkName}" first in the manualChunks definitions of the Rollup }; return; } - const alias = nameWithoutExtension(basename(replacement)); if (typeof dynamicImportExpression !== 'string') { module.dynamicImportResolutions[index] = { alias, resolution: replacement }; From 4602b1b2785bd431fccac6a53487236151302c96 Mon Sep 17 00:00:00 2001 From: Sven SAULEAU Date: Fri, 6 Apr 2018 22:22:18 +0200 Subject: [PATCH 5/9] fix: @webassemblyjs/ast typing --- src/WasmModule.ts | 4 ++-- src/rollup/types.d.ts | 7 ++----- typings/WebAssemblyjs.d.ts | 3 +++ 3 files changed, 7 insertions(+), 7 deletions(-) create mode 100644 typings/WebAssemblyjs.d.ts diff --git a/src/WasmModule.ts b/src/WasmModule.ts index 5adc4f68abc..5bf5e585e22 100644 --- a/src/WasmModule.ts +++ b/src/WasmModule.ts @@ -2,7 +2,7 @@ import { decode } from '@webassemblyjs/wasm-parser'; import ast from '@webassemblyjs/ast'; import Graph from './Graph'; -import { IdMap, ModuleJSON, WebAssemblyJSAst } from './rollup/types'; +import { IdMap, ModuleJSON } from './rollup/types'; import { makeLegal } from './utils/identifierHelpers'; import { RenderOptions } from './utils/renderHelpers'; @@ -58,7 +58,7 @@ export default class WasmModule { scope: ModuleScope; - ast: WebAssemblyJSAst.Program; + ast: ast.Program; sources: string[]; resolvedIds: IdMap; diff --git a/src/rollup/types.d.ts b/src/rollup/types.d.ts index c407a3c6177..5150d50dbcf 100644 --- a/src/rollup/types.d.ts +++ b/src/rollup/types.d.ts @@ -1,12 +1,9 @@ import { EventEmitter } from 'events'; import * as ESTree from 'estree'; +import WebAssemblyJsAst from '@webassemblyjs/ast'; export const VERSION: string; -export interface WebAssemblyJSAst { - Program: object; -} - export interface IdMap { [key: string]: string; } @@ -63,7 +60,7 @@ export interface ModuleJSON { code: string | Buffer; originalCode: string; originalSourcemap: RawSourceMap | void; - ast: ESTree.Program | WebAssemblyJSAst.Program; + ast: ESTree.Program | WebAssemblyJsAst.Program; sourcemapChain: RawSourceMap[]; resolvedIds: IdMap; } diff --git a/typings/WebAssemblyjs.d.ts b/typings/WebAssemblyjs.d.ts new file mode 100644 index 00000000000..597896ed1d5 --- /dev/null +++ b/typings/WebAssemblyjs.d.ts @@ -0,0 +1,3 @@ +declare module '@webassemblyjs/ast' { + export type Program = object; +} From f0153433e05672a27f7d7f7c9ed1fab63cd33f7d Mon Sep 17 00:00:00 2001 From: Sven SAULEAU Date: Tue, 10 Apr 2018 12:20:41 +0200 Subject: [PATCH 6/9] fix: few typing issues --- src/Chunk.ts | 6 ++--- src/Module.ts | 1 + src/WasmModule.ts | 48 +++++++++++++++++++++----------------- src/rollup/index.ts | 2 +- typings/WebAssemblyjs.d.ts | 5 ++++ 5 files changed, 37 insertions(+), 25 deletions(-) diff --git a/src/Chunk.ts b/src/Chunk.ts index 7108b4cf119..585632f558e 100644 --- a/src/Chunk.ts +++ b/src/Chunk.ts @@ -279,7 +279,7 @@ export default class Chunk { } } - private traceImport(exportName: string, module: Module | ExternalModule) { + private traceImport(exportName: string, module: Module | WasmModule | ExternalModule) { const traced = this.traceExport(exportName, module); // ignore imports to modules already in this chunk @@ -318,10 +318,10 @@ export default class Chunk { // either in this chunk or in another traceExport( name: string, - module: Module | ExternalModule + module: Module | WasmModule | ExternalModule ): { variable: Variable; - module: Module | ExternalModule; + module: Module | WasmModule | ExternalModule; } { if (name === '*' || module instanceof ExternalModule) { return { variable: module.traceExport(name), module }; diff --git a/src/Module.ts b/src/Module.ts index 2e8cea82e34..72833c138d1 100644 --- a/src/Module.ts +++ b/src/Module.ts @@ -29,6 +29,7 @@ import ImportDefaultSpecifier from './ast/nodes/ImportDefaultSpecifier'; import ImportNamespaceSpecifier from './ast/nodes/ImportNamespaceSpecifier'; import { RollupWarning, ModuleJSON, IdMap, RollupError } from './rollup/types'; import ExternalModule from './ExternalModule'; +import WasmModule from './WasmModule'; import ExternalVariable from './ast/variables/ExternalVariable'; import Import from './ast/nodes/Import'; import { NodeType } from './ast/nodes/index'; diff --git a/src/WasmModule.ts b/src/WasmModule.ts index 5bf5e585e22..f5b2538daae 100644 --- a/src/WasmModule.ts +++ b/src/WasmModule.ts @@ -5,7 +5,6 @@ import Graph from './Graph'; import { IdMap, ModuleJSON } from './rollup/types'; import { makeLegal } from './utils/identifierHelpers'; -import { RenderOptions } from './utils/renderHelpers'; import { basename, extname } from './utils/path'; import ExternalModule from './ExternalModule'; @@ -20,7 +19,13 @@ const decoderOpts = { ignoreDataSection: true }; -const buildLoader = ({ NAME, URL, IMPORT_OBJECT }) => ` +type BuildLoadArgs = { + NAME: string; + URL: string; + IMPORT_OBJECT?: string; +}; + +const buildLoader = ({ NAME, URL, IMPORT_OBJECT }: BuildLoadArgs) => ` // function then$${NAME}(resolve) { function then(resolve) { if (typeof WebAssembly.instantiateStreaming !== 'function') { @@ -52,6 +57,8 @@ export interface ImportDescription { } export default class WasmModule { + type: 'WasmModule'; + id: string; graph: Graph; code: Buffer; @@ -99,7 +106,7 @@ export default class WasmModule { this.sources = []; this.dependencies = []; - this.scope = new ModuleScope(this); + this.scope = new ModuleScope(this); // expose Thenable which is the entry point of our loader // this.exports['then$' + this.basename()] = { @@ -112,7 +119,7 @@ export default class WasmModule { // have an object like {then: then$foo} as the export; } - render(options: RenderOptions) { + render() { const NAME = this.basename(); const URL = `/dist/${NAME}.wasm`; @@ -131,7 +138,7 @@ export default class WasmModule { // TODO(sven): what is this? namespace(): NamespaceVariable { if (!this.declarations['*']) { - this.declarations['*'] = new NamespaceVariable(this); + this.declarations['*'] = new NamespaceVariable(this); } return this.declarations['*']; @@ -148,7 +155,7 @@ export default class WasmModule { return Object.keys(this.exports); } - getReexports() { + getReexports(): any[] { return []; } @@ -157,21 +164,20 @@ export default class WasmModule { } linkDependencies() { - const { imports, exports } = this; - - ast.traverse(this.ast, { - // ModuleImport({node}: any) { - // const source = node.module - // const name = node.name; - // imports[`${source}.${name}`] = { source, name, module: null }; - // }, - // ModuleExport({node}: any) { - // const name = node.name; - // exports[name] = { - // localName: name - // }; - // } - }); + // const { imports, exports } = this; + // ast.traverse(this.ast, { + // ModuleImport({node}: any) { + // const source = node.module + // const name = node.name; + // imports[`${source}.${name}`] = { source, name, module: this }; + // }, + // ModuleExport({node}: any) { + // const name = node.name; + // exports[name] = { + // localName: name + // }; + // } + // }); } bindReferences() {} diff --git a/src/rollup/index.ts b/src/rollup/index.ts index 9279f29eac4..91d7f279855 100644 --- a/src/rollup/index.ts +++ b/src/rollup/index.ts @@ -223,7 +223,7 @@ export default function rollup( const file = outputOptions.file; let { code, map } = result; - const promises = []; + const promises: Promise[] = []; if (outputOptions.sourcemap) { let url; diff --git a/typings/WebAssemblyjs.d.ts b/typings/WebAssemblyjs.d.ts index 597896ed1d5..c24aa5aa5e4 100644 --- a/typings/WebAssemblyjs.d.ts +++ b/typings/WebAssemblyjs.d.ts @@ -1,3 +1,8 @@ declare module '@webassemblyjs/ast' { export type Program = object; + export function traverse(Program, object); +} + +declare module '@webassemblyjs/wasm-parser' { + export function decode(Buffer, object): Program; } From f34980bdb6107247bd107c25d1711346019b9661 Mon Sep 17 00:00:00 2001 From: Sven SAULEAU Date: Fri, 13 Apr 2018 19:41:01 +0200 Subject: [PATCH 7/9] chore: bump webassemblyjs --- package-lock.json | 1610 ++++++++++----------------------------------- package.json | 4 +- 2 files changed, 342 insertions(+), 1272 deletions(-) diff --git a/package-lock.json b/package-lock.json index fc23f9a0ab8..c2927ea7b62 100644 --- a/package-lock.json +++ b/package-lock.json @@ -71,6 +71,81 @@ "integrity": "sha512-6q4kUTCllNWcwUlcR4mt/qwjZw8vVZ053VWvuen1mjEKWEmLt26d8IoczzbRQ5OWe4WmqbWzd/+PzMLSJOBadw==", "dev": true }, + "@webassemblyjs/ast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.2.5.tgz", + "integrity": "sha512-UWV2wuLcD6fBgAqXiiQ8TmiOJrCXrLJfjtC+woigwgBhqxYmz+2TB80ML/433P6aYWO6AjVGVKh4OK54b18jaw==", + "requires": { + "@webassemblyjs/wast-parser": "1.2.5", + "webassemblyjs": "1.2.5" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.2.5.tgz", + "integrity": "sha512-SvBkqnmsdBrgXvqoxSh96pEydgg+sClav9mVMpb1aa+IATW/W1RhEgSE+fWs0EEEdO5GAB/EtP7w9OY5F4/nyA==" + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.2.5.tgz", + "integrity": "sha512-xKp2lgjkOSOXUlvQmASGVcvUtK9CbuC0etXIW+FlgquJytbYFJB/vsETVtPBEO832Tm0K0dia40cTCUxmJNuKQ==", + "requires": { + "@webassemblyjs/wast-printer": "1.2.5" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.2.5.tgz", + "integrity": "sha512-08rnH94w1XTe4xKzrJtUvtimi5Uj2CMXWmFv41rguUJXSpB4cQnwE1XtHh4hGmNG/xYqSHqw0PUz4MJT5fjHSA==" + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.2.5.tgz", + "integrity": "sha512-NX8T1Ku8YLPk0Ogdj8C7C7vho3h49JMowPEd6OyAo71yla4FI0apNOABosPw7xCzbzku4eQ+fY8L6p4zPEivxw==" + }, + "@webassemblyjs/leb128": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.2.5.tgz", + "integrity": "sha512-dkMx8YBCAemUKz/+QI+1Zy68xZ5HpSbtHYZIpsvDCeQ3KYbeccwhSwS3eGb/BHBaOLqzwYm4Jgile9cuX5x+uQ==", + "requires": { + "leb": "0.3.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.2.5.tgz", + "integrity": "sha512-Py16sqUEf2EH0drgM3+MpomE+zsuhnIA/DfY2Pqcd0DxHVf/xnJlzCBO0+pqC3K8QUtUWtzaXyWjRFlMQaoUbg==", + "requires": { + "@webassemblyjs/ast": "1.2.5", + "@webassemblyjs/helper-wasm-bytecode": "1.2.5", + "@webassemblyjs/leb128": "1.2.5", + "@webassemblyjs/wasm-parser": "1.2.5", + "webassemblyjs": "1.2.5" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.2.5.tgz", + "integrity": "sha512-DsYXAVvm+k7s+OLI0d2IcsSYKwTiA5Yp0585yTIwU8ozJO25LbPJZTeXtPaR49ySntkIDsTebk/pgIglL62Nww==", + "requires": { + "@webassemblyjs/ast": "1.2.5", + "@webassemblyjs/floating-point-hex-parser": "1.2.5", + "@webassemblyjs/helper-code-frame": "1.2.5", + "@webassemblyjs/helper-fsm": "1.2.5", + "long": "3.2.0", + "webassemblyjs": "1.2.5" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.2.5.tgz", + "integrity": "sha512-n7HqjhX9kjtDnuKQTC2+58Wp9O4o5bHjvsZSnXlc4yqtdhvyIGF9rGVgwQ51+LjrZSDFVIENTSAASAA1h9EkkQ==", + "requires": { + "@webassemblyjs/ast": "1.2.5", + "@webassemblyjs/wast-parser": "1.2.5", + "long": "3.2.0" + } + }, "abab": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", @@ -757,7 +832,6 @@ "requires": { "anymatch": "1.3.2", "async-each": "1.0.1", - "fsevents": "1.1.3", "glob-parent": "2.0.0", "inherits": "2.0.3", "is-binary-path": "1.0.1", @@ -1650,1275 +1724,257 @@ }, "exit-hook": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", - "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", - "dev": true - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "0.1.1" - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true, - "requires": { - "fill-range": "2.2.3" - } - }, - "expect": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/expect/-/expect-22.4.3.tgz", - "integrity": "sha512-XcNXEPehqn8b/jm8FYotdX0YrXn36qp4HWlrVT4ktwQas1l1LPxiVWncYnnL2eyMtKAmVIaG0XAp0QlrqJaxaA==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "jest-diff": "22.4.3", - "jest-get-type": "22.4.3", - "jest-matcher-utils": "22.4.3", - "jest-message-util": "22.4.3", - "jest-regex-util": "22.4.3" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - } - } - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", - "dev": true - }, - "extend-shallow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", - "dev": true, - "requires": { - "kind-of": "1.1.0" - }, - "dependencies": { - "kind-of": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", - "dev": true - } - } - }, - "external-editor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz", - "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==", - "dev": true, - "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.19", - "tmp": "0.0.33" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fast-deep-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", - "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "1.0.5" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true, - "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" - } - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, - "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", - "dev": true, - "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" - } - }, - "find-parent-dir": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.0.tgz", - "integrity": "sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=", - "dev": true - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - }, - "fixturify": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/fixturify/-/fixturify-0.3.4.tgz", - "integrity": "sha512-Gx+KSB25b6gMc4bf7UFRTA85uE0iZR+RYur0JHh6dg4AGBh0EksOv4FCHyM7XpGmiJO7Bc7oV7vxENQBT+2WEQ==", - "dev": true, - "requires": { - "fs-extra": "0.30.0", - "matcher-collection": "1.0.5" - } - }, - "flat-cache": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", - "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", - "dev": true, - "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "requires": { - "for-in": "1.0.2" - } - }, - "forever-agent": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz", - "integrity": "sha1-bQ4JxJIflKJ/Y9O0nF/v8epMUTA=", - "dev": true - }, - "form-data": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz", - "integrity": "sha1-kavXiKupcCsaq/qLwBAxoqyeOxI=", - "dev": true, - "optional": true, - "requires": { - "async": "0.9.2", - "combined-stream": "0.0.7", - "mime": "1.2.11" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "0.2.2" - } - }, - "fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "2.4.0", - "klaw": "1.3.1", - "path-is-absolute": "1.0.1", - "rimraf": "2.6.2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", - "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", - "dev": true, - "optional": true, - "requires": { - "nan": "2.8.0", - "node-pre-gyp": "0.6.39" - }, - "dependencies": { - "abbrev": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", - "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", - "dev": true, - "optional": true - }, - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "dev": true, - "optional": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "aproba": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", - "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", - "dev": true, - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" - } - }, - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "dev": true, - "optional": true - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "dev": true, - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true, - "optional": true - }, - "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", - "dev": true, - "optional": true - }, - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, - "brace-expansion": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", - "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", - "dev": true, - "requires": { - "balanced-match": "0.4.2", - "concat-map": "0.0.1" - } - }, - "buffer-shims": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true, - "optional": true - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", - "dev": true, - "requires": { - "delayed-stream": "1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true, - "requires": { - "boom": "2.10.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true - } - } - }, - "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", - "dev": true, - "optional": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz", - "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=", - "dev": true, - "optional": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", - "dev": true, - "optional": true - }, - "extsprintf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "optional": true - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true, - "optional": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", - "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", - "dev": true, - "optional": true, - "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" - } - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "optional": true, - "requires": { - "aproba": "1.1.1", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true - } - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", - "dev": true, - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "dev": true, - "optional": true, - "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true, - "optional": true - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true, - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "dev": true - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ini": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true, - "optional": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true, - "optional": true - }, - "jodid25519": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true, - "optional": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "optional": true, - "requires": { - "jsonify": "0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true, - "optional": true - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true, - "optional": true - }, - "jsprim": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true - } - } - }, - "mime-db": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", - "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=", - "dev": true - }, - "mime-types": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", - "dev": true, - "requires": { - "mime-db": "1.27.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true - }, - "node-pre-gyp": { - "version": "0.6.39", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", - "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", - "dev": true, - "optional": true, - "requires": { - "detect-libc": "1.0.2", - "hawk": "3.1.3", - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", - "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" - } - }, - "nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "dev": true, - "optional": true, - "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" - } - }, - "npmlog": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", - "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", - "dev": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true, - "optional": true - }, - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", - "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", - "dev": true, - "optional": true, - "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", - "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", - "dev": true, - "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" - } - }, - "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "dev": true, - "optional": true, - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.1" - } - }, - "rimraf": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", - "dev": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", - "dev": true - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true, - "optional": true - }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, - "sshpk": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", - "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", - "dev": true, - "optional": true, - "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true - } - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", - "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", - "dev": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", - "dev": true, - "optional": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "optional": true - }, - "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - }, - "tar-pack": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", - "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", - "dev": true, - "optional": true, - "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" - } - }, - "tough-cookie": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", - "dev": true, - "optional": true, - "requires": { - "punycode": "1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", - "dev": true, - "optional": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", - "dev": true, - "optional": true - }, - "verror": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", - "dev": true, - "optional": true, - "requires": { - "extsprintf": "1.0.2" - } - }, - "wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "2.2.3" + } + }, + "expect": { + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/expect/-/expect-22.4.3.tgz", + "integrity": "sha512-XcNXEPehqn8b/jm8FYotdX0YrXn36qp4HWlrVT4ktwQas1l1LPxiVWncYnnL2eyMtKAmVIaG0XAp0QlrqJaxaA==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "jest-diff": "22.4.3", + "jest-get-type": "22.4.3", + "jest-matcher-utils": "22.4.3", + "jest-message-util": "22.4.3", + "jest-regex-util": "22.4.3" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "optional": true, "requires": { - "string-width": "1.0.2" + "color-convert": "1.9.1" } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + } + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true + }, + "extend-shallow": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", + "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", + "dev": true, + "requires": { + "kind-of": "1.1.0" + }, + "dependencies": { + "kind-of": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", + "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", "dev": true } } }, + "external-editor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz", + "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==", + "dev": true, + "requires": { + "chardet": "0.4.2", + "iconv-lite": "0.4.19", + "tmp": "0.0.33" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "1.3.0", + "object-assign": "4.1.1" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true, + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + } + }, + "find-parent-dir": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.0.tgz", + "integrity": "sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=", + "dev": true + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "fixturify": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/fixturify/-/fixturify-0.3.4.tgz", + "integrity": "sha512-Gx+KSB25b6gMc4bf7UFRTA85uE0iZR+RYur0JHh6dg4AGBh0EksOv4FCHyM7XpGmiJO7Bc7oV7vxENQBT+2WEQ==", + "dev": true, + "requires": { + "fs-extra": "0.30.0", + "matcher-collection": "1.0.5" + } + }, + "flat-cache": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "dev": true, + "requires": { + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "1.0.2" + } + }, + "forever-agent": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz", + "integrity": "sha1-bQ4JxJIflKJ/Y9O0nF/v8epMUTA=", + "dev": true + }, + "form-data": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz", + "integrity": "sha1-kavXiKupcCsaq/qLwBAxoqyeOxI=", + "dev": true, + "optional": true, + "requires": { + "async": "0.9.2", + "combined-stream": "0.0.7", + "mime": "1.2.11" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1", + "path-is-absolute": "1.0.1", + "rimraf": "2.6.2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -4300,6 +3356,11 @@ "dev": true, "optional": true }, + "leb": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/leb/-/leb-0.3.0.tgz", + "integrity": "sha1-Mr7p+tFoMo1q6oUi2DP0GA7tHaM=" + }, "left-pad": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.2.0.tgz", @@ -4970,6 +4031,11 @@ } } }, + "long": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", + "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=" + }, "longest": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", @@ -5177,13 +4243,6 @@ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, - "nan": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", - "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", - "dev": true, - "optional": true - }, "nanomatch": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", @@ -7694,6 +6753,17 @@ "browser-process-hrtime": "0.1.2" } }, + "webassemblyjs": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/webassemblyjs/-/webassemblyjs-1.2.5.tgz", + "integrity": "sha512-sx7KGwGk2AfPuxq/dZHx23np3YMYPbGPxbhRSxHhCTC4e6o+PDImLSclQt+u3EvxlQz6I1k5clTSGLbJK/VTFQ==", + "requires": { + "@webassemblyjs/ast": "1.2.5", + "@webassemblyjs/wasm-parser": "1.2.5", + "@webassemblyjs/wast-parser": "1.2.5", + "long": "3.2.0" + } + }, "webidl-conversions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", diff --git a/package.json b/package.json index 6a561e9bc57..c56d82f32cd 100644 --- a/package.json +++ b/package.json @@ -54,8 +54,8 @@ "dependencies": { "@types/estree": "0.0.38", "@types/node": "*", - "@webassemblyjs/ast": "^1.2.2", - "@webassemblyjs/wasm-parser": "^1.2.2" + "@webassemblyjs/ast": "^1.2.5", + "@webassemblyjs/wasm-parser": "^1.2.5" }, "devDependencies": { "acorn": "^5.5.3", From 5caf6483dc6d1aada09f6f6c10ddebca4bb977de Mon Sep 17 00:00:00 2001 From: Sven SAULEAU Date: Fri, 13 Apr 2018 19:41:35 +0200 Subject: [PATCH 8/9] feat: attempt at adding tests --- src/WasmModule.ts | 58 +++++++++++++++++++------ test/function/samples/wasm/_config.js | 14 ++++++ test/function/samples/wasm/addTwo.wasm | Bin 0 -> 44 bytes test/function/samples/wasm/main.js | 1 + 4 files changed, 59 insertions(+), 14 deletions(-) create mode 100644 test/function/samples/wasm/_config.js create mode 100644 test/function/samples/wasm/addTwo.wasm create mode 100644 test/function/samples/wasm/main.js diff --git a/src/WasmModule.ts b/src/WasmModule.ts index f5b2538daae..7d2661bfe88 100644 --- a/src/WasmModule.ts +++ b/src/WasmModule.ts @@ -25,24 +25,54 @@ type BuildLoadArgs = { IMPORT_OBJECT?: string; }; +// FIXME(sven): uncommented the loader you need for your current env +// how to get the env? + +const generateLoadBinaryCode = (url: string) => `fetch("${url}")`; + +// const generateLoadBinaryCode = (path: string) => +// `new Promise(function (resolve, reject) { +// var {readFile} = require("fs"); +// var {join} = require("path"); + +// try { +// readFile(join(__dirname, "${path}"), function(err, buffer) { +// if (err) return reject(err); + +// // Fake fetch response +// resolve({ +// arrayBuffer() { +// return Promise.resolve(buffer); +// } +// }); +// }); +// } catch (err) { +// reject(err); +// } +// }); +// `; + const buildLoader = ({ NAME, URL, IMPORT_OBJECT }: BuildLoadArgs) => ` // function then$${NAME}(resolve) { function then(resolve) { - if (typeof WebAssembly.instantiateStreaming !== 'function') { - throw new Error('WebAssembly.instantiateStreaming is not supported'); - } - - if (typeof window.fetch !== 'function') { - throw new Error('window.fetch is not supported'); + const req = ${generateLoadBinaryCode(URL)}; + + if (typeof WebAssembly.instantiateStreaming === 'function') { + WebAssembly + .instantiateStreaming(req, ${IMPORT_OBJECT || '{}'}) + .then(res => res.instance.exports) + .then(resolve) + .catch(resolve); + } else { + req + .then(x => x.arrayBuffer()) + .then(function(bytes) { + return WebAssembly.instantiate(bytes, ${IMPORT_OBJECT || '{}'}); + }) + .then(res => res.instance.exports) + .then(resolve) + .catch(resolve); } - - const req = window.fetch('${URL}'); - - WebAssembly - .instantiateStreaming(req, ${IMPORT_OBJECT || '{}'}) - .then(res => res.instance.exports) - .then(resolve) - .catch(resolve); } `; diff --git a/test/function/samples/wasm/_config.js b/test/function/samples/wasm/_config.js new file mode 100644 index 00000000000..7f5f9a6026f --- /dev/null +++ b/test/function/samples/wasm/_config.js @@ -0,0 +1,14 @@ +var assert = require('assert'); +var path = require('path'); + +module.exports = { + description: 'wasm dynamic import', + skip: typeof WebAssembly === undefined, + // FIXME(sven): doesn't seem to skip + options: { + experimentalDynamicImport: true + }, + exports: function(exports) { + exports.res.then(x => console.log(x)); + } +}; diff --git a/test/function/samples/wasm/addTwo.wasm b/test/function/samples/wasm/addTwo.wasm new file mode 100644 index 0000000000000000000000000000000000000000..8b19588df228b76c6747d04aee091cbe268592d0 GIT binary patch literal 44 zcmZQbEY4+QU|?WmXG~zKuV<`hW@2Pu=VD|_Oi2kT&u3uZ;$&oJP+(AC%;E+BoDK$l literal 0 HcmV?d00001 diff --git a/test/function/samples/wasm/main.js b/test/function/samples/wasm/main.js new file mode 100644 index 00000000000..cf146147e9c --- /dev/null +++ b/test/function/samples/wasm/main.js @@ -0,0 +1 @@ +export const res = import("./addTwo.wasm"); From 0dcf8908f23cc5ac29267a6a76004355b82d907a Mon Sep 17 00:00:00 2001 From: Sven SAULEAU Date: Mon, 30 Apr 2018 17:09:09 +0200 Subject: [PATCH 9/9] chore: bump webassemblyjs --- package-lock.json | 109 +++++++++++++++++++++++++--------------------- package.json | 4 +- 2 files changed, 61 insertions(+), 52 deletions(-) diff --git a/package-lock.json b/package-lock.json index c2927ea7b62..ad7e15350f0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -72,77 +72,85 @@ "dev": true }, "@webassemblyjs/ast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.2.5.tgz", - "integrity": "sha512-UWV2wuLcD6fBgAqXiiQ8TmiOJrCXrLJfjtC+woigwgBhqxYmz+2TB80ML/433P6aYWO6AjVGVKh4OK54b18jaw==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.2.7.tgz", + "integrity": "sha512-J8UmVIThb4wadSkrYAjPJ6d9vCJeJN+f2bDiKr2AhuQMJJw+T0cD6ZWpnw6hnmGbQ9fI494qNOXKguTeJy8yhQ==", "requires": { - "@webassemblyjs/wast-parser": "1.2.5", - "webassemblyjs": "1.2.5" + "@webassemblyjs/wast-parser": "1.2.7", + "webassemblyjs": "1.2.7" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.2.5.tgz", - "integrity": "sha512-SvBkqnmsdBrgXvqoxSh96pEydgg+sClav9mVMpb1aa+IATW/W1RhEgSE+fWs0EEEdO5GAB/EtP7w9OY5F4/nyA==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.2.7.tgz", + "integrity": "sha512-CG6lCtgmpuV9k5yaARiZV4KVs+5B2FY6BZTZiX0ykI7q6rvyT373nXYW4Qkp1BLNBW/knI0UVCiFnu8AyAA7QA==" }, "@webassemblyjs/helper-code-frame": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.2.5.tgz", - "integrity": "sha512-xKp2lgjkOSOXUlvQmASGVcvUtK9CbuC0etXIW+FlgquJytbYFJB/vsETVtPBEO832Tm0K0dia40cTCUxmJNuKQ==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.2.7.tgz", + "integrity": "sha512-rTs39EhgkrVuq0rqACYFjXOVGfnAVUm9ghquJgnV4BqqIEvm11E2Ji5VxDOp1p5GdrrxcKo8GPVjsu9QP9pivQ==", "requires": { - "@webassemblyjs/wast-printer": "1.2.5" + "@webassemblyjs/wast-printer": "1.2.7" } }, "@webassemblyjs/helper-fsm": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.2.5.tgz", - "integrity": "sha512-08rnH94w1XTe4xKzrJtUvtimi5Uj2CMXWmFv41rguUJXSpB4cQnwE1XtHh4hGmNG/xYqSHqw0PUz4MJT5fjHSA==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.2.7.tgz", + "integrity": "sha512-RBmY6Hg/lwbBUPlYNMZP71cinhUhcpRdu0KIoUFvNAyJwVrJU8LxJ9BRtE+ikUS3F/qqmop+47emQhU5MA7m3g==" }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.2.5.tgz", - "integrity": "sha512-NX8T1Ku8YLPk0Ogdj8C7C7vho3h49JMowPEd6OyAo71yla4FI0apNOABosPw7xCzbzku4eQ+fY8L6p4zPEivxw==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.2.7.tgz", + "integrity": "sha512-aqDTQexHQo4W0PuqPqRReXedqQcbS7ur0aCxaVdij4FMOPROl7pZyjyUQW0fO5IjTEbszfMvwxbIv2Aux1tk9w==" }, "@webassemblyjs/leb128": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.2.5.tgz", - "integrity": "sha512-dkMx8YBCAemUKz/+QI+1Zy68xZ5HpSbtHYZIpsvDCeQ3KYbeccwhSwS3eGb/BHBaOLqzwYm4Jgile9cuX5x+uQ==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.2.7.tgz", + "integrity": "sha512-kXgA+OUH+2KQ+GDp06zGKbMT0TaT+UaC8kTepD5lHg+NI8CNjCydlVZH7jq1I114Xqo7sG7Zsx+UEtzLux4IpQ==", "requires": { "leb": "0.3.0" } }, + "@webassemblyjs/validation": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@webassemblyjs/validation/-/validation-1.2.7.tgz", + "integrity": "sha512-osCCydI3JZrZm+H2jKR+b4HPjKpRORTSib1OeBUT+qA5diwYJQvunYAFeqaAHBnPRDVo6ILyzYkGt1HLC3akgQ==", + "requires": { + "@webassemblyjs/ast": "1.2.7" + } + }, "@webassemblyjs/wasm-parser": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.2.5.tgz", - "integrity": "sha512-Py16sqUEf2EH0drgM3+MpomE+zsuhnIA/DfY2Pqcd0DxHVf/xnJlzCBO0+pqC3K8QUtUWtzaXyWjRFlMQaoUbg==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.2.7.tgz", + "integrity": "sha512-Z1+3sHz2o76bfdhfgXvI5khPSZdJtSsyfjIiQ9QE26s3nlPh6DyIFx9s6c3gyKGvI8xCal6MzLJC5yDPYH/XFg==", "requires": { - "@webassemblyjs/ast": "1.2.5", - "@webassemblyjs/helper-wasm-bytecode": "1.2.5", - "@webassemblyjs/leb128": "1.2.5", - "@webassemblyjs/wasm-parser": "1.2.5", - "webassemblyjs": "1.2.5" + "@webassemblyjs/ast": "1.2.7", + "@webassemblyjs/helper-wasm-bytecode": "1.2.7", + "@webassemblyjs/leb128": "1.2.7", + "@webassemblyjs/wasm-parser": "1.2.7", + "webassemblyjs": "1.2.7" } }, "@webassemblyjs/wast-parser": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.2.5.tgz", - "integrity": "sha512-DsYXAVvm+k7s+OLI0d2IcsSYKwTiA5Yp0585yTIwU8ozJO25LbPJZTeXtPaR49ySntkIDsTebk/pgIglL62Nww==", - "requires": { - "@webassemblyjs/ast": "1.2.5", - "@webassemblyjs/floating-point-hex-parser": "1.2.5", - "@webassemblyjs/helper-code-frame": "1.2.5", - "@webassemblyjs/helper-fsm": "1.2.5", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.2.7.tgz", + "integrity": "sha512-GUD/w7PJU0+2V6qNxu8Vrzk07GPaBi4r2dp2qtzx8sMObZfS+G+GcBZNFLaozTXj56Iq+6tzhcJixj0pppFK6g==", + "requires": { + "@webassemblyjs/ast": "1.2.7", + "@webassemblyjs/floating-point-hex-parser": "1.2.7", + "@webassemblyjs/helper-code-frame": "1.2.7", + "@webassemblyjs/helper-fsm": "1.2.7", "long": "3.2.0", - "webassemblyjs": "1.2.5" + "webassemblyjs": "1.2.7" } }, "@webassemblyjs/wast-printer": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.2.5.tgz", - "integrity": "sha512-n7HqjhX9kjtDnuKQTC2+58Wp9O4o5bHjvsZSnXlc4yqtdhvyIGF9rGVgwQ51+LjrZSDFVIENTSAASAA1h9EkkQ==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.2.7.tgz", + "integrity": "sha512-nCGZDwTGa/hkZssDf7BpFIhlYL8KsSG3mxKo+2y0PD4DbrsgXxRMuoeCnmkRgoFkSZlRqlC5BUxQamzJeyIIsg==", "requires": { - "@webassemblyjs/ast": "1.2.5", - "@webassemblyjs/wast-parser": "1.2.5", + "@webassemblyjs/ast": "1.2.7", + "@webassemblyjs/wast-parser": "1.2.7", "long": "3.2.0" } }, @@ -6754,13 +6762,14 @@ } }, "webassemblyjs": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/webassemblyjs/-/webassemblyjs-1.2.5.tgz", - "integrity": "sha512-sx7KGwGk2AfPuxq/dZHx23np3YMYPbGPxbhRSxHhCTC4e6o+PDImLSclQt+u3EvxlQz6I1k5clTSGLbJK/VTFQ==", - "requires": { - "@webassemblyjs/ast": "1.2.5", - "@webassemblyjs/wasm-parser": "1.2.5", - "@webassemblyjs/wast-parser": "1.2.5", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/webassemblyjs/-/webassemblyjs-1.2.7.tgz", + "integrity": "sha512-S+YhSWEzyD1lcBZPmkaQBG2FEVQnhlwrLPjVr+8tGomQHsGKhWDk9/AzZ5St7xVXoAONq6cHsPe1DnyGMZ1Sdg==", + "requires": { + "@webassemblyjs/ast": "1.2.7", + "@webassemblyjs/validation": "1.2.7", + "@webassemblyjs/wasm-parser": "1.2.7", + "@webassemblyjs/wast-parser": "1.2.7", "long": "3.2.0" } }, diff --git a/package.json b/package.json index c56d82f32cd..f1f0808fb93 100644 --- a/package.json +++ b/package.json @@ -54,8 +54,8 @@ "dependencies": { "@types/estree": "0.0.38", "@types/node": "*", - "@webassemblyjs/ast": "^1.2.5", - "@webassemblyjs/wasm-parser": "^1.2.5" + "@webassemblyjs/ast": "^1.2.7", + "@webassemblyjs/wasm-parser": "^1.2.7" }, "devDependencies": { "acorn": "^5.5.3",