@socketsecurity/cli-with-sentry 0.15.55 → 0.15.56

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.
Files changed (37) hide show
  1. package/bin/cli.js +2 -2
  2. package/dist/cli.js +24 -24
  3. package/dist/cli.js.map +1 -1
  4. package/dist/constants.js +49 -29
  5. package/dist/constants.js.map +1 -1
  6. package/dist/{shadow-bin.js → shadow-npm-bin.js} +6 -6
  7. package/dist/shadow-npm-bin.js.map +1 -0
  8. package/dist/{shadow-inject.js → shadow-npm-inject.js} +1 -1
  9. package/dist/shadow-npm-inject.js.map +1 -0
  10. package/dist/types/constants.d.mts +9 -5
  11. package/dist/types/constants.d.mts.map +1 -1
  12. package/dist/utils.js +5 -5
  13. package/dist/utils.js.map +1 -1
  14. package/external/@coana-tech/cli/cli.mjs +122 -7
  15. package/external/blessed-contrib/lib/layout/grid.js +400 -32
  16. package/external/blessed-contrib/lib/widget/charts/bar.js +8338 -67
  17. package/external/blessed-contrib/lib/widget/charts/line.js +17861 -196
  18. package/external/blessed-contrib/lib/widget/table.js +140 -121
  19. package/package.json +12 -11
  20. package/dist/shadow-bin.js.map +0 -1
  21. package/dist/shadow-inject.js.map +0 -1
  22. package/external/blessed-contrib/index.js +0 -28
  23. package/external/blessed-contrib/lib/layout/carousel.js +0 -74
  24. package/external/blessed-contrib/lib/server-utils.js +0 -73
  25. package/external/blessed-contrib/lib/utils.js +0 -73
  26. package/external/blessed-contrib/lib/widget/canvas.js +0 -51
  27. package/external/blessed-contrib/lib/widget/charts/stacked-bar.js +0 -218
  28. package/external/blessed-contrib/lib/widget/donut.js +0 -149
  29. package/external/blessed-contrib/lib/widget/gauge-list.js +0 -106
  30. package/external/blessed-contrib/lib/widget/gauge.js +0 -125
  31. package/external/blessed-contrib/lib/widget/lcd.js +0 -451
  32. package/external/blessed-contrib/lib/widget/log.js +0 -33
  33. package/external/blessed-contrib/lib/widget/map.js +0 -86
  34. package/external/blessed-contrib/lib/widget/markdown.js +0 -64
  35. package/external/blessed-contrib/lib/widget/picture.js +0 -66
  36. package/external/blessed-contrib/lib/widget/sparkline.js +0 -58
  37. package/external/blessed-contrib/lib/widget/tree.js +0 -167
@@ -212320,7 +212320,7 @@ async function onlineScan(dependencyTree, apiKey, timeout) {
212320
212320
  }
212321
212321
 
212322
212322
  // dist/version.js
212323
- var version2 = "14.9.20";
212323
+ var version2 = "14.9.21";
212324
212324
 
212325
212325
  // ../../node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/helpers/bind.js
