@sprucelabs/spruce-cli 18.3.0 → 18.3.1

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 (91) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/__tests__/behavioral/events/EventWriter.test.d.ts +4 -0
  3. package/build/__tests__/behavioral/events/EventWriter.test.js +116 -0
  4. package/build/__tests__/behavioral/events/EventWriter.test.js.map +1 -0
  5. package/build/__tests__/behavioral/{ListeningToCoreEvents.test.d.ts → events/ListeningToCoreEvents.test.d.ts} +1 -1
  6. package/build/__tests__/behavioral/{ListeningToCoreEvents.test.js → events/ListeningToCoreEvents.test.js} +1 -1
  7. package/build/__tests__/behavioral/events/ListeningToCoreEvents.test.js.map +1 -0
  8. package/build/__tests__/behavioral/{RegisteringEventsOnBoot.test.d.ts → events/RegisteringEventsOnBoot.test.d.ts} +1 -1
  9. package/build/__tests__/behavioral/{RegisteringEventsOnBoot.test.js → events/RegisteringEventsOnBoot.test.js} +2 -2
  10. package/build/__tests__/behavioral/events/RegisteringEventsOnBoot.test.js.map +1 -0
  11. package/build/__tests__/behavioral/{RegisteringGlobalEvents.test.d.ts → events/RegisteringGlobalEvents.test.d.ts} +2 -3
  12. package/build/__tests__/behavioral/{RegisteringGlobalEvents.test.js → events/RegisteringGlobalEvents.test.js} +45 -70
  13. package/build/__tests__/behavioral/events/RegisteringGlobalEvents.test.js.map +1 -0
  14. package/build/__tests__/behavioral/{SyncingEventsOnlyFromDependencies.test.d.ts → events/SyncingEventsOnlyFromDependencies.test.d.ts} +1 -1
  15. package/build/__tests__/behavioral/{SyncingEventsOnlyFromDependencies.test.js → events/SyncingEventsOnlyFromDependencies.test.js} +1 -1
  16. package/build/__tests__/behavioral/events/SyncingEventsOnlyFromDependencies.test.js.map +1 -0
  17. package/build/__tests__/behavioral/permissions/PermissionStore.test.js +1 -0
  18. package/build/__tests__/behavioral/permissions/PermissionStore.test.js.map +1 -1
  19. package/build/__tests__/behavioral/permissions/PermissionWriter.test.js +1 -1
  20. package/build/__tests__/behavioral/permissions/PermissionWriter.test.js.map +1 -1
  21. package/build/__tests__/behavioral/{CreatingSchemasWithGenerics.test.d.ts → schemas/CreatingSchemasWithGenerics.test.d.ts} +1 -1
  22. package/build/__tests__/behavioral/{CreatingSchemasWithGenerics.test.js → schemas/CreatingSchemasWithGenerics.test.js} +2 -2
  23. package/build/__tests__/behavioral/schemas/CreatingSchemasWithGenerics.test.js.map +1 -0
  24. package/build/__tests__/behavioral/{SettingUpSchemasForModuleDistribution.test.d.ts → schemas/SettingUpSchemasForModuleDistribution.test.d.ts} +1 -1
  25. package/build/__tests__/behavioral/{SettingUpSchemasForModuleDistribution.test.js → schemas/SettingUpSchemasForModuleDistribution.test.js} +3 -3
  26. package/build/__tests__/behavioral/schemas/SettingUpSchemasForModuleDistribution.test.js.map +1 -0
  27. package/build/__tests__/behavioral/{InstallingASkillAtAnOrg.test.d.ts → skill/InstallingASkillAtAnOrg.test.d.ts} +1 -1
  28. package/build/__tests__/behavioral/{InstallingASkillAtAnOrg.test.js → skill/InstallingASkillAtAnOrg.test.js} +2 -2
  29. package/build/__tests__/behavioral/skill/InstallingASkillAtAnOrg.test.js.map +1 -0
  30. package/build/__tests__/behavioral/{LoggingInAsASkill.test.d.ts → skill/LoggingInAsASkill.test.d.ts} +1 -1
  31. package/build/__tests__/behavioral/{LoggingInAsASkill.test.js → skill/LoggingInAsASkill.test.js} +2 -2
  32. package/build/__tests__/behavioral/skill/LoggingInAsASkill.test.js.map +1 -0
  33. package/build/__tests__/behavioral/{RebuildingASkill.test.d.ts → skill/RebuildingASkill.test.d.ts} +1 -1
  34. package/build/__tests__/behavioral/{RebuildingASkill.test.js → skill/RebuildingASkill.test.js} +2 -2
  35. package/build/__tests__/behavioral/skill/RebuildingASkill.test.js.map +1 -0
  36. package/build/__tests__/behavioral/{SettingUpASkillForTesting.test.d.ts → tests/SettingUpASkillForTesting.test.d.ts} +1 -1
  37. package/build/__tests__/behavioral/{SettingUpASkillForTesting.test.js → tests/SettingUpASkillForTesting.test.js} +2 -2
  38. package/build/__tests__/behavioral/tests/SettingUpASkillForTesting.test.js.map +1 -0
  39. package/build/__tests__/behavioral/{TestReporterSettingsRemembered.test.d.ts → tests/TestReporterSettingsRemembered.test.d.ts} +1 -1
  40. package/build/__tests__/behavioral/{TestReporterSettingsRemembered.test.js → tests/TestReporterSettingsRemembered.test.js} +1 -1
  41. package/build/__tests__/behavioral/tests/TestReporterSettingsRemembered.test.js.map +1 -0
  42. package/build/__tests__/behavioral/{TestingDataStores.test.d.ts → tests/TestingDataStores.test.d.ts} +1 -1
  43. package/build/__tests__/behavioral/{TestingDataStores.test.js → tests/TestingDataStores.test.js} +3 -3
  44. package/build/__tests__/behavioral/tests/TestingDataStores.test.js.map +1 -0
  45. package/build/__tests__/behavioral/{RegisteringSkillViewOnBoot.test.d.ts → views/RegisteringSkillViewOnBoot.test.d.ts} +4 -4
  46. package/build/__tests__/behavioral/{RegisteringSkillViewOnBoot.test.js → views/RegisteringSkillViewOnBoot.test.js} +2 -2
  47. package/build/__tests__/behavioral/views/RegisteringSkillViewOnBoot.test.js.map +1 -0
  48. package/build/__tests__/behavioral/{WatchingSkillViews.test.d.ts → views/WatchingSkillViews.test.d.ts} +1 -1
  49. package/build/__tests__/behavioral/{WatchingSkillViews.test.js → views/WatchingSkillViews.test.js} +2 -2
  50. package/build/__tests__/behavioral/views/WatchingSkillViews.test.js.map +1 -0
  51. package/build/features/permission/PermissionFeature.js +1 -3
  52. package/build/features/permission/PermissionFeature.js.map +1 -1
  53. package/build/features/permission/stores/PermissionStore.js.map +1 -1
  54. package/build/features/permission/writers/PermissionWriter.d.ts +1 -1
  55. package/build/features/permission/writers/PermissionWriter.js +2 -2
  56. package/build/features/permission/writers/PermissionWriter.js.map +1 -1
  57. package/package.json +22 -22
  58. package/src/__tests__/behavioral/events/EventWriter.test.ts +75 -0
  59. package/src/__tests__/behavioral/{ListeningToCoreEvents.test.ts → events/ListeningToCoreEvents.test.ts} +1 -1
  60. package/src/__tests__/behavioral/{RegisteringEventsOnBoot.test.ts → events/RegisteringEventsOnBoot.test.ts} +2 -2
  61. package/src/__tests__/behavioral/{RegisteringGlobalEvents.test.ts → events/RegisteringGlobalEvents.test.ts} +4 -12
  62. package/src/__tests__/behavioral/{SyncingEventsOnlyFromDependencies.test.ts → events/SyncingEventsOnlyFromDependencies.test.ts} +2 -2
  63. package/src/__tests__/behavioral/permissions/PermissionStore.test.ts +1 -0
  64. package/src/__tests__/behavioral/permissions/PermissionWriter.test.ts +1 -0
  65. package/src/__tests__/behavioral/{CreatingSchemasWithGenerics.test.ts → schemas/CreatingSchemasWithGenerics.test.ts} +2 -2
  66. package/src/__tests__/behavioral/{SettingUpSchemasForModuleDistribution.test.ts → schemas/SettingUpSchemasForModuleDistribution.test.ts} +4 -4
  67. package/src/__tests__/behavioral/{InstallingASkillAtAnOrg.test.ts → skill/InstallingASkillAtAnOrg.test.ts} +2 -2
  68. package/src/__tests__/behavioral/{LoggingInAsASkill.test.ts → skill/LoggingInAsASkill.test.ts} +3 -3
  69. package/src/__tests__/behavioral/{RebuildingASkill.test.ts → skill/RebuildingASkill.test.ts} +2 -2
  70. package/src/__tests__/behavioral/{SettingUpASkillForTesting.test.ts → tests/SettingUpASkillForTesting.test.ts} +2 -2
  71. package/src/__tests__/behavioral/{TestReporterSettingsRemembered.test.ts → tests/TestReporterSettingsRemembered.test.ts} +2 -2
  72. package/src/__tests__/behavioral/{TestingDataStores.test.ts → tests/TestingDataStores.test.ts} +3 -3
  73. package/src/__tests__/behavioral/{RegisteringSkillViewOnBoot.test.ts → views/RegisteringSkillViewOnBoot.test.ts} +2 -2
  74. package/src/__tests__/behavioral/{WatchingSkillViews.test.ts → views/WatchingSkillViews.test.ts} +3 -3
  75. package/src/features/permission/PermissionFeature.ts +5 -3
  76. package/src/features/permission/stores/PermissionStore.ts +1 -1
  77. package/src/features/permission/writers/PermissionWriter.ts +2 -5
  78. package/build/__tests__/behavioral/CreatingSchemasWithGenerics.test.js.map +0 -1
  79. package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +0 -1
  80. package/build/__tests__/behavioral/ListeningToCoreEvents.test.js.map +0 -1
  81. package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +0 -1
  82. package/build/__tests__/behavioral/RebuildingASkill.test.js.map +0 -1
  83. package/build/__tests__/behavioral/RegisteringEventsOnBoot.test.js.map +0 -1
  84. package/build/__tests__/behavioral/RegisteringGlobalEvents.test.js.map +0 -1
  85. package/build/__tests__/behavioral/RegisteringSkillViewOnBoot.test.js.map +0 -1
  86. package/build/__tests__/behavioral/SettingUpASkillForTesting.test.js.map +0 -1
  87. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +0 -1
  88. package/build/__tests__/behavioral/SyncingEventsOnlyFromDependencies.test.js.map +0 -1
  89. package/build/__tests__/behavioral/TestReporterSettingsRemembered.test.js.map +0 -1
  90. package/build/__tests__/behavioral/TestingDataStores.test.js.map +0 -1
  91. package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionFeature.js","names":["PermissionFeature","options","diskUtil","resolvePath","__dirname","name","writer","Writer","emitter","on","handleDidExecuteAction","bind","featureCode","actionCode","features","isInstalled","isSkillInstalled","writePlugin","combinedFile","Action","execute","results","files","writeTypesFile","cwd","contracts","AbstractFeature"],"sources":["../../../src/features/permission/PermissionFeature.ts"],"sourcesContent":["import { diskUtil, NpmPackage } from '@sprucelabs/spruce-skill-utils'\nimport AbstractFeature, {\n\tFeatureDependency,\n\tFeatureOptions,\n\tInstallResults,\n} from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\nimport PermissionWriter from './writers/PermissionWriter'\n\nexport default class PermissionFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'permission'\n\tpublic nameReadable = 'permission'\n\tpublic description = 'Manage permissions for your skill'\n\tpublic dependencies: FeatureDependency[] = []\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\tpublic packageDependencies: NpmPackage[] = [\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-permission-plugin@latest',\n\t\t},\n\t]\n\tprivate writer: PermissionWriter\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tsuper(options)\n\t\tthis.writer = this.Writer('permission')\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.did-execute',\n\t\t\tthis.handleDidExecuteAction.bind(this)\n\t\t)\n\t}\n\n\tpublic async handleDidExecuteAction({\n\t\tfeatureCode,\n\t\tactionCode,\n\t}: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}) {\n\t\tconst isInstalled = await this.features.isInstalled('permission')\n\t\tconst isSkillInstalled = await this.features.isInstalled('skill')\n\n\t\tif (\n\t\t\tisSkillInstalled &&\n\t\t\tisInstalled &&\n\t\t\tfeatureCode === 'node' &&\n\t\t\tactionCode === 'upgrade'\n\t\t) {\n\t\t\tconst combinedFile = await this.writePlugin()\n\t\t\tconst results = await this.Action('permission', 'sync').execute({})\n\n\t\t\tresults.files = [...(results.files ?? []), ...combinedFile]\n\t\t\treturn results\n\t\t}\n\n\t\treturn {}\n\t}\n\n\tpublic async afterPackageInstall(): Promise<InstallResults> {\n\t\tconst files = await this.writePlugin()\n\t\tconst combinedFile = await this.writeTypesFile()\n\n\t\treturn {\n\t\t\tfiles: [...files, ...combinedFile],\n\t\t}\n\t}\n\n\tprivate async writeTypesFile() {\n\t\treturn await this.writer.writeTypesFile(this.cwd, {\n\t\t\tcontracts: [],\n\t\t})\n\t}\n\n\tprivate async writePlugin() {\n\t\treturn this.writer.writePlugin(this.cwd)\n\t}\n}\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tpermission: PermissionFeature\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AACA;AAI2B;AAAA;AAAA,IAINA,iBAAiB;EAAA;EAAA;EAarC,2BAAmBC,OAAuB,EAAE;IAAA;IAAA;IAC3C,0BAAMA,OAAO;IAAC,yFAbY,YAAY;IAAA,iGACjB,YAAY;IAAA,gGACb,mCAAmC;IAAA,iGACb,EAAE;IAAA,+FACzBC,0BAAQ,CAACC,WAAW,CAACC,SAAS,EAAE,SAAS,CAAC;IAAA,wGACnB,CAC1C;MACCC,IAAI,EAAE;IACP,CAAC,CACD;IAAA;IAKA,MAAKC,MAAM,GAAG,MAAKC,MAAM,CAAC,YAAY,CAAC;IAEvC,KAAK,MAAKC,OAAO,CAACC,EAAE,CACnB,qBAAqB,EACrB,MAAKC,sBAAsB,CAACC,IAAI,gDAAM,CACtC;IAAA;EACF;EAAC;IAAA;IAAA;MAAA,4GAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBACCC,WAAW,QAAXA,WAAW,EACXC,UAAU,QAAVA,UAAU;gBAAA;gBAAA,OAKgB,IAAI,CAACC,QAAQ,CAACC,WAAW,CAAC,YAAY,CAAC;cAAA;gBAA3DA,WAAW;gBAAA;gBAAA,OACc,IAAI,CAACD,QAAQ,CAACC,WAAW,CAAC,OAAO,CAAC;cAAA;gBAA3DC,gBAAgB;gBAAA,MAGrBA,gBAAgB,IAChBD,WAAW,IACXH,WAAW,KAAK,MAAM,IACtBC,UAAU,KAAK,SAAS;kBAAA;kBAAA;gBAAA;gBAAA;gBAAA,OAEG,IAAI,CAACI,WAAW,EAAE;cAAA;gBAAvCC,YAAY;gBAAA;gBAAA,OACI,IAAI,CAACC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC;cAAA;gBAA7DC,OAAO;gBAEbA,OAAO,CAACC,KAAK,mEAAQD,OAAO,CAACC,KAAK,2DAAI,EAAE,uCAAMJ,YAAY,EAAC;gBAAA,iCACpDG,OAAO;cAAA;gBAAA,iCAGR,CAAC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACT;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,yGAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACqB,IAAI,CAACJ,WAAW,EAAE;cAAA;gBAAhCK,KAAK;gBAAA;gBAAA,OACgB,IAAI,CAACC,cAAc,EAAE;cAAA;gBAA1CL,YAAY;gBAAA,kCAEX;kBACNI,KAAK,gDAAMA,KAAK,uCAAKJ,YAAY;gBAClC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,oGAED;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACc,IAAI,CAACZ,MAAM,CAACiB,cAAc,CAAC,IAAI,CAACC,GAAG,EAAE;kBACjDC,SAAS,EAAE;gBACZ,CAAC,CAAC;cAAA;gBAAA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACF;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,iGAED;QAAA;UAAA;YAAA;cAAA;gBAAA,kCACQ,IAAI,CAACnB,MAAM,CAACW,WAAW,CAAC,IAAI,CAACO,GAAG,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACxC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EAlE6CE,4BAAe;AAAA"}
