babel-plugin-relay 2.0.0-rc.2 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/babel-plugin-relay.js +2 -2
- package/babel-plugin-relay.min.js +2 -2
- package/index.js +1 -1
- package/lib/BabelPluginRelay.js +33 -10
- package/lib/BabelPluginRelay.macro.js +18 -5
- package/lib/GraphQLRelayDirective.js +6 -4
- package/lib/RelayQLAST.js +82 -52
- package/lib/RelayQLNodeInterface.js +1 -1
- package/lib/RelayQLPrinter.js +61 -43
- package/lib/RelayQLTransformer.js +46 -25
- package/lib/RelayTransformError.js +1 -1
- package/lib/compileGraphQLTag.js +14 -68
- package/lib/compileRelayQLTag.js +6 -4
- package/lib/createClassicNode.js +26 -16
- package/lib/createModernNode.js +16 -9
- package/lib/createTransformError.js +7 -2
- package/lib/getClassicTransformer.js +13 -5
- package/lib/getDocumentName.js +4 -1
- package/lib/getFragmentNameParts.js +1 -1
- package/lib/getSchemaIntrospection.js +22 -5
- package/lib/getValidGraphQLTag.js +3 -2
- package/lib/invariant.js +3 -1
- package/macro.js +1 -1
- package/package.json +3 -3
- package/yarn.lock +0 -87
package/lib/createClassicNode.js
CHANGED
@@ -9,6 +9,16 @@
|
|
9
9
|
*/
|
10
10
|
'use strict';
|
11
11
|
|
12
|
+
var GraphQL = require("graphql");
|
13
|
+
|
14
|
+
var compileRelayQLTag = require("./compileRelayQLTag");
|
15
|
+
|
16
|
+
var getClassicTransformer = require("./getClassicTransformer");
|
17
|
+
|
18
|
+
var getFragmentNameParts = require("./getFragmentNameParts");
|
19
|
+
|
20
|
+
var invariant = require("./invariant");
|
21
|
+
|
12
22
|
/**
|
13
23
|
* Relay Classic transforms to inline generated content.
|
14
24
|
*/
|
@@ -71,6 +81,9 @@ function createClassicAST(t, definition) {
|
|
71
81
|
var visitors = {
|
72
82
|
Directive: function Directive(node) {
|
73
83
|
switch (node.name.value) {
|
84
|
+
case 'inline':
|
85
|
+
throw new Error('@inline is only available in pure RelayModern mode.');
|
86
|
+
|
74
87
|
case 'argumentDefinitions':
|
75
88
|
if (argumentDefinitions) {
|
76
89
|
throw new Error('BabelPluginRelay: Expected only one ' + '@argumentDefinitions directive');
|
@@ -99,10 +112,11 @@ function createClassicAST(t, definition) {
|
|
99
112
|
// TODO: maybe add support when unmasked fragment has arguments.
|
100
113
|
// $FlowFixMe graphql 0.12.2
|
101
114
|
var directive = directives[0];
|
102
|
-
!(directives.length === 1) ? process.env.NODE_ENV !== "production" ?
|
115
|
+
!(directives.length === 1) ? process.env.NODE_ENV !== "production" ? invariant(false, 'BabelPluginRelay: Cannot use both `@arguments` and `@relay(mask: false)` on the ' + 'same fragment spread when in compat mode.') : invariant(false) : void 0;
|
103
116
|
|
104
117
|
switch (directive.name.value) {
|
105
118
|
case 'arguments':
|
119
|
+
case 'uncheckedArguments_DEPRECATED':
|
106
120
|
var fragmentArgumentsObject = {}; // $FlowFixMe graphql 0.12.2
|
107
121
|
|
108
122
|
directive.arguments.forEach(function (argNode) {
|
@@ -124,8 +138,8 @@ function createClassicAST(t, definition) {
|
|
124
138
|
var relayArguments = directive.arguments;
|
125
139
|
!( // $FlowFixMe graphql 0.12.2
|
126
140
|
relayArguments.length === 1 && // $FlowFixMe graphql 0.12.2
|
127
|
-
relayArguments[0].name.value === 'mask') ? process.env.NODE_ENV !== "production" ?
|
128
|
-
relayArguments[0].name.value) :
|
141
|
+
relayArguments[0].name.value === 'mask') ? process.env.NODE_ENV !== "production" ? invariant(false, 'BabelPluginRelay: Expected `@relay` directive to only have `mask` argument in ' + 'compat mode, but get %s', // $FlowFixMe graphql 0.12.2
|
142
|
+
relayArguments[0].name.value) : invariant(false) : void 0;
|
129
143
|
substitutionName = fragmentName; // $FlowFixMe graphql 0.12.2
|
130
144
|
|
131
145
|
isMasked = relayArguments[0].value.value !== false;
|
@@ -136,7 +150,7 @@ function createClassicAST(t, definition) {
|
|
136
150
|
}
|
137
151
|
}
|
138
152
|
|
139
|
-
!substitutionName ? process.env.NODE_ENV !== "production" ?
|
153
|
+
!substitutionName ? process.env.NODE_ENV !== "production" ? invariant(false, 'BabelPluginRelay: Expected `substitutionName` to be non-null') : invariant(false) : void 0;
|
140
154
|
fragments[substitutionName] = {
|
141
155
|
name: fragmentName,
|
142
156
|
args: fragmentArgumentsAST,
|
@@ -155,9 +169,7 @@ function createClassicAST(t, definition) {
|
|
155
169
|
return node;
|
156
170
|
}
|
157
171
|
};
|
158
|
-
|
159
|
-
var classicAST = require("graphql").visit(definition, visitors);
|
160
|
-
|
172
|
+
var classicAST = GraphQL.visit(definition, visitors);
|
161
173
|
return {
|
162
174
|
classicAST: classicAST,
|
163
175
|
fragments: fragments,
|
@@ -281,7 +293,7 @@ function createObject(t, obj) {
|
|
281
293
|
|
282
294
|
function getSchemaOption(state) {
|
283
295
|
var schema = state.opts && state.opts.schema;
|
284
|
-
!schema ? process.env.NODE_ENV !== "production" ?
|
296
|
+
!schema ? process.env.NODE_ENV !== "production" ? invariant(false, 'babel-plugin-relay: Missing schema option. ' + 'Check your .babelrc file or wherever you configure your Babel ' + 'plugins to ensure the "relay" plugin has a "schema" option.\n' + 'https://relay.dev/docs/en/installation-and-setup#set-up-babel-plugin-relay') : invariant(false) : void 0;
|
285
297
|
return schema;
|
286
298
|
}
|
287
299
|
|
@@ -289,8 +301,7 @@ function createFragmentForOperation(t, path, operation, state) {
|
|
289
301
|
var type;
|
290
302
|
var schema = getSchemaOption(state);
|
291
303
|
var fileOpts = state.file && state.file.opts || {};
|
292
|
-
|
293
|
-
var transformer = require("./getClassicTransformer")(schema, state.opts || {}, fileOpts);
|
304
|
+
var transformer = getClassicTransformer(schema, state.opts || {}, fileOpts);
|
294
305
|
|
295
306
|
switch (operation.operation) {
|
296
307
|
case 'query':
|
@@ -350,12 +361,11 @@ function createFragmentForOperation(t, path, operation, state) {
|
|
350
361
|
function createRelayQLTemplate(t, path, node, state) {
|
351
362
|
var schema = getSchemaOption(state);
|
352
363
|
|
353
|
-
var _getFragmentNameParts =
|
364
|
+
var _getFragmentNameParts = getFragmentNameParts(node.name.value),
|
354
365
|
documentName = _getFragmentNameParts[0],
|
355
366
|
propName = _getFragmentNameParts[1];
|
356
367
|
|
357
|
-
var text =
|
358
|
-
|
368
|
+
var text = GraphQL.print(node);
|
359
369
|
var quasi = t.templateLiteral([t.templateElement({
|
360
370
|
raw: text,
|
361
371
|
cooked: text
|
@@ -363,19 +373,19 @@ function createRelayQLTemplate(t, path, node, state) {
|
|
363
373
|
// validated by the RelayCompiler with less strict rules.
|
364
374
|
|
365
375
|
var enableValidation = false;
|
366
|
-
return
|
376
|
+
return compileRelayQLTag(t, path, schema, quasi, documentName, propName, RELAY_QL_GENERATED, enableValidation, state);
|
367
377
|
}
|
368
378
|
|
369
379
|
function createSubstitutionsForFragmentSpreads(t, path, fragments) {
|
370
380
|
return Object.keys(fragments).map(function (varName) {
|
371
381
|
var fragment = fragments[varName];
|
372
382
|
|
373
|
-
var _getFragmentNameParts2 =
|
383
|
+
var _getFragmentNameParts2 = getFragmentNameParts(fragment.name),
|
374
384
|
module = _getFragmentNameParts2[0],
|
375
385
|
propName = _getFragmentNameParts2[1];
|
376
386
|
|
377
387
|
if (!fragment.isMasked) {
|
378
|
-
!(path.scope.hasBinding(module) || path.scope.hasBinding(propName)) ? process.env.NODE_ENV !== "production" ?
|
388
|
+
!(path.scope.hasBinding(module) || path.scope.hasBinding(propName)) ? process.env.NODE_ENV !== "production" ? invariant(false, "BabelPluginRelay: Please make sure module '".concat(module, "' is imported and not renamed or the\n fragment '").concat(fragment.name, "' is defined and bound to local variable '").concat(propName, "'. ")) : invariant(false) : void 0;
|
379
389
|
var fragmentProp = path.scope.hasBinding(propName) ? t.memberExpression(t.identifier(propName), t.identifier(propName)) : t.logicalExpression('||', t.memberExpression(t.memberExpression(t.identifier(module), t.identifier(propName)), t.identifier(propName)), t.memberExpression(t.identifier(module), t.identifier(propName)));
|
380
390
|
return t.variableDeclarator(t.identifier(varName), t.memberExpression(t.callExpression(t.memberExpression(t.identifier(RELAY_QL_GENERATED), t.identifier('__getClassicFragment')), [fragmentProp, t.booleanLiteral(true)]), // Hack to extract 'ConcreteFragment' from 'ConcreteFragmentDefinition'
|
381
391
|
t.identifier('node')));
|
package/lib/createModernNode.js
CHANGED
@@ -9,7 +9,18 @@
|
|
9
9
|
*/
|
10
10
|
'use strict';
|
11
11
|
|
12
|
-
var
|
12
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
13
|
+
|
14
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
15
|
+
|
16
|
+
var crypto = require("crypto");
|
17
|
+
|
18
|
+
var invariant = require("./invariant");
|
19
|
+
|
20
|
+
var path = require("path");
|
21
|
+
|
22
|
+
var _require = require("graphql"),
|
23
|
+
print = _require.print;
|
13
24
|
|
14
25
|
var GENERATED = './__generated__/';
|
15
26
|
|
@@ -26,9 +37,7 @@ function createModernNode(t, graphqlDefinition, state, options) {
|
|
26
37
|
|
27
38
|
var requiredFile = definitionName + '.graphql';
|
28
39
|
var requiredPath = options.isHasteMode ? requiredFile : options.artifactDirectory ? getRelativeImportPath(state, options.artifactDirectory, requiredFile) : GENERATED + requiredFile;
|
29
|
-
|
30
|
-
var hash = require("crypto").createHash('md5').update(require("graphql").print(graphqlDefinition), 'utf8').digest('hex');
|
31
|
-
|
40
|
+
var hash = crypto.createHash('md5').update(print(graphqlDefinition), 'utf8').digest('hex');
|
32
41
|
var requireGraphQLModule = t.callExpression(t.identifier('require'), [t.stringLiteral(requiredPath)]);
|
33
42
|
var bodyStatements = [t.returnStatement(requireGraphQLModule)];
|
34
43
|
|
@@ -52,13 +61,11 @@ function warnNeedsRebuild(t, definitionName, buildCommand) {
|
|
52
61
|
}
|
53
62
|
|
54
63
|
function getRelativeImportPath(state, artifactDirectory, fileToRequire) {
|
55
|
-
!(state.file != null) ? process.env.NODE_ENV !== "production" ?
|
64
|
+
!(state.file != null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'babel state file is null') : invariant(false) : void 0;
|
56
65
|
var filename = state.file.opts.filename;
|
57
|
-
|
58
|
-
var relative = require("path").relative(require("path").dirname(filename), require("path").resolve(artifactDirectory));
|
59
|
-
|
66
|
+
var relative = path.relative(path.dirname(filename), path.resolve(artifactDirectory));
|
60
67
|
var relativeReference = relative.length === 0 || !relative.startsWith('.') ? './' : '';
|
61
|
-
return relativeReference +
|
68
|
+
return relativeReference + path.join(relative, fileToRequire);
|
62
69
|
}
|
63
70
|
|
64
71
|
module.exports = createModernNode;
|
@@ -9,12 +9,17 @@
|
|
9
9
|
*/
|
10
10
|
'use strict';
|
11
11
|
|
12
|
+
var RelayTransformError = require("./RelayTransformError");
|
13
|
+
|
14
|
+
var util = require("util");
|
12
15
|
/**
|
13
16
|
* In case of an error during transform, determine if it should be logged
|
14
17
|
* to the console and/or printed in the source.
|
15
18
|
*/
|
19
|
+
|
20
|
+
|
16
21
|
function createTransformError(error) {
|
17
|
-
if (error instanceof
|
22
|
+
if (error instanceof RelayTransformError) {
|
18
23
|
return "Relay Transform Error: ".concat(error.message);
|
19
24
|
}
|
20
25
|
|
@@ -33,7 +38,7 @@ function createTransformError(error) {
|
|
33
38
|
}).join('\n');
|
34
39
|
}
|
35
40
|
|
36
|
-
return
|
41
|
+
return util.format('Relay Transform Error: %s\n\n%s', error.message, error.stack);
|
37
42
|
}
|
38
43
|
|
39
44
|
module.exports = createTransformError;
|
@@ -9,6 +9,14 @@
|
|
9
9
|
*/
|
10
10
|
'use strict';
|
11
11
|
|
12
|
+
var RelayQLTransformer = require("./RelayQLTransformer");
|
13
|
+
|
14
|
+
var getSchemaIntrospection = require("./getSchemaIntrospection");
|
15
|
+
|
16
|
+
var _require = require("graphql"),
|
17
|
+
buildASTSchema = _require.buildASTSchema,
|
18
|
+
buildClientSchema = _require.buildClientSchema;
|
19
|
+
|
12
20
|
/**
|
13
21
|
* Caches based on the provided schema. Typically this means only one instance
|
14
22
|
* of the RelayQLTransformer will be created, however in some circumstances
|
@@ -21,7 +29,7 @@ function getClassicTransformer(schemaProvider, options, fileOptions) {
|
|
21
29
|
|
22
30
|
if (!classicTransformer) {
|
23
31
|
var schema = getSchema(schemaProvider, fileOptions);
|
24
|
-
classicTransformer = new
|
32
|
+
classicTransformer = new RelayQLTransformer(schema, {
|
25
33
|
inputArgumentName: options.inputArgumentName,
|
26
34
|
snakeCase: Boolean(options.snakeCase),
|
27
35
|
substituteVariables: Boolean(options.substituteVariables),
|
@@ -35,14 +43,14 @@ function getClassicTransformer(schemaProvider, options, fileOptions) {
|
|
35
43
|
|
36
44
|
function getSchema(schemaProvider, fileOptions) {
|
37
45
|
var schemaReference = typeof schemaProvider === 'function' ? schemaProvider() : schemaProvider;
|
38
|
-
var introspection = typeof schemaReference === 'string' ?
|
46
|
+
var introspection = typeof schemaReference === 'string' ? getSchemaIntrospection(schemaReference, fileOptions.sourceRoot) : schemaReference;
|
39
47
|
|
40
48
|
if (introspection.__schema) {
|
41
|
-
return
|
49
|
+
return buildClientSchema(introspection);
|
42
50
|
} else if (introspection.data && introspection.data.__schema) {
|
43
|
-
return
|
51
|
+
return buildClientSchema(introspection.data);
|
44
52
|
} else if (introspection.kind && introspection.kind === 'Document') {
|
45
|
-
return
|
53
|
+
return buildASTSchema(introspection, {
|
46
54
|
assumeValid: true
|
47
55
|
});
|
48
56
|
}
|
package/lib/getDocumentName.js
CHANGED
@@ -9,6 +9,9 @@
|
|
9
9
|
*/
|
10
10
|
'use strict';
|
11
11
|
|
12
|
+
var _require = require("path"),
|
13
|
+
getBaseName = _require.basename;
|
14
|
+
|
12
15
|
var PROVIDES_MODULE = 'providesModule';
|
13
16
|
|
14
17
|
/**
|
@@ -43,7 +46,7 @@ function getDocumentName(path, state) {
|
|
43
46
|
}
|
44
47
|
}
|
45
48
|
|
46
|
-
var basename = state.file && state.file.opts && state.file.opts.filename &&
|
49
|
+
var basename = state.file && state.file.opts && state.file.opts.filename && getBaseName(state.file.opts.filename);
|
47
50
|
|
48
51
|
if (basename && !documentName) {
|
49
52
|
var _captures = basename.match(/^[_A-Za-z][_0-9A-Za-z]*/);
|
@@ -9,21 +9,38 @@
|
|
9
9
|
*/
|
10
10
|
'use strict';
|
11
11
|
|
12
|
+
var _require = require("./GraphQLRelayDirective"),
|
13
|
+
SCHEMA_EXTENSION = _require.SCHEMA_EXTENSION;
|
14
|
+
|
15
|
+
var fs = require("fs");
|
16
|
+
|
17
|
+
var _require2 = require("graphql"),
|
18
|
+
parse = _require2.parse;
|
19
|
+
|
20
|
+
var path = require("path");
|
21
|
+
|
22
|
+
function readSource(sourceFile, basePath) {
|
23
|
+
var fullSourceFile = !fs.existsSync(sourceFile) && basePath ? path.join(basePath, sourceFile) : sourceFile;
|
24
|
+
return fs.readFileSync(fullSourceFile, 'utf8');
|
25
|
+
}
|
26
|
+
|
12
27
|
function getSchemaIntrospection(schemaPath, basePath) {
|
13
28
|
try {
|
14
|
-
var
|
29
|
+
var schemaPaths = schemaPath.split(',');
|
15
30
|
|
16
|
-
if (
|
17
|
-
|
31
|
+
if (schemaPaths.length > 1) {
|
32
|
+
return parse(SCHEMA_EXTENSION + '\n' + schemaPaths.map(function (file) {
|
33
|
+
return readSource(file, basePath);
|
34
|
+
}).join('\n'));
|
18
35
|
}
|
19
36
|
|
20
|
-
var source =
|
37
|
+
var source = readSource(schemaPath, basePath);
|
21
38
|
|
22
39
|
if (source[0] === '{') {
|
23
40
|
return JSON.parse(source);
|
24
41
|
}
|
25
42
|
|
26
|
-
return
|
43
|
+
return parse(SCHEMA_EXTENSION + '\n' + source);
|
27
44
|
} catch (error) {
|
28
45
|
// Log a more helpful warning (by including the schema path).
|
29
46
|
console.error('Encountered the following error while loading the GraphQL schema: ' + schemaPath + '\n\n' + error.stack.split('\n').map(function (line) {
|
@@ -9,6 +9,8 @@
|
|
9
9
|
*/
|
10
10
|
'use strict';
|
11
11
|
|
12
|
+
var GraphQL = require("graphql");
|
13
|
+
|
12
14
|
/**
|
13
15
|
* Given a babel AST path to a tagged template literal, return an AST if it is
|
14
16
|
* a graphql literal being used in a valid way.
|
@@ -30,8 +32,7 @@ function getValidGraphQLTag(path) {
|
|
30
32
|
}
|
31
33
|
|
32
34
|
var text = quasis[0].value.raw;
|
33
|
-
|
34
|
-
var ast = require("graphql").parse(text);
|
35
|
+
var ast = GraphQL.parse(text);
|
35
36
|
|
36
37
|
if (ast.definitions.length === 0) {
|
37
38
|
throw new Error('BabelPluginRelay: Unexpected empty graphql tag.');
|
package/lib/invariant.js
CHANGED
@@ -10,13 +10,15 @@
|
|
10
10
|
*/
|
11
11
|
'use strict';
|
12
12
|
|
13
|
+
var util = require("util");
|
14
|
+
|
13
15
|
function invariant(condition, format) {
|
14
16
|
if (!condition) {
|
15
17
|
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
16
18
|
args[_key - 2] = arguments[_key];
|
17
19
|
}
|
18
20
|
|
19
|
-
throw new Error(
|
21
|
+
throw new Error(util.format.apply(util, [format].concat(args)));
|
20
22
|
}
|
21
23
|
}
|
22
24
|
|
package/macro.js
CHANGED
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "babel-plugin-relay",
|
3
3
|
"description": "A Babel Plugin for use with Relay applications.",
|
4
|
-
"version": "
|
4
|
+
"version": "5.0.0",
|
5
5
|
"keywords": [
|
6
6
|
"graphql",
|
7
7
|
"relay",
|
@@ -9,13 +9,13 @@
|
|
9
9
|
"babel-plugin"
|
10
10
|
],
|
11
11
|
"license": "MIT",
|
12
|
-
"homepage": "https://
|
12
|
+
"homepage": "https://relay.dev",
|
13
13
|
"bugs": "https://github.com/facebook/relay/issues",
|
14
14
|
"repository": "facebook/relay",
|
15
15
|
"dependencies": {
|
16
16
|
"babel-plugin-macros": "^2.0.0"
|
17
17
|
},
|
18
18
|
"peerDependencies": {
|
19
|
-
"graphql": "^14.
|
19
|
+
"graphql": "^14.2.0"
|
20
20
|
}
|
21
21
|
}
|
package/yarn.lock
DELETED
@@ -1,87 +0,0 @@
|
|
1
|
-
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
2
|
-
# yarn lockfile v1
|
3
|
-
|
4
|
-
|
5
|
-
argparse@^1.0.7:
|
6
|
-
version "1.0.10"
|
7
|
-
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
|
8
|
-
integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
|
9
|
-
dependencies:
|
10
|
-
sprintf-js "~1.0.2"
|
11
|
-
|
12
|
-
babel-plugin-macros@^2.0.0:
|
13
|
-
version "2.4.2"
|
14
|
-
resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.4.2.tgz#21b1a2e82e2130403c5ff785cba6548e9b644b28"
|
15
|
-
integrity sha512-NBVpEWN4OQ/bHnu1fyDaAaTPAjnhXCEPqr1RwqxrU7b6tZ2hypp+zX4hlNfmVGfClD5c3Sl6Hfj5TJNF5VG5aA==
|
16
|
-
dependencies:
|
17
|
-
cosmiconfig "^5.0.5"
|
18
|
-
resolve "^1.8.1"
|
19
|
-
|
20
|
-
cosmiconfig@^5.0.5:
|
21
|
-
version "5.0.6"
|
22
|
-
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39"
|
23
|
-
integrity sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ==
|
24
|
-
dependencies:
|
25
|
-
is-directory "^0.3.1"
|
26
|
-
js-yaml "^3.9.0"
|
27
|
-
parse-json "^4.0.0"
|
28
|
-
|
29
|
-
error-ex@^1.3.1:
|
30
|
-
version "1.3.2"
|
31
|
-
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
|
32
|
-
integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
|
33
|
-
dependencies:
|
34
|
-
is-arrayish "^0.2.1"
|
35
|
-
|
36
|
-
esprima@^4.0.0:
|
37
|
-
version "4.0.1"
|
38
|
-
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
|
39
|
-
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
|
40
|
-
|
41
|
-
is-arrayish@^0.2.1:
|
42
|
-
version "0.2.1"
|
43
|
-
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
|
44
|
-
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
|
45
|
-
|
46
|
-
is-directory@^0.3.1:
|
47
|
-
version "0.3.1"
|
48
|
-
resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
|
49
|
-
integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
|
50
|
-
|
51
|
-
js-yaml@^3.9.0:
|
52
|
-
version "3.12.0"
|
53
|
-
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1"
|
54
|
-
integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==
|
55
|
-
dependencies:
|
56
|
-
argparse "^1.0.7"
|
57
|
-
esprima "^4.0.0"
|
58
|
-
|
59
|
-
json-parse-better-errors@^1.0.1:
|
60
|
-
version "1.0.2"
|
61
|
-
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
|
62
|
-
integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
|
63
|
-
|
64
|
-
parse-json@^4.0.0:
|
65
|
-
version "4.0.0"
|
66
|
-
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
|
67
|
-
integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
|
68
|
-
dependencies:
|
69
|
-
error-ex "^1.3.1"
|
70
|
-
json-parse-better-errors "^1.0.1"
|
71
|
-
|
72
|
-
path-parse@^1.0.5:
|
73
|
-
version "1.0.6"
|
74
|
-
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
|
75
|
-
integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
|
76
|
-
|
77
|
-
resolve@^1.8.1:
|
78
|
-
version "1.8.1"
|
79
|
-
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26"
|
80
|
-
integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==
|
81
|
-
dependencies:
|
82
|
-
path-parse "^1.0.5"
|
83
|
-
|
84
|
-
sprintf-js@~1.0.2:
|
85
|
-
version "1.0.3"
|
86
|
-
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
|
87
|
-
integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
|