@sprucelabs/spruce-cli 18.2.0 → 18.3.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 +6 -0
- package/build/.spruce/events/events.contract.d.ts +159 -0
- package/build/.spruce/events/events.contract.js +5 -1
- package/build/.spruce/events/events.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.d.ts +46 -0
- package/build/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.js +57 -0
- package/build/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.js.map +1 -0
- package/build/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.d.ts +68 -0
- package/build/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.js +78 -0
- package/build/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.js.map +1 -0
- package/build/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.d.ts +40 -0
- package/build/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.js +51 -0
- package/build/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.js.map +1 -0
- package/build/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.d.ts +9 -0
- package/build/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.js +17 -0
- package/build/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.js.map +1 -0
- package/build/.spruce/schemas/schemas.types.d.ts +158 -55
- package/build/.spruce/schemas/schemas.types.js.map +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.d.ts +3 -0
- package/build/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.js +70 -0
- package/build/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.js.map +1 -0
- package/build/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.d.ts +3 -0
- package/build/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.js +35 -0
- package/build/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.js.map +1 -0
- package/build/.spruce/settings.json +2 -1
- package/build/GlobalEmitter.d.ts +13 -38
- package/build/GlobalEmitter.js +3 -6
- package/build/GlobalEmitter.js.map +1 -1
- package/build/__tests__/behavioral/TestingAConversation.test.d.ts +2 -1
- package/build/__tests__/behavioral/TestingAConversation.test.js +74 -84
- package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js +38 -13
- package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.d.ts +1 -0
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js +16 -9
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/CreatingPermissions.test.d.ts +2 -2
- package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js +7 -7
- package/build/__tests__/behavioral/permissions/CreatingPermissions.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/PermissionPlugin.test.d.ts +6 -0
- package/build/__tests__/behavioral/permissions/PermissionPlugin.test.js +85 -0
- package/build/__tests__/behavioral/permissions/PermissionPlugin.test.js.map +1 -0
- package/build/__tests__/behavioral/permissions/PermissionStore.test.d.ts +5 -4
- package/build/__tests__/behavioral/permissions/PermissionStore.test.js +96 -63
- package/build/__tests__/behavioral/permissions/PermissionStore.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/PermissionWriter.test.d.ts +5 -0
- package/build/__tests__/behavioral/permissions/PermissionWriter.test.js +88 -0
- package/build/__tests__/behavioral/permissions/PermissionWriter.test.js.map +1 -0
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.d.ts +15 -4
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js +325 -28
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/support/AbstractPermissionsTest.d.ts +11 -0
- package/build/__tests__/behavioral/permissions/{AbstractPermissionsTest.js → support/AbstractPermissionsTest.js} +34 -2
- package/build/__tests__/behavioral/permissions/support/AbstractPermissionsTest.js.map +1 -0
- package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.d.ts +1 -0
- package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.js +11 -0
- package/build/__tests__/behavioral/permissions/support/generateShortAlphaId.js.map +1 -0
- package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.d.ts +1 -0
- package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.js +17 -0
- package/build/__tests__/behavioral/permissions/support/renderPermissionTestFile.js.map +1 -0
- package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.d.ts +5 -0
- package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.js +10 -0
- package/build/__tests__/behavioral/permissions/support/sortPermissionContracts.js.map +1 -0
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.d.ts +1 -1
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js +46 -46
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.js +2 -2
- package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js +7 -3
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js +2 -2
- package/build/__tests__/behavioral/upgrading/UpgradingASkill3.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill4.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.d.ts +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js +23 -11
- package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
- package/build/__tests__/implementation/GlobalEmitter.test.d.ts +1 -0
- package/build/__tests__/implementation/GlobalEmitter.test.js +40 -3
- package/build/__tests__/implementation/GlobalEmitter.test.js.map +1 -1
- package/build/__tests__/implementation/SkillStore.test.js +3 -4
- package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
- package/build/features/AbstractAction.d.ts +1 -1
- package/build/features/AbstractAction.js.map +1 -1
- package/build/features/AbstractFeature.d.ts +3 -3
- package/build/features/AbstractFeature.js +8 -8
- package/build/features/AbstractFeature.js.map +1 -1
- package/build/features/ActionExecuter.d.ts +1 -1
- package/build/features/ActionExecuter.js +3 -4
- package/build/features/ActionExecuter.js.map +1 -1
- package/build/features/ActionFactory.d.ts +12 -5
- package/build/features/ActionFactory.js +27 -6
- package/build/features/ActionFactory.js.map +1 -1
- package/build/features/ActionQuestionAsker.d.ts +1 -1
- package/build/features/ActionQuestionAsker.js +6 -6
- package/build/features/ActionQuestionAsker.js.map +1 -1
- package/build/features/conversation/ConversationFeature.js +1 -1
- package/build/features/conversation/ConversationFeature.js.map +1 -1
- package/build/features/dependencies/DependencyFeature.js +1 -1
- package/build/features/dependencies/DependencyFeature.js.map +1 -1
- package/build/features/deploy/actions/HerokuAction.js +31 -33
- package/build/features/deploy/actions/HerokuAction.js.map +1 -1
- package/build/features/error/ErrorFeature.js +4 -4
- package/build/features/error/ErrorFeature.js.map +1 -1
- package/build/features/event/EventFeature.d.ts +8 -8
- package/build/features/event/EventFeature.js +7 -4
- package/build/features/event/EventFeature.js.map +1 -1
- package/build/features/event/actions/CreateAction.js.map +1 -1
- package/build/features/event/actions/ListenAction.js.map +1 -1
- package/build/features/event/stores/EventStore.d.ts +9 -9
- package/build/features/event/stores/EventStore.js +26 -26
- package/build/features/event/stores/EventStore.js.map +1 -1
- package/build/features/eventContract/EventContractFeature.js +4 -1
- package/build/features/eventContract/EventContractFeature.js.map +1 -1
- package/build/features/eventContract/actions/PullAction.js +10 -5
- package/build/features/eventContract/actions/PullAction.js.map +1 -1
- package/build/features/features.types.d.ts +2 -37
- package/build/features/features.types.js +0 -41
- package/build/features/features.types.js.map +1 -1
- package/build/features/log/LogFeature.js +1 -1
- package/build/features/log/LogFeature.js.map +1 -1
- package/build/features/node/NodeFeature.js.map +1 -1
- package/build/features/organization/actions/InstallAction.js.map +1 -1
- package/build/features/permission/PermissionFeature.d.ts +12 -2
- package/build/features/permission/PermissionFeature.js +140 -15
- package/build/features/permission/PermissionFeature.js.map +1 -1
- package/build/features/permission/actions/CreateAction.js +4 -1
- package/build/features/permission/actions/CreateAction.js.map +1 -1
- package/build/features/permission/actions/SyncAction.d.ts +5 -1
- package/build/features/permission/actions/SyncAction.js +28 -10
- package/build/features/permission/actions/SyncAction.js.map +1 -1
- package/build/features/permission/stores/PermissionStore.d.ts +6 -1
- package/build/features/permission/stores/PermissionStore.js +43 -31
- package/build/features/permission/stores/PermissionStore.js.map +1 -1
- package/build/features/permission/writers/PermissionWriter.d.ts +7 -1
- package/build/features/permission/writers/PermissionWriter.js +66 -17
- package/build/features/permission/writers/PermissionWriter.js.map +1 -1
- package/build/features/person/PersonFeature.js +1 -1
- package/build/features/person/PersonFeature.js.map +1 -1
- package/build/features/sandbox/SandboxFeature.js +1 -1
- package/build/features/sandbox/SandboxFeature.js.map +1 -1
- package/build/features/schema/SchemaFeature.d.ts +8 -8
- package/build/features/schema/SchemaFeature.js +4 -4
- package/build/features/schema/SchemaFeature.js.map +1 -1
- package/build/features/schema/writers/SchemaWriter.d.ts +12 -12
- package/build/features/schema/writers/SchemaWriter.js.map +1 -1
- package/build/features/skill/SkillFeature.d.ts +11 -11
- package/build/features/skill/SkillFeature.js +2 -2
- package/build/features/skill/SkillFeature.js.map +1 -1
- package/build/features/skill/actions/RebuildAction.js.map +1 -1
- package/build/features/skill/actions/RegisterAction.js.map +1 -1
- package/build/features/skill/stores/SkillStore.js +1 -2
- package/build/features/skill/stores/SkillStore.js.map +1 -1
- package/build/features/store/StoreFeature.js +1 -1
- package/build/features/store/StoreFeature.js.map +1 -1
- package/build/features/store/actions/SyncAction.d.ts +1 -1
- package/build/features/store/actions/SyncAction.js.map +1 -1
- package/build/features/test/TestFeature.js +1 -1
- package/build/features/test/TestFeature.js.map +1 -1
- package/build/features/view/ViewFeature.js +1 -1
- package/build/features/view/ViewFeature.js.map +1 -1
- package/build/schemas/v2020_07_22/actionResponse.builder.d.ts +85 -0
- package/build/schemas/v2020_07_22/actionResponse.builder.js +70 -0
- package/build/schemas/v2020_07_22/actionResponse.builder.js.map +1 -0
- package/build/schemas/v2020_07_22/generatedFile.builder.d.ts +27 -0
- package/build/schemas/v2020_07_22/generatedFile.builder.js +45 -0
- package/build/schemas/v2020_07_22/generatedFile.builder.js.map +1 -0
- package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js +4 -40
- package/build/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.js.map +1 -1
- package/build/services/CommandService.d.ts +2 -2
- package/build/services/CommandService.js +6 -6
- package/build/services/CommandService.js.map +1 -1
- package/build/services/PkgService.d.ts +1 -0
- package/build/services/PkgService.js +5 -0
- package/build/services/PkgService.js.map +1 -1
- package/build/tests/AbstractCliTest.d.ts +7 -3
- package/build/tests/AbstractCliTest.js +81 -45
- package/build/tests/AbstractCliTest.js.map +1 -1
- package/build/tests/buildTestCache.js +7 -0
- package/build/tests/buildTestCache.js.map +1 -1
- package/build/tests/fixtures/FeatureFixture.js +1 -0
- package/build/tests/fixtures/FeatureFixture.js.map +1 -1
- package/build/tests/utilities/test.utility.d.ts +2 -0
- package/build/tests/utilities/test.utility.js +6 -0
- package/build/tests/utilities/test.utility.js.map +1 -1
- package/node_modules/@typescript-eslint/parser/package.json +5 -5
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.d.ts +4 -2
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.js +13 -5
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.d.ts +2 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js +3 -0
- package/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js.map +1 -1
- package/node_modules/@typescript-eslint/scope-manager/package.json +5 -5
- package/node_modules/@typescript-eslint/types/_ts3.4/dist/generated/ast-spec.d.ts +20 -2
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts +20 -2
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js +2 -0
- package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.js.map +1 -1
- package/node_modules/@typescript-eslint/types/package.json +2 -2
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/ts-estree/estree-to-ts-node-types.d.ts +2 -0
- package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/ts-estree/ts-nodes.d.ts +2 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js +15 -3
- package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts +2 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts +2 -0
- package/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/typescript-estree/package.json +5 -5
- package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.d.ts.map +1 -1
- package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js +63 -49
- package/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js.map +1 -1
- package/node_modules/@typescript-eslint/visitor-keys/package.json +3 -3
- package/package.json +65 -33
- package/src/.spruce/events/events.contract.ts +24 -0
- package/src/.spruce/events/heartwood/getActiveTheme.v2021_02_11.contract.ts +54 -0
- package/src/.spruce/events/heartwood/registerDashboardCards.v2021_02_11.contract.ts +79 -0
- package/src/.spruce/events/heartwood/upsertTheme.v2021_02_11.contract.ts +48 -0
- package/src/.spruce/events/spruceCli/registerSkillViews.v2021_04_11.contract.ts +13 -0
- package/src/.spruce/schemas/schemas.types.ts +171 -52
- package/src/.spruce/schemas/spruceCli/v2020_07_22/actionResponse.schema.ts +58 -0
- package/src/.spruce/schemas/spruceCli/v2020_07_22/npmPackage.schema.ts +33 -0
- package/src/.spruce/settings.json +2 -1
- package/src/GlobalEmitter.ts +2 -7
- package/src/__tests__/behavioral/TestingAConversation.test.ts +20 -37
- package/src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts +14 -2
- package/src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts +6 -0
- package/src/__tests__/behavioral/permissions/CreatingPermissions.test.ts +2 -2
- package/src/__tests__/behavioral/permissions/PermissionPlugin.test.ts +24 -0
- package/src/__tests__/behavioral/permissions/PermissionStore.test.ts +95 -38
- package/src/__tests__/behavioral/permissions/PermissionWriter.test.ts +23 -0
- package/src/__tests__/behavioral/permissions/SyncingPermissions.test.ts +125 -8
- package/src/__tests__/behavioral/permissions/support/AbstractPermissionsTest.ts +38 -0
- package/src/__tests__/behavioral/permissions/support/generateShortAlphaId.ts +5 -0
- package/src/__tests__/behavioral/permissions/support/renderPermissionTestFile.ts +27 -0
- package/src/__tests__/behavioral/permissions/support/sortPermissionContracts.ts +3 -0
- package/src/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.ts +12 -12
- package/src/__tests__/behavioral/tests/CreatingATest.test.ts +2 -2
- package/src/__tests__/behavioral/upgrading/UpgradingANodeModule.test.ts +3 -0
- package/src/__tests__/behavioral/upgrading/UpgradingASkill3.test.ts +3 -2
- package/src/__tests__/behavioral/upgrading/UpgradingASkill4.test.ts +1 -1
- package/src/__tests__/implementation/ActionExecuter2.test.ts +13 -6
- package/src/__tests__/implementation/GlobalEmitter.test.ts +22 -1
- package/src/__tests__/implementation/SkillStore.test.ts +1 -2
- package/src/features/AbstractAction.ts +2 -2
- package/src/features/AbstractFeature.ts +8 -8
- package/src/features/ActionExecuter.ts +4 -5
- package/src/features/ActionFactory.ts +44 -20
- package/src/features/ActionQuestionAsker.ts +17 -17
- package/src/features/conversation/ConversationFeature.ts +1 -1
- package/src/features/dependencies/DependencyFeature.ts +1 -1
- package/src/features/deploy/actions/HerokuAction.ts +2 -2
- package/src/features/error/ErrorFeature.ts +4 -4
- package/src/features/event/EventFeature.ts +15 -14
- package/src/features/event/actions/CreateAction.ts +1 -1
- package/src/features/event/actions/ListenAction.ts +1 -1
- package/src/features/event/stores/EventStore.ts +37 -37
- package/src/features/eventContract/EventContractFeature.ts +6 -1
- package/src/features/eventContract/actions/PullAction.ts +7 -3
- package/src/features/features.types.ts +4 -41
- package/src/features/log/LogFeature.ts +1 -1
- package/src/features/node/NodeFeature.ts +1 -1
- package/src/features/organization/actions/InstallAction.ts +1 -1
- package/src/features/permission/PermissionFeature.ts +66 -11
- package/src/features/permission/actions/CreateAction.ts +2 -0
- package/src/features/permission/actions/SyncAction.ts +22 -3
- package/src/features/permission/stores/PermissionStore.ts +27 -8
- package/src/features/permission/writers/PermissionWriter.ts +64 -3
- package/src/features/person/PersonFeature.ts +1 -1
- package/src/features/sandbox/SandboxFeature.ts +1 -3
- package/src/features/schema/SchemaFeature.ts +14 -14
- package/src/features/schema/writers/SchemaWriter.ts +14 -15
- package/src/features/skill/SkillFeature.ts +18 -18
- package/src/features/skill/actions/RebuildAction.ts +1 -1
- package/src/features/skill/actions/RegisterAction.ts +1 -1
- package/src/features/skill/stores/SkillStore.ts +1 -2
- package/src/features/store/StoreFeature.ts +1 -1
- package/src/features/store/actions/SyncAction.ts +1 -1
- package/src/features/test/TestFeature.ts +1 -1
- package/src/features/view/ViewFeature.ts +1 -1
- package/src/schemas/v2020_07_22/actionResponse.builder.ts +62 -0
- package/src/schemas/v2020_07_22/generatedFile.builder.ts +44 -0
- package/src/schemas/v2020_07_22/watcherDidDetectChangesEmitPayload.builder.ts +3 -46
- package/src/services/CommandService.ts +5 -5
- package/src/services/PkgService.ts +4 -0
- package/src/tests/AbstractCliTest.ts +31 -13
- package/src/tests/buildTestCache.ts +7 -0
- package/src/tests/fixtures/FeatureFixture.ts +2 -0
- package/src/tests/utilities/test.utility.ts +13 -0
- package/build/__tests__/behavioral/permissions/AbstractPermissionsTest.d.ts +0 -8
- package/build/__tests__/behavioral/permissions/AbstractPermissionsTest.js.map +0 -1
- package/src/__tests__/behavioral/permissions/AbstractPermissionsTest.ts +0 -20
|
@@ -40,7 +40,7 @@ var PermissionStore = /*#__PURE__*/function (_AbstractStore) {
|
|
|
40
40
|
key: "loadLocalPermissions",
|
|
41
41
|
value: function () {
|
|
42
42
|
var _loadLocalPermissions = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
43
|
-
var matches,
|
|
43
|
+
var matches, namespace, imported, _iterator, _step, file, path, contract;
|
|
44
44
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
45
45
|
while (1) {
|
|
46
46
|
switch (_context.prev = _context.next) {
|
|
@@ -51,45 +51,51 @@ var PermissionStore = /*#__PURE__*/function (_AbstractStore) {
|
|
|
51
51
|
});
|
|
52
52
|
case 2:
|
|
53
53
|
matches = _context.sent;
|
|
54
|
-
|
|
54
|
+
namespace = this.Service('pkg').getSkillNamespace();
|
|
55
|
+
imported = [];
|
|
55
56
|
_iterator = _createForOfIteratorHelper(matches);
|
|
56
|
-
_context.prev =
|
|
57
|
+
_context.prev = 6;
|
|
57
58
|
_iterator.s();
|
|
58
|
-
case
|
|
59
|
+
case 8:
|
|
59
60
|
if ((_step = _iterator.n()).done) {
|
|
60
|
-
_context.next =
|
|
61
|
+
_context.next = 17;
|
|
61
62
|
break;
|
|
62
63
|
}
|
|
63
64
|
file = _step.value;
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
path = _spruceSkillUtils.diskUtil.resolvePath(this.cwd, file);
|
|
66
|
+
_context.next = 13;
|
|
67
|
+
return this.Service('import').importDefault(path);
|
|
68
|
+
case 13:
|
|
67
69
|
contract = _context.sent;
|
|
68
|
-
|
|
69
|
-
|
|
70
|
+
imported.push({
|
|
71
|
+
id: "".concat(namespace, ".").concat(contract.id),
|
|
72
|
+
permissions: contract.permissions.map(function (p) {
|
|
73
|
+
return p.id;
|
|
74
|
+
}),
|
|
75
|
+
path: path
|
|
70
76
|
});
|
|
71
|
-
case 13:
|
|
72
|
-
_context.next = 7;
|
|
73
|
-
break;
|
|
74
77
|
case 15:
|
|
75
|
-
_context.next =
|
|
78
|
+
_context.next = 8;
|
|
76
79
|
break;
|
|
77
80
|
case 17:
|
|
78
|
-
_context.
|
|
79
|
-
|
|
81
|
+
_context.next = 22;
|
|
82
|
+
break;
|
|
83
|
+
case 19:
|
|
84
|
+
_context.prev = 19;
|
|
85
|
+
_context.t0 = _context["catch"](6);
|
|
80
86
|
_iterator.e(_context.t0);
|
|
81
|
-
case
|
|
82
|
-
_context.prev =
|
|
87
|
+
case 22:
|
|
88
|
+
_context.prev = 22;
|
|
83
89
|
_iterator.f();
|
|
84
|
-
return _context.finish(
|
|
85
|
-
case
|
|
86
|
-
return _context.abrupt("return",
|
|
87
|
-
case
|
|
90
|
+
return _context.finish(22);
|
|
91
|
+
case 25:
|
|
92
|
+
return _context.abrupt("return", imported);
|
|
93
|
+
case 26:
|
|
88
94
|
case "end":
|
|
89
95
|
return _context.stop();
|
|
90
96
|
}
|
|
91
97
|
}
|
|
92
|
-
}, _callee, this, [[
|
|
98
|
+
}, _callee, this, [[6, 19, 22, 25]]);
|
|
93
99
|
}));
|
|
94
100
|
function loadLocalPermissions() {
|
|
95
101
|
return _loadLocalPermissions.apply(this, arguments);
|
|
@@ -100,17 +106,27 @@ var PermissionStore = /*#__PURE__*/function (_AbstractStore) {
|
|
|
100
106
|
key: "fetchContracts",
|
|
101
107
|
value: function () {
|
|
102
108
|
var _fetchContracts = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
103
|
-
var client, deps, _yield$client$emitAnd, _yield$client$emitAnd2, permissionContracts,
|
|
109
|
+
var client, deps, local, map, _yield$client$emitAnd, _yield$client$emitAnd2, permissionContracts, _iterator2, _step2, result;
|
|
104
110
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
105
111
|
while (1) {
|
|
106
112
|
switch (_context2.prev = _context2.next) {
|
|
107
113
|
case 0:
|
|
108
114
|
_context2.next = 2;
|
|
109
|
-
return this.connectToApi(
|
|
115
|
+
return this.connectToApi({
|
|
116
|
+
shouldAuthAsCurrentSkill: true
|
|
117
|
+
});
|
|
110
118
|
case 2:
|
|
111
119
|
client = _context2.sent;
|
|
112
120
|
deps = this.Service('dependency').get();
|
|
113
121
|
_context2.next = 6;
|
|
122
|
+
return this.loadLocalPermissions();
|
|
123
|
+
case 6:
|
|
124
|
+
local = _context2.sent;
|
|
125
|
+
map = local.reduce(function (map, local) {
|
|
126
|
+
map[local.id] = local.permissions;
|
|
127
|
+
return map;
|
|
128
|
+
}, {});
|
|
129
|
+
_context2.next = 10;
|
|
114
130
|
return client.emitAndFlattenResponses('list-permission-contracts::v2020_12_25', {
|
|
115
131
|
target: {
|
|
116
132
|
namespaces: deps.map(function (d) {
|
|
@@ -118,14 +134,10 @@ var PermissionStore = /*#__PURE__*/function (_AbstractStore) {
|
|
|
118
134
|
})
|
|
119
135
|
}
|
|
120
136
|
});
|
|
121
|
-
case
|
|
137
|
+
case 10:
|
|
122
138
|
_yield$client$emitAnd = _context2.sent;
|
|
123
139
|
_yield$client$emitAnd2 = (0, _slicedToArray2["default"])(_yield$client$emitAnd, 1);
|
|
124
140
|
permissionContracts = _yield$client$emitAnd2[0].permissionContracts;
|
|
125
|
-
_context2.next = 11;
|
|
126
|
-
return this.loadLocalPermissions();
|
|
127
|
-
case 11:
|
|
128
|
-
map = _context2.sent;
|
|
129
141
|
_iterator2 = _createForOfIteratorHelper(permissionContracts);
|
|
130
142
|
try {
|
|
131
143
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -140,7 +152,7 @@ var PermissionStore = /*#__PURE__*/function (_AbstractStore) {
|
|
|
140
152
|
_iterator2.f();
|
|
141
153
|
}
|
|
142
154
|
return _context2.abrupt("return", map);
|
|
143
|
-
case
|
|
155
|
+
case 16:
|
|
144
156
|
case "end":
|
|
145
157
|
return _context2.stop();
|
|
146
158
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionStore.js","names":["PermissionStore","globby","cwd","matches","
|
|
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,10 +1,16 @@
|
|
|
1
|
+
import { PermissionContractMap } from '@sprucelabs/mercury-types';
|
|
1
2
|
import AbstractWriter from '../../../writers/AbstractWriter';
|
|
3
|
+
import { ImportedPermission } from '../stores/PermissionStore';
|
|
2
4
|
export default class PermissionWriter extends AbstractWriter {
|
|
3
|
-
writeTypesFile(destinationDir: string): Promise<import("../../../writers/AbstractWriter").WriteResults>;
|
|
5
|
+
writeTypesFile(destinationDir: string, map: PermissionContractMap): Promise<import("../../../writers/AbstractWriter").WriteResults>;
|
|
6
|
+
writeCombinedFile(destinationDir: string, options: {
|
|
7
|
+
contracts: ImportedPermission[];
|
|
8
|
+
}): Promise<import("../../../writers/AbstractWriter").WriteResults>;
|
|
4
9
|
writeContract(destinationDir: string, options: {
|
|
5
10
|
nameReadable: string;
|
|
6
11
|
nameKebab: string;
|
|
7
12
|
nameCamel: string;
|
|
8
13
|
description?: string;
|
|
9
14
|
}): Promise<import("../../../writers/AbstractWriter").WriteResults>;
|
|
15
|
+
writePlugin(cwd: string): Promise<import("../../../writers/AbstractWriter").WriteResults>;
|
|
10
16
|
}
|
|
@@ -26,38 +26,79 @@ 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) {
|
|
30
|
-
var destination, files;
|
|
29
|
+
var _writeTypesFile = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(destinationDir, map) {
|
|
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
35
|
destination = _spruceSkillUtils.diskUtil.resolveHashSprucePath(destinationDir, 'permissions', 'permissions.types.ts');
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
contents = this.templates.permissionTypes({
|
|
37
|
+
contracts: map
|
|
38
|
+
});
|
|
39
|
+
_context.next = 4;
|
|
40
|
+
return this.writeFileIfChangedMixinResults(destination, contents, 'Types file for any permission contracts you created or depend on.');
|
|
41
|
+
case 4:
|
|
39
42
|
files = _context.sent;
|
|
40
43
|
return _context.abrupt("return", files);
|
|
41
|
-
case
|
|
44
|
+
case 6:
|
|
42
45
|
case "end":
|
|
43
46
|
return _context.stop();
|
|
44
47
|
}
|
|
45
48
|
}
|
|
46
49
|
}, _callee, this);
|
|
47
50
|
}));
|
|
48
|
-
function writeTypesFile(_x) {
|
|
51
|
+
function writeTypesFile(_x, _x2) {
|
|
49
52
|
return _writeTypesFile.apply(this, arguments);
|
|
50
53
|
}
|
|
51
54
|
return writeTypesFile;
|
|
52
55
|
}()
|
|
53
56
|
}, {
|
|
54
|
-
key: "
|
|
57
|
+
key: "writeCombinedFile",
|
|
55
58
|
value: function () {
|
|
56
|
-
var
|
|
57
|
-
var
|
|
59
|
+
var _writeCombinedFile = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(destinationDir, options) {
|
|
60
|
+
var contracts, destinationPath, destinationFile, local, content, files;
|
|
58
61
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
59
62
|
while (1) {
|
|
60
63
|
switch (_context2.prev = _context2.next) {
|
|
64
|
+
case 0:
|
|
65
|
+
contracts = options.contracts;
|
|
66
|
+
destinationPath = _spruceSkillUtils.diskUtil.resolveHashSprucePath(destinationDir, 'permissions');
|
|
67
|
+
destinationFile = _spruceSkillUtils.diskUtil.resolvePath(destinationPath, 'permissions.ts');
|
|
68
|
+
local = contracts.map(function (c) {
|
|
69
|
+
return {
|
|
70
|
+
nameCamel: _spruceSkillUtils.namesUtil.toCamel(c.id),
|
|
71
|
+
path: _spruceSkillUtils.diskUtil.resolveRelativePath(destinationPath, c.path.replace('.ts', ''))
|
|
72
|
+
};
|
|
73
|
+
});
|
|
74
|
+
content = this.templates.permissions({
|
|
75
|
+
contracts: local
|
|
76
|
+
});
|
|
77
|
+
_context2.next = 7;
|
|
78
|
+
return this.writeFileIfChangedMixinResults(destinationFile, content, 'Import of all permission contracts for loading on boot!');
|
|
79
|
+
case 7:
|
|
80
|
+
files = _context2.sent;
|
|
81
|
+
return _context2.abrupt("return", files);
|
|
82
|
+
case 9:
|
|
83
|
+
case "end":
|
|
84
|
+
return _context2.stop();
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}, _callee2, this);
|
|
88
|
+
}));
|
|
89
|
+
function writeCombinedFile(_x3, _x4) {
|
|
90
|
+
return _writeCombinedFile.apply(this, arguments);
|
|
91
|
+
}
|
|
92
|
+
return writeCombinedFile;
|
|
93
|
+
}()
|
|
94
|
+
}, {
|
|
95
|
+
key: "writeContract",
|
|
96
|
+
value: function () {
|
|
97
|
+
var _writeContract = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(destinationDir, options) {
|
|
98
|
+
var nameReadable, nameKebab, nameCamel, description, destination, content, files;
|
|
99
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
100
|
+
while (1) {
|
|
101
|
+
switch (_context3.prev = _context3.next) {
|
|
61
102
|
case 0:
|
|
62
103
|
nameReadable = options.nameReadable, nameKebab = options.nameKebab, nameCamel = options.nameCamel, description = options.description;
|
|
63
104
|
destination = _spruceSkillUtils.diskUtil.resolvePath(destinationDir, "".concat(nameKebab, ".permissions.ts"));
|
|
@@ -67,26 +108,34 @@ var PermissionWriter = /*#__PURE__*/function (_AbstractWriter) {
|
|
|
67
108
|
description: description,
|
|
68
109
|
nameReadable: nameReadable
|
|
69
110
|
});
|
|
70
|
-
|
|
111
|
+
_context3.next = 5;
|
|
71
112
|
return this.writeFileIfChangedMixinResults(destination, content, 'Your brand new permissions contract!');
|
|
72
113
|
case 5:
|
|
73
|
-
files =
|
|
74
|
-
|
|
114
|
+
files = _context3.sent;
|
|
115
|
+
_context3.next = 8;
|
|
75
116
|
return this.lint(destination);
|
|
76
117
|
case 8:
|
|
77
|
-
return
|
|
118
|
+
return _context3.abrupt("return", files);
|
|
78
119
|
case 9:
|
|
79
120
|
case "end":
|
|
80
|
-
return
|
|
121
|
+
return _context3.stop();
|
|
81
122
|
}
|
|
82
123
|
}
|
|
83
|
-
},
|
|
124
|
+
}, _callee3, this);
|
|
84
125
|
}));
|
|
85
|
-
function writeContract(
|
|
126
|
+
function writeContract(_x5, _x6) {
|
|
86
127
|
return _writeContract.apply(this, arguments);
|
|
87
128
|
}
|
|
88
129
|
return writeContract;
|
|
89
130
|
}()
|
|
131
|
+
}, {
|
|
132
|
+
key: "writePlugin",
|
|
133
|
+
value: function writePlugin(cwd) {
|
|
134
|
+
var destination = _spruceSkillUtils.diskUtil.resolveHashSprucePath(cwd, 'features', 'permission.plugin.ts');
|
|
135
|
+
var pluginContents = this.templates.permissionPlugin();
|
|
136
|
+
var results = this.writeFileIfChangedMixinResults(destination, pluginContents, 'Enable permission support in your skill.');
|
|
137
|
+
return results;
|
|
138
|
+
}
|
|
90
139
|
}]);
|
|
91
140
|
return PermissionWriter;
|
|
92
141
|
}(_AbstractWriter2["default"]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionWriter.js","names":["PermissionWriter","destinationDir","destination","diskUtil","resolveHashSprucePath","writeFileIfChangedMixinResults","files","options","
|
|
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":"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"}
|
|
@@ -36,7 +36,7 @@ var PersonFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
36
36
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "packageDependencies", []);
|
|
37
37
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "actionsDir", _spruceSkillUtils.diskUtil.resolvePath(__dirname, 'actions'));
|
|
38
38
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "isInstalled", function () {
|
|
39
|
-
return _this.
|
|
39
|
+
return _this.features.isInstalled('skill');
|
|
40
40
|
});
|
|
41
41
|
return _this;
|
|
42
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PersonFeature.js","names":["PersonFeature","code","isRequired","diskUtil","resolvePath","__dirname","
|
|
1
|
+
{"version":3,"file":"PersonFeature.js","names":["PersonFeature","code","isRequired","diskUtil","resolvePath","__dirname","features","isInstalled","AbstractFeature"],"sources":["../../../src/features/person/PersonFeature.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport AbstractFeature, { FeatureDependency } from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\n\nexport default class PersonFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'person'\n\tpublic nameReadable = 'Person'\n\tpublic description = 'Log in, log out, etc.'\n\tpublic dependencies: FeatureDependency[] = [\n\t\t{\n\t\t\tcode: 'skill',\n\t\t\tisRequired: true,\n\t\t},\n\t]\n\tpublic packageDependencies = []\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic isInstalled = () => {\n\t\treturn this.features.isInstalled('skill')\n\t}\n}\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tperson: PersonFeature\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA;AACA;AAAuE;AAAA;AAAA,IAGlDA,aAAa;EAAA;EAAA;EAAA;IAAA;IAAA;IAAA;MAAA;IAAA;IAAA;IAAA,yFACN,QAAQ;IAAA,iGACb,QAAQ;IAAA,gGACT,uBAAuB;IAAA,iGACD,CAC1C;MACCC,IAAI,EAAE,OAAO;MACbC,UAAU,EAAE;IACb,CAAC,CACD;IAAA,wGAC4B,EAAE;IAAA,+FAEXC,0BAAQ,CAACC,WAAW,CAACC,SAAS,EAAE,SAAS,CAAC;IAAA,gGAEzC,YAAM;MAC1B,OAAO,MAAKC,QAAQ,CAACC,WAAW,CAAC,OAAO,CAAC;IAC1C,CAAC;IAAA;EAAA;EAAA;AAAA,EAhByCC,4BAAe;AAAA"}
|
|
@@ -43,7 +43,7 @@ var SandboxFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
43
43
|
switch (_context.prev = _context.next) {
|
|
44
44
|
case 0:
|
|
45
45
|
_context.next = 2;
|
|
46
|
-
return _this.
|
|
46
|
+
return _this.features.isInstalled('sandbox');
|
|
47
47
|
case 2:
|
|
48
48
|
isSkillInstalled = _context.sent;
|
|
49
49
|
if (!(isSkillInstalled && payload.featureCode === 'node' && payload.actionCode === 'upgrade')) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SandboxFeature.js","names":["SandboxFeature","options","code","isRequired","diskUtil","resolvePath","__dirname","emitter","on","payload","
|
|
1
|
+
{"version":3,"file":"SandboxFeature.js","names":["SandboxFeature","options","code","isRequired","diskUtil","resolvePath","__dirname","emitter","on","payload","features","isInstalled","isSkillInstalled","featureCode","actionCode","uiUtil","renderMasthead","ui","headline","Action","execute","AbstractFeature"],"sources":["../../../src/features/sandbox/SandboxFeature.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport uiUtil from '../../utilities/ui.utility'\nimport AbstractFeature, { FeatureDependency } from '../AbstractFeature'\nimport { ActionOptions, FeatureCode } from '../features.types'\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tsandbox: SandboxFeature\n\t}\n}\n\nexport default class SandboxFeature extends AbstractFeature {\n\tpublic code: FeatureCode = 'sandbox'\n\tpublic nameReadable = 'Sandbox'\n\tpublic description =\n\t\t'For getting your skill up-and-running on sandbox.mercury.spruce.ai.'\n\tpublic dependencies: FeatureDependency[] = [\n\t\t{\n\t\t\tcode: 'event',\n\t\t\tisRequired: true,\n\t\t},\n\t]\n\tpublic packageDependencies = []\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic constructor(options: ActionOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on('feature.will-execute', async (payload) => {\n\t\t\tconst isSkillInstalled = await this.features.isInstalled('sandbox')\n\t\t\tif (\n\t\t\t\tisSkillInstalled &&\n\t\t\t\tpayload.featureCode === 'node' &&\n\t\t\t\tpayload.actionCode === 'upgrade'\n\t\t\t) {\n\t\t\t\tuiUtil.renderMasthead({\n\t\t\t\t\tui: this.ui,\n\t\t\t\t\theadline: 'Updating sandbox support...',\n\t\t\t\t})\n\n\t\t\t\treturn this.Action('sandbox', 'setup').execute({})\n\t\t\t}\n\n\t\t\treturn {}\n\t\t})\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AACA;AAAuE;AAAA;AAAA,IASlDA,cAAc;EAAA;EAAA;EAclC,wBAAmBC,OAAsB,EAAE;IAAA;IAAA;IAC1C,0BAAMA,OAAO;IAAC,yFAdY,SAAS;IAAA,iGACd,SAAS;IAAA,gGAE9B,qEAAqE;IAAA,iGAC3B,CAC1C;MACCC,IAAI,EAAE,OAAO;MACbC,UAAU,EAAE;IACb,CAAC,CACD;IAAA,wGAC4B,EAAE;IAAA,+FACXC,0BAAQ,CAACC,WAAW,CAACC,SAAS,EAAE,SAAS,CAAC;IAK7D,KAAK,MAAKC,OAAO,CAACC,EAAE,CAAC,sBAAsB;MAAA,yFAAE,iBAAOC,OAAO;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAC3B,MAAKC,QAAQ,CAACC,WAAW,CAAC,SAAS,CAAC;cAAA;gBAA7DC,gBAAgB;gBAAA,MAErBA,gBAAgB,IAChBH,OAAO,CAACI,WAAW,KAAK,MAAM,IAC9BJ,OAAO,CAACK,UAAU,KAAK,SAAS;kBAAA;kBAAA;gBAAA;gBAEhCC,cAAM,CAACC,cAAc,CAAC;kBACrBC,EAAE,EAAE,MAAKA,EAAE;kBACXC,QAAQ,EAAE;gBACX,CAAC,CAAC;gBAAA,iCAEK,MAAKC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC;cAAA;gBAAA,iCAG5C,CAAC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACT;MAAA;QAAA;MAAA;IAAA,IAAC;IAAA;EACH;EAAC;AAAA,EAlC0CC,4BAAe;AAAA"}
|
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
import { NpmPackage } from '../../types/cli.types';
|
|
2
2
|
import AbstractFeature, { FeatureDependency, FeatureOptions, InstallResults } from '../AbstractFeature';
|
|
3
3
|
import { FeatureCode } from '../features.types';
|
|
4
|
-
declare module '../../features/features.types' {
|
|
5
|
-
interface FeatureMap {
|
|
6
|
-
schema: SchemaFeature;
|
|
7
|
-
}
|
|
8
|
-
interface FeatureOptionsMap {
|
|
9
|
-
schema: undefined;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
4
|
export default class SchemaFeature extends AbstractFeature {
|
|
13
5
|
nameReadable: string;
|
|
14
6
|
description: string;
|
|
@@ -22,3 +14,11 @@ export default class SchemaFeature extends AbstractFeature {
|
|
|
22
14
|
afterPackageInstall(): Promise<InstallResults>;
|
|
23
15
|
private writePlugin;
|
|
24
16
|
}
|
|
17
|
+
declare module '../../features/features.types' {
|
|
18
|
+
interface FeatureMap {
|
|
19
|
+
schema: SchemaFeature;
|
|
20
|
+
}
|
|
21
|
+
interface FeatureOptionsMap {
|
|
22
|
+
schema: undefined;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -60,11 +60,11 @@ var SchemaFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
60
60
|
switch (_context.prev = _context.next) {
|
|
61
61
|
case 0:
|
|
62
62
|
_context.next = 2;
|
|
63
|
-
return this.
|
|
63
|
+
return this.features.isInstalled('schema');
|
|
64
64
|
case 2:
|
|
65
65
|
isInstalled = _context.sent;
|
|
66
66
|
_context.next = 5;
|
|
67
|
-
return this.
|
|
67
|
+
return this.features.isInstalled('skill');
|
|
68
68
|
case 5:
|
|
69
69
|
isSkillInstalled = _context.sent;
|
|
70
70
|
if (!(payload.featureCode === 'node' && payload.actionCode === 'upgrade' && isInstalled && isSkillInstalled)) {
|
|
@@ -102,7 +102,7 @@ var SchemaFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
102
102
|
switch (_context2.prev = _context2.next) {
|
|
103
103
|
case 0:
|
|
104
104
|
_context2.next = 2;
|
|
105
|
-
return this.
|
|
105
|
+
return this.features.isInstalled('schema');
|
|
106
106
|
case 2:
|
|
107
107
|
isInstalled = _context2.sent;
|
|
108
108
|
if (!(payload.featureCode === 'node' && payload.actionCode === 'upgrade' && isInstalled)) {
|
|
@@ -146,7 +146,7 @@ var SchemaFeature = /*#__PURE__*/function (_AbstractFeature) {
|
|
|
146
146
|
switch (_context3.prev = _context3.next) {
|
|
147
147
|
case 0:
|
|
148
148
|
_context3.next = 2;
|
|
149
|
-
return this.
|
|
149
|
+
return this.features.isInstalled('skill');
|
|
150
150
|
case 2:
|
|
151
151
|
isSkillInstalled = _context3.sent;
|
|
152
152
|
if (isSkillInstalled) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaFeature.js","names":["SchemaFeature","options","code","isRequired","name","isDev","diskUtil","resolvePath","__dirname","emitter","on","handleWillExecute","bind","handleDidExecute","payload","
|
|
1
|
+
{"version":3,"file":"SchemaFeature.js","names":["SchemaFeature","options","code","isRequired","name","isDev","diskUtil","resolvePath","__dirname","emitter","on","handleWillExecute","bind","handleDidExecute","payload","features","isInstalled","isSkillInstalled","featureCode","actionCode","writePlugin","files","Store","hasLocalSchemas","Action","execute","results","Writer","cwd","AbstractFeature"],"sources":["../../../src/features/schema/SchemaFeature.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { NpmPackage } from '../../types/cli.types'\nimport AbstractFeature, {\n\tFeatureDependency,\n\tFeatureOptions,\n\tInstallResults,\n} from '../AbstractFeature'\nimport { FeatureCode } from '../features.types'\n\nexport default class SchemaFeature extends AbstractFeature {\n\tpublic nameReadable = 'Schema'\n\tpublic description = 'Define, validate, and normalize everything.'\n\tpublic dependencies: FeatureDependency[] = [\n\t\t{ code: 'skill', isRequired: false },\n\t\t{ code: 'node', isRequired: true },\n\t]\n\tpublic packageDependencies: NpmPackage[] = [\n\t\t{\n\t\t\tname: '@sprucelabs/schema@latest',\n\t\t},\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-core-schemas@latest',\n\t\t},\n\t\t{ name: '@sprucelabs/resolve-path-aliases@latest', isDev: true },\n\t\t{\n\t\t\tname: '@sprucelabs/spruce-skill-utils',\n\t\t},\n\t]\n\n\tpublic code: FeatureCode = 'schema'\n\n\tpublic actionsDir = diskUtil.resolvePath(__dirname, 'actions')\n\n\tpublic constructor(options: FeatureOptions) {\n\t\tsuper(options)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.will-execute',\n\t\t\tthis.handleWillExecute.bind(this)\n\t\t)\n\n\t\tvoid this.emitter.on(\n\t\t\t'feature.did-execute',\n\t\t\tthis.handleDidExecute.bind(this)\n\t\t)\n\t}\n\n\tprivate async handleWillExecute(payload: {\n\t\tactionCode: string\n\t\tfeatureCode: string\n\t}) {\n\t\tconst isInstalled = await this.features.isInstalled('schema')\n\t\tconst isSkillInstalled = await this.features.isInstalled('skill')\n\n\t\tif (\n\t\t\tpayload.featureCode === 'node' &&\n\t\t\tpayload.actionCode === 'upgrade' &&\n\t\t\tisInstalled &&\n\t\t\tisSkillInstalled\n\t\t) {\n\t\t\tconst files = await this.writePlugin()\n\t\t\treturn { files }\n\t\t}\n\n\t\treturn {}\n\t}\n\n\tprivate async handleDidExecute(payload: {\n\t\tactionCode: string\n\t\tfeatureCode: string\n\t}) {\n\t\tconst isInstalled = await this.features.isInstalled('schema')\n\n\t\tif (\n\t\t\tpayload.featureCode === 'node' &&\n\t\t\tpayload.actionCode === 'upgrade' &&\n\t\t\tisInstalled\n\t\t) {\n\t\t\tconst hasLocalSchemas = await this.Store('schema').hasLocalSchemas()\n\t\t\tif (hasLocalSchemas) {\n\t\t\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\t\t\treturn results\n\t\t\t}\n\t\t}\n\n\t\treturn {}\n\t}\n\n\tpublic async afterPackageInstall(): Promise<InstallResults> {\n\t\tconst isSkillInstalled = await this.features.isInstalled('skill')\n\n\t\tif (!isSkillInstalled) {\n\t\t\treturn {}\n\t\t}\n\n\t\tconst files = await this.writePlugin()\n\n\t\treturn {\n\t\t\tfiles,\n\t\t}\n\t}\n\n\tprivate async writePlugin() {\n\t\treturn this.Writer('schema').writePlugin(this.cwd)\n\t}\n}\n\ndeclare module '../../features/features.types' {\n\tinterface FeatureMap {\n\t\tschema: SchemaFeature\n\t}\n\n\tinterface FeatureOptionsMap {\n\t\tschema: undefined\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1,18 +1,6 @@
|
|
|
1
1
|
import { FieldTemplateItem, SchemaTemplateItem } from '@sprucelabs/schema';
|
|
2
2
|
import { SchemaBuilderTemplateItem, ValueTypes } from '@sprucelabs/spruce-templates';
|
|
3
3
|
import AbstractWriter, { WriteResults } from '../../../writers/AbstractWriter';
|
|
4
|
-
interface WriteFieldTypesOptions {
|
|
5
|
-
fieldTemplateItems: FieldTemplateItem[];
|
|
6
|
-
}
|
|
7
|
-
export interface GenerateSchemaTypesOptions {
|
|
8
|
-
fieldTemplateItems: FieldTemplateItem[];
|
|
9
|
-
schemaTemplateItems: SchemaTemplateItem[];
|
|
10
|
-
valueTypes: ValueTypes;
|
|
11
|
-
globalSchemaNamespace?: string;
|
|
12
|
-
typesTemplate?: string;
|
|
13
|
-
registerBuiltSchemas?: boolean;
|
|
14
|
-
shouldImportCoreSchemas: boolean;
|
|
15
|
-
}
|
|
16
4
|
export default class SchemaWriter extends AbstractWriter {
|
|
17
5
|
private readonly fieldTemplates;
|
|
18
6
|
writeBuilder(destinationDir: string, options: SchemaBuilderTemplateItem & {
|
|
@@ -37,4 +25,16 @@ export default class SchemaWriter extends AbstractWriter {
|
|
|
37
25
|
}): Promise<WriteResults>;
|
|
38
26
|
writePlugin(cwd: string): Promise<WriteResults>;
|
|
39
27
|
}
|
|
28
|
+
interface WriteFieldTypesOptions {
|
|
29
|
+
fieldTemplateItems: FieldTemplateItem[];
|
|
30
|
+
}
|
|
31
|
+
export interface GenerateSchemaTypesOptions {
|
|
32
|
+
fieldTemplateItems: FieldTemplateItem[];
|
|
33
|
+
schemaTemplateItems: SchemaTemplateItem[];
|
|
34
|
+
valueTypes: ValueTypes;
|
|
35
|
+
globalSchemaNamespace?: string;
|
|
36
|
+
typesTemplate?: string;
|
|
37
|
+
registerBuiltSchemas?: boolean;
|
|
38
|
+
shouldImportCoreSchemas: boolean;
|
|
39
|
+
}
|
|
40
40
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaWriter.js","names":["SchemaWriter","filename","templateFuncName","description","destinationDir","options","ui","startLoading","nameCamel","resolvedBuilderDestination","shouldEnableVersioning","pathUtil","resolve","versionUtil","resolveNewLatestPath","version","LATEST_HANDLEBARS","diskUtil","doesFileExist","SpruceError","code","schemaId","destination","builderContent","templates","schemaBuilder","writeFileIfChangedMixinResults","results","lint","fieldTemplateItems","fieldTemplates","fileAndFunc","resolvedDestination","path","join","contents","destinationDirOrFilename","schemaTemplateItems","valueTypes","typesTemplate","resolvedTypesDestination","resolveFilenameWithFallback","DEFAULT_SCHEMA_TYPES_FILENAME","localItems","filter","i","importFrom","length","schemaTypesContents","schemasTypes","globalSchemaNamespace","writeAllSchemas","dirname","typesFile","allSchemaResults","push","item","writeSchema","schemaResults","registerBuiltSchemas","schemaDiskUtil","resolvePath","schema","resolveRelativePath","undefined","replace","extname","schemaContents","schemaFile","shouldImportCoreSchemas","id","cwd","resolveHashSprucePath","pluginContents","schemaPlugin","AbstractWriter"],"sources":["../../../../src/features/schema/writers/SchemaWriter.ts"],"sourcesContent":["import path from 'path'\nimport pathUtil from 'path'\nimport { FieldTemplateItem, SchemaTemplateItem } from '@sprucelabs/schema'\nimport { versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport {\n\tLATEST_HANDLEBARS,\n\tDEFAULT_SCHEMA_TYPES_FILENAME,\n} from '@sprucelabs/spruce-skill-utils'\nimport {\n\tSchemaBuilderTemplateItem,\n\tValueTypes,\n} from '@sprucelabs/spruce-templates'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractWriter, { WriteResults } from '../../../writers/AbstractWriter'\nimport schemaDiskUtil from '../utilities/schemaDisk.utility'\n\ninterface WriteFieldTypesOptions {\n\tfieldTemplateItems: FieldTemplateItem[]\n}\n\n// eslint-disable-next-line no-redeclare\nexport interface GenerateSchemaTypesOptions {\n\tfieldTemplateItems: FieldTemplateItem[]\n\tschemaTemplateItems: SchemaTemplateItem[]\n\tvalueTypes: ValueTypes\n\tglobalSchemaNamespace?: string\n\ttypesTemplate?: string\n\tregisterBuiltSchemas?: boolean\n\tshouldImportCoreSchemas: boolean\n}\n\nexport default class SchemaWriter extends AbstractWriter {\n\tprivate readonly fieldTemplates: {\n\t\tfilename: string\n\t\ttemplateFuncName: 'fieldsTypes' | 'fieldClassMap'\n\t\tdescription: string\n\t}[] = [\n\t\t{\n\t\t\tfilename: 'fields.types.ts',\n\t\t\ttemplateFuncName: 'fieldsTypes',\n\t\t\tdescription:\n\t\t\t\t'All the interfaces generated for every type of schema field (text, number, address, etc).',\n\t\t},\n\t\t{\n\t\t\tfilename: 'fieldClassMap.ts',\n\t\t\ttemplateFuncName: 'fieldClassMap',\n\t\t\tdescription:\n\t\t\t\t'An object that is injected into the FieldFactory and ensures 3rd party fields are integrated.',\n\t\t},\n\t]\n\n\tpublic async writeBuilder(\n\t\tdestinationDir: string,\n\t\toptions: SchemaBuilderTemplateItem & {\n\t\t\tshouldEnableVersioning?: boolean\n\t\t\tversion?: string\n\t\t}\n\t): Promise<WriteResults> {\n\t\tthis.ui.startLoading('Writing builder...')\n\n\t\tconst filename = `${options.nameCamel}.builder.ts`\n\n\t\tconst resolvedBuilderDestination =\n\t\t\toptions.shouldEnableVersioning === false\n\t\t\t\t? pathUtil.resolve(destinationDir, filename)\n\t\t\t\t: versionUtil.resolveNewLatestPath(\n\t\t\t\t\t\tdestinationDir,\n\t\t\t\t\t\toptions.version ?? LATEST_HANDLEBARS,\n\t\t\t\t\t\tfilename\n\t\t\t\t )\n\n\t\tif (diskUtil.doesFileExist(resolvedBuilderDestination)) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'SCHEMA_EXISTS',\n\t\t\t\tschemaId: options.nameCamel,\n\t\t\t\tdestination: destinationDir,\n\t\t\t})\n\t\t}\n\n\t\tconst builderContent = this.templates.schemaBuilder(options)\n\n\t\tconst results = await this.writeFileIfChangedMixinResults(\n\t\t\tresolvedBuilderDestination,\n\t\t\tbuilderContent,\n\t\t\t'The source of truth for building your schemas and their types. Run spruce sync.errors when you change this.'\n\t\t)\n\n\t\tawait this.lint(resolvedBuilderDestination)\n\n\t\treturn results\n\t}\n\n\tpublic async writeFieldTypes(\n\t\tdestinationDir: string,\n\t\toptions: WriteFieldTypesOptions\n\t): Promise<WriteResults> {\n\t\tthis.ui.startLoading('Checking schema field types...')\n\n\t\tconst { fieldTemplateItems } = options\n\n\t\tlet results: WriteResults = []\n\n\t\tfor (const fileAndFunc of this.fieldTemplates) {\n\t\t\tconst { filename, templateFuncName, description } = fileAndFunc\n\n\t\t\tconst resolvedDestination = path.join(destinationDir, 'fields', filename)\n\n\t\t\tconst contents = this.templates[templateFuncName]({\n\t\t\t\tfieldTemplateItems,\n\t\t\t})\n\n\t\t\tresults = await this.writeFileIfChangedMixinResults(\n\t\t\t\tresolvedDestination,\n\t\t\t\tcontents,\n\t\t\t\tdescription,\n\t\t\t\tresults\n\t\t\t)\n\t\t}\n\n\t\treturn results\n\t}\n\n\tpublic async writeSchemasAndTypes(\n\t\tdestinationDirOrFilename: string,\n\t\toptions: GenerateSchemaTypesOptions\n\t): Promise<WriteResults> {\n\t\tconst {\n\t\t\tfieldTemplateItems,\n\t\t\tschemaTemplateItems,\n\t\t\tvalueTypes,\n\t\t\ttypesTemplate,\n\t\t} = options\n\n\t\tconst resolvedTypesDestination = this.resolveFilenameWithFallback(\n\t\t\tdestinationDirOrFilename,\n\t\t\tDEFAULT_SCHEMA_TYPES_FILENAME\n\t\t)\n\n\t\tlet results: WriteResults = []\n\t\tthis.ui.startLoading('Generating schema types...')\n\n\t\tconst localItems = schemaTemplateItems.filter((i) => !i.importFrom)\n\n\t\tif (localItems.length > 0) {\n\t\t\tconst schemaTypesContents = this.templates.schemasTypes({\n\t\t\t\tschemaTemplateItems: localItems,\n\t\t\t\tfieldTemplateItems,\n\t\t\t\tvalueTypes,\n\t\t\t\tglobalSchemaNamespace: options.globalSchemaNamespace,\n\t\t\t\ttypesTemplate,\n\t\t\t})\n\n\t\t\tresults = await this.writeFileIfChangedMixinResults(\n\t\t\t\tresolvedTypesDestination,\n\t\t\t\tschemaTypesContents,\n\t\t\t\t'Namespace for accessing all your schemas. Type `SpruceSchemas` in your IDE to get started. ⚡️'\n\t\t\t)\n\n\t\t\tawait this.lint(resolvedTypesDestination)\n\t\t}\n\n\t\tthis.ui.startLoading(\n\t\t\t`Checking ${schemaTemplateItems.length} schemas for changes...`\n\t\t)\n\n\t\tconst allSchemaResults = await this.writeAllSchemas(\n\t\t\tpathUtil.dirname(resolvedTypesDestination),\n\t\t\t{\n\t\t\t\t...options,\n\t\t\t\ttypesFile: resolvedTypesDestination,\n\t\t\t}\n\t\t)\n\n\t\tresults.push(...allSchemaResults)\n\n\t\treturn results\n\t}\n\n\tprivate async writeAllSchemas(\n\t\tdestinationDir: string,\n\t\toptions: GenerateSchemaTypesOptions & { typesFile?: string }\n\t): Promise<WriteResults> {\n\t\tconst results: WriteResults = []\n\n\t\tfor (const item of options.schemaTemplateItems) {\n\t\t\tconst schemaResults = await this.writeSchema(destinationDir, {\n\t\t\t\t...options,\n\t\t\t\t...item,\n\t\t\t})\n\t\t\tresults.push(...schemaResults)\n\t\t}\n\n\t\treturn results\n\t}\n\n\tpublic async writeSchema(\n\t\tdestinationDir: string,\n\t\toptions: {\n\t\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t\t\tfieldTemplateItems: FieldTemplateItem[]\n\t\t\tvalueTypes: ValueTypes\n\t\t\ttypesFile?: string\n\t\t\tregisterBuiltSchemas?: boolean\n\t\t\tshouldImportCoreSchemas: boolean\n\t\t} & SchemaTemplateItem\n\t) {\n\t\tconst {\n\t\t\tschemaTemplateItems,\n\t\t\tfieldTemplateItems,\n\t\t\tvalueTypes,\n\t\t\tregisterBuiltSchemas = true,\n\t\t\t...item\n\t\t} = options\n\n\t\tconst resolvedDestination = schemaDiskUtil.resolvePath({\n\t\t\tdestination: destinationDir,\n\t\t\tschema: options.schema,\n\t\t})\n\n\t\tlet typesFile = options.typesFile\n\t\t\t? diskUtil.resolveRelativePath(\n\t\t\t\t\tpathUtil.dirname(resolvedDestination),\n\t\t\t\t\toptions.typesFile\n\t\t\t )\n\t\t\t: undefined\n\n\t\tif (typesFile) {\n\t\t\ttypesFile = typesFile.replace(pathUtil.extname(typesFile), '')\n\t\t}\n\n\t\tconst schemaContents = this.templates.schema({\n\t\t\t...item,\n\t\t\tregisterBuiltSchemas,\n\t\t\tschemaTemplateItems,\n\t\t\tfieldTemplateItems,\n\t\t\tvalueTypes,\n\t\t\ttypesFile,\n\t\t\tschemaFile:\n\t\t\t\titem.importFrom && options.shouldImportCoreSchemas\n\t\t\t\t\t? `schema/imported.schema.ts.hbs`\n\t\t\t\t\t: undefined,\n\t\t})\n\n\t\treturn this.writeFileIfChangedMixinResults(\n\t\t\tresolvedDestination,\n\t\t\tschemaContents,\n\t\t\t`${\n\t\t\t\titem.schema.description ? `${item.schema.description} ` : ''\n\t\t\t}This is the schema generated by ${\n\t\t\t\titem.id\n\t\t\t}.builder.ts. AUTOGENERATED. DO NOT EDIT.`\n\t\t)\n\t}\n\n\tpublic async writeValueTypes(\n\t\tdestinationDir: string,\n\t\toptions: {\n\t\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t\t\tfieldTemplateItems: FieldTemplateItem[]\n\t\t\tglobalSchemaNamespace?: string\n\t\t}\n\t): Promise<WriteResults> {\n\t\tconst contents = this.templates.valueTypes(options)\n\t\tconst destination = pathUtil.join(destinationDir, 'tmp', 'valueType.tmp.ts')\n\n\t\treturn this.writeFileIfChangedMixinResults(\n\t\t\tdestination,\n\t\t\tcontents,\n\t\t\t'For constructing what goes to the right of the : after each property in the interface.'\n\t\t)\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'schema.plugin.ts'\n\t\t)\n\n\t\tconst pluginContents = this.templates.schemaPlugin()\n\n\t\tconst results = this.writeFileIfChangedMixinResults(\n\t\t\tdestination,\n\t\t\tpluginContents,\n\t\t\t'Enable schema support in your skill.'\n\t\t)\n\n\t\treturn results\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SchemaWriter.js","names":["SchemaWriter","filename","templateFuncName","description","destinationDir","options","ui","startLoading","nameCamel","resolvedBuilderDestination","shouldEnableVersioning","pathUtil","resolve","versionUtil","resolveNewLatestPath","version","LATEST_HANDLEBARS","diskUtil","doesFileExist","SpruceError","code","schemaId","destination","builderContent","templates","schemaBuilder","writeFileIfChangedMixinResults","results","lint","fieldTemplateItems","fieldTemplates","fileAndFunc","resolvedDestination","path","join","contents","destinationDirOrFilename","schemaTemplateItems","valueTypes","typesTemplate","resolvedTypesDestination","resolveFilenameWithFallback","DEFAULT_SCHEMA_TYPES_FILENAME","localItems","filter","i","importFrom","length","schemaTypesContents","schemasTypes","globalSchemaNamespace","writeAllSchemas","dirname","typesFile","allSchemaResults","push","item","writeSchema","schemaResults","registerBuiltSchemas","schemaDiskUtil","resolvePath","schema","resolveRelativePath","undefined","replace","extname","schemaContents","schemaFile","shouldImportCoreSchemas","id","cwd","resolveHashSprucePath","pluginContents","schemaPlugin","AbstractWriter"],"sources":["../../../../src/features/schema/writers/SchemaWriter.ts"],"sourcesContent":["import path from 'path'\nimport pathUtil from 'path'\nimport { FieldTemplateItem, SchemaTemplateItem } from '@sprucelabs/schema'\nimport { versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport {\n\tLATEST_HANDLEBARS,\n\tDEFAULT_SCHEMA_TYPES_FILENAME,\n} from '@sprucelabs/spruce-skill-utils'\nimport {\n\tSchemaBuilderTemplateItem,\n\tValueTypes,\n} from '@sprucelabs/spruce-templates'\nimport SpruceError from '../../../errors/SpruceError'\nimport AbstractWriter, { WriteResults } from '../../../writers/AbstractWriter'\nimport schemaDiskUtil from '../utilities/schemaDisk.utility'\n\nexport default class SchemaWriter extends AbstractWriter {\n\tprivate readonly fieldTemplates: {\n\t\tfilename: string\n\t\ttemplateFuncName: 'fieldsTypes' | 'fieldClassMap'\n\t\tdescription: string\n\t}[] = [\n\t\t{\n\t\t\tfilename: 'fields.types.ts',\n\t\t\ttemplateFuncName: 'fieldsTypes',\n\t\t\tdescription:\n\t\t\t\t'All the interfaces generated for every type of schema field (text, number, address, etc).',\n\t\t},\n\t\t{\n\t\t\tfilename: 'fieldClassMap.ts',\n\t\t\ttemplateFuncName: 'fieldClassMap',\n\t\t\tdescription:\n\t\t\t\t'An object that is injected into the FieldFactory and ensures 3rd party fields are integrated.',\n\t\t},\n\t]\n\n\tpublic async writeBuilder(\n\t\tdestinationDir: string,\n\t\toptions: SchemaBuilderTemplateItem & {\n\t\t\tshouldEnableVersioning?: boolean\n\t\t\tversion?: string\n\t\t}\n\t): Promise<WriteResults> {\n\t\tthis.ui.startLoading('Writing builder...')\n\n\t\tconst filename = `${options.nameCamel}.builder.ts`\n\n\t\tconst resolvedBuilderDestination =\n\t\t\toptions.shouldEnableVersioning === false\n\t\t\t\t? pathUtil.resolve(destinationDir, filename)\n\t\t\t\t: versionUtil.resolveNewLatestPath(\n\t\t\t\t\t\tdestinationDir,\n\t\t\t\t\t\toptions.version ?? LATEST_HANDLEBARS,\n\t\t\t\t\t\tfilename\n\t\t\t\t )\n\n\t\tif (diskUtil.doesFileExist(resolvedBuilderDestination)) {\n\t\t\tthrow new SpruceError({\n\t\t\t\tcode: 'SCHEMA_EXISTS',\n\t\t\t\tschemaId: options.nameCamel,\n\t\t\t\tdestination: destinationDir,\n\t\t\t})\n\t\t}\n\n\t\tconst builderContent = this.templates.schemaBuilder(options)\n\n\t\tconst results = await this.writeFileIfChangedMixinResults(\n\t\t\tresolvedBuilderDestination,\n\t\t\tbuilderContent,\n\t\t\t'The source of truth for building your schemas and their types. Run spruce sync.errors when you change this.'\n\t\t)\n\n\t\tawait this.lint(resolvedBuilderDestination)\n\n\t\treturn results\n\t}\n\n\tpublic async writeFieldTypes(\n\t\tdestinationDir: string,\n\t\toptions: WriteFieldTypesOptions\n\t): Promise<WriteResults> {\n\t\tthis.ui.startLoading('Checking schema field types...')\n\n\t\tconst { fieldTemplateItems } = options\n\n\t\tlet results: WriteResults = []\n\n\t\tfor (const fileAndFunc of this.fieldTemplates) {\n\t\t\tconst { filename, templateFuncName, description } = fileAndFunc\n\n\t\t\tconst resolvedDestination = path.join(destinationDir, 'fields', filename)\n\n\t\t\tconst contents = this.templates[templateFuncName]({\n\t\t\t\tfieldTemplateItems,\n\t\t\t})\n\n\t\t\tresults = await this.writeFileIfChangedMixinResults(\n\t\t\t\tresolvedDestination,\n\t\t\t\tcontents,\n\t\t\t\tdescription,\n\t\t\t\tresults\n\t\t\t)\n\t\t}\n\n\t\treturn results\n\t}\n\n\tpublic async writeSchemasAndTypes(\n\t\tdestinationDirOrFilename: string,\n\t\toptions: GenerateSchemaTypesOptions\n\t): Promise<WriteResults> {\n\t\tconst {\n\t\t\tfieldTemplateItems,\n\t\t\tschemaTemplateItems,\n\t\t\tvalueTypes,\n\t\t\ttypesTemplate,\n\t\t} = options\n\n\t\tconst resolvedTypesDestination = this.resolveFilenameWithFallback(\n\t\t\tdestinationDirOrFilename,\n\t\t\tDEFAULT_SCHEMA_TYPES_FILENAME\n\t\t)\n\n\t\tlet results: WriteResults = []\n\t\tthis.ui.startLoading('Generating schema types...')\n\n\t\tconst localItems = schemaTemplateItems.filter((i) => !i.importFrom)\n\n\t\tif (localItems.length > 0) {\n\t\t\tconst schemaTypesContents = this.templates.schemasTypes({\n\t\t\t\tschemaTemplateItems: localItems,\n\t\t\t\tfieldTemplateItems,\n\t\t\t\tvalueTypes,\n\t\t\t\tglobalSchemaNamespace: options.globalSchemaNamespace,\n\t\t\t\ttypesTemplate,\n\t\t\t})\n\n\t\t\tresults = await this.writeFileIfChangedMixinResults(\n\t\t\t\tresolvedTypesDestination,\n\t\t\t\tschemaTypesContents,\n\t\t\t\t'Namespace for accessing all your schemas. Type `SpruceSchemas` in your IDE to get started. ⚡️'\n\t\t\t)\n\n\t\t\tawait this.lint(resolvedTypesDestination)\n\t\t}\n\n\t\tthis.ui.startLoading(\n\t\t\t`Checking ${schemaTemplateItems.length} schemas for changes...`\n\t\t)\n\n\t\tconst allSchemaResults = await this.writeAllSchemas(\n\t\t\tpathUtil.dirname(resolvedTypesDestination),\n\t\t\t{\n\t\t\t\t...options,\n\t\t\t\ttypesFile: resolvedTypesDestination,\n\t\t\t}\n\t\t)\n\n\t\tresults.push(...allSchemaResults)\n\n\t\treturn results\n\t}\n\n\tprivate async writeAllSchemas(\n\t\tdestinationDir: string,\n\t\toptions: GenerateSchemaTypesOptions & { typesFile?: string }\n\t): Promise<WriteResults> {\n\t\tconst results: WriteResults = []\n\n\t\tfor (const item of options.schemaTemplateItems) {\n\t\t\tconst schemaResults = await this.writeSchema(destinationDir, {\n\t\t\t\t...options,\n\t\t\t\t...item,\n\t\t\t})\n\t\t\tresults.push(...schemaResults)\n\t\t}\n\n\t\treturn results\n\t}\n\n\tpublic async writeSchema(\n\t\tdestinationDir: string,\n\t\toptions: {\n\t\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t\t\tfieldTemplateItems: FieldTemplateItem[]\n\t\t\tvalueTypes: ValueTypes\n\t\t\ttypesFile?: string\n\t\t\tregisterBuiltSchemas?: boolean\n\t\t\tshouldImportCoreSchemas: boolean\n\t\t} & SchemaTemplateItem\n\t) {\n\t\tconst {\n\t\t\tschemaTemplateItems,\n\t\t\tfieldTemplateItems,\n\t\t\tvalueTypes,\n\t\t\tregisterBuiltSchemas = true,\n\t\t\t...item\n\t\t} = options\n\n\t\tconst resolvedDestination = schemaDiskUtil.resolvePath({\n\t\t\tdestination: destinationDir,\n\t\t\tschema: options.schema,\n\t\t})\n\n\t\tlet typesFile = options.typesFile\n\t\t\t? diskUtil.resolveRelativePath(\n\t\t\t\t\tpathUtil.dirname(resolvedDestination),\n\t\t\t\t\toptions.typesFile\n\t\t\t )\n\t\t\t: undefined\n\n\t\tif (typesFile) {\n\t\t\ttypesFile = typesFile.replace(pathUtil.extname(typesFile), '')\n\t\t}\n\n\t\tconst schemaContents = this.templates.schema({\n\t\t\t...item,\n\t\t\tregisterBuiltSchemas,\n\t\t\tschemaTemplateItems,\n\t\t\tfieldTemplateItems,\n\t\t\tvalueTypes,\n\t\t\ttypesFile,\n\t\t\tschemaFile:\n\t\t\t\titem.importFrom && options.shouldImportCoreSchemas\n\t\t\t\t\t? `schema/imported.schema.ts.hbs`\n\t\t\t\t\t: undefined,\n\t\t})\n\n\t\treturn this.writeFileIfChangedMixinResults(\n\t\t\tresolvedDestination,\n\t\t\tschemaContents,\n\t\t\t`${\n\t\t\t\titem.schema.description ? `${item.schema.description} ` : ''\n\t\t\t}This is the schema generated by ${\n\t\t\t\titem.id\n\t\t\t}.builder.ts. AUTOGENERATED. DO NOT EDIT.`\n\t\t)\n\t}\n\n\tpublic async writeValueTypes(\n\t\tdestinationDir: string,\n\t\toptions: {\n\t\t\tschemaTemplateItems: SchemaTemplateItem[]\n\t\t\tfieldTemplateItems: FieldTemplateItem[]\n\t\t\tglobalSchemaNamespace?: string\n\t\t}\n\t): Promise<WriteResults> {\n\t\tconst contents = this.templates.valueTypes(options)\n\t\tconst destination = pathUtil.join(destinationDir, 'tmp', 'valueType.tmp.ts')\n\n\t\treturn this.writeFileIfChangedMixinResults(\n\t\t\tdestination,\n\t\t\tcontents,\n\t\t\t'For constructing what goes to the right of the : after each property in the interface.'\n\t\t)\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'schema.plugin.ts'\n\t\t)\n\n\t\tconst pluginContents = this.templates.schemaPlugin()\n\n\t\tconst results = this.writeFileIfChangedMixinResults(\n\t\t\tdestination,\n\t\t\tpluginContents,\n\t\t\t'Enable schema support in your skill.'\n\t\t)\n\n\t\treturn results\n\t}\n}\n\ninterface WriteFieldTypesOptions {\n\tfieldTemplateItems: FieldTemplateItem[]\n}\n\nexport interface GenerateSchemaTypesOptions {\n\tfieldTemplateItems: FieldTemplateItem[]\n\tschemaTemplateItems: SchemaTemplateItem[]\n\tvalueTypes: ValueTypes\n\tglobalSchemaNamespace?: string\n\ttypesTemplate?: string\n\tregisterBuiltSchemas?: boolean\n\tshouldImportCoreSchemas: boolean\n}\n"],"mappings":"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"}
|