212326
212326
  function bind2(fn2, thisArg) {
@@ -215683,7 +215683,17 @@ async function scanForVulnerabilitiesSocketMode(dependencyTree) {
215683
215683
  const dependencyTreeNode = dependencyTree.transitiveDependencies[dependencyIdentifier];
215684
215684
  if (!dependencyTreeNode)
215685
215685
  throw new Error(`Dependency tree does not contain dependency ${simplePurlForComponent}`);
215686
- dependencyTreeNode.purl = c3.purl;
215686
+ dependencyTreeNode.purlObj = {
215687
+ type: c3.purl_type,
215688
+ namespace: c3.namespace ?? void 0,
215689
+ name: c3.name,
215690
+ version: c3.version ?? void 0,
215691
+ subpath: c3.subpath ?? void 0,
215692
+ artifactId: c3.artifactId ?? void 0,
215693
+ artifact_id: c3.artifact_id ?? void 0,
215694
+ qualifiers: c3.qualifiers ?? void 0,
215695
+ purlString: c3.purl
215696
+ };
215687
215697
  for (const vulnerability of c3.vulnerabilities) {
215688
215698
  vulnerabilities.push({
215689
215699
  url: vulnerability.ghsaId,
@@ -215801,6 +215811,112 @@ function getNamespaceAndName(ecosystem, packageName) {
215801
215811
  return { namespace: namespace2, name };
215802
215812
  }
215803
215813
 
215814
+ // dist/internal/socket-report.js
215815
+ function toSocketFacts(report, dependencyTrees) {
215816
+ const components = [];
215817
+ const purlToIndex = /* @__PURE__ */ new Map();
215818
+ for (const dependencyTree of dependencyTrees) {
215819
+ const depIdentifierToPurl = Object.fromEntries(Object.entries(dependencyTree.dependencyTree.transitiveDependencies).map(([depIdentifier, dep]) => {
215820
+ const purl = dep.purlObj.purlString;
215821
+ if (purl && !purlToIndex.has(purl)) {
215822
+ purlToIndex.set(purl, components.length);
215823
+ const depTreeNode = dependencyTree.dependencyTree.transitiveDependencies[depIdentifier];
215824
+ components[purlToIndex.get(purl)] = {
215825
+ id: purlToIndex.get(purl).toString(),
215826
+ type: depTreeNode.purlObj.type,
215827
+ name: depTreeNode.purlObj.name,
215828
+ version: depTreeNode.purlObj.version,
215829
+ namespace: depTreeNode.purlObj.namespace,
215830
+ subpath: depTreeNode.purlObj.subpath,
215831
+ artifact_id: depTreeNode.purlObj.artifact_id,
215832
+ artifactId: depTreeNode.purlObj.artifactId,
215833
+ qualifiers: depTreeNode.purlObj.qualifiers,
215834
+ // direct: false, // TODO: add direct flag
215835
+ // dev: false, // TODO: add dev flag
215836
+ dependencies: []
215837
+ };
215838
+ }
215839
+ return [depIdentifier, purl];
215840
+ }));
215841
+ for (const [depIdentifier, purl] of Object.entries(depIdentifierToPurl)) {
215842
+ const depTreeNode = dependencyTree.dependencyTree.transitiveDependencies[depIdentifier];
215843
+ const component = components[purlToIndex.get(purl)];
215844
+ depTreeNode.dependencies?.forEach((dep) => {
215845
+ const depPurl = depIdentifierToPurl[dep];
215846
+ const depIndex = purlToIndex.get(depPurl);
215847
+ if (!component.dependencies?.includes(depIndex.toString())) {
215848
+ component.dependencies.push(depIndex.toString());
215849
+ }
215850
+ });
215851
+ }
215852
+ }
215853
+ for (const vulnerability of report.vulnerabilities) {
215854
+ const component = components[purlToIndex.get(vulnerability.purl)];
215855
+ if (!component) {
215856
+ throw new Error(`Component not found for vulnerability ${vulnerability.purl}`);
215857
+ }
215858
+ if (!component.reachability) {
215859
+ component.reachability = [];
215860
+ }
215861
+ let reachabilityForGHSA = component.reachability?.find((r2) => r2.ghsa_id === vulnerability.vulnerabilityUrl.replace("https://github.com/advisories/", ""));
215862
+ if (!reachabilityForGHSA) {
215863
+ reachabilityForGHSA = {
215864
+ ghsa_id: vulnerability.vulnerabilityUrl.replace("https://github.com/advisories/", ""),
215865
+ reachability: []
215866
+ };
215867
+ component.reachability.push(reachabilityForGHSA);
215868
+ }
215869
+ reachabilityForGHSA.reachability.push({
215870
+ ...toSocketReachabilitySchema(vulnerability),
215871
+ workspacePath: vulnerability.workspacePath,
215872
+ subprojectPath: vulnerability.subprojectPath
215873
+ });
215874
+ }
215875
+ return {
215876
+ components
215877
+ };
215878
+ }
215879
+ function toSocketReachabilitySchema(vulnerability) {
215880
+ if (vulnerability.codeAwareScanResult.type === "missingVulnerabilityPattern") {
215881
+ return { type: "missing_support" };
215882
+ }
215883
+ if (vulnerability.codeAwareScanResult.type === "noAnalysisCheck") {
215884
+ return { type: "undeterminable_reachability" };
215885
+ }
215886
+ if (vulnerability.codeAwareScanResult.type === "analysisError") {
215887
+ return { type: "error", error: vulnerability.codeAwareScanResult.message };
215888
+ }
215889
+ if (vulnerability.codeAwareScanResult.type === "otherError") {
215890
+ return { type: "error", error: vulnerability.codeAwareScanResult.message };
215891
+ }
215892
+ if (vulnerability.codeAwareScanResult.type === "success") {
215893
+ if (Array.isArray(vulnerability.codeAwareScanResult.detectedOccurrences)) {
215894
+ if (vulnerability.codeAwareScanResult.detectedOccurrences.length === 0) {
215895
+ return { type: "unreachable" };
215896
+ }
215897
+ throw new Error("Detected occurrences is an array with elements. This is a bug.");
215898
+ }
215899
+ const detOccWithStacks = vulnerability.codeAwareScanResult.detectedOccurrences;
215900
+ if (detOccWithStacks.stacks.length === 0) {
215901
+ return { type: "unreachable" };
215902
+ }
215903
+ if (detOccWithStacks.analysisLevel === "function-level") {
215904
+ return {
215905
+ type: "reachable",
215906
+ analysisLevel: detOccWithStacks.analysisLevel,
215907
+ matches: detOccWithStacks.stacks
215908
+ };
215909
+ } else if (detOccWithStacks.analysisLevel === "class-level") {
215910
+ return {
215911
+ type: "reachable",
215912
+ analysisLevel: detOccWithStacks.analysisLevel,
215913
+ matches: detOccWithStacks.stacks
215914
+ };
215915
+ }
215916
+ }
215917
+ throw new Error("Unknown codeAwareScanResult type");
215918
+ }
215919
+
215804
215920
  // dist/cli-core.js
215805
215921
  var { omit, partition, pick } = import_lodash15.default;
215806
215922
  var CliCore = class {
@@ -215936,10 +216052,7 @@ var CliCore = class {
215936
216052
  if (!this.reportDependencyTrees) {
215937
216053
  throw new Error("Dependency trees should be available when using --socket-mode");
215938
216054
  }
215939
- const socketReport = {
215940
- ...report,
215941
- dependencyTrees: this.reportDependencyTrees
215942
- };
216055
+ const socketReport = toSocketFacts(report, this.reportDependencyTrees);
215943
216056
  const outputFile = resolve24(this.options.socketMode);
215944
216057
  await writeFile10(outputFile, JSON.stringify(socketReport, null, 2));
215945
216058
  logger.info(kleur_default.green(`Socket report written to: ${outputFile}`));
@@ -216278,7 +216391,9 @@ var CliCore = class {
216278
216391
  packageVersion: vulnerableNode.version ?? "",
216279
216392
  ecosystem: v.ecosystem ?? "NPM",
216280
216393
  dependencyType,
216281
- reachability
216394
+ reachability,
216395
+ purl: v.purl,
216396
+ purlType: v.purlType
216282
216397
  };
216283
216398
  });
216284
216399
  }
@@ -1,41 +1,409 @@
1
1
  'use strict';
2
2
 
3
- var utils = require('../utils');
3
+ var utils = {};
4
4
 
5
- var widgetSpacing = 0;
5
+ var x256 = {exports: {}};
6
6
 
7
- function Grid(options) {
8
- if (!options.screen) throw 'Error: A screen property must be specified in the grid options.\r\n' +
9
- 'Note: Release 2.0.0 has breaking changes. Please refer to the README or to https://github.com/yaronn/blessed-contrib/issues/39';
10
- this.options = options;
11
- this.options.dashboardMargin = this.options.dashboardMargin || 0;
12
- this.cellWidth = ((100 - this.options.dashboardMargin*2) / this.options.cols);
13
- this.cellHeight = ((100 - this.options.dashboardMargin*2) / this.options.rows);
7
+ var require$$0 = [
8
+ "000000",
9
+ "800000",
10
+ "008000",
11
+ "808000",
12
+ "000080",
13
+ "800080",
14
+ "008080",
15
+ "c0c0c0",
16
+ "808080",
17
+ "ff0000",
18
+ "00ff00",
19
+ "ffff00",
20
+ "0000ff",
21
+ "ff00ff",
22
+ "00ffff",
23
+ "ffffff",
24
+ "000000",
25
+ "00005f",
26
+ "000087",
27
+ "0000af",
28
+ "0000d7",
29
+ "0000ff",
30
+ "005f00",
31
+ "005f5f",
32
+ "005f87",
33
+ "005faf",
34
+ "005fd7",
35
+ "005fff",
36
+ "008700",
37
+ "00875f",
38
+ "008787",
39
+ "0087af",
40
+ "0087d7",
41
+ "0087ff",
42
+ "00af00",
43
+ "00af5f",
44
+ "00af87",
45
+ "00afaf",
46
+ "00afd7",
47
+ "00afff",
48
+ "00d700",
49
+ "00d75f",
50
+ "00d787",
51
+ "00d7af",
52
+ "00d7d7",
53
+ "00d7ff",
54
+ "00ff00",
55
+ "00ff5f",
56
+ "00ff87",
57
+ "00ffaf",
58
+ "00ffd7",
59
+ "00ffff",
60
+ "5f0000",
61
+ "5f005f",
62
+ "5f0087",
63
+ "5f00af",
64
+ "5f00d7",
65
+ "5f00ff",
66
+ "5f5f00",
67
+ "5f5f5f",
68
+ "5f5f87",
69
+ "5f5faf",
70
+ "5f5fd7",
71
+ "5f5fff",
72
+ "5f8700",
73
+ "5f875f",
74
+ "5f8787",
75
+ "5f87af",
76
+ "5f87d7",
77
+ "5f87ff",
78
+ "5faf00",
79
+ "5faf5f",
80
+ "5faf87",
81
+ "5fafaf",
82
+ "5fafd7",
83
+ "5fafff",
84
+ "5fd700",
85
+ "5fd75f",
86
+ "5fd787",
87
+ "5fd7af",
88
+ "5fd7d7",
89
+ "5fd7ff",
90
+ "5fff00",
91
+ "5fff5f",
92
+ "5fff87",
93
+ "5fffaf",
94
+ "5fffd7",
95
+ "5fffff",
96
+ "870000",
97
+ "87005f",
98
+ "870087",
99
+ "8700af",
100
+ "8700d7",
101
+ "8700ff",
102
+ "875f00",
103
+ "875f5f",
104
+ "875f87",
105
+ "875faf",
106
+ "875fd7",
107
+ "875fff",
108
+ "878700",
109
+ "87875f",
110
+ "878787",
111
+ "8787af",
112
+ "8787d7",
113
+ "8787ff",
114
+ "87af00",
115
+ "87af5f",
116
+ "87af87",
117
+ "87afaf",
118
+ "87afd7",
119
+ "87afff",
120
+ "87d700",
121
+ "87d75f",
122
+ "87d787",
123
+ "87d7af",
124
+ "87d7d7",
125
+ "87d7ff",
126
+ "87ff00",
127
+ "87ff5f",
128
+ "87ff87",
129
+ "87ffaf",
130
+ "87ffd7",
131
+ "87ffff",
132
+ "af0000",
133
+ "af005f",
134
+ "af0087",
135
+ "af00af",
136
+ "af00d7",
137
+ "af00ff",
138
+ "af5f00",
139
+ "af5f5f",
140
+ "af5f87",
141
+ "af5faf",
142
+ "af5fd7",
143
+ "af5fff",
144
+ "af8700",
145
+ "af875f",
146
+ "af8787",
147
+ "af87af",
148
+ "af87d7",
149
+ "af87ff",
150
+ "afaf00",
151
+ "afaf5f",
152
+ "afaf87",
153
+ "afafaf",
154
+ "afafd7",
155
+ "afafff",
156
+ "afd700",
157
+ "afd75f",
158
+ "afd787",
159
+ "afd7af",
160
+ "afd7d7",
161
+ "afd7ff",
162
+ "afff00",
163
+ "afff5f",
164
+ "afff87",
165
+ "afffaf",
166
+ "afffd7",
167
+ "afffff",
168
+ "d70000",
169
+ "d7005f",
170
+ "d70087",
171
+ "d700af",
172
+ "d700d7",
173
+ "d700ff",
174
+ "d75f00",
175
+ "d75f5f",
176
+ "d75f87",
177
+ "d75faf",
178
+ "d75fd7",
179
+ "d75fff",
180
+ "d78700",
181
+ "d7875f",
182
+ "d78787",
183
+ "d787af",
184
+ "d787d7",
185
+ "d787ff",
186
+ "d7af00",
187
+ "d7af5f",
188
+ "d7af87",
189
+ "d7afaf",
190
+ "d7afd7",
191
+ "d7afff",
192
+ "d7d700",
193
+ "d7d75f",
194
+ "d7d787",
195
+ "d7d7af",
196
+ "d7d7d7",
197
+ "d7d7ff",
198
+ "d7ff00",
199
+ "d7ff5f",
200
+ "d7ff87",
201
+ "d7ffaf",
202
+ "d7ffd7",
203
+ "d7ffff",
204
+ "ff0000",
205
+ "ff005f",
206
+ "ff0087",
207
+ "ff00af",
208
+ "ff00d7",
209
+ "ff00ff",
210
+ "ff5f00",
211
+ "ff5f5f",
212
+ "ff5f87",
213
+ "ff5faf",
214
+ "ff5fd7",
215
+ "ff5fff",
216
+ "ff8700",
217
+ "ff875f",
218
+ "ff8787",
219
+ "ff87af",
220
+ "ff87d7",
221
+ "ff87ff",
222
+ "ffaf00",
223
+ "ffaf5f",
224
+ "ffaf87",
225
+ "ffafaf",
226
+ "ffafd7",
227
+ "ffafff",
228
+ "ffd700",
229
+ "ffd75f",
230
+ "ffd787",
231
+ "ffd7af",
232
+ "ffd7d7",
233
+ "ffd7ff",
234
+ "ffff00",
235
+ "ffff5f",
236
+ "ffff87",
237
+ "ffffaf",
238
+ "ffffd7",
239
+ "ffffff",
240
+ "080808",
241
+ "121212",
242
+ "1c1c1c",
243
+ "262626",
244
+ "303030",
245
+ "3a3a3a",
246
+ "444444",
247
+ "4e4e4e",
248
+ "585858",
249
+ "606060",
250
+ "666666",
251
+ "767676",
252
+ "808080",
253
+ "8a8a8a",
254
+ "949494",
255
+ "9e9e9e",
256
+ "a8a8a8",
257
+ "b2b2b2",
258
+ "bcbcbc",
259
+ "c6c6c6",
260
+ "d0d0d0",
261
+ "dadada",
262
+ "e4e4e4",
263
+ "eeeeee"
264
+ ];
265
+
266
+ var hasRequiredX256;
267
+ function requireX256() {
268
+ if (hasRequiredX256) return x256.exports;
269
+ hasRequiredX256 = 1;
270
+ // colors scraped from
271
+ // http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html
272
+ // %s/ *\d\+ \+#\([^ ]\+\)/\1\r/g
273
+
274
+ var colors = require$$0.map(function (hex) {
275
+ var r = parseInt(hex.slice(0, 2), 16);
276
+ var g = parseInt(hex.slice(2, 4), 16);
277
+ var b = parseInt(hex.slice(4, 6), 16);
278
+ return [r, g, b];
279
+ });
280
+ var x256$1 = x256.exports = function (r, g, b) {
281
+ var c = Array.isArray(r) ? r : [r, g, b];
282
+ var best = null;
283
+ for (var i = 0; i < colors.length; i++) {
284
+ var d = distance(colors[i], c);
285
+ if (!best || d <= best.distance) {
286
+ best = {
287
+ distance: d,
288
+ index: i
289
+ };
290
+ }
291
+ }
292
+ return best.index;
293
+ };
294
+ x256$1.colors = colors;
295
+ function distance(a, b) {
296
+ return Math.sqrt(Math.pow(a[0] - b[0], 2) + Math.pow(a[1] - b[1], 2) + Math.pow(a[2] - b[2], 2));
297
+ }
298
+ return x256.exports;
14
299
  }
15
300
 
16
- Grid.prototype.set = function(row, col, rowSpan, colSpan, obj, opts) {
301
+ var hasRequiredUtils;
302
+ function requireUtils() {
303
+ if (hasRequiredUtils) return utils;
304
+ hasRequiredUtils = 1;
305
+ var x256 = requireX256();
306
+
307
+ /*
308
+ * Recursively merge properties of two objects
309
+ */
310
+ function MergeRecursive(obj1, obj2) {
311
+ if (obj1 == null) {
312
+ return obj2;
313
+ }
314
+ if (obj2 == null) {
315
+ return obj1;
316
+ }
317
+ for (var p in obj2) {
318
+ try {
319
+ // property in destination object set; update its value
320
+ if (obj2[p].constructor == Object) {
321
+ obj1[p] = MergeRecursive(obj1[p], obj2[p]);
322
+ } else {
323
+ obj1[p] = obj2[p];
324
+ }
325
+ } catch (e) {
326
+ // property in destination object not set; create it and set its value
327
+ obj1[p] = obj2[p];
328
+ }
329
+ }
330
+ return obj1;
331
+ }
332
+ function getTypeName(thing) {
333
+ if (thing === null) return '[object Null]'; // special case
334
+ return Object.prototype.toString.call(thing);
335
+ }
336
+ function abbreviateNumber(value) {
337
+ var newValue = value;
338
+ if (value >= 1000) {
339
+ var suffixes = ['', 'k', 'm', 'b', 't'];
340
+ var suffixNum = Math.floor(('' + value).length / 3);
341
+ var shortValue = '';
342
+ for (var precision = 2; precision >= 1; precision--) {
343
+ shortValue = parseFloat((suffixNum != 0 ? value / Math.pow(1000, suffixNum) : value).toPrecision(precision));
344
+ var dotLessShortValue = (shortValue + '').replace(/[^a-zA-Z 0-9]+/g, '');
345
+ if (dotLessShortValue.length <= 2) {
346
+ break;
347
+ }
348
+ }
349
+ newValue = shortValue + suffixes[suffixNum];
350
+ }
351
+ return newValue;
352
+ }
353
+ function getColorCode(color) {
354
+ if (Array.isArray(color) && color.length == 3) {
355
+ return x256(color[0], color[1], color[2]);
356
+ } else {
357
+ return color;
358
+ }
359
+ }
360
+ utils.MergeRecursive = MergeRecursive;
361
+ utils.getTypeName = getTypeName;
362
+ utils.abbreviateNumber = abbreviateNumber;
363
+ utils.getColorCode = getColorCode;
364
+ return utils;
365
+ }
17
366
 
18
- if (obj instanceof Grid) {
19
- throw 'Error: A Grid is not allowed to be nested inside another grid.\r\n' +
20
- 'Note: Release 2.0.0 has breaking changes. Please refer to the README or to https://github.com/yaronn/blessed-contrib/issues/39';
367
+ var grid;
368
+ var hasRequiredGrid;
369
+ function requireGrid() {
370
+ if (hasRequiredGrid) return grid;
371
+ hasRequiredGrid = 1;
372
+ var utils = requireUtils();
373
+ var widgetSpacing = 0;
374
+ function Grid(options) {
375
+ if (!options.screen) throw 'Error: A screen property must be specified in the grid options.\r\n' + 'Note: Release 2.0.0 has breaking changes. Please refer to the README or to https://github.com/yaronn/blessed-contrib/issues/39';
376
+ this.options = options;
377
+ this.options.dashboardMargin = this.options.dashboardMargin || 0;
378
+ this.cellWidth = (100 - this.options.dashboardMargin * 2) / this.options.cols;
379
+ this.cellHeight = (100 - this.options.dashboardMargin * 2) / this.options.rows;
21
380
  }
381
+ Grid.prototype.set = function (row, col, rowSpan, colSpan, obj, opts) {
382
+ if (obj instanceof Grid) {
383
+ throw 'Error: A Grid is not allowed to be nested inside another grid.\r\n' + 'Note: Release 2.0.0 has breaking changes. Please refer to the README or to https://github.com/yaronn/blessed-contrib/issues/39';
384
+ }
385
+ var top = row * this.cellHeight + this.options.dashboardMargin;
386
+ var left = col * this.cellWidth + this.options.dashboardMargin;
387
+
388
+ //var options = JSON.parse(JSON.stringify(opts));
389
+ var options = {};
390
+ options = utils.MergeRecursive(options, opts);
391
+ options.top = top + '%';
392
+ options.left = left + '%';
393
+ options.width = this.cellWidth * colSpan - widgetSpacing + '%';
394
+ options.height = this.cellHeight * rowSpan - widgetSpacing + '%';
395
+ if (!this.options.hideBorder) options.border = {
396
+ type: 'line',
397
+ fg: this.options.color || 'cyan'
398
+ };
399
+ var instance = obj(options);
400
+ this.options.screen.append(instance);
401
+ return instance;
402
+ };
403
+ grid = Grid;
404
+ return grid;
405
+ }
406
+
407
+ var gridExports = requireGrid();
22
408
 
23
- var top = row * this.cellHeight + this.options.dashboardMargin;
24
- var left = col * this.cellWidth + this.options.dashboardMargin;
25
-
26
- //var options = JSON.parse(JSON.stringify(opts));
27
- var options = {};
28
- options = utils.MergeRecursive(options, opts);
29
- options.top = top + '%';
30
- options.left = left + '%';
31
- options.width = (this.cellWidth * colSpan - widgetSpacing) + '%';
32
- options.height = (this.cellHeight * rowSpan - widgetSpacing) + '%';
33
- if (!this.options.hideBorder)
34
- options.border = {type: 'line', fg: this.options.color || 'cyan'};
35
-
36
- var instance = obj(options);
37
- this.options.screen.append(instance);
38
- return instance;
39
- };
40
-
41
- module.exports = Grid;
409
+ module.exports = gridExports;