mirror of https://gitee.com/bigwinds/arangodb
Merge branch 'devel' of github.com:arangodb/arangodb into devel
This commit is contained in:
commit
2022df6aad
|
@ -82,7 +82,7 @@
|
||||||
host = host.split(":");
|
host = host.split(":");
|
||||||
|
|
||||||
if (host === 'localhost') {
|
if (host === 'localhost') {
|
||||||
host = '127.0.0.1'
|
host = '127.0.0.1';
|
||||||
}
|
}
|
||||||
|
|
||||||
param.hostname = host[0];
|
param.hostname = host[0];
|
||||||
|
@ -93,7 +93,7 @@
|
||||||
param.hostname = window.location.hostname;
|
param.hostname = window.location.hostname;
|
||||||
|
|
||||||
if (param.hostname === 'localhost') {
|
if (param.hostname === 'localhost') {
|
||||||
param.hostname = '127.0.0.1'
|
param.hostname = '127.0.0.1';
|
||||||
}
|
}
|
||||||
|
|
||||||
param.port = window.location.port;
|
param.port = window.location.port;
|
||||||
|
|
|
@ -319,32 +319,54 @@ function outboundExpander (config, vertex, path) {
|
||||||
var datasource = config.datasource;
|
var datasource = config.datasource;
|
||||||
var connections = [ ];
|
var connections = [ ];
|
||||||
var outEdges = datasource.getOutEdges(vertex);
|
var outEdges = datasource.getOutEdges(vertex);
|
||||||
|
var edgeIterator;
|
||||||
|
|
||||||
if (outEdges.length > 1 && config.sort) {
|
if (outEdges.length > 1 && config.sort) {
|
||||||
outEdges.sort(config.sort);
|
outEdges.sort(config.sort);
|
||||||
}
|
}
|
||||||
|
|
||||||
outEdges.forEach(function (edge) {
|
if (config.buildVertices) {
|
||||||
try {
|
if (!config.expandFilter) {
|
||||||
var v;
|
edgeIterator = function(edge) {
|
||||||
if (config.buildVertices) {
|
try {
|
||||||
v = datasource.getInVertex(edge);
|
var v = datasource.getInVertex(edge);
|
||||||
}
|
connections.push({ edge: edge, vertex: v });
|
||||||
else {
|
}
|
||||||
// optimization to save vertex lookups
|
catch (e) {
|
||||||
v = { _id: datasource.getEdgeTo(edge) };
|
// continue even in the face of non-existing documents
|
||||||
v._key = v._id.split("/")[1];
|
}
|
||||||
}
|
};
|
||||||
|
} else {
|
||||||
if (! config.expandFilter || config.expandFilter(config, v, edge, path)) {
|
edgeIterator = function(edge) {
|
||||||
|
try {
|
||||||
|
var v = datasource.getInVertex(edge);
|
||||||
|
if (config.expandFilter(config, v, edge, path)) {
|
||||||
|
connections.push({ edge: edge, vertex: v });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
// continue even in the face of non-existing documents
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!config.expandFilter) {
|
||||||
|
edgeIterator = function(edge) {
|
||||||
|
var id = datasource.getEdgeTo(edge);
|
||||||
|
var v = { _id: id, _key: id.substr(id.indexOf("/") + 1)};
|
||||||
connections.push({ edge: edge, vertex: v });
|
connections.push({ edge: edge, vertex: v });
|
||||||
}
|
};
|
||||||
|
} else {
|
||||||
|
edgeIterator = function(edge) {
|
||||||
|
var id = datasource.getEdgeTo(edge);
|
||||||
|
var v = { _id: id, _key: id.substr(id.indexOf("/") + 1)};
|
||||||
|
if (config.expandFilter(config, v, edge, path)) {
|
||||||
|
connections.push({ edge: edge, vertex: v });
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
catch (e) {
|
}
|
||||||
// continue even in the face of non-existing documents
|
outEdges.forEach(edgeIterator);
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return connections;
|
return connections;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -361,27 +383,50 @@ function inboundExpander (config, vertex, path) {
|
||||||
if (inEdges.length > 1 && config.sort) {
|
if (inEdges.length > 1 && config.sort) {
|
||||||
inEdges.sort(config.sort);
|
inEdges.sort(config.sort);
|
||||||
}
|
}
|
||||||
|
var edgeIterator;
|
||||||
|
|
||||||
inEdges.forEach(function (edge) {
|
if (config.buildVertices) {
|
||||||
try {
|
if (!config.expandFilter) {
|
||||||
var v;
|
edgeIterator = function(edge) {
|
||||||
if (config.buildVertices) {
|
try {
|
||||||
v = datasource.getOutVertex(edge);
|
var v = datasource.getOutVertex(edge);
|
||||||
}
|
connections.push({ edge: edge, vertex: v });
|
||||||
else {
|
}
|
||||||
// optimization to save vertex lookups
|
catch (e) {
|
||||||
v = { _id: datasource.getEdgeFrom(edge) };
|
// continue even in the face of non-existing documents
|
||||||
v._key = v._id.split("/")[1];
|
}
|
||||||
}
|
};
|
||||||
|
} else {
|
||||||
if (! config.expandFilter || config.expandFilter(config, v, edge, path)) {
|
edgeIterator = function(edge) {
|
||||||
|
try {
|
||||||
|
var v = datasource.getOutVertex(edge);
|
||||||
|
if (config.expandFilter(config, v, edge, path)) {
|
||||||
|
connections.push({ edge: edge, vertex: v });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
// continue even in the face of non-existing documents
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!config.expandFilter) {
|
||||||
|
edgeIterator = function(edge) {
|
||||||
|
var id = datasource.getEdgeFrom(edge);
|
||||||
|
var v = { _id: id, _key: id.substr(id.indexOf("/") + 1)};
|
||||||
connections.push({ edge: edge, vertex: v });
|
connections.push({ edge: edge, vertex: v });
|
||||||
}
|
};
|
||||||
|
} else {
|
||||||
|
edgeIterator = function(edge) {
|
||||||
|
var id = datasource.getEdgeFrom(edge);
|
||||||
|
var v = { _id: id, _key: id.substr(id.indexOf("/") + 1)};
|
||||||
|
if (config.expandFilter(config, v, edge, path)) {
|
||||||
|
connections.push({ edge: edge, vertex: v });
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
catch (e) {
|
}
|
||||||
// continue even in the face of non-existing documents
|
inEdges.forEach(edgeIterator);
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return connections;
|
return connections;
|
||||||
}
|
}
|
||||||
|
@ -399,34 +444,55 @@ function anyExpander (config, vertex, path) {
|
||||||
edges.sort(config.sort);
|
edges.sort(config.sort);
|
||||||
}
|
}
|
||||||
|
|
||||||
edges.forEach(function (edge) {
|
var edgeIterator;
|
||||||
try {
|
if (config.buildVertices) {
|
||||||
var v;
|
if (!config.expandFilter) {
|
||||||
if (config.buildVertices) {
|
edgeIterator = function(edge) {
|
||||||
v = datasource.getPeerVertex(edge, vertex);
|
try {
|
||||||
}
|
var v = datasource.getPeerVertex(edge);
|
||||||
else {
|
connections.push({ edge: edge, vertex: v });
|
||||||
// optimization to save vertex lookups
|
|
||||||
v = { };
|
|
||||||
if (datasource.getEdgeFrom(edge) === vertex._id) {
|
|
||||||
v._id = datasource.getEdgeTo(edge);
|
|
||||||
v._key = v._id.split("/")[1];
|
|
||||||
}
|
}
|
||||||
else if (datasource.getEdgeTo(edge) === vertex._id) {
|
catch (e) {
|
||||||
v._id = datasource.getEdgeFrom(edge);
|
// continue even in the face of non-existing documents
|
||||||
v._key = v._id.split("/")[1];
|
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
} else {
|
||||||
if (! config.expandFilter || config.expandFilter(config, v, edge, path)) {
|
edgeIterator = function(edge) {
|
||||||
|
try {
|
||||||
|
var v = datasource.getPeerVertex(edge);
|
||||||
|
if (config.expandFilter(config, v, edge, path)) {
|
||||||
|
connections.push({ edge: edge, vertex: v });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
// continue even in the face of non-existing documents
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!config.expandFilter) {
|
||||||
|
edgeIterator = function(edge) {
|
||||||
|
var id = datasource.getEdgeFrom(edge);
|
||||||
|
if (id === vertex._id) {
|
||||||
|
id = datasource.getEdgeTo(edge);
|
||||||
|
}
|
||||||
|
var v = { _id: id, _key: id.substr(id.indexOf("/") + 1)};
|
||||||
connections.push({ edge: edge, vertex: v });
|
connections.push({ edge: edge, vertex: v });
|
||||||
}
|
};
|
||||||
|
} else {
|
||||||
|
edgeIterator = function(edge) {
|
||||||
|
var id = datasource.getEdgeFrom(edge);
|
||||||
|
if (id === vertex._id) {
|
||||||
|
id = datasource.getEdgeTo(edge);
|
||||||
|
}
|
||||||
|
var v = { _id: id, _key: id.substr(id.indexOf("/") + 1)};
|
||||||
|
if (config.expandFilter(config, v, edge, path)) {
|
||||||
|
connections.push({ edge: edge, vertex: v });
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
catch (e) {
|
}
|
||||||
// continue even in the face of non-existing documents
|
edges.forEach(edgeIterator);
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return connections;
|
return connections;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1307,7 +1373,7 @@ ArangoTraverser = function (config) {
|
||||||
filter: null,
|
filter: null,
|
||||||
expander: outboundExpander,
|
expander: outboundExpander,
|
||||||
datasource: null,
|
datasource: null,
|
||||||
maxIterations: 1000000,
|
maxIterations: 10000000,
|
||||||
minDepth: 0,
|
minDepth: 0,
|
||||||
maxDepth: 256,
|
maxDepth: 256,
|
||||||
buildVertices: true
|
buildVertices: true
|
||||||
|
|
|
@ -318,32 +318,54 @@ function outboundExpander (config, vertex, path) {
|
||||||
var datasource = config.datasource;
|
var datasource = config.datasource;
|
||||||
var connections = [ ];
|
var connections = [ ];
|
||||||
var outEdges = datasource.getOutEdges(vertex);
|
var outEdges = datasource.getOutEdges(vertex);
|
||||||
|
var edgeIterator;
|
||||||
|
|
||||||
if (outEdges.length > 1 && config.sort) {
|
if (outEdges.length > 1 && config.sort) {
|
||||||
outEdges.sort(config.sort);
|
outEdges.sort(config.sort);
|
||||||
}
|
}
|
||||||
|
|
||||||
outEdges.forEach(function (edge) {
|
if (config.buildVertices) {
|
||||||
try {
|
if (!config.expandFilter) {
|
||||||
var v;
|
edgeIterator = function(edge) {
|
||||||
if (config.buildVertices) {
|
try {
|
||||||
v = datasource.getInVertex(edge);
|
var v = datasource.getInVertex(edge);
|
||||||
}
|
connections.push({ edge: edge, vertex: v });
|
||||||
else {
|
}
|
||||||
// optimization to save vertex lookups
|
catch (e) {
|
||||||
v = { _id: datasource.getEdgeTo(edge) };
|
// continue even in the face of non-existing documents
|
||||||
v._key = v._id.split("/")[1];
|
}
|
||||||
}
|
};
|
||||||
|
} else {
|
||||||
if (! config.expandFilter || config.expandFilter(config, v, edge, path)) {
|
edgeIterator = function(edge) {
|
||||||
|
try {
|
||||||
|
var v = datasource.getInVertex(edge);
|
||||||
|
if (config.expandFilter(config, v, edge, path)) {
|
||||||
|
connections.push({ edge: edge, vertex: v });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
// continue even in the face of non-existing documents
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!config.expandFilter) {
|
||||||
|
edgeIterator = function(edge) {
|
||||||
|
var id = datasource.getEdgeTo(edge);
|
||||||
|
var v = { _id: id, _key: id.substr(id.indexOf("/") + 1)};
|
||||||
connections.push({ edge: edge, vertex: v });
|
connections.push({ edge: edge, vertex: v });
|
||||||
}
|
};
|
||||||
|
} else {
|
||||||
|
edgeIterator = function(edge) {
|
||||||
|
var id = datasource.getEdgeTo(edge);
|
||||||
|
var v = { _id: id, _key: id.substr(id.indexOf("/") + 1)};
|
||||||
|
if (config.expandFilter(config, v, edge, path)) {
|
||||||
|
connections.push({ edge: edge, vertex: v });
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
catch (e) {
|
}
|
||||||
// continue even in the face of non-existing documents
|
outEdges.forEach(edgeIterator);
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return connections;
|
return connections;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -360,27 +382,50 @@ function inboundExpander (config, vertex, path) {
|
||||||
if (inEdges.length > 1 && config.sort) {
|
if (inEdges.length > 1 && config.sort) {
|
||||||
inEdges.sort(config.sort);
|
inEdges.sort(config.sort);
|
||||||
}
|
}
|
||||||
|
var edgeIterator;
|
||||||
|
|
||||||
inEdges.forEach(function (edge) {
|
if (config.buildVertices) {
|
||||||
try {
|
if (!config.expandFilter) {
|
||||||
var v;
|
edgeIterator = function(edge) {
|
||||||
if (config.buildVertices) {
|
try {
|
||||||
v = datasource.getOutVertex(edge);
|
var v = datasource.getOutVertex(edge);
|
||||||
}
|
connections.push({ edge: edge, vertex: v });
|
||||||
else {
|
}
|
||||||
// optimization to save vertex lookups
|
catch (e) {
|
||||||
v = { _id: datasource.getEdgeFrom(edge) };
|
// continue even in the face of non-existing documents
|
||||||
v._key = v._id.split("/")[1];
|
}
|
||||||
}
|
};
|
||||||
|
} else {
|
||||||
if (! config.expandFilter || config.expandFilter(config, v, edge, path)) {
|
edgeIterator = function(edge) {
|
||||||
|
try {
|
||||||
|
var v = datasource.getOutVertex(edge);
|
||||||
|
if (config.expandFilter(config, v, edge, path)) {
|
||||||
|
connections.push({ edge: edge, vertex: v });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
// continue even in the face of non-existing documents
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!config.expandFilter) {
|
||||||
|
edgeIterator = function(edge) {
|
||||||
|
var id = datasource.getEdgeFrom(edge);
|
||||||
|
var v = { _id: id, _key: id.substr(id.indexOf("/") + 1)};
|
||||||
connections.push({ edge: edge, vertex: v });
|
connections.push({ edge: edge, vertex: v });
|
||||||
}
|
};
|
||||||
|
} else {
|
||||||
|
edgeIterator = function(edge) {
|
||||||
|
var id = datasource.getEdgeFrom(edge);
|
||||||
|
var v = { _id: id, _key: id.substr(id.indexOf("/") + 1)};
|
||||||
|
if (config.expandFilter(config, v, edge, path)) {
|
||||||
|
connections.push({ edge: edge, vertex: v });
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
catch (e) {
|
}
|
||||||
// continue even in the face of non-existing documents
|
inEdges.forEach(edgeIterator);
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return connections;
|
return connections;
|
||||||
}
|
}
|
||||||
|
@ -398,34 +443,55 @@ function anyExpander (config, vertex, path) {
|
||||||
edges.sort(config.sort);
|
edges.sort(config.sort);
|
||||||
}
|
}
|
||||||
|
|
||||||
edges.forEach(function (edge) {
|
var edgeIterator;
|
||||||
try {
|
if (config.buildVertices) {
|
||||||
var v;
|
if (!config.expandFilter) {
|
||||||
if (config.buildVertices) {
|
edgeIterator = function(edge) {
|
||||||
v = datasource.getPeerVertex(edge, vertex);
|
try {
|
||||||
}
|
var v = datasource.getPeerVertex(edge, vertex);
|
||||||
else {
|
connections.push({ edge: edge, vertex: v });
|
||||||
// optimization to save vertex lookups
|
|
||||||
v = { };
|
|
||||||
if (datasource.getEdgeFrom(edge) === vertex._id) {
|
|
||||||
v._id = datasource.getEdgeTo(edge);
|
|
||||||
v._key = v._id.split("/")[1];
|
|
||||||
}
|
}
|
||||||
else if (datasource.getEdgeTo(edge) === vertex._id) {
|
catch (e) {
|
||||||
v._id = datasource.getEdgeFrom(edge);
|
// continue even in the face of non-existing documents
|
||||||
v._key = v._id.split("/")[1];
|
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
} else {
|
||||||
if (! config.expandFilter || config.expandFilter(config, v, edge, path)) {
|
edgeIterator = function(edge) {
|
||||||
|
try {
|
||||||
|
var v = datasource.getPeerVertex(edge, vertex);
|
||||||
|
if (config.expandFilter(config, v, edge, path)) {
|
||||||
|
connections.push({ edge: edge, vertex: v });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
// continue even in the face of non-existing documents
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!config.expandFilter) {
|
||||||
|
edgeIterator = function(edge) {
|
||||||
|
var id = datasource.getEdgeFrom(edge);
|
||||||
|
if (id === vertex._id) {
|
||||||
|
id = datasource.getEdgeTo(edge);
|
||||||
|
}
|
||||||
|
var v = { _id: id, _key: id.substr(id.indexOf("/") + 1)};
|
||||||
connections.push({ edge: edge, vertex: v });
|
connections.push({ edge: edge, vertex: v });
|
||||||
}
|
};
|
||||||
|
} else {
|
||||||
|
edgeIterator = function(edge) {
|
||||||
|
var id = datasource.getEdgeFrom(edge);
|
||||||
|
if (id === vertex._id) {
|
||||||
|
id = datasource.getEdgeTo(edge);
|
||||||
|
}
|
||||||
|
var v = { _id: id, _key: id.substr(id.indexOf("/") + 1)};
|
||||||
|
if (config.expandFilter(config, v, edge, path)) {
|
||||||
|
connections.push({ edge: edge, vertex: v });
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
catch (e) {
|
}
|
||||||
// continue even in the face of non-existing documents
|
edges.forEach(edgeIterator);
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return connections;
|
return connections;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1306,7 +1372,7 @@ ArangoTraverser = function (config) {
|
||||||
filter: null,
|
filter: null,
|
||||||
expander: outboundExpander,
|
expander: outboundExpander,
|
||||||
datasource: null,
|
datasource: null,
|
||||||
maxIterations: 1000000,
|
maxIterations: 10000000,
|
||||||
minDepth: 0,
|
minDepth: 0,
|
||||||
maxDepth: 256,
|
maxDepth: 256,
|
||||||
buildVertices: true
|
buildVertices: true
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
throw new Error('This is an error from the controller.');
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"name": "broken-controller-file",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"controllers": {
|
||||||
|
"/": "broken-controller.js"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
throw new Error('This is an error from the exports.');
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"name": "broken-exports-file",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"exports": {
|
||||||
|
"broken": "broken-exports.js"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
throw new Error('This is an error from the setup.');
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"name": "broken-setup-file",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"setup": "broken-setup.js"
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"missing required fields": "name and version"
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
syntax error
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"name": "malformed-controller-file",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"controllers": {
|
||||||
|
"/": "broken-controller.js"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
// this space left blank
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"name": "malformed-controller-name",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"controllers": {
|
||||||
|
"?": "controller.js"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"name": "malformed-controller-path",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"controllers": {
|
||||||
|
"/": "/illegal/file/name/"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
syntax error
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"name": "malformed-exports-file",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"exports": {
|
||||||
|
"broken": "broken-exports.js"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"name": "malformed-exports-path",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"exports": {
|
||||||
|
"broken": "/illegal/file/name/"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"name": "malformed-manifest",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"there is a syntax error here": sic!
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"name": "/malformed/name/",
|
||||||
|
"version": "0.0.0"
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
syntax error
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"name": "malformed-setup-file",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"setup": "broken-setup.js"
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"name": "malformed-setup-path",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"setup": "/illegal/file/name/"
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"name": "malformed-version",
|
||||||
|
"version": "0/0/0"
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"name": "minimal-working-manifest",
|
||||||
|
"version": "0.0.0"
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"name": "missing-controller-file",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"controllers": {
|
||||||
|
"/": "does-not-exist.js"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"name": "missing-exports-file",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"exports": {
|
||||||
|
"nope": "no-such-file.js"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"name": "missing-setup-file",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"setup": "this-file-is-missing.js"
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"manifest": "missing"
|
||||||
|
}
|
Loading…
Reference in New Issue