@sprucelabs/spruce-cli 15.3.0 → 15.4.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/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
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
+ # [15.4.0](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v15.3.0...v15.4.0) (2022-05-02)
7
+
8
+
9
+ ### Features
10
+
11
+ * data stores can be anyowhere in a skill now! ([eda09e7](https://github.com/sprucelabsai/spruce-cli-workspace/commit/eda09e7))
12
+
13
+
14
+
15
+
16
+
6
17
  # [15.3.0](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v15.2.24...v15.3.0) (2022-04-30)
7
18
 
8
19
 
@@ -12,4 +12,5 @@ export default class DataStoreStoreTest extends AbstractSkillTest {
12
12
  protected static canImportAGoodStore(): Promise<void>;
13
13
  protected static canImportTwoGoodStores(): Promise<void>;
14
14
  protected static accuratelyReportsBadStoreAfterGoodStoresAreCreated(): Promise<void>;
15
+ protected static globbyPatternLooksEverywhere(): Promise<void>;
15
16
  }
@@ -37,13 +37,13 @@ var _AbstractSkillTest2 = _interopRequireDefault(require("../../tests/AbstractSk
37
37
 
38
38
  var _test2 = _interopRequireDefault(require("../../tests/utilities/test.utility"));
39
39
 
40
- var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _class, _class2;
40
+ var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _class, _class2;
41
41
 
42
42
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
43
43
 
44
44
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
45
45
 
46
- var DataStoreStoreTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3 = (0, _test.test)(), _dec4 = (0, _test.test)(), _dec5 = (0, _test.test)(), _dec6 = (0, _test.test)(), _dec7 = (0, _test.test)(), (_class = (_class2 = /*#__PURE__*/function (_AbstractSkillTest) {
46
+ var DataStoreStoreTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3 = (0, _test.test)(), _dec4 = (0, _test.test)(), _dec5 = (0, _test.test)(), _dec6 = (0, _test.test)(), _dec7 = (0, _test.test)(), _dec8 = (0, _test.test)(), (_class = (_class2 = /*#__PURE__*/function (_AbstractSkillTest) {
47
47
  (0, _inherits2["default"])(DataStoreStoreTest, _AbstractSkillTest);
48
48
 
49
49
  var _super = _createSuper(DataStoreStoreTest);
@@ -367,8 +367,35 @@ var DataStoreStoreTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _
367
367
 
368
368
  return accuratelyReportsBadStoreAfterGoodStoresAreCreated;
369
369
  }()
370
+ }, {
371
+ key: "globbyPatternLooksEverywhere",
372
+ value: function () {
373
+ var _globbyPatternLooksEverywhere = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10() {
374
+ var expected;
375
+ return _regenerator["default"].wrap(function _callee10$(_context10) {
376
+ while (1) {
377
+ switch (_context10.prev = _context10.next) {
378
+ case 0:
379
+ expected = this.resolvePath('src', '**', '*.store.ts'); //@ts-ignore
380
+
381
+ _test.assert.isEqual(this.store.generateGlobbyPattern(), expected);
382
+
383
+ case 2:
384
+ case "end":
385
+ return _context10.stop();
386
+ }
387
+ }
388
+ }, _callee10, this);
389
+ }));
390
+
391
+ function globbyPatternLooksEverywhere() {
392
+ return _globbyPatternLooksEverywhere.apply(this, arguments);
393
+ }
394
+
395
+ return globbyPatternLooksEverywhere;
396
+ }()
370
397
  }]);
371
398
  return DataStoreStoreTest;
372
- }(_AbstractSkillTest2["default"]), (0, _defineProperty2["default"])(_class2, "store", void 0), (0, _defineProperty2["default"])(_class2, "badStoreDest", void 0), (0, _defineProperty2["default"])(_class2, "skillCacheKey", 'stores'), _class2), ((0, _applyDecoratedDescriptor2["default"])(_class, "canInstantiateDataStore", [_dec], Object.getOwnPropertyDescriptor(_class, "canInstantiateDataStore"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "hasFetchStores", [_dec2], Object.getOwnPropertyDescriptor(_class, "hasFetchStores"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "fetchesNoStoresToStart", [_dec3], Object.getOwnPropertyDescriptor(_class, "fetchesNoStoresToStart"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "throwsWhenStoreIsNotValid", [_dec4], Object.getOwnPropertyDescriptor(_class, "throwsWhenStoreIsNotValid"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canImportAGoodStore", [_dec5], Object.getOwnPropertyDescriptor(_class, "canImportAGoodStore"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canImportTwoGoodStores", [_dec6], Object.getOwnPropertyDescriptor(_class, "canImportTwoGoodStores"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "accuratelyReportsBadStoreAfterGoodStoresAreCreated", [_dec7], Object.getOwnPropertyDescriptor(_class, "accuratelyReportsBadStoreAfterGoodStoresAreCreated"), _class)), _class));
399
+ }(_AbstractSkillTest2["default"]), (0, _defineProperty2["default"])(_class2, "store", void 0), (0, _defineProperty2["default"])(_class2, "badStoreDest", void 0), (0, _defineProperty2["default"])(_class2, "skillCacheKey", 'stores'), _class2), ((0, _applyDecoratedDescriptor2["default"])(_class, "canInstantiateDataStore", [_dec], Object.getOwnPropertyDescriptor(_class, "canInstantiateDataStore"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "hasFetchStores", [_dec2], Object.getOwnPropertyDescriptor(_class, "hasFetchStores"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "fetchesNoStoresToStart", [_dec3], Object.getOwnPropertyDescriptor(_class, "fetchesNoStoresToStart"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "throwsWhenStoreIsNotValid", [_dec4], Object.getOwnPropertyDescriptor(_class, "throwsWhenStoreIsNotValid"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canImportAGoodStore", [_dec5], Object.getOwnPropertyDescriptor(_class, "canImportAGoodStore"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canImportTwoGoodStores", [_dec6], Object.getOwnPropertyDescriptor(_class, "canImportTwoGoodStores"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "accuratelyReportsBadStoreAfterGoodStoresAreCreated", [_dec7], Object.getOwnPropertyDescriptor(_class, "accuratelyReportsBadStoreAfterGoodStoresAreCreated"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "globbyPatternLooksEverywhere", [_dec8], Object.getOwnPropertyDescriptor(_class, "globbyPatternLooksEverywhere"), _class)), _class));
373
400
  exports["default"] = DataStoreStoreTest;
374
401
  //# sourceMappingURL=DataStoreStore.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataStoreStore.test.js","names":["DataStoreStoreTest","badStoreDest","resolvePath","diskUtil","deleteFile","store","Store","assert","isTruthy","fetchStores","cwd","freshTmpDir","results","isLength","writeFile","doesThrowAsync","err","errorAssert","assertError","file","Action","execute","nameReadable","nameReadablePlural","namePascal","isFalsy","errors","storeFilepath","testUtil","assertFileByNameInGeneratedFiles","files","stores","doesInclude","className","path","AbstractSkillTest"],"sources":["../../../src/__tests__/implementation/DataStoreStore.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport StoreStore from '../../features/store/stores/StoreStore'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nexport default class DataStoreStoreTest extends AbstractSkillTest {\n\tprivate static store: StoreStore\n\tprivate static badStoreDest: string\n\tprotected static skillCacheKey = 'stores'\n\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tthis.badStoreDest = this.resolvePath('src/stores/Bad.store.ts')\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tdiskUtil.deleteFile(this.badStoreDest)\n\n\t\tthis.store = this.Store('store')\n\t}\n\n\t@test()\n\tprotected static async canInstantiateDataStore() {\n\t\tassert.isTruthy(this.Store('store'))\n\t}\n\n\t@test()\n\tprotected static async hasFetchStores() {\n\t\tassert.isTruthy(this.Store('store').fetchStores)\n\t}\n\n\t@test()\n\tprotected static async fetchesNoStoresToStart() {\n\t\tthis.cwd = this.freshTmpDir()\n\n\t\tconst results = await this.store.fetchStores()\n\t\tassert.isLength(results, 0)\n\t}\n\n\t@test()\n\tprotected static async throwsWhenStoreIsNotValid() {\n\t\tdiskUtil.writeFile(this.badStoreDest, 'throw new Error(\"Cheese!\")')\n\n\t\tconst err = await assert.doesThrowAsync(() => this.store.fetchStores())\n\n\t\terrorAssert.assertError(err, 'FAILED_TO_IMPORT', {\n\t\t\tfile: 'Bad.store.ts',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async canImportAGoodStore() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Good',\n\t\t\tnameReadablePlural: 'Good',\n\t\t\tnamePascal: 'Good',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst storeFilepath = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'Good.store.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst stores = await this.store.fetchStores()\n\t\tassert.isLength(stores, 1)\n\n\t\tassert.doesInclude(stores, {\n\t\t\tclassName: 'GoodStore',\n\t\t\tpath: storeFilepath,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async canImportTwoGoodStores() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Apple',\n\t\t\tnameReadablePlural: 'Apples',\n\t\t\tnamePascal: 'Apple',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst storeFilepath = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'Apples.store.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst stores = await this.store.fetchStores()\n\t\tassert.isLength(stores, 2)\n\n\t\tassert.doesInclude(stores, {\n\t\t\tclassName: 'ApplesStore',\n\t\t\tpath: storeFilepath,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async accuratelyReportsBadStoreAfterGoodStoresAreCreated() {\n\t\tdiskUtil.writeFile(this.badStoreDest, 'throw new Error(\"Cheese!\")')\n\n\t\tconst err = await assert.doesThrowAsync(() => this.store.fetchStores())\n\n\t\terrorAssert.assertError(err, 'FAILED_TO_IMPORT', {\n\t\t\tfile: 'Bad.store.ts',\n\t\t})\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"DataStoreStore.test.js","names":["DataStoreStoreTest","badStoreDest","resolvePath","diskUtil","deleteFile","store","Store","assert","isTruthy","fetchStores","cwd","freshTmpDir","results","isLength","writeFile","doesThrowAsync","err","errorAssert","assertError","file","Action","execute","nameReadable","nameReadablePlural","namePascal","isFalsy","errors","storeFilepath","testUtil","assertFileByNameInGeneratedFiles","files","stores","doesInclude","className","path","expected","isEqual","generateGlobbyPattern","AbstractSkillTest"],"sources":["../../../src/__tests__/implementation/DataStoreStore.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport StoreStore from '../../features/store/stores/StoreStore'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nexport default class DataStoreStoreTest extends AbstractSkillTest {\n\tprivate static store: StoreStore\n\tprivate static badStoreDest: string\n\tprotected static skillCacheKey = 'stores'\n\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tthis.badStoreDest = this.resolvePath('src/stores/Bad.store.ts')\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tdiskUtil.deleteFile(this.badStoreDest)\n\n\t\tthis.store = this.Store('store')\n\t}\n\n\t@test()\n\tprotected static async canInstantiateDataStore() {\n\t\tassert.isTruthy(this.Store('store'))\n\t}\n\n\t@test()\n\tprotected static async hasFetchStores() {\n\t\tassert.isTruthy(this.Store('store').fetchStores)\n\t}\n\n\t@test()\n\tprotected static async fetchesNoStoresToStart() {\n\t\tthis.cwd = this.freshTmpDir()\n\n\t\tconst results = await this.store.fetchStores()\n\t\tassert.isLength(results, 0)\n\t}\n\n\t@test()\n\tprotected static async throwsWhenStoreIsNotValid() {\n\t\tdiskUtil.writeFile(this.badStoreDest, 'throw new Error(\"Cheese!\")')\n\n\t\tconst err = await assert.doesThrowAsync(() => this.store.fetchStores())\n\n\t\terrorAssert.assertError(err, 'FAILED_TO_IMPORT', {\n\t\t\tfile: 'Bad.store.ts',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async canImportAGoodStore() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Good',\n\t\t\tnameReadablePlural: 'Good',\n\t\t\tnamePascal: 'Good',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst storeFilepath = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'Good.store.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst stores = await this.store.fetchStores()\n\t\tassert.isLength(stores, 1)\n\n\t\tassert.doesInclude(stores, {\n\t\t\tclassName: 'GoodStore',\n\t\t\tpath: storeFilepath,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async canImportTwoGoodStores() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Apple',\n\t\t\tnameReadablePlural: 'Apples',\n\t\t\tnamePascal: 'Apple',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst storeFilepath = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'Apples.store.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst stores = await this.store.fetchStores()\n\t\tassert.isLength(stores, 2)\n\n\t\tassert.doesInclude(stores, {\n\t\t\tclassName: 'ApplesStore',\n\t\t\tpath: storeFilepath,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async accuratelyReportsBadStoreAfterGoodStoresAreCreated() {\n\t\tdiskUtil.writeFile(this.badStoreDest, 'throw new Error(\"Cheese!\")')\n\n\t\tconst err = await assert.doesThrowAsync(() => this.store.fetchStores())\n\n\t\terrorAssert.assertError(err, 'FAILED_TO_IMPORT', {\n\t\t\tfile: 'Bad.store.ts',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async globbyPatternLooksEverywhere() {\n\t\tconst expected = this.resolvePath('src', '**', '*.store.ts')\n\n\t\t//@ts-ignore\n\t\tassert.isEqual(this.store.generateGlobbyPattern(), expected)\n\t}\n}\n"],"mappings":"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"}
@@ -6,4 +6,5 @@ export interface LoadedStore {
6
6
  export default class StoreStore extends AbstractStore {
7
7
  name: string;
8
8
  fetchStores(): Promise<LoadedStore[]>;
9
+ private generateGlobbyPattern;
9
10
  }
@@ -68,7 +68,7 @@ var StoreStore = /*#__PURE__*/function (_AbstractStore) {
68
68
  while (1) {
69
69
  switch (_context.prev = _context.next) {
70
70
  case 0:
71
- search = _spruceSkillUtils.diskUtil.resolvePath(this.cwd, 'src', 'stores', '*.store.ts');
71
+ search = this.generateGlobbyPattern();
72
72
  _context.next = 3;
73
73
  return (0, _globby["default"])(search);
74
74
 
@@ -125,6 +125,11 @@ var StoreStore = /*#__PURE__*/function (_AbstractStore) {
125
125
 
126
126
  return fetchStores;
127
127
  }()
128
+ }, {
129
+ key: "generateGlobbyPattern",
130
+ value: function generateGlobbyPattern() {
131
+ return _spruceSkillUtils.diskUtil.resolvePath(this.cwd, 'src', '**', '*.store.ts');
132
+ }
128
133
  }]);
129
134
  return StoreStore;
130
135
  }(_AbstractStore2["default"]);
@@ -1 +1 @@
1
- {"version":3,"file":"StoreStore.js","names":["StoreStore","search","diskUtil","resolvePath","cwd","matches","results","introspectionUtil","introspect","stores","i","length","className","classes","SpruceError","code","file","push","path","AbstractStore"],"sources":["../../../../src/features/store/stores/StoreStore.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport globby from 'globby'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractStore from '../../../stores/AbstractStore'\nimport introspectionUtil from '../../../utilities/introspection.utility'\n\nexport interface LoadedStore {\n\tclassName: string\n\tpath: string\n}\n\nexport default class StoreStore extends AbstractStore {\n\tpublic name = 'store'\n\n\tpublic async fetchStores() {\n\t\tconst search = diskUtil.resolvePath(this.cwd, 'src', 'stores', '*.store.ts')\n\t\tconst matches = await globby(search)\n\n\t\tconst results = introspectionUtil.introspect(matches)\n\n\t\tconst stores: LoadedStore[] = []\n\n\t\tfor (let i = 0; i < results.length; i++) {\n\t\t\tconst introspect = results[i]\n\t\t\tconst className = introspect.classes[0]?.className\n\t\t\tif (!className) {\n\t\t\t\tthrow new SpruceError({ code: 'FAILED_TO_IMPORT', file: matches[i] })\n\t\t\t}\n\n\t\t\tstores.push({ className, path: matches[i] })\n\t\t}\n\n\t\treturn stores\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;IAOqBA,U;;;;;;;;;;;;;;;6FACN,O;;;;;;;uGAEd;QAAA;;QAAA;UAAA;YAAA;cAAA;gBACOC,MADP,GACgBC,2BAASC,WAAT,CAAqB,KAAKC,GAA1B,EAA+B,KAA/B,EAAsC,QAAtC,EAAgD,YAAhD,CADhB;gBAAA;gBAAA,OAEuB,wBAAOH,MAAP,CAFvB;;cAAA;gBAEOI,OAFP;gBAIOC,OAJP,GAIiBC,0BAAkBC,UAAlB,CAA6BH,OAA7B,CAJjB;gBAMOI,MANP,GAM+B,EAN/B;gBAQUC,CARV,GAQc,CARd;;cAAA;gBAAA,MAQiBA,CAAC,GAAGJ,OAAO,CAACK,MAR7B;kBAAA;kBAAA;gBAAA;;gBASQH,UATR,GASqBF,OAAO,CAACI,CAAD,CAT5B;gBAUQE,SAVR,2BAUoBJ,UAAU,CAACK,OAAX,CAAmB,CAAnB,CAVpB,yDAUoB,qBAAuBD,SAV3C;;gBAAA,IAWOA,SAXP;kBAAA;kBAAA;gBAAA;;gBAAA,MAYS,IAAIE,uBAAJ,CAAgB;kBAAEC,IAAI,EAAE,kBAAR;kBAA4BC,IAAI,EAAEX,OAAO,CAACK,CAAD;gBAAzC,CAAhB,CAZT;;cAAA;gBAeED,MAAM,CAACQ,IAAP,CAAY;kBAAEL,SAAS,EAATA,SAAF;kBAAaM,IAAI,EAAEb,OAAO,CAACK,CAAD;gBAA1B,CAAZ;;cAfF;gBAQqCA,CAAC,EARtC;gBAAA;gBAAA;;cAAA;gBAAA,iCAkBQD,MAlBR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;EAHuCU,0B"}
1
+ {"version":3,"file":"StoreStore.js","names":["StoreStore","search","generateGlobbyPattern","matches","results","introspectionUtil","introspect","stores","i","length","className","classes","SpruceError","code","file","push","path","diskUtil","resolvePath","cwd","AbstractStore"],"sources":["../../../../src/features/store/stores/StoreStore.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport globby from 'globby'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractStore from '../../../stores/AbstractStore'\nimport introspectionUtil from '../../../utilities/introspection.utility'\n\nexport interface LoadedStore {\n\tclassName: string\n\tpath: string\n}\n\nexport default class StoreStore extends AbstractStore {\n\tpublic name = 'store'\n\n\tpublic async fetchStores() {\n\t\tconst search = this.generateGlobbyPattern()\n\t\tconst matches = await globby(search)\n\n\t\tconst results = introspectionUtil.introspect(matches)\n\n\t\tconst stores: LoadedStore[] = []\n\n\t\tfor (let i = 0; i < results.length; i++) {\n\t\t\tconst introspect = results[i]\n\t\t\tconst className = introspect.classes[0]?.className\n\t\t\tif (!className) {\n\t\t\t\tthrow new SpruceError({ code: 'FAILED_TO_IMPORT', file: matches[i] })\n\t\t\t}\n\n\t\t\tstores.push({ className, path: matches[i] })\n\t\t}\n\n\t\treturn stores\n\t}\n\n\tprivate generateGlobbyPattern() {\n\t\treturn diskUtil.resolvePath(this.cwd, 'src', '**', '*.store.ts')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;IAOqBA,U;;;;;;;;;;;;;;;6FACN,O;;;;;;;uGAEd;QAAA;;QAAA;UAAA;YAAA;cAAA;gBACOC,MADP,GACgB,KAAKC,qBAAL,EADhB;gBAAA;gBAAA,OAEuB,wBAAOD,MAAP,CAFvB;;cAAA;gBAEOE,OAFP;gBAIOC,OAJP,GAIiBC,0BAAkBC,UAAlB,CAA6BH,OAA7B,CAJjB;gBAMOI,MANP,GAM+B,EAN/B;gBAQUC,CARV,GAQc,CARd;;cAAA;gBAAA,MAQiBA,CAAC,GAAGJ,OAAO,CAACK,MAR7B;kBAAA;kBAAA;gBAAA;;gBASQH,UATR,GASqBF,OAAO,CAACI,CAAD,CAT5B;gBAUQE,SAVR,2BAUoBJ,UAAU,CAACK,OAAX,CAAmB,CAAnB,CAVpB,yDAUoB,qBAAuBD,SAV3C;;gBAAA,IAWOA,SAXP;kBAAA;kBAAA;gBAAA;;gBAAA,MAYS,IAAIE,uBAAJ,CAAgB;kBAAEC,IAAI,EAAE,kBAAR;kBAA4BC,IAAI,EAAEX,OAAO,CAACK,CAAD;gBAAzC,CAAhB,CAZT;;cAAA;gBAeED,MAAM,CAACQ,IAAP,CAAY;kBAAEL,SAAS,EAATA,SAAF;kBAAaM,IAAI,EAAEb,OAAO,CAACK,CAAD;gBAA1B,CAAZ;;cAfF;gBAQqCA,CAAC,EARtC;gBAAA;gBAAA;;cAAA;gBAAA,iCAkBQD,MAlBR;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,C;;;;;;;;;;WAqBA,iCAAgC;MAC/B,OAAOU,2BAASC,WAAT,CAAqB,KAAKC,GAA1B,EAA+B,KAA/B,EAAsC,IAAtC,EAA4C,YAA5C,CAAP;IACA;;;EA1BsCC,0B"}
package/package.json CHANGED
@@ -18,7 +18,7 @@
18
18
  ]
19
19
  },
20
20
  "license": "MIT",
21
- "version": "15.3.0",
21
+ "version": "15.4.0",
22
22
  "bin": {
23
23
  "spruce": "./build/index.js"
24
24
  },
@@ -72,23 +72,23 @@
72
72
  "watch.tsc": "tsc -w --sourceMap"
73
73
  },
74
74
  "dependencies": {
75
- "@babel/cli": "^7.17.6",
75
+ "@babel/cli": "^7.17.10",
76
76
  "@babel/plugin-proposal-decorators": "^7.17.9",
77
77
  "@babel/runtime": "^7.17.9",
78
- "@jest/reporters": "^27.5.1",
79
- "@sprucelabs/error": "^5.0.440",
80
- "@sprucelabs/heartwood-view-controllers": "^70.14.10",
81
- "@sprucelabs/jest-json-reporter": "^6.0.361",
82
- "@sprucelabs/mercury-client": "^22.2.58",
83
- "@sprucelabs/mercury-event-emitter": "^22.2.58",
84
- "@sprucelabs/mercury-types": "^27.0.228",
85
- "@sprucelabs/schema": "^27.1.49",
86
- "@sprucelabs/spruce-core-schemas": "^25.0.84",
87
- "@sprucelabs/spruce-event-plugin": "^30.4.12",
88
- "@sprucelabs/spruce-event-utils": "^19.1.86",
89
- "@sprucelabs/spruce-skill-booter": "^30.4.12",
90
- "@sprucelabs/spruce-skill-utils": "^25.0.83",
91
- "@sprucelabs/spruce-templates": "^15.3.0",
78
+ "@jest/reporters": "^28.0.3",
79
+ "@sprucelabs/error": "^5.0.448",
80
+ "@sprucelabs/heartwood-view-controllers": "^70.15.35",
81
+ "@sprucelabs/jest-json-reporter": "^6.0.371",
82
+ "@sprucelabs/mercury-client": "^22.2.84",
83
+ "@sprucelabs/mercury-event-emitter": "^22.2.84",
84
+ "@sprucelabs/mercury-types": "^27.0.251",
85
+ "@sprucelabs/schema": "^27.1.66",
86
+ "@sprucelabs/spruce-core-schemas": "^25.0.106",
87
+ "@sprucelabs/spruce-event-plugin": "^30.4.39",
88
+ "@sprucelabs/spruce-event-utils": "^19.1.111",
89
+ "@sprucelabs/spruce-skill-booter": "^30.4.39",
90
+ "@sprucelabs/spruce-skill-utils": "^25.0.106",
91
+ "@sprucelabs/spruce-templates": "^15.4.0",
92
92
  "@typescript-eslint/eslint-plugin": "^5.17.0",
93
93
  "@typescript-eslint/parser": "^5.17.0",
94
94
  "cfonts": "^2.10.1",
@@ -96,13 +96,13 @@
96
96
  "chokidar": "^3.5.3",
97
97
  "cli-table3": "^0.6.2",
98
98
  "commander": "7.2.0",
99
- "core-js": "^3.22.0",
99
+ "core-js": "^3.22.3",
100
100
  "emphasize": "4.2.0",
101
101
  "fs-extra": "^10.1.0",
102
102
  "gifwrap": "^0.10.1",
103
103
  "globby": "11.0.4",
104
104
  "inflection": "^1.13.2",
105
- "inquirer": "^8.2.2",
105
+ "inquirer": "^8.2.4",
106
106
  "inquirer-file-tree-selection-prompt": "1.0.18",
107
107
  "js-tetris-cli": "^0.0.3",
108
108
  "jsonwebtoken": "^8.5.1",
@@ -119,16 +119,16 @@
119
119
  "uuid": "^8.3.2"
120
120
  },
121
121
  "devDependencies": {
122
- "@sprucelabs/data-stores": "^9.0.92",
123
- "@sprucelabs/jest-sheets-reporter": "^1.3.41",
124
- "@sprucelabs/mercury-core-events": "^3.2.7",
125
- "@sprucelabs/resolve-path-aliases": "^1.1.30",
126
- "@sprucelabs/spruce-conversation-plugin": "^30.4.12",
127
- "@sprucelabs/spruce-deploy-plugin": "^30.4.12",
128
- "@sprucelabs/spruce-store-plugin": "^30.4.12",
129
- "@sprucelabs/spruce-test-fixtures": "^30.4.12",
130
- "@sprucelabs/test": "^7.7.304",
131
- "@sprucelabs/test-utils": "^3.0.521",
122
+ "@sprucelabs/data-stores": "^9.0.118",
123
+ "@sprucelabs/jest-sheets-reporter": "^1.3.43",
124
+ "@sprucelabs/mercury-core-events": "^3.2.34",
125
+ "@sprucelabs/resolve-path-aliases": "^1.1.35",
126
+ "@sprucelabs/spruce-conversation-plugin": "^30.4.39",
127
+ "@sprucelabs/spruce-deploy-plugin": "^30.4.39",
128
+ "@sprucelabs/spruce-store-plugin": "^30.4.39",
129
+ "@sprucelabs/spruce-test-fixtures": "^30.4.39",
130
+ "@sprucelabs/test": "^7.7.309",
131
+ "@sprucelabs/test-utils": "^3.0.536",
132
132
  "@types/blessed": "^0.1.19",
133
133
  "@types/eslint": "^8.4.1",
134
134
  "@types/fs-extra": "^9.0.13",
@@ -138,7 +138,7 @@
138
138
  "@types/lodash": "^4.14.182",
139
139
  "@types/md5": "^2.3.2",
140
140
  "@types/mkdirp": "^1.0.2",
141
- "@types/node": "^17.0.25",
141
+ "@types/node": "^17.0.31",
142
142
  "@types/promise.allsettled": "^1.0.3",
143
143
  "@types/ps-node": "^0.1.1",
144
144
  "@types/rimraf": "^3.0.2",
@@ -152,12 +152,12 @@
152
152
  "concurrently": "^7.1.0",
153
153
  "conventional-changelog-sprucelabs": "^1.1.2",
154
154
  "dotenv": "^16.0.0",
155
- "eslint": "^8.13.0",
155
+ "eslint": "^8.14.0",
156
156
  "eslint-config-spruce": "^10.11.2",
157
157
  "find-process": "^1.4.7",
158
- "jest": "^27.5.1",
159
- "jest-circus": "^27.5.1",
160
- "jest-junit": "^13.1.0",
158
+ "jest": "^28.0.3",
159
+ "jest-circus": "^28.0.3",
160
+ "jest-junit": "^13.2.0",
161
161
  "jest-reporters": "^0.0.2",
162
162
  "prettier": "^2.6.2",
163
163
  "ps-node": "^0.1.6",
@@ -166,7 +166,7 @@
166
166
  "ts-node": "^10.7.0",
167
167
  "tsc-watch": "^5.0.3",
168
168
  "tsconfig-paths": "^3.14.1",
169
- "typescript": "^4.6.3"
169
+ "typescript": "^4.6.4"
170
170
  },
171
171
  "testSkillCache": {
172
172
  "everything": [
@@ -597,5 +597,5 @@
597
597
  "terminal-kit"
598
598
  ]
599
599
  },
600
- "gitHead": "3d6a6de8b5280b8447f4ad490877faa6acb1e200"
600
+ "gitHead": "54fcd462c680b30429b7fe4952aaade2962ae9e7"
601
601
  }
@@ -109,4 +109,12 @@ export default class DataStoreStoreTest extends AbstractSkillTest {
109
109
  file: 'Bad.store.ts',
110
110
  })
111
111
  }
112
+
113
+ @test()
114
+ protected static async globbyPatternLooksEverywhere() {
115
+ const expected = this.resolvePath('src', '**', '*.store.ts')
116
+
117
+ //@ts-ignore
118
+ assert.isEqual(this.store.generateGlobbyPattern(), expected)
119
+ }
112
120
  }
@@ -13,7 +13,7 @@ export default class StoreStore extends AbstractStore {
13
13
  public name = 'store'
14
14
 
15
15
  public async fetchStores() {
16
- const search = diskUtil.resolvePath(this.cwd, 'src', 'stores', '*.store.ts')
16
+ const search = this.generateGlobbyPattern()
17
17
  const matches = await globby(search)
18
18
 
19
19
  const results = introspectionUtil.introspect(matches)
@@ -32,4 +32,8 @@ export default class StoreStore extends AbstractStore {
32
32
 
33
33
  return stores
34
34
  }
35
+
36
+ private generateGlobbyPattern() {
37
+ return diskUtil.resolvePath(this.cwd, 'src', '**', '*.store.ts')
38
+ }
35
39
  }