@sprucelabs/spruce-cli 17.0.13 → 17.0.16
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/CHANGELOG.md +24 -0
- package/build/__tests__/testDirsAndFiles/related_schemas/v2020_10_06/skillWithExtraField.builder.d.ts +5 -0
- package/build/features/dependencies/actions/AddAction.js +14 -3
- package/build/features/dependencies/actions/AddAction.js.map +1 -1
- package/package.json +33 -33
- package/src/features/dependencies/actions/AddAction.ts +9 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,30 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [17.0.16](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v17.0.15...v17.0.16) (2022-06-18)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [17.0.15](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v17.0.14...v17.0.15) (2022-06-14)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## [17.0.14](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v17.0.13...v17.0.14) (2022-06-12)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
6
30
|
## [17.0.13](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v17.0.12...v17.0.13) (2022-06-09)
|
|
7
31
|
|
|
8
32
|
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
@@ -72,7 +72,7 @@ var DeployAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
72
72
|
key: "execute",
|
|
73
73
|
value: function () {
|
|
74
74
|
var _execute = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(options) {
|
|
75
|
-
var _this$validateAndNorm, namespace, skills, dependencyService, dependencies, choices, skill;
|
|
75
|
+
var _this$validateAndNorm, namespace, skills, dependencyService, dependencies, choices, skill, summaryLines, isEventInstalled;
|
|
76
76
|
|
|
77
77
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
78
78
|
while (1) {
|
|
@@ -135,11 +135,22 @@ var DeployAction = /*#__PURE__*/function (_AbstractAction) {
|
|
|
135
135
|
id: skill.id,
|
|
136
136
|
namespace: skill.slug
|
|
137
137
|
});
|
|
138
|
+
summaryLines = ["Added \"".concat(skill.name, "\" as a dependency!")];
|
|
139
|
+
_context.next = 18;
|
|
140
|
+
return this.featureInstaller.isInstalled('event');
|
|
141
|
+
|
|
142
|
+
case 18:
|
|
143
|
+
isEventInstalled = _context.sent;
|
|
144
|
+
|
|
145
|
+
if (isEventInstalled) {
|
|
146
|
+
summaryLines.push('You will need to run `spruce sync.events` before accessing any new events.');
|
|
147
|
+
}
|
|
148
|
+
|
|
138
149
|
return _context.abrupt("return", {
|
|
139
|
-
summaryLines:
|
|
150
|
+
summaryLines: summaryLines
|
|
140
151
|
});
|
|
141
152
|
|
|
142
|
-
case
|
|
153
|
+
case 21:
|
|
143
154
|
case "end":
|
|
144
155
|
return _context.stop();
|
|
145
156
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddAction.js","names":["optionsSchema","buildSchema","id","description","fields","namespace","type","label","hint","DeployAction","options","validateAndNormalizeOptions","Store","fetchAllSkills","skills","dependencyService","Service","dependencies","get","map","d","choices","filter","s","indexOf","slug","value","name","ui","prompt","isRequired","skill","find","SpruceError","code","friendlyMessage","add","summaryLines","AbstractAction"],"sources":["../../../../src/features/dependencies/actions/AddAction.ts"],"sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'addDepnedency',\n\tdescription: 'Add a skill as a dependency.',\n\tfields: {\n\t\tnamespace: {\n\t\t\ttype: 'id',\n\t\t\tlabel: 'Namespace',\n\t\t\thint: 'The namespace of the skill you want to add as a dependency.',\n\t\t},\n\t},\n})\n\ntype OptionsSchema = typeof optionsSchema\ntype Options = SchemaValues<OptionsSchema>\n\nexport default class DeployAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = optionsSchema\n\tpublic commandAliases = ['add.dependency [namespace]']\n\tpublic invocationMessage = 'Adding a dependency... 🔗'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tlet { namespace } = this.validateAndNormalizeOptions(options)\n\n\t\tconst skills = await this.Store('skill').fetchAllSkills()\n\t\tconst dependencyService = this.Service('dependency')\n\n\t\tif (!namespace) {\n\t\t\tconst dependencies = dependencyService.get().map((d) => d.namespace)\n\n\t\t\tconst choices = skills\n\t\t\t\t.filter((s) => dependencies.indexOf(s.slug) === -1)\n\t\t\t\t.map((s) => ({\n\t\t\t\t\tvalue: s.slug,\n\t\t\t\t\tlabel: s.name,\n\t\t\t\t}))\n\n\t\t\tnamespace = await this.ui.prompt({\n\t\t\t\ttype: 'select',\n\t\t\t\tlabel: 'Which skill would you like to add as a dependency?',\n\t\t\t\tisRequired: true,\n\t\t\t\toptions: {\n\t\t\t\t\tchoices,\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\n\t\tconst skill = skills.find((s) => s.slug === namespace)\n\n\t\tif (!skill) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'SKILL_NOT_FOUND',\n\t\t\t\tfriendlyMessage: `I could not find a skill with the slug of ${namespace}.`,\n\t\t\t})\n\t\t}\n\n\t\tdependencyService.add({\n\t\t\tid: skill.id,\n\t\t\tnamespace: skill.slug,\n\t\t})\n\n\t\
|
|
1
|
+
{"version":3,"file":"AddAction.js","names":["optionsSchema","buildSchema","id","description","fields","namespace","type","label","hint","DeployAction","options","validateAndNormalizeOptions","Store","fetchAllSkills","skills","dependencyService","Service","dependencies","get","map","d","choices","filter","s","indexOf","slug","value","name","ui","prompt","isRequired","skill","find","SpruceError","code","friendlyMessage","add","summaryLines","featureInstaller","isInstalled","isEventInstalled","push","AbstractAction"],"sources":["../../../../src/features/dependencies/actions/AddAction.ts"],"sourcesContent":["import { buildSchema, SchemaValues } from '@sprucelabs/schema'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\n\nconst optionsSchema = buildSchema({\n\tid: 'addDepnedency',\n\tdescription: 'Add a skill as a dependency.',\n\tfields: {\n\t\tnamespace: {\n\t\t\ttype: 'id',\n\t\t\tlabel: 'Namespace',\n\t\t\thint: 'The namespace of the skill you want to add as a dependency.',\n\t\t},\n\t},\n})\n\ntype OptionsSchema = typeof optionsSchema\ntype Options = SchemaValues<OptionsSchema>\n\nexport default class DeployAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = optionsSchema\n\tpublic commandAliases = ['add.dependency [namespace]']\n\tpublic invocationMessage = 'Adding a dependency... 🔗'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tlet { namespace } = this.validateAndNormalizeOptions(options)\n\n\t\tconst skills = await this.Store('skill').fetchAllSkills()\n\t\tconst dependencyService = this.Service('dependency')\n\n\t\tif (!namespace) {\n\t\t\tconst dependencies = dependencyService.get().map((d) => d.namespace)\n\n\t\t\tconst choices = skills\n\t\t\t\t.filter((s) => dependencies.indexOf(s.slug) === -1)\n\t\t\t\t.map((s) => ({\n\t\t\t\t\tvalue: s.slug,\n\t\t\t\t\tlabel: s.name,\n\t\t\t\t}))\n\n\t\t\tnamespace = await this.ui.prompt({\n\t\t\t\ttype: 'select',\n\t\t\t\tlabel: 'Which skill would you like to add as a dependency?',\n\t\t\t\tisRequired: true,\n\t\t\t\toptions: {\n\t\t\t\t\tchoices,\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\n\t\tconst skill = skills.find((s) => s.slug === namespace)\n\n\t\tif (!skill) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'SKILL_NOT_FOUND',\n\t\t\t\tfriendlyMessage: `I could not find a skill with the slug of ${namespace}.`,\n\t\t\t})\n\t\t}\n\n\t\tdependencyService.add({\n\t\t\tid: skill.id,\n\t\t\tnamespace: skill.slug,\n\t\t})\n\n\t\tconst summaryLines = [`Added \"${skill.name}\" as a dependency!`]\n\t\tconst isEventInstalled = await this.featureInstaller.isInstalled('event')\n\t\tif (isEventInstalled) {\n\t\t\tsummaryLines.push(\n\t\t\t\t'You will need to run `spruce sync.events` before accessing any new events.'\n\t\t\t)\n\t\t}\n\n\t\treturn {\n\t\t\tsummaryLines,\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAGA,IAAMA,aAAa,GAAG,IAAAC,mBAAA,EAAY;EACjCC,EAAE,EAAE,eAD6B;EAEjCC,WAAW,EAAE,8BAFoB;EAGjCC,MAAM,EAAE;IACPC,SAAS,EAAE;MACVC,IAAI,EAAE,IADI;MAEVC,KAAK,EAAE,WAFG;MAGVC,IAAI,EAAE;IAHI;EADJ;AAHyB,CAAZ,CAAtB;;IAeqBC,Y;;;;;;;;;;;;;;;sGACGT,a;uGACC,CAAC,4BAAD,C;0GACG,2B;;;;;;;mGAE3B,iBAAqBU,OAArB;QAAA;;QAAA;UAAA;YAAA;cAAA;gBAAA,wBACqB,KAAKC,2BAAL,CAAiCD,OAAjC,CADrB,EACOL,SADP,yBACOA,SADP;gBAAA;gBAAA,OAGsB,KAAKO,KAAL,CAAW,OAAX,EAAoBC,cAApB,EAHtB;;cAAA;gBAGOC,MAHP;gBAIOC,iBAJP,GAI2B,KAAKC,OAAL,CAAa,YAAb,CAJ3B;;gBAAA,IAMMX,SANN;kBAAA;kBAAA;gBAAA;;gBAOQY,YAPR,GAOuBF,iBAAiB,CAACG,GAAlB,GAAwBC,GAAxB,CAA4B,UAACC,CAAD;kBAAA,OAAOA,CAAC,CAACf,SAAT;gBAAA,CAA5B,CAPvB;gBASQgB,OATR,GASkBP,MAAM,CACpBQ,MADc,CACP,UAACC,CAAD;kBAAA,OAAON,YAAY,CAACO,OAAb,CAAqBD,CAAC,CAACE,IAAvB,MAAiC,CAAC,CAAzC;gBAAA,CADO,EAEdN,GAFc,CAEV,UAACI,CAAD;kBAAA,OAAQ;oBACZG,KAAK,EAAEH,CAAC,CAACE,IADG;oBAEZlB,KAAK,EAAEgB,CAAC,CAACI;kBAFG,CAAR;gBAAA,CAFU,CATlB;gBAAA;gBAAA,OAgBoB,KAAKC,EAAL,CAAQC,MAAR,CAAe;kBAChCvB,IAAI,EAAE,QAD0B;kBAEhCC,KAAK,EAAE,oDAFyB;kBAGhCuB,UAAU,EAAE,IAHoB;kBAIhCpB,OAAO,EAAE;oBACRW,OAAO,EAAPA;kBADQ;gBAJuB,CAAf,CAhBpB;;cAAA;gBAgBEhB,SAhBF;;cAAA;gBA0BO0B,KA1BP,GA0BejB,MAAM,CAACkB,IAAP,CAAY,UAACT,CAAD;kBAAA,OAAOA,CAAC,CAACE,IAAF,KAAWpB,SAAlB;gBAAA,CAAZ,CA1Bf;;gBAAA,IA4BM0B,KA5BN;kBAAA;kBAAA;gBAAA;;gBAAA,MA6BQ,IAAIE,uBAAJ,CAAgB;kBACrBC,IAAI,EAAE,iBADe;kBAErBC,eAAe,sDAA+C9B,SAA/C;gBAFM,CAAhB,CA7BR;;cAAA;gBAmCCU,iBAAiB,CAACqB,GAAlB,CAAsB;kBACrBlC,EAAE,EAAE6B,KAAK,CAAC7B,EADW;kBAErBG,SAAS,EAAE0B,KAAK,CAACN;gBAFI,CAAtB;gBAKMY,YAxCP,GAwCsB,mBAAWN,KAAK,CAACJ,IAAjB,yBAxCtB;gBAAA;gBAAA,OAyCgC,KAAKW,gBAAL,CAAsBC,WAAtB,CAAkC,OAAlC,CAzChC;;cAAA;gBAyCOC,gBAzCP;;gBA0CC,IAAIA,gBAAJ,EAAsB;kBACrBH,YAAY,CAACI,IAAb,CACC,4EADD;gBAGA;;gBA9CF,iCAgDQ;kBACNJ,YAAY,EAAZA;gBADM,CAhDR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EALyCK,2B"}
|
package/package.json
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
]
|
|
19
19
|
},
|
|
20
20
|
"license": "MIT",
|
|
21
|
-
"version": "17.0.
|
|
21
|
+
"version": "17.0.16",
|
|
22
22
|
"bin": {
|
|
23
23
|
"spruce": "./build/index.js"
|
|
24
24
|
},
|
|
@@ -76,19 +76,19 @@
|
|
|
76
76
|
"@babel/plugin-proposal-decorators": "^7.18.2",
|
|
77
77
|
"@babel/runtime": "^7.18.3",
|
|
78
78
|
"@jest/reporters": "^28.1.1",
|
|
79
|
-
"@sprucelabs/error": "^5.0.
|
|
80
|
-
"@sprucelabs/heartwood-view-controllers": "^
|
|
81
|
-
"@sprucelabs/jest-json-reporter": "^6.0.
|
|
82
|
-
"@sprucelabs/mercury-client": "^
|
|
83
|
-
"@sprucelabs/mercury-event-emitter": "^
|
|
84
|
-
"@sprucelabs/mercury-types": "^
|
|
85
|
-
"@sprucelabs/schema": "^28.2.
|
|
86
|
-
"@sprucelabs/spruce-core-schemas": "^
|
|
87
|
-
"@sprucelabs/spruce-event-plugin": "^
|
|
88
|
-
"@sprucelabs/spruce-event-utils": "^
|
|
89
|
-
"@sprucelabs/spruce-skill-booter": "^
|
|
90
|
-
"@sprucelabs/spruce-skill-utils": "^26.0.
|
|
91
|
-
"@sprucelabs/spruce-templates": "^17.0.
|
|
79
|
+
"@sprucelabs/error": "^5.0.473",
|
|
80
|
+
"@sprucelabs/heartwood-view-controllers": "^84.3.3",
|
|
81
|
+
"@sprucelabs/jest-json-reporter": "^6.0.407",
|
|
82
|
+
"@sprucelabs/mercury-client": "^31.0.3",
|
|
83
|
+
"@sprucelabs/mercury-event-emitter": "^31.0.3",
|
|
84
|
+
"@sprucelabs/mercury-types": "^35.0.1",
|
|
85
|
+
"@sprucelabs/schema": "^28.2.49",
|
|
86
|
+
"@sprucelabs/spruce-core-schemas": "^34.0.2",
|
|
87
|
+
"@sprucelabs/spruce-event-plugin": "^41.0.0",
|
|
88
|
+
"@sprucelabs/spruce-event-utils": "^27.0.2",
|
|
89
|
+
"@sprucelabs/spruce-skill-booter": "^41.0.0",
|
|
90
|
+
"@sprucelabs/spruce-skill-utils": "^26.0.85",
|
|
91
|
+
"@sprucelabs/spruce-templates": "^17.0.16",
|
|
92
92
|
"@typescript-eslint/eslint-plugin": "^5.27.1",
|
|
93
93
|
"@typescript-eslint/parser": "^5.27.1",
|
|
94
94
|
"cfonts": "^3.1.0",
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"chokidar": "^3.5.3",
|
|
97
97
|
"cli-table3": "^0.6.2",
|
|
98
98
|
"commander": "7.2.0",
|
|
99
|
-
"core-js": "^3.
|
|
99
|
+
"core-js": "^3.23.1",
|
|
100
100
|
"emphasize": "4.2.0",
|
|
101
101
|
"fs-extra": "^10.1.0",
|
|
102
102
|
"gifwrap": "^0.10.1",
|
|
@@ -119,16 +119,16 @@
|
|
|
119
119
|
"uuid": "^8.3.2"
|
|
120
120
|
},
|
|
121
121
|
"devDependencies": {
|
|
122
|
-
"@sprucelabs/data-stores": "^
|
|
123
|
-
"@sprucelabs/jest-sheets-reporter": "^1.3.
|
|
124
|
-
"@sprucelabs/mercury-core-events": "^
|
|
125
|
-
"@sprucelabs/resolve-path-aliases": "^1.1.
|
|
126
|
-
"@sprucelabs/spruce-conversation-plugin": "^
|
|
127
|
-
"@sprucelabs/spruce-deploy-plugin": "^
|
|
128
|
-
"@sprucelabs/spruce-store-plugin": "^
|
|
129
|
-
"@sprucelabs/spruce-test-fixtures": "^
|
|
130
|
-
"@sprucelabs/test": "^7.7.
|
|
131
|
-
"@sprucelabs/test-utils": "^3.
|
|
122
|
+
"@sprucelabs/data-stores": "^17.0.1",
|
|
123
|
+
"@sprucelabs/jest-sheets-reporter": "^1.3.47",
|
|
124
|
+
"@sprucelabs/mercury-core-events": "^12.0.2",
|
|
125
|
+
"@sprucelabs/resolve-path-aliases": "^1.1.61",
|
|
126
|
+
"@sprucelabs/spruce-conversation-plugin": "^41.0.0",
|
|
127
|
+
"@sprucelabs/spruce-deploy-plugin": "^41.0.0",
|
|
128
|
+
"@sprucelabs/spruce-store-plugin": "^41.0.0",
|
|
129
|
+
"@sprucelabs/spruce-test-fixtures": "^41.0.0",
|
|
130
|
+
"@sprucelabs/test": "^7.7.328",
|
|
131
|
+
"@sprucelabs/test-utils": "^3.1.12",
|
|
132
132
|
"@types/blessed": "^0.1.19",
|
|
133
133
|
"@types/eslint": "^8.4.3",
|
|
134
134
|
"@types/fs-extra": "^9.0.13",
|
|
@@ -138,35 +138,35 @@
|
|
|
138
138
|
"@types/lodash": "^4.14.182",
|
|
139
139
|
"@types/md5": "^2.3.2",
|
|
140
140
|
"@types/mkdirp": "^1.0.2",
|
|
141
|
-
"@types/node": "^
|
|
141
|
+
"@types/node": "^18.0.0",
|
|
142
142
|
"@types/promise.allsettled": "^1.0.3",
|
|
143
143
|
"@types/ps-node": "^0.1.1",
|
|
144
144
|
"@types/rimraf": "^3.0.2",
|
|
145
|
-
"@types/semver": "^7.3.
|
|
145
|
+
"@types/semver": "^7.3.10",
|
|
146
146
|
"@types/sha1": "^1.1.3",
|
|
147
147
|
"@types/slug": "^5.0.3",
|
|
148
148
|
"@types/superagent": "^4.1.15",
|
|
149
149
|
"@types/terminal-kit": "^1.34.0",
|
|
150
150
|
"@types/uuid": "^8.3.4",
|
|
151
151
|
"chokidar-cli": "^3.0.0",
|
|
152
|
-
"concurrently": "^7.2.
|
|
152
|
+
"concurrently": "^7.2.2",
|
|
153
153
|
"conventional-changelog-sprucelabs": "^1.1.2",
|
|
154
154
|
"dotenv": "^16.0.1",
|
|
155
|
-
"eslint": "^8.
|
|
155
|
+
"eslint": "^8.18.0",
|
|
156
156
|
"eslint-config-spruce": "^10.11.2",
|
|
157
157
|
"find-process": "^1.4.7",
|
|
158
158
|
"jest": "^28.1.1",
|
|
159
159
|
"jest-circus": "^28.1.1",
|
|
160
160
|
"jest-junit": "^13.2.0",
|
|
161
161
|
"jest-reporters": "^0.0.2",
|
|
162
|
-
"prettier": "^2.
|
|
162
|
+
"prettier": "^2.7.1",
|
|
163
163
|
"ps-node": "^0.1.6",
|
|
164
164
|
"rimraf": "^3.0.2",
|
|
165
|
-
"ts-jest": "^28.0.
|
|
165
|
+
"ts-jest": "^28.0.5",
|
|
166
166
|
"ts-node": "^10.8.1",
|
|
167
167
|
"tsc-watch": "^5.0.3",
|
|
168
168
|
"tsconfig-paths": "^4.0.0",
|
|
169
|
-
"typescript": "^4.7.
|
|
169
|
+
"typescript": "^4.7.4"
|
|
170
170
|
},
|
|
171
171
|
"testSkillCache": {
|
|
172
172
|
"everything": [
|
|
@@ -597,5 +597,5 @@
|
|
|
597
597
|
"terminal-kit"
|
|
598
598
|
]
|
|
599
599
|
},
|
|
600
|
-
"gitHead": "
|
|
600
|
+
"gitHead": "d66182f37d68afbfb059fc64f442caab9fe8b09f"
|
|
601
601
|
}
|
|
@@ -63,8 +63,16 @@ export default class DeployAction extends AbstractAction<OptionsSchema> {
|
|
|
63
63
|
namespace: skill.slug,
|
|
64
64
|
})
|
|
65
65
|
|
|
66
|
+
const summaryLines = [`Added "${skill.name}" as a dependency!`]
|
|
67
|
+
const isEventInstalled = await this.featureInstaller.isInstalled('event')
|
|
68
|
+
if (isEventInstalled) {
|
|
69
|
+
summaryLines.push(
|
|
70
|
+
'You will need to run `spruce sync.events` before accessing any new events.'
|
|
71
|
+
)
|
|
72
|
+
}
|
|
73
|
+
|
|
66
74
|
return {
|
|
67
|
-
summaryLines
|
|
75
|
+
summaryLines,
|
|
68
76
|
}
|
|
69
77
|
}
|
|
70
78
|
}
|