1
+ {"version":3,"file":"PermissionFeature.js","names":["PermissionFeature","options","diskUtil","resolvePath","__dirname","name","writer","Writer","emitter","on","handleDidExecuteAction","bind","featureCode","actionCode","features","isInstalled","isSkillInstalled","writePlugin","combinedFile","Action","execute","results","files","writeTypesFile","cwd","AbstractFeature"],"sources":["../../../src/features/permission/PermissionFeature.ts"],"sourcesContent":["import { PermissionContractMap } from '@sprucelabs/mercury-types'\nimport { diskUtil, NpmPackage } from '@sprucelabs/spruce-skill-utils'\nimport AbstractFeature, {\n\tFeatureDependency,\n\tFeatureOptions,\n\tInstallResults,\n} from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\nimport PermissionWriter from './writers/PermissionWriter'\n\nexport default class PermissionFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'permission'\n\tpublic nameReadable = 'permission'\n\tpublic description = 'Manage permissions for your skill'\n\tpublic dependencies: FeatureDependency[] = []\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\tpublic packageDependencies: NpmPackage[] = [\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-permission-plugin@latest',\n\t\t},\n\t]\n\tprivate writer: PermissionWriter\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tsuper(options)\n\t\tthis.writer = this.Writer('permission')\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.did-execute',\n\t\t\tthis.handleDidExecuteAction.bind(this)\n\t\t)\n\t}\n\n\tpublic async handleDidExecuteAction({\n\t\tfeatureCode,\n\t\tactionCode,\n\t}: {\n\t\tfeatureCode: string\n\t\tactionCode: string\n\t}) {\n\t\tconst isInstalled = await this.features.isInstalled('permission')\n\t\tconst isSkillInstalled = await this.features.isInstalled('skill')\n\n\t\tif (\n\t\t\tisSkillInstalled &&\n\t\t\tisInstalled &&\n\t\t\tfeatureCode === 'node' &&\n\t\t\tactionCode === 'upgrade'\n\t\t) {\n\t\t\tconst combinedFile = await this.writePlugin()\n\t\t\tconst results = await this.Action('permission', 'sync').execute({})\n\n\t\t\tresults.files = [...(results.files ?? []), ...combinedFile]\n\t\t\treturn results\n\t\t}\n\n\t\treturn {}\n\t}\n\n\tpublic async afterPackageInstall(): Promise<InstallResults> {\n\t\tconst files = await this.writePlugin()\n\t\tconst combinedFile = await this.writeTypesFile()\n\n\t\treturn {\n\t\t\tfiles: [...files, ...combinedFile],\n\t\t}\n\t}\n\n\tprivate async writeTypesFile() {\n\t\treturn await this.writer.writeTypesFile(\n\t\t\tthis.cwd,\n\t\t\t{} as PermissionContractMap\n\t\t)\n\t}\n\n\tprivate async writePlugin() {\n\t\treturn this.writer.writePlugin(this.cwd)\n\t}\n}\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tpermission: PermissionFeature\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AACA;AACA;AAI2B;AAAA;AAAA,IAINA,iBAAiB;EAAA;EAAA;EAarC,2BAAmBC,OAAuB,EAAE;IAAA;IAAA;IAC3C,0BAAMA,OAAO;IAAC,yFAbY,YAAY;IAAA,iGACjB,YAAY;IAAA,gGACb,mCAAmC;IAAA,iGACb,EAAE;IAAA,+FACzBC,0BAAQ,CAACC,WAAW,CAACC,SAAS,EAAE,SAAS,CAAC;IAAA,wGACnB,CAC1C;MACCC,IAAI,EAAE;IACP,CAAC,CACD;IAAA;IAKA,MAAKC,MAAM,GAAG,MAAKC,MAAM,CAAC,YAAY,CAAC;IAEvC,KAAK,MAAKC,OAAO,CAACC,EAAE,CACnB,qBAAqB,EACrB,MAAKC,sBAAsB,CAACC,IAAI,gDAAM,CACtC;IAAA;EACF;EAAC;IAAA;IAAA;MAAA,4GAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBACCC,WAAW,QAAXA,WAAW,EACXC,UAAU,QAAVA,UAAU;gBAAA;gBAAA,OAKgB,IAAI,CAACC,QAAQ,CAACC,WAAW,CAAC,YAAY,CAAC;cAAA;gBAA3DA,WAAW;gBAAA;gBAAA,OACc,IAAI,CAACD,QAAQ,CAACC,WAAW,CAAC,OAAO,CAAC;cAAA;gBAA3DC,gBAAgB;gBAAA,MAGrBA,gBAAgB,IAChBD,WAAW,IACXH,WAAW,KAAK,MAAM,IACtBC,UAAU,KAAK,SAAS;kBAAA;kBAAA;gBAAA;gBAAA;gBAAA,OAEG,IAAI,CAACI,WAAW,EAAE;cAAA;gBAAvCC,YAAY;gBAAA;gBAAA,OACI,IAAI,CAACC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC;cAAA;gBAA7DC,OAAO;gBAEbA,OAAO,CAACC,KAAK,mEAAQD,OAAO,CAACC,KAAK,2DAAI,EAAE,uCAAMJ,YAAY,EAAC;gBAAA,iCACpDG,OAAO;cAAA;gBAAA,iCAGR,CAAC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACT;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,yGAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACqB,IAAI,CAACJ,WAAW,EAAE;cAAA;gBAAhCK,KAAK;gBAAA;gBAAA,OACgB,IAAI,CAACC,cAAc,EAAE;cAAA;gBAA1CL,YAAY;gBAAA,kCAEX;kBACNI,KAAK,gDAAMA,KAAK,uCAAKJ,YAAY;gBAClC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,oGAED;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACc,IAAI,CAACZ,MAAM,CAACiB,cAAc,CACtC,IAAI,CAACC,GAAG,EACR,CAAC,CAAC,CACF;cAAA;gBAAA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,iGAED;QAAA;UAAA;YAAA;cAAA;gBAAA,kCACQ,IAAI,CAAClB,MAAM,CAACW,WAAW,CAAC,IAAI,CAACO,GAAG,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACxC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EAnE6CC,4BAAe;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionStore.js","names":["PermissionStore","globby","cwd","matches","namespace","Service","getSkillNamespace","imported","file","path","diskUtil","resolvePath","importDefault","contract","push","id","permissions","map","p","connectToApi","shouldAuthAsCurrentSkill","client","deps","get","loadLocalPermissions","local","reduce","emitAndFlattenResponses","target","namespaces","d","permissionContracts","result","AbstractStore"],"sources":["../../../../src/features/permission/stores/PermissionStore.ts"],"sourcesContent":["import {\n\tPermissionContract,\n\tPermissionContractMap,\n} from '@sprucelabs/mercury-types'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport globby from 'globby'\nimport AbstractStore from '../../../stores/AbstractStore'\n\nexport default class PermissionStore extends AbstractStore {\n\tpublic name = 'permission'\n\n\tpublic async loadLocalPermissions() {\n\t\tconst matches = await globby('**/*.permissions.ts', {\n\t\t\tcwd: this.cwd,\n\t\t})\n\n\t\tconst namespace = this.Service('pkg').getSkillNamespace()\n\t\tconst imported: ImportedPermission[] = []\n\n\t\tfor (const file of matches) {\n\t\t\tconst path = diskUtil.resolvePath(this.cwd, file)\n\t\t\tconst contract = (await this.Service('import').importDefault(\n\t\t\t\tpath\n\t\t\t)) as PermissionContract\n\n\t\t\timported.push({\n\t\t\t\tid: `${namespace}.${contract.id}`,\n\t\t\t\tpermissions: contract.permissions.map((p) => p.id),\n\t\t\t\tpath,\n\t\t\t})\n\t\t}\n\n\t\treturn imported\n\t}\n\n\tpublic async fetchContracts() {\n\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\t\tconst deps = this.Service('dependency').get()\n\n\t\tconst local = await this.loadLocalPermissions()\n\t\tconst map: PermissionContractMap = local.reduce<PermissionContractMap>(\n\t\t\t(map, local) => {\n\t\t\t\tmap[local.id] = local.permissions\n\t\t\t\treturn map\n\t\t\t},\n\t\t\t{}\n\t\t)\n\n\t\tconst [{ permissionContracts }] = await client.emitAndFlattenResponses(\n\t\t\t'list-permission-contracts::v2020_12_25',\n\t\t\t{\n\t\t\t\ttarget: {\n\t\t\t\t\tnamespaces: deps.map((d) => d.namespace),\n\t\t\t\t},\n\t\t\t}\n\t\t)\n\n\t\tfor (const result of permissionContracts) {\n\t\t\tmap[result.contract.id] = result.contract.permissions.map((p) => p.id)\n\t\t}\n\n\t\treturn map\n\t}\n}\n\nexport interface ImportedPermission {\n\tid: string\n\tpermissions: string[]\n\tpath: string\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"PermissionStore.js","names":["PermissionStore","globby","cwd","matches","namespace","Service","getSkillNamespace","imported","file","path","diskUtil","resolvePath","importDefault","contract","push","id","permissions","map","p","connectToApi","shouldAuthAsCurrentSkill","client","deps","get","loadLocalPermissions","local","reduce","emitAndFlattenResponses","target","namespaces","d","permissionContracts","result","AbstractStore"],"sources":["../../../../src/features/permission/stores/PermissionStore.ts"],"sourcesContent":["import {\n\tPermissionContract,\n\tPermissionContractMap,\n} from '@sprucelabs/mercury-types'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport globby from 'globby'\nimport AbstractStore from '../../../stores/AbstractStore'\n\nexport default class PermissionStore extends AbstractStore {\n\tpublic name = 'permission'\n\n\tpublic async loadLocalPermissions() {\n\t\tconst matches = await globby('**/*.permissions.ts', {\n\t\t\tcwd: this.cwd,\n\t\t})\n\n\t\tconst namespace = this.Service('pkg').getSkillNamespace()\n\t\tconst imported: ImportedPermission[] = []\n\n\t\tfor (const file of matches) {\n\t\t\tconst path = diskUtil.resolvePath(this.cwd, file)\n\t\t\tconst contract = (await this.Service('import').importDefault(\n\t\t\t\tpath\n\t\t\t)) as PermissionContract\n\n\t\t\timported.push({\n\t\t\t\tid: `${namespace}.${contract.id}`,\n\t\t\t\tpermissions: contract.permissions.map((p) => p.id),\n\t\t\t\tpath,\n\t\t\t})\n\t\t}\n\n\t\treturn imported\n\t}\n\n\tpublic async fetchContracts() {\n\t\tconst client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })\n\t\tconst deps = this.Service('dependency').get()\n\n\t\tconst local = await this.loadLocalPermissions()\n\t\tconst map: PermissionContractMap = local.reduce<PermissionContractMap>(\n\t\t\t(map, local) => {\n\t\t\t\tmap[local.id] = local.permissions\n\t\t\t\treturn map\n\t\t\t},\n\t\t\t{} as any\n\t\t)\n\n\t\tconst [{ permissionContracts }] = await client.emitAndFlattenResponses(\n\t\t\t'list-permission-contracts::v2020_12_25',\n\t\t\t{\n\t\t\t\ttarget: {\n\t\t\t\t\tnamespaces: deps.map((d) => d.namespace),\n\t\t\t\t},\n\t\t\t}\n\t\t)\n\n\t\tfor (const result of permissionContracts) {\n\t\t\tmap[result.contract.id] = result.contract.permissions.map((p) => p.id)\n\t\t}\n\n\t\treturn map\n\t}\n}\n\nexport interface ImportedPermission {\n\tid: string\n\tpermissions: string[]\n\tpath: string\n}\n"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { PermissionContractMap } from '@sprucelabs/mercury-types';
2
2
  import AbstractWriter from '../../../writers/AbstractWriter';
3
3
  import { ImportedPermission } from '../stores/PermissionStore';
4
4
  export default class PermissionWriter extends AbstractWriter {
5
- writeTypesFile(destinationDir: string, map: PermissionContractMap): Promise<import("../../../writers/AbstractWriter").WriteResults>;
5
+ writeTypesFile(cwd: string, map: PermissionContractMap): Promise<import("../../../writers/AbstractWriter").WriteResults>;
6
6
  writeCombinedFile(destinationDir: string, options: {
7
7
  contracts: ImportedPermission[];
8
8
  }): Promise<import("../../../writers/AbstractWriter").WriteResults>;
@@ -26,13 +26,13 @@ var PermissionWriter = /*#__PURE__*/function (_AbstractWriter) {
26
26
  (0, _createClass2["default"])(PermissionWriter, [{
27
27
  key: "writeTypesFile",
28
28
  value: function () {
29
- var _writeTypesFile = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(destinationDir, map) {
29
+ var _writeTypesFile = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(cwd, map) {
30
30
  var destination, contents, files;
31
31
  return _regenerator["default"].wrap(function _callee$(_context) {
32
32
  while (1) {
33
33
  switch (_context.prev = _context.next) {
34
34
  case 0:
35
- destination = _spruceSkillUtils.diskUtil.resolveHashSprucePath(destinationDir, 'permissions', 'permissions.types.ts');
35
+ destination = _spruceSkillUtils.diskUtil.resolveHashSprucePath(cwd, 'permissions', 'permissions.types.ts');
36
36
  contents = this.templates.permissionTypes({
37
37
  contracts: map
38
38
  });
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionWriter.js","names":["PermissionWriter","destinationDir","map","destination","diskUtil","resolveHashSprucePath","contents","templates","permissionTypes","contracts","writeFileIfChangedMixinResults","files","options","destinationPath","destinationFile","resolvePath","local","c","nameCamel","namesUtil","toCamel","id","path","resolveRelativePath","replace","content","permissions","nameReadable","nameKebab","description","permissionContractBuilder","lint","cwd","pluginContents","permissionPlugin","results","AbstractWriter"],"sources":["../../../../src/features/permission/writers/PermissionWriter.ts"],"sourcesContent":["import { PermissionContractMap } from '@sprucelabs/mercury-types'\nimport { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport AbstractWriter from '../../../writers/AbstractWriter'\nimport { ImportedPermission } from '../stores/PermissionStore'\n\nexport default class PermissionWriter extends AbstractWriter {\n\tpublic async writeTypesFile(\n\t\tdestinationDir: string,\n\t\tmap: PermissionContractMap\n\t) {\n\t\tconst destination = diskUtil.resolveHashSprucePath(\n\t\t\tdestinationDir,\n\t\t\t'permissions',\n\t\t\t'permissions.types.ts'\n\t\t)\n\n\t\tconst contents = this.templates.permissionTypes({ contracts: map })\n\n\t\tconst files = await this.writeFileIfChangedMixinResults(\n\t\t\tdestination,\n\t\t\tcontents,\n\t\t\t'Types file for any permission contracts you created or depend on.'\n\t\t)\n\n\t\treturn files\n\t}\n\n\tpublic async writeCombinedFile(\n\t\tdestinationDir: string,\n\t\toptions: {\n\t\t\tcontracts: ImportedPermission[]\n\t\t}\n\t) {\n\t\tconst { contracts } = options\n\n\t\tconst destinationPath = diskUtil.resolveHashSprucePath(\n\t\t\tdestinationDir,\n\t\t\t'permissions'\n\t\t)\n\t\tconst destinationFile = diskUtil.resolvePath(\n\t\t\tdestinationPath,\n\t\t\t'permissions.ts'\n\t\t)\n\n\t\tconst local = contracts.map((c) => ({\n\t\t\tnameCamel: namesUtil.toCamel(c.id),\n\t\t\tpath: diskUtil.resolveRelativePath(\n\t\t\t\tdestinationPath,\n\t\t\t\tc.path.replace('.ts', '')\n\t\t\t),\n\t\t}))\n\n\t\tconst content = this.templates.permissions({ contracts: local })\n\n\t\tconst files = await this.writeFileIfChangedMixinResults(\n\t\t\tdestinationFile,\n\t\t\tcontent,\n\t\t\t'Import of all permission contracts for loading on boot!'\n\t\t)\n\n\t\treturn files\n\t}\n\n\tpublic async writeContract(\n\t\tdestinationDir: string,\n\t\toptions: {\n\t\t\tnameReadable: string\n\t\t\tnameKebab: string\n\t\t\tnameCamel: string\n\t\t\tdescription?: string\n\t\t}\n\t) {\n\t\tconst { nameReadable, nameKebab, nameCamel, description } = options\n\n\t\tconst destination = diskUtil.resolvePath(\n\t\t\tdestinationDir,\n\t\t\t`${nameKebab}.permissions.ts`\n\t\t)\n\n\t\tconst content = this.templates.permissionContractBuilder({\n\t\t\tnameCamel,\n\t\t\tnameKebab,\n\t\t\tdescription,\n\t\t\tnameReadable,\n\t\t})\n\n\t\tconst files = await this.writeFileIfChangedMixinResults(\n\t\t\tdestination,\n\t\t\tcontent,\n\t\t\t'Your brand new permissions contract!'\n\t\t)\n\n\t\tawait this.lint(destination)\n\n\t\treturn files\n\t}\n\n\tpublic writePlugin(cwd: string) {\n\t\tconst destination = diskUtil.resolveHashSprucePath(\n\t\t\tcwd,\n\t\t\t'features',\n\t\t\t'permission.plugin.ts'\n\t\t)\n\n\t\tconst pluginContents = this.templates.permissionPlugin()\n\n\t\tconst results = this.writeFileIfChangedMixinResults(\n\t\t\tdestination,\n\t\t\tpluginContents,\n\t\t\t'Enable permission support in your skill.'\n\t\t)\n\n\t\treturn results\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;AACA;AACA;AAA4D;AAAA;AAAA,IAGvCA,gBAAgB;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,oGACpC,iBACCC,cAAsB,EACtBC,GAA0B;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEpBC,WAAW,GAAGC,0BAAQ,CAACC,qBAAqB,CACjDJ,cAAc,EACd,aAAa,EACb,sBAAsB,CACtB;gBAEKK,QAAQ,GAAG,IAAI,CAACC,SAAS,CAACC,eAAe,CAAC;kBAAEC,SAAS,EAAEP;gBAAI,CAAC,CAAC;gBAAA;gBAAA,OAE/C,IAAI,CAACQ,8BAA8B,CACtDP,WAAW,EACXG,QAAQ,EACR,mEAAmE,CACnE;cAAA;gBAJKK,KAAK;gBAAA,iCAMJA,KAAK;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACZ;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,uGAED,kBACCV,cAAsB,EACtBW,OAEC;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOH,SAAS,GAAKG,OAAO,CAArBH,SAAS;gBAEXI,eAAe,GAAGT,0BAAQ,CAACC,qBAAqB,CACrDJ,cAAc,EACd,aAAa,CACb;gBACKa,eAAe,GAAGV,0BAAQ,CAACW,WAAW,CAC3CF,eAAe,EACf,gBAAgB,CAChB;gBAEKG,KAAK,GAAGP,SAAS,CAACP,GAAG,CAAC,UAACe,CAAC;kBAAA,OAAM;oBACnCC,SAAS,EAAEC,2BAAS,CAACC,OAAO,CAACH,CAAC,CAACI,EAAE,CAAC;oBAClCC,IAAI,EAAElB,0BAAQ,CAACmB,mBAAmB,CACjCV,eAAe,EACfI,CAAC,CAACK,IAAI,CAACE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;kBAE3B,CAAC;gBAAA,CAAC,CAAC;gBAEGC,OAAO,GAAG,IAAI,CAAClB,SAAS,CAACmB,WAAW,CAAC;kBAAEjB,SAAS,EAAEO;gBAAM,CAAC,CAAC;gBAAA;gBAAA,OAE5C,IAAI,CAACN,8BAA8B,CACtDI,eAAe,EACfW,OAAO,EACP,yDAAyD,CACzD;cAAA;gBAJKd,KAAK;gBAAA,kCAMJA,KAAK;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACZ;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,mGAED,kBACCV,cAAsB,EACtBW,OAKC;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOe,YAAY,GAAwCf,OAAO,CAA3De,YAAY,EAAEC,SAAS,GAA6BhB,OAAO,CAA7CgB,SAAS,EAAEV,SAAS,GAAkBN,OAAO,CAAlCM,SAAS,EAAEW,WAAW,GAAKjB,OAAO,CAAvBiB,WAAW;gBAEjD1B,WAAW,GAAGC,0BAAQ,CAACW,WAAW,CACvCd,cAAc,YACX2B,SAAS,qBACZ;gBAEKH,OAAO,GAAG,IAAI,CAAClB,SAAS,CAACuB,yBAAyB,CAAC;kBACxDZ,SAAS,EAATA,SAAS;kBACTU,SAAS,EAATA,SAAS;kBACTC,WAAW,EAAXA,WAAW;kBACXF,YAAY,EAAZA;gBACD,CAAC,CAAC;gBAAA;gBAAA,OAEkB,IAAI,CAACjB,8BAA8B,CACtDP,WAAW,EACXsB,OAAO,EACP,sCAAsC,CACtC;cAAA;gBAJKd,KAAK;gBAAA;gBAAA,OAML,IAAI,CAACoB,IAAI,CAAC5B,WAAW,CAAC;cAAA;gBAAA,kCAErBQ,KAAK;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACZ;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,OAED,qBAAmBqB,GAAW,EAAE;MAC/B,IAAM7B,WAAW,GAAGC,0BAAQ,CAACC,qBAAqB,CACjD2B,GAAG,EACH,UAAU,EACV,sBAAsB,CACtB;MAED,IAAMC,cAAc,GAAG,IAAI,CAAC1B,SAAS,CAAC2B,gBAAgB,EAAE;MAExD,IAAMC,OAAO,GAAG,IAAI,CAACzB,8BAA8B,CAClDP,WAAW,EACX8B,cAAc,EACd,0CAA0C,CAC1C;MAED,OAAOE,OAAO;IACf;EAAC;EAAA;AAAA,EA5G4CC,2BAAc;AAAA"}
1
+ {"version":3,"file":"PermissionWriter.js","names":["PermissionWriter","cwd","map","destination","diskUtil","resolveHashSprucePath","contents","templates","permissionTypes","contracts","writeFileIfChangedMixinResults","files","destinationDir","options","destinationPath","destinationFile","resolvePath","local","c","nameCamel","namesUtil","toCamel","id","path","resolveRelativePath","replace","content","permissions","nameReadable","nameKebab","description","permissionContractBuilder","lint","pluginContents","permissionPlugin","results","AbstractWriter"],"sources":["../../../../src/features/permission/writers/PermissionWriter.ts"],"sourcesContent":["import { PermissionContractMap } from '@sprucelabs/mercury-types'\nimport { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport AbstractWriter from '../../../writers/AbstractWriter'\nimport { ImportedPermission } from '../stores/PermissionStore'\n\nexport default class PermissionWriter extends AbstractWriter {\n\tpublic async writeTypesFile(cwd: string, map: PermissionContractMap) {\n\t\tconst destination = diskUtil.resolveHashSprucePath(\n\t\t\tcwd,\n\t\t\t'permissions',\n\t\t\t'permissions.types.ts'\n\t\t)\n\n\t\tconst contents = this.templates.permissionTypes({ contracts: map })\n\n\t\tconst files = await this.writeFileIfChangedMixinResults(\n\t\t\tdestination,\n\t\t\tcontents,\n\t\t\t'Types file for any permission contracts you created or depend on.'\n\t\t)\n\n\t\treturn files\n\t}\n\n\tpublic async writeCombinedFile(\n\t\tdestinationDir: string,\n\t\toptions: {\n\t\t\tcontracts: ImportedPermission[]\n\t\t}\n\t) {\n\t\tconst { contracts } = options\n\n\t\tconst destinationPath = diskUtil.resolveHashSprucePath(\n\t\t\tdestinationDir,\n\t\t\t'permissions'\n\t\t)\n\t\tconst destinationFile = diskUtil.resolvePath(\n\t\t\tdestinationPath,\n\t\t\t'permissions.ts'\n\t\t)\n\n\t\tconst local = contracts.map((c) => ({\n\t\t\tnameCamel: namesUtil.toCamel(c.id),\n\t\t\tpath: diskUtil.resolveRelativePath(\n\t\t\t\tdestinationPath,\n\t\t\t\tc.path.replace('.ts', '')\n\t\t\t),\n\t\t}))\n\n\t\tconst content = this.templates.permissions({ contracts: local })\n\n\t\tconst files = await this.writeFileIfChangedMixinResults(\n\t\t\tdestinationFile,\n\t\t\tcontent,\n\t\t\t'Import of all permission contracts for loading on boot!'\n\t\t)\n\n\t\treturn files\n\t}\n\n\tpublic async writeContract(\n\t\tdestinationDir: string,\n\t\toptions: {\n\t\t\tnameReadable: string\n\t\t\tnameKebab: string\n\t\t\tnameCamel: string\n\t\t\tdescription?: string\n\t\t}\n\t) {\n\t\tconst { nameReadable, nameKebab, nameCamel, description } = options\n\n\t\tconst destination = diskUtil.resolvePath(\n\t\t\tdestinationDir,\n\t\t\t`${nameKebab}.permissions.ts`\n\t\t)\n\n\t\tconst content = this.templates.permissionContractBuilder({\n\t\t\tnameCamel,\n\t\t\tnameKebab,\n\t\t\tdescription,\n\t\t\tnameReadable,\n\t\t})\n\n\t\tconst files = await this.writeFileIfChangedMixinResults(\n\t\t\tdestination,\n\t\t\tcontent,\n\t\t\t'Your brand new permissions contract!'\n\t\t)\n\n\t\tawait this.lint(destination)\n\n\t\treturn files\n\t}\n\n\tpublic writePlugin(cwd: string) {\n\t\tconst destination = diskUtil.resolveHashSprucePath(\n\t\t\tcwd,\n\t\t\t'features',\n\t\t\t'permission.plugin.ts'\n\t\t)\n\n\t\tconst pluginContents = this.templates.permissionPlugin()\n\n\t\tconst results = this.writeFileIfChangedMixinResults(\n\t\t\tdestination,\n\t\t\tpluginContents,\n\t\t\t'Enable permission support in your skill.'\n\t\t)\n\n\t\treturn results\n\t}\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -18,7 +18,7 @@
18
18
  ]
19
19
  },
20
20
  "license": "MIT",
21
- "version": "18.3.0",
21
+ "version": "18.3.1",
22
22
  "bin": {
23
23
  "spruce": "./build/index.js"
24
24
  },
@@ -76,17 +76,17 @@
76
76
  "@babel/plugin-proposal-decorators": "^7.20.5",
77
77
  "@babel/runtime": "^7.20.6",
78
78
  "@jest/reporters": "^29.3.1",
79
- "@sprucelabs/error": "^5.0.546",
80
- "@sprucelabs/heartwood-view-controllers": "^98.3.40",
81
- "@sprucelabs/jest-json-reporter": "^6.0.525",
82
- "@sprucelabs/mercury-client": "^34.0.78",
83
- "@sprucelabs/mercury-event-emitter": "^34.0.78",
84
- "@sprucelabs/mercury-types": "^37.3.4",
85
- "@sprucelabs/schema": "^28.5.73",
86
- "@sprucelabs/spruce-core-schemas": "^35.1.68",
87
- "@sprucelabs/spruce-event-utils": "^29.2.25",
88
- "@sprucelabs/spruce-skill-utils": "^28.1.2",
89
- "@sprucelabs/spruce-templates": "^18.3.0",
79
+ "@sprucelabs/error": "^5.0.547",
80
+ "@sprucelabs/heartwood-view-controllers": "^99.0.1",
81
+ "@sprucelabs/jest-json-reporter": "^6.0.526",
82
+ "@sprucelabs/mercury-client": "^35.0.0",
83
+ "@sprucelabs/mercury-event-emitter": "^35.0.0",
84
+ "@sprucelabs/mercury-types": "^38.0.0",
85
+ "@sprucelabs/schema": "^28.5.74",
86
+ "@sprucelabs/spruce-core-schemas": "^35.1.70",
87
+ "@sprucelabs/spruce-event-utils": "^30.0.0",
88
+ "@sprucelabs/spruce-skill-utils": "^28.1.3",
89
+ "@sprucelabs/spruce-templates": "^18.3.1",
90
90
  "@typescript-eslint/eslint-plugin": "^5.27.1",
91
91
  "@typescript-eslint/parser": "^5.27.1",
92
92
  "cfonts": "^3.1.1",
@@ -114,16 +114,16 @@
114
114
  "uuid": "^9.0.0"
115
115
  },
116
116
  "devDependencies": {
117
- "@sprucelabs/data-stores": "^19.0.61",
117
+ "@sprucelabs/data-stores": "^19.0.62",
118
118
  "@sprucelabs/jest-sheets-reporter": "^2.0.21",
119
- "@sprucelabs/mercury-core-events": "^15.0.100",
120
- "@sprucelabs/resolve-path-aliases": "^1.1.137",
121
- "@sprucelabs/spruce-conversation-plugin": "^52.3.2",
122
- "@sprucelabs/spruce-deploy-plugin": "^52.3.2",
123
- "@sprucelabs/spruce-store-plugin": "^52.3.2",
124
- "@sprucelabs/spruce-test-fixtures": "^52.3.2",
125
- "@sprucelabs/test": "^7.7.391",
126
- "@sprucelabs/test-utils": "^3.2.61",
119
+ "@sprucelabs/mercury-core-events": "^15.0.106",
120
+ "@sprucelabs/resolve-path-aliases": "^1.1.138",
121
+ "@sprucelabs/spruce-conversation-plugin": "^52.3.4",
122
+ "@sprucelabs/spruce-deploy-plugin": "^52.3.4",
123
+ "@sprucelabs/spruce-store-plugin": "^52.3.4",
124
+ "@sprucelabs/spruce-test-fixtures": "^52.3.4",
125
+ "@sprucelabs/test": "^7.7.392",
126
+ "@sprucelabs/test-utils": "^3.2.62",
127
127
  "@types/blessed": "^0.1.19",
128
128
  "@types/eslint": "^8.4.10",
129
129
  "@types/fs-extra": "^9.0.13",
@@ -595,5 +595,5 @@
595
595
  "terminal-kit"
596
596
  ]
597
597
  },
598
- "gitHead": "f8239e76132381bf8b038dededf356c6e78f1061"
598
+ "gitHead": "b837a2b5de3ff892d8b01f4e73c407ab54a11eec"
599
599
  }
@@ -0,0 +1,75 @@
1
+ import { namesUtil, versionUtil } from '@sprucelabs/spruce-skill-utils'
2
+ import { EventSignatureTemplateItem } from '@sprucelabs/spruce-templates'
3
+ import { test, assert, generateId } from '@sprucelabs/test-utils'
4
+ import AbstractCliTest from '../../../tests/AbstractCliTest'
5
+
6
+ export default class EventWriterTest extends AbstractCliTest {
7
+ @test()
8
+ protected static async canCreateEventWriter() {
9
+ await this.FeatureFixture().installCachedFeatures('events')
10
+ const writer = this.writers.Writer('event', { fileDescriptions: [] })
11
+ const name = 'My event'
12
+ const namespace = 'appointments'
13
+
14
+ const contractId1 = generateId() as any
15
+ const contractId2 = generateId() as any
16
+ const permissionId1 = generateId() as any
17
+ const permissionId2 = generateId() as any
18
+
19
+ const sig: EventSignatureTemplateItem = {
20
+ isGlobal: true,
21
+ emitPermissions: {
22
+ contractId: contractId1,
23
+ permissionIdsAny: [permissionId1],
24
+ },
25
+ listenPermissions: {
26
+ contractId: contractId2,
27
+ permissionIdsAny: [permissionId2],
28
+ },
29
+ }
30
+
31
+ const permWriter = this.writers.Writer('permission', {
32
+ fileDescriptions: [],
33
+ })
34
+
35
+ //@ts-ignore
36
+ await permWriter.writeTypesFile(this.cwd, {
37
+ [contractId1]: [permissionId1],
38
+ [contractId2]: [permissionId2],
39
+ })
40
+
41
+ const results = await writer.writeContracts(
42
+ this.resolveHashSprucePath('events'),
43
+ {
44
+ eventBuilderFile: '@sprucelabs/mercury-types',
45
+ schemaTemplateItems: [],
46
+ shouldImportCoreEvents: false,
47
+ skillEventContractTypesFile: '',
48
+ eventContractTemplateItems: [
49
+ {
50
+ imports: [
51
+ {
52
+ importAs: '{ buildEventContract }',
53
+ package: '@sprucelabs/mercury-types',
54
+ },
55
+ ],
56
+ isLocal: true,
57
+ nameCamel: namesUtil.toCamel(name),
58
+ namePascal: namesUtil.toPascal(name),
59
+ namespace,
60
+ namespaceCamel: namesUtil.toCamel(namespace),
61
+ namespacePascal: namesUtil.toPascal(namespace),
62
+ version: versionUtil.generateVersion().constValue,
63
+ eventSignatures: {
64
+ test: sig,
65
+ },
66
+ },
67
+ ],
68
+ }
69
+ )
70
+
71
+ const match = results[0]
72
+ const imported = await this.Service('import').importDefault(match.path)
73
+ assert.isEqualDeep(imported.eventSignatures.test, sig)
74
+ }
75
+ }
@@ -1,5 +1,5 @@
1
1
  import { test, assert } from '@sprucelabs/test-utils'
2
- import AbstractSkillTest from '../../tests/AbstractSkillTest'
2
+ import AbstractSkillTest from '../../../tests/AbstractSkillTest'
3
3
 
4
4
  export default class ListeningToCoreEventsTest extends AbstractSkillTest {
5
5
  protected static skillCacheKey = 'events'
@@ -4,8 +4,8 @@ import {
4
4
  } from '@sprucelabs/spruce-event-utils'
5
5
  import { namesUtil, versionUtil } from '@sprucelabs/spruce-skill-utils'
6
6
  import { test, assert } from '@sprucelabs/test-utils'
7
- import AbstractEventTest from '../../tests/AbstractEventTest'
8
- import { DEMO_NUMBER_EVENTS_ON_BOOT } from '../../tests/constants'
7
+ import AbstractEventTest from '../../../tests/AbstractEventTest'
8
+ import { DEMO_NUMBER_EVENTS_ON_BOOT } from '../../../tests/constants'
9
9
 
10
10
  const EVENT_NAME_READABLE = 'did book appointment'
11
11
  const EVENT_NAME = 'did-book-appointment'
@@ -1,10 +1,10 @@
1
1
  import { versionUtil } from '@sprucelabs/spruce-skill-utils'
2
2
  import { test, assert } from '@sprucelabs/test-utils'
3
3
  import dotenv from 'dotenv'
4
- import AbstractSkillTest from '../../tests/AbstractSkillTest'
5
- import { DEMO_NUMBER_GLOBAL_EVENTS } from '../../tests/constants'
6
- import testUtil from '../../tests/utilities/test.utility'
7
- import { RegisteredSkill } from '../../types/cli.types'
4
+ import AbstractSkillTest from '../../../tests/AbstractSkillTest'
5
+ import { DEMO_NUMBER_GLOBAL_EVENTS } from '../../../tests/constants'
6
+ import testUtil from '../../../tests/utilities/test.utility'
7
+ import { RegisteredSkill } from '../../../types/cli.types'
8
8
  dotenv.config()
9
9
 
10
10
  const stamp = new Date().getTime()
@@ -21,8 +21,6 @@ export default class RegisteringGlobalEventsTest extends AbstractSkillTest {
21
21
 
22
22
  await this.people.loginAsDemoPerson(DEMO_NUMBER_GLOBAL_EVENTS)
23
23
 
24
- await this.resetAccount()
25
-
26
24
  const orgFixture = this.getOrganizationFixture()
27
25
  const skillFixture = this.getSkillFixture()
28
26
 
@@ -37,12 +35,6 @@ export default class RegisteringGlobalEventsTest extends AbstractSkillTest {
37
35
 
38
36
  protected static async afterAll() {
39
37
  await super.afterAll()
40
- await this.resetAccount()
41
- }
42
-
43
- private static async resetAccount() {
44
- // await this.getOrganizationFixture().clearAllOrgs()
45
- // await this.getSkillFixture().clearAllSkills()
46
38
  }
47
39
 
48
40
  @test()
@@ -1,8 +1,8 @@
1
1
  import { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'
2
2
  import { test, assert } from '@sprucelabs/test-utils'
3
3
  import fsUtil from 'fs-extra'
4
- import AbstractSkillTest from '../../tests/AbstractSkillTest'
5
- import { RegisteredSkill } from '../../types/cli.types'
4
+ import AbstractSkillTest from '../../../tests/AbstractSkillTest'
5
+ import { RegisteredSkill } from '../../../types/cli.types'
6
6
 
7
7
  export default class SyncingEventsOnlyFromDependenciesTest extends AbstractSkillTest {
8
8
  protected static skillCacheKey = 'events'
@@ -143,6 +143,7 @@ export default class PermissionStoreTest extends AbstractPermissionsTest {
143
143
  })
144
144
 
145
145
  const map = await this.fetchContracts()
146
+ //@ts-ignore
146
147
  assert.isEqualDeep(map, {
147
148
  [contractId]: [perm.id, perm2.id],
148
149
  [contractId2]: [perm3.id],
@@ -9,6 +9,7 @@ export default class PermissionWriterTest extends AbstractPermissionsTest {
9
9
  const perm1 = generateId()
10
10
  const perm2 = generateId()
11
11
 
12
+ //@ts-ignore
12
13
  await this.writeTypesFile({
13
14
  [contractId]: [perm1, perm2],
14
15
  })
@@ -1,7 +1,7 @@
1
1
  import { diskUtil } from '@sprucelabs/spruce-skill-utils'
2
2
  import { test, assert } from '@sprucelabs/test-utils'
3
- import AbstractSchemaTest from '../../tests/AbstractSchemaTest'
4
- import testUtil from '../../tests/utilities/test.utility'
3
+ import AbstractSchemaTest from '../../../tests/AbstractSchemaTest'
4
+ import testUtil from '../../../tests/utilities/test.utility'
5
5
 
6
6
  export default class CreatingSchemasWithGenericsTest extends AbstractSchemaTest {
7
7
  @test()
@@ -6,10 +6,10 @@ import {
6
6
  } from '@sprucelabs/spruce-skill-utils'
7
7
  import { test, assert } from '@sprucelabs/test-utils'
8
8
  import { errorAssert } from '@sprucelabs/test-utils'
9
- import { FeatureActionResponse } from '../../features/features.types'
10
- import SchemaTemplateItemBuilder from '../../templateItemBuilders/SchemaTemplateItemBuilder'
11
- import AbstractSkillTest from '../../tests/AbstractSkillTest'
12
- import testUtil from '../../tests/utilities/test.utility'
9
+ import { FeatureActionResponse } from '../../../features/features.types'
10
+ import SchemaTemplateItemBuilder from '../../../templateItemBuilders/SchemaTemplateItemBuilder'
11
+ import AbstractSkillTest from '../../../tests/AbstractSkillTest'
12
+ import testUtil from '../../../tests/utilities/test.utility'
13
13
 
14
14
  const LOCAL_NAMESPACE = 'TestingSchemas'
15
15
  const REMOTE_NAMESPACE = 'RemoteSchemas'
@@ -1,8 +1,8 @@
1
1
  import { eventAssertUtil } from '@sprucelabs/spruce-event-utils'
2
2
  import { test, assert, assertUtil } from '@sprucelabs/test-utils'
3
3
  import { errorAssert } from '@sprucelabs/test-utils'
4
- import AbstractCliTest from '../../tests/AbstractCliTest'
5
- import { DEMO_NUMBER_INSTALL_SKILL } from '../../tests/constants'
4
+ import AbstractCliTest from '../../../tests/AbstractCliTest'
5
+ import { DEMO_NUMBER_INSTALL_SKILL } from '../../../tests/constants'
6
6
 
7
7
  export default class InstallingASkillAtAnOrgTest extends AbstractCliTest {
8
8
  protected static async beforeEach() {
@@ -1,8 +1,8 @@
1
1
  import { test, assert } from '@sprucelabs/test-utils'
2
2
  import { errorAssert } from '@sprucelabs/test-utils'
3
- import AbstractSkillTest from '../../tests/AbstractSkillTest'
4
- import { DEMO_NUMBER_LOGIN_AS_SKILL } from '../../tests/constants'
5
- import { RegisteredSkill } from '../../types/cli.types'
3
+ import AbstractSkillTest from '../../../tests/AbstractSkillTest'
4
+ import { DEMO_NUMBER_LOGIN_AS_SKILL } from '../../../tests/constants'
5
+ import { RegisteredSkill } from '../../../types/cli.types'
6
6
 
7
7
  export default class LoggingInAsASkillTest extends AbstractSkillTest {
8
8
  protected static skillCacheKey = 'skills'
@@ -1,7 +1,7 @@
1
1
  import { test, assert } from '@sprucelabs/test-utils'
2
2
  import { errorAssert } from '@sprucelabs/test-utils'
3
- import CommandService from '../../services/CommandService'
4
- import AbstractSkillTest from '../../tests/AbstractSkillTest'
3
+ import CommandService from '../../../services/CommandService'
4
+ import AbstractSkillTest from '../../../tests/AbstractSkillTest'
5
5
 
6
6
  export default class RebuildingASkillTest extends AbstractSkillTest {
7
7
  protected static skillCacheKey = 'skills'
@@ -1,6 +1,6 @@
1
1
  import { test, assert } from '@sprucelabs/test-utils'
2
- import AbstractSkillTest from '../../tests/AbstractSkillTest'
3
- import { DEMO_NUMBER } from '../../tests/constants'
2
+ import AbstractSkillTest from '../../../tests/AbstractSkillTest'
3
+ import { DEMO_NUMBER } from '../../../tests/constants'
4
4
 
5
5
  export default class SettingUpASkillForTestingTest extends AbstractSkillTest {
6
6
  protected static skillCacheKey = 'tests'
@@ -1,6 +1,6 @@
1
1
  import { test, assert } from '@sprucelabs/test-utils'
2
- import TestAction from '../../features/test/actions/TestAction'
3
- import AbstractTestTest from '../../tests/AbstractTestTest'
2
+ import TestAction from '../../../features/test/actions/TestAction'
3
+ import AbstractTestTest from '../../../tests/AbstractTestTest'
4
4
 
5
5
  export default class TestReporterSettingsRememberedTest extends AbstractTestTest {
6
6
  @test()
@@ -1,8 +1,8 @@
1
1
  import { diskUtil } from '@sprucelabs/spruce-skill-utils'
2
2
  import { test, assert } from '@sprucelabs/test-utils'
3
- import LintService from '../../services/LintService'
4
- import AbstractSkillTest from '../../tests/AbstractSkillTest'
5
- import testUtil from '../../tests/utilities/test.utility'
3
+ import LintService from '../../../services/LintService'
4
+ import AbstractSkillTest from '../../../tests/AbstractSkillTest'
5
+ import testUtil from '../../../tests/utilities/test.utility'
6
6
 
7
7
  export default class TestingDataStoresTest extends AbstractSkillTest {
8
8
  protected static skillCacheKey = 'storesWithTests'
@@ -1,6 +1,6 @@
1
1
  import { test, assert } from '@sprucelabs/test-utils'
2
- import AbstractSkillTest from '../../tests/AbstractSkillTest'
3
- import { DEMO_NUMBER_VIEWS_ON_BOOT } from '../../tests/constants'
2
+ import AbstractSkillTest from '../../../tests/AbstractSkillTest'
3
+ import { DEMO_NUMBER_VIEWS_ON_BOOT } from '../../../tests/constants'
4
4
 
5
5
  export default class RegisteringSkillViewOnBootTest extends AbstractSkillTest {
6
6
  protected static skillCacheKey = 'views'
@@ -1,7 +1,7 @@
1
1
  import { test, assert } from '@sprucelabs/test-utils'
2
- import WatchAction from '../../features/view/actions/WatchAction'
3
- import CommandService from '../../services/CommandService'
4
- import AbstractSkillTest from '../../tests/AbstractSkillTest'
2
+ import WatchAction from '../../../features/view/actions/WatchAction'
3
+ import CommandService from '../../../services/CommandService'
4
+ import AbstractSkillTest from '../../../tests/AbstractSkillTest'
5
5
 
6
6
  export default class WatchingSkillViewsTest extends AbstractSkillTest {
7
7
  protected static skillCacheKey = 'views'
@@ -1,3 +1,4 @@
1
+ import { PermissionContractMap } from '@sprucelabs/mercury-types'
1
2
  import { diskUtil, NpmPackage } from '@sprucelabs/spruce-skill-utils'
2
3
  import AbstractFeature, {
3
4
  FeatureDependency,
@@ -66,9 +67,10 @@ export default class PermissionFeature extends AbstractFeature {
66
67
  }
67
68
 
68
69
  private async writeTypesFile() {
69
- return await this.writer.writeTypesFile(this.cwd, {
70
- contracts: [],
71
- })
70
+ return await this.writer.writeTypesFile(
71
+ this.cwd,
72
+ {} as PermissionContractMap
73
+ )
72
74
  }
73
75
 
74
76
  private async writePlugin() {
@@ -43,7 +43,7 @@ export default class PermissionStore extends AbstractStore {
43
43
  map[local.id] = local.permissions
44
44
  return map
45
45
  },
46
- {}
46
+ {} as any
47
47
  )
48
48
 
49
49
  const [{ permissionContracts }] = await client.emitAndFlattenResponses(
@@ -4,12 +4,9 @@ import AbstractWriter from '../../../writers/AbstractWriter'
4
4
  import { ImportedPermission } from '../stores/PermissionStore'
5
5
 
6
6
  export default class PermissionWriter extends AbstractWriter {
7
- public async writeTypesFile(
8
- destinationDir: string,
9
- map: PermissionContractMap
10
- ) {
7
+ public async writeTypesFile(cwd: string, map: PermissionContractMap) {
11
8
  const destination = diskUtil.resolveHashSprucePath(
12
- destinationDir,
9
+ cwd,
13
10
  'permissions',
14
11
  'permissions.types.ts'
15
12
  )
@@ -1 +0,0 @@
1
- {"version":3,"file":"CreatingSchemasWithGenerics.test.js","names":["CreatingSchemasWithGenericsTest","test","installSchemaFeature","source","resolveTestPath","destination","resolvePath","diskUtil","copyDir","Action","execute","results","assert","isFalsy","errors","isTruthy","files","match","testUtil","assertFileByNameInGeneratedFiles","contents","readFile","doesInclude","assertValidActionResponseFiles","AbstractSchemaTest"],"sources":["../../../src/__tests__/behavioral/CreatingSchemasWithGenerics.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test-utils'\nimport AbstractSchemaTest from '../../tests/AbstractSchemaTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nexport default class CreatingSchemasWithGenericsTest extends AbstractSchemaTest {\n\t@test()\n\tprotected static async schemaImportsLocalImports() {\n\t\tawait this.installSchemaFeature('schemas')\n\n\t\tconst source = this.resolveTestPath('schemas_with_suffix')\n\n\t\tconst destination = this.resolvePath('src', 'schemas')\n\n\t\tawait diskUtil.copyDir(source, destination)\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\t\tassert.isTruthy(results.files)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'schemas.types.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(match)\n\t\tassert.doesInclude(contents, '<Type extends string = string>')\n\t\tassert.doesInclude(contents, '<Type2 extends string = string>')\n\t\tassert.doesInclude(contents, '<Type>')\n\t\tassert.doesInclude(contents, \"typedByGeneric'?: (Type2)| undefined | null\")\n\n\t\tawait this.assertValidActionResponseFiles(results)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AAAyD;AAAA;AAAA;AAAA,IAEpCA,+BAA+B,WAClD,IAAAC,eAAI,GAAE;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,+GAAP;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,IAAI,CAACC,oBAAoB,CAAC,SAAS,CAAC;cAAA;gBAEpCC,MAAM,GAAG,IAAI,CAACC,eAAe,CAAC,qBAAqB,CAAC;gBAEpDC,WAAW,GAAG,IAAI,CAACC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC;gBAAA;gBAAA,OAEhDC,0BAAQ,CAACC,OAAO,CAACL,MAAM,EAAEE,WAAW,CAAC;cAAA;gBAAA;gBAAA,OAErB,IAAI,CAACI,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC;cAAA;gBAAzDC,OAAO;gBAEbC,iBAAM,CAACC,OAAO,CAACF,OAAO,CAACG,MAAM,CAAC;gBAC9BF,iBAAM,CAACG,QAAQ,CAACJ,OAAO,CAACK,KAAK,CAAC;gBAExBC,KAAK,GAAGC,gBAAQ,CAACC,gCAAgC,CACtD,kBAAkB,EAClBR,OAAO,CAACK,KAAK,CACb;gBAEKI,QAAQ,GAAGb,0BAAQ,CAACc,QAAQ,CAACJ,KAAK,CAAC;gBACzCL,iBAAM,CAACU,WAAW,CAACF,QAAQ,EAAE,gCAAgC,CAAC;gBAC9DR,iBAAM,CAACU,WAAW,CAACF,QAAQ,EAAE,iCAAiC,CAAC;gBAC/DR,iBAAM,CAACU,WAAW,CAACF,QAAQ,EAAE,QAAQ,CAAC;gBACtCR,iBAAM,CAACU,WAAW,CAACF,QAAQ,EAAE,6CAA6C,CAAC;gBAAA;gBAAA,OAErE,IAAI,CAACG,8BAA8B,CAACZ,OAAO,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAClD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EA5B2Da,+BAAkB;AAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"InstallingASkillAtAnOrg.test.js","names":["InstallingASkillAtAnOrgTest","test","login","getOrganizationFixture","clearAllOrgs","Cli","assert","isFunction","Action","execute","seedDemoOrg","name","org","FeatureFixture","installCachedFeatures","getSkillFixture","registerCurrentSkill","people","logout","organizationId","id","anonResults","isTruthy","errors","eventAssertUtil","assertError","errorAssert","skill","promise","waitForInput","doesInclude","ui","getLastInvocation","command","assertUtil","stringify","sendInput","results","isFalsy","Store","isSkillInstalledAtOrg","isInstalled","org2","options","type","loginAsDemoPerson","DEMO_NUMBER_INSTALL_SKILL","AbstractCliTest"],"sources":["../../../src/__tests__/behavioral/InstallingASkillAtAnOrg.test.ts"],"sourcesContent":["import { eventAssertUtil } from '@sprucelabs/spruce-event-utils'\nimport { test, assert, assertUtil } from '@sprucelabs/test-utils'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\nimport { DEMO_NUMBER_INSTALL_SKILL } from '../../tests/constants'\n\nexport default class InstallingASkillAtAnOrgTest extends AbstractCliTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tawait this.login()\n\t\tawait this.getOrganizationFixture().clearAllOrgs()\n\t}\n\n\t@test()\n\tprotected static async hasInstallAction() {\n\t\tawait this.Cli()\n\t\tassert.isFunction(this.Action('organization', 'install').execute)\n\t}\n\n\t@test()\n\tprotected static async cantInstallWithoutBeingLoggedIn() {\n\t\tconst org = await this.getOrganizationFixture().seedDemoOrg({\n\t\t\tname: 'new org',\n\t\t})\n\n\t\tawait this.FeatureFixture().installCachedFeatures('organizations')\n\n\t\tawait this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'my amazing skill',\n\t\t})\n\n\t\tawait this.people.logout()\n\n\t\tawait this.Cli()\n\n\t\tconst anonResults = await this.Action('organization', 'install').execute({\n\t\t\torganizationId: org.id,\n\t\t})\n\n\t\tassert.isTruthy(anonResults.errors)\n\t\teventAssertUtil.assertError(anonResults.errors[0], 'UNAUTHORIZED_ACCESS')\n\t}\n\n\t@test()\n\tprotected static async cantInstallWithoutAnyOrgs() {\n\t\tawait this.FeatureFixture().installCachedFeatures('organizations')\n\n\t\tawait this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'my amazing skill',\n\t\t})\n\n\t\tconst anonResults = await this.Action('organization', 'install').execute({})\n\n\t\tassert.isTruthy(anonResults.errors)\n\t\terrorAssert.assertError(anonResults.errors[0], 'NO_ORGANIZATIONS_FOUND')\n\t}\n\n\t@test()\n\tprotected static async cantInstallWithoutBeingRegistered() {\n\t\tawait this.FeatureFixture().installCachedFeatures('organizations')\n\n\t\tawait this.getOrganizationFixture().seedDemoOrg({\n\t\t\tname: 'My great org',\n\t\t})\n\n\t\tconst anonResults = await this.Action('organization', 'install').execute({})\n\n\t\tassert.isTruthy(anonResults.errors)\n\t\terrorAssert.assertError(anonResults.errors[0], 'SKILL_NOT_REGISTERED')\n\t}\n\n\t@test()\n\tprotected static async canInstallSkillAtOrg() {\n\t\tawait this.FeatureFixture().installCachedFeatures('organizations')\n\n\t\tconst org = await this.getOrganizationFixture().seedDemoOrg({\n\t\t\tname: 'My great org',\n\t\t})\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'my amazing skill',\n\t\t})\n\n\t\tconst promise = this.Action('organization', 'install').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tassert.doesInclude(\n\t\t\tthis.ui.getLastInvocation().command,\n\t\t\t'confirm',\n\t\t\t`ui didn't get back a confirm, got back \\n\\n${assertUtil.stringify(\n\t\t\t\tthis.ui.getLastInvocation()\n\t\t\t)}`\n\t\t)\n\n\t\tawait this.ui.sendInput('')\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst isInstalled = await this.Store('organization').isSkillInstalledAtOrg(\n\t\t\tskill.id,\n\t\t\torg.id\n\t\t)\n\n\t\tassert.isTruthy(isInstalled)\n\t}\n\n\t@test()\n\tprotected static async asksYouToSelectOrgWithMoreThanOne() {\n\t\tawait this.FeatureFixture().installCachedFeatures('organizations')\n\n\t\tawait this.getOrganizationFixture().seedDemoOrg({\n\t\t\tname: 'My great org',\n\t\t})\n\n\t\tconst org2 = await this.getOrganizationFixture().seedDemoOrg({\n\t\t\tname: 'My great org',\n\t\t})\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'my amazing skill',\n\t\t})\n\n\t\tconst promise = this.Action('organization', 'install').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tassert.doesInclude(this.ui.getLastInvocation().options, {\n\t\t\ttype: 'select',\n\t\t})\n\n\t\tawait this.ui.sendInput(org2.id)\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst isInstalled = await this.Store('organization').isSkillInstalledAtOrg(\n\t\t\tskill.id,\n\t\t\torg2.id\n\t\t)\n\n\t\tassert.isTruthy(isInstalled)\n\t}\n\n\tprivate static async login() {\n\t\tawait this.people.loginAsDemoPerson(DEMO_NUMBER_INSTALL_SKILL)\n\t}\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ListeningToCoreEvents.test.js","names":["ListeningToCoreEventsTest","test","Action","execute","eventName","namespace","version","results","assert","isFalsy","errors","getSkillFixture","registerCurrentSkill","name","local","response","AbstractSkillTest"],"sources":["../../../src/__tests__/behavioral/ListeningToCoreEvents.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test-utils'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\n\nexport default class ListeningToCoreEventsTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'events'\n\n\t@test()\n\tprotected static async canListenToDidInstallWithoutErroring() {\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\teventName: 'did-install',\n\t\t\tnamespace: 'mercury',\n\t\t\tversion: 'v2020_12_25',\n\t\t})\n\n\t\tassert.isFalsy(results.errors?.[0])\n\t}\n\n\t@test()\n\tprotected static async canBootASkillWithACoreListener() {\n\t\tawait this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'global listen test',\n\t\t})\n\t\tconst response = await this.Action('skill', 'boot').execute({ local: true })\n\t\tassert.isFalsy(response.errors)\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AAA6D;AAAA;AAAA;AAAA,IAExCA,yBAAyB,WAG5C,IAAAC,eAAI,GAAE,UAWN,IAAAA,eAAI,GAAE;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,0HAXP;QAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEuB,IAAI,CAACC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAACC,OAAO,CAAC;kBAC5DC,SAAS,EAAE,aAAa;kBACxBC,SAAS,EAAE,SAAS;kBACpBC,OAAO,EAAE;gBACV,CAAC,CAAC;cAAA;gBAJIC,OAAO;gBAMbC,iBAAM,CAACC,OAAO,oBAACF,OAAO,CAACG,MAAM,oDAAd,gBAAiB,CAAC,CAAC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACnC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,oHAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,IAAI,CAACC,eAAe,EAAE,CAACC,oBAAoB,CAAC;kBACjDC,IAAI,EAAE;gBACP,CAAC,CAAC;cAAA;gBAAA;gBAAA,OACqB,IAAI,CAACX,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAACC,OAAO,CAAC;kBAAEW,KAAK,EAAE;gBAAK,CAAC,CAAC;cAAA;gBAAtEC,QAAQ;gBACdP,iBAAM,CAACC,OAAO,CAACM,QAAQ,CAACL,MAAM,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC/B;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EArBqDM,8BAAiB,8DACtC,QAAQ;AAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoggingInAsASkill.test.js","names":["LoggingInAsASkillTest","test","people","loginAsDemoPerson","DEMO_NUMBER_LOGIN_AS_SKILL","skillFixture","getSkillFixture","clearAllSkills","logout","assert","isFunction","Action","execute","waitForInput","doesInclude","ui","getLastInvocation","options","label","reset","login","results","isTruthy","errors","isLength","errorAssert","assertError","person","Service","setLoggedInPerson","seedDemoSkill","name","Date","getTime","skill1","isFalsy","loggedIn","getCurrentSkill","isEqual","id","skill2","promise","command","type","isEqualDeep","choices","map","s","value","sendInput","skillSlug","skill3","slug","AbstractSkillTest"],"sources":["../../../src/__tests__/behavioral/LoggingInAsASkill.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test-utils'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport { DEMO_NUMBER_LOGIN_AS_SKILL } from '../../tests/constants'\nimport { RegisteredSkill } from '../../types/cli.types'\n\nexport default class LoggingInAsASkillTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'skills'\n\tprivate static skill1: RegisteredSkill\n\tprivate static skill2: RegisteredSkill\n\tprivate static skill3: RegisteredSkill\n\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\n\t\tawait this.people.loginAsDemoPerson(DEMO_NUMBER_LOGIN_AS_SKILL)\n\n\t\tconst skillFixture = this.getSkillFixture()\n\t\tawait skillFixture.clearAllSkills()\n\n\t\tawait this.people.logout()\n\t}\n\n\t@test()\n\tprotected static async hasLoginAction() {\n\t\tassert.isFunction(this.Action('skill', 'login').execute)\n\t}\n\n\t@test()\n\tprotected static async asksToLoginIfNotLoggedIn() {\n\t\tvoid this.Action('skill', 'login').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tassert.doesInclude(this.ui.getLastInvocation().options.label, 'Phone')\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async returnsErrorIfNoSkillHasEverBeenRegistered() {\n\t\tawait this.login()\n\n\t\tconst results = await this.Action('skill', 'login').execute({})\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.isLength(results.errors, 1)\n\t\terrorAssert.assertError(results.errors[0], 'NO_SKILLS_REGISTERED')\n\t}\n\n\tprivate static async login() {\n\t\tconst person = await this.people.loginAsDemoPerson(\n\t\t\tDEMO_NUMBER_LOGIN_AS_SKILL\n\t\t)\n\n\t\tthis.Service('auth').setLoggedInPerson(person)\n\t}\n\n\t@test()\n\tprotected static async logsInAsOnlySkillIfOnly1Registered() {\n\t\tawait this.login()\n\n\t\tthis.skill1 = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname: `login skill ${new Date().getTime()}`,\n\t\t})\n\n\t\tconst results = await this.Action('skill', 'login').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst loggedIn = this.Service('auth').getCurrentSkill()\n\t\tassert.isEqual(loggedIn?.id, this.skill1.id)\n\t}\n\n\t@test()\n\tprotected static async letsYouSelectSkillIfMoreThan1IsRegistered() {\n\t\tawait this.login()\n\n\t\tthis.skill2 = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname: `login skill 2 ${new Date().getTime()}`,\n\t\t})\n\n\t\tconst promise = this.Action('skill', 'login').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tassert.doesInclude(this.ui.getLastInvocation().command, 'prompt')\n\t\tassert.doesInclude(this.ui.getLastInvocation().options.type, 'select')\n\t\tassert.isEqualDeep(\n\t\t\tthis.ui.getLastInvocation().options.options.choices,\n\t\t\t[this.skill1, this.skill2].map((s) => ({\n\t\t\t\tlabel: s.name,\n\t\t\t\tvalue: s.id,\n\t\t\t}))\n\t\t)\n\n\t\tawait this.ui.sendInput(this.skill2.id)\n\n\t\tawait promise\n\n\t\tconst loggedIn = this.Service('auth').getCurrentSkill()\n\t\tassert.isEqual(loggedIn?.id, this.skill2.id)\n\t}\n\n\t@test()\n\tprotected static async cantLoginWithSlugYouDontOwn() {\n\t\tawait this.login()\n\t\tconst results = await this.Action('skill', 'login').execute({\n\t\t\tskillSlug: 'never found',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\n\t\terrorAssert.assertError(results.errors[0], 'SKILL_NOT_FOUND')\n\t}\n\n\t@test()\n\tprotected static async canLoginWithSlugYouOwn() {\n\t\tawait this.login()\n\n\t\tthis.skill3 = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname: `login skill 3 ${new Date().getTime()}`,\n\t\t})\n\n\t\tconst results = await this.Action('skill', 'login').execute({\n\t\t\tskillSlug: this.skill3.slug,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst loggedIn = this.Service('auth').getCurrentSkill()\n\t\tassert.isEqual(loggedIn?.id, this.skill3.id)\n\t}\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"RebuildingASkill.test.js","names":["RebuildingASkillTest","test","assert","isFunction","Action","execute","CommandService","fakeCommand","code","shouldPlayGames","results","isFalsy","errors","isArray","errorAssert","assertError","AbstractSkillTest"],"sources":["../../../src/__tests__/behavioral/RebuildingASkill.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test-utils'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport CommandService from '../../services/CommandService'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\n\nexport default class RebuildingASkillTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'skills'\n\n\t@test()\n\tprotected static async hasRebuildCommand() {\n\t\tassert.isFunction(this.Action('skill', 'rebuild').execute)\n\t}\n\n\t@test()\n\tprotected static async runsExpectedCommand() {\n\t\tCommandService.fakeCommand('yarn rebuild', { code: 0 })\n\n\t\tconst results = await this.Action('skill', 'rebuild').execute({\n\t\t\tshouldPlayGames: false,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\t}\n\n\t@test()\n\tprotected static async handlesError() {\n\t\tCommandService.fakeCommand('yarn rebuild', { code: 1 })\n\n\t\tconst results = await this.Action('skill', 'rebuild').execute({\n\t\t\tshouldPlayGames: false,\n\t\t})\n\n\t\tassert.isArray(results.errors)\n\n\t\terrorAssert.assertError(results.errors[0], 'EXECUTING_COMMAND_FAILED')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAEA;AACA;AAA6D;AAAA;AAAA;AAAA,IAExCA,oBAAoB,WAGvC,IAAAC,eAAI,GAAE,UAKN,IAAAA,eAAI,GAAE,UAWN,IAAAA,eAAI,GAAE;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,uGAhBP;QAAA;UAAA;YAAA;cAAA;gBAECC,iBAAM,CAACC,UAAU,CAAC,IAAI,CAACC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAACC,OAAO,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC1D;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,yGAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAECC,0BAAc,CAACC,WAAW,CAAC,cAAc,EAAE;kBAAEC,IAAI,EAAE;gBAAE,CAAC,CAAC;gBAAA;gBAAA,OAEjC,IAAI,CAACJ,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAACC,OAAO,CAAC;kBAC7DI,eAAe,EAAE;gBAClB,CAAC,CAAC;cAAA;gBAFIC,OAAO;gBAIbR,iBAAM,CAACS,OAAO,CAACD,OAAO,CAACE,MAAM,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC9B;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,kGAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAECN,0BAAc,CAACC,WAAW,CAAC,cAAc,EAAE;kBAAEC,IAAI,EAAE;gBAAE,CAAC,CAAC;gBAAA;gBAAA,OAEjC,IAAI,CAACJ,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAACC,OAAO,CAAC;kBAC7DI,eAAe,EAAE;gBAClB,CAAC,CAAC;cAAA;gBAFIC,OAAO;gBAIbR,iBAAM,CAACW,OAAO,CAACH,OAAO,CAACE,MAAM,CAAC;gBAE9BE,sBAAW,CAACC,WAAW,CAACL,OAAO,CAACE,MAAM,CAAC,CAAC,CAAC,EAAE,0BAA0B,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACtE;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EA9BgDI,8BAAiB,8DACjC,QAAQ;AAAA"}