@sprucelabs/spruce-cli 18.3.1 → 18.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js +2 -14
  3. package/build/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.js.map +1 -1
  4. package/build/__tests__/behavioral/permissions/PermissionStore.test.js.map +1 -1
  5. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.d.ts +1 -0
  6. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js +53 -18
  7. package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js.map +1 -1
  8. package/build/__tests__/behavioral/views/WatchingSkillViews.test.js +1 -1
  9. package/build/__tests__/behavioral/views/WatchingSkillViews.test.js.map +1 -1
  10. package/build/__tests__/support/EventFaker.d.ts +1 -1
  11. package/build/__tests__/support/EventFaker.js.map +1 -1
  12. package/build/features/eventContract/EventContractFeature.js +1 -4
  13. package/build/features/eventContract/EventContractFeature.js.map +1 -1
  14. package/build/features/eventContract/actions/PullAction.d.ts +1 -0
  15. package/build/features/eventContract/actions/PullAction.js +49 -8
  16. package/build/features/eventContract/actions/PullAction.js.map +1 -1
  17. package/build/features/permission/PermissionFeature.js +19 -9
  18. package/build/features/permission/PermissionFeature.js.map +1 -1
  19. package/build/features/permission/actions/SyncAction.d.ts +22 -3
  20. package/build/features/permission/actions/SyncAction.js +58 -16
  21. package/build/features/permission/actions/SyncAction.js.map +1 -1
  22. package/build/features/permission/stores/PermissionStore.d.ts +6 -2
  23. package/build/features/permission/stores/PermissionStore.js +25 -21
  24. package/build/features/permission/stores/PermissionStore.js.map +1 -1
  25. package/build/features/view/actions/WatchAction.js +1 -1
  26. package/build/features/view/actions/WatchAction.js.map +1 -1
  27. package/node_modules/@typescript-eslint/parser/README.md +6 -300
  28. package/node_modules/@typescript-eslint/parser/dist/parser.d.ts.map +1 -1
  29. package/node_modules/@typescript-eslint/parser/dist/parser.js +15 -17
  30. package/node_modules/@typescript-eslint/parser/dist/parser.js.map +1 -1
  31. package/node_modules/@typescript-eslint/parser/package.json +5 -5
  32. package/node_modules/@typescript-eslint/scope-manager/README.md +5 -117
  33. package/node_modules/@typescript-eslint/scope-manager/package.json +5 -5
  34. package/node_modules/@typescript-eslint/types/README.md +6 -11
  35. package/node_modules/@typescript-eslint/types/package.json +2 -2
  36. package/node_modules/@typescript-eslint/typescript-estree/README.md +6 -379
  37. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/create-program/{createWatchProgram.d.ts → getWatchProgramsForProjects.d.ts} +3 -4
  38. package/node_modules/@typescript-eslint/typescript-estree/_ts3.4/dist/index.d.ts +1 -1
  39. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js +3 -3
  40. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js.map +1 -1
  41. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/{createWatchProgram.d.ts → getWatchProgramsForProjects.d.ts} +3 -4
  42. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/getWatchProgramsForProjects.d.ts.map +1 -0
  43. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/{createWatchProgram.js → getWatchProgramsForProjects.js} +4 -5
  44. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/getWatchProgramsForProjects.js.map +1 -0
  45. package/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts +1 -1
  46. package/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts.map +1 -1
  47. package/node_modules/@typescript-eslint/typescript-estree/dist/index.js +2 -2
  48. package/node_modules/@typescript-eslint/typescript-estree/dist/index.js.map +1 -1
  49. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/warnAboutTSVersion.js +2 -2
  50. package/node_modules/@typescript-eslint/typescript-estree/package.json +5 -5
  51. package/node_modules/@typescript-eslint/visitor-keys/README.md +6 -9
  52. package/node_modules/@typescript-eslint/visitor-keys/package.json +3 -3
  53. package/package.json +3 -3
  54. package/src/__tests__/behavioral/eventContract/PullingMercuryEventContract.test.ts +0 -5
  55. package/src/__tests__/behavioral/permissions/PermissionStore.test.ts +1 -1
  56. package/src/__tests__/behavioral/permissions/SyncingPermissions.test.ts +21 -3
  57. package/src/__tests__/behavioral/views/WatchingSkillViews.test.ts +1 -1
  58. package/src/__tests__/support/EventFaker.ts +1 -2
  59. package/src/features/eventContract/EventContractFeature.ts +1 -6
  60. package/src/features/eventContract/actions/PullAction.ts +21 -3
  61. package/src/features/permission/PermissionFeature.ts +2 -7
  62. package/src/features/permission/actions/SyncAction.ts +42 -5
  63. package/src/features/permission/stores/PermissionStore.ts +25 -11
  64. package/src/features/view/actions/WatchAction.ts +1 -1
  65. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts.map +0 -1
  66. package/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typescript-eslint/visitor-keys",
3
- "version": "5.45.0",
3
+ "version": "5.45.1",
4
4
  "description": "Visitor keys used to help traverse the TypeScript-ESTree AST",
5
5
  "keywords": [
6
6
  "eslint",
@@ -39,7 +39,7 @@
39
39
  "typecheck": "tsc -p tsconfig.json --noEmit"
40
40
  },
41
41
  "dependencies": {
42
- "@typescript-eslint/types": "5.45.0",
42
+ "@typescript-eslint/types": "5.45.1",
43
43
  "eslint-visitor-keys": "^3.3.0"
44
44
  },
45
45
  "devDependencies": {
@@ -56,5 +56,5 @@
56
56
  ]
57
57
  }
58
58
  },
59
- "gitHead": "267da4e416f7de6892336db8a2360d7af702b73c"
59
+ "gitHead": "2d0a88314dc6c4ea2c786135735fd83517945acd"
60
60
  }
package/package.json CHANGED
@@ -18,7 +18,7 @@
18
18
  ]
19
19
  },
20
20
  "license": "MIT",
21
- "version": "18.3.1",
21
+ "version": "18.4.0",
22
22
  "bin": {
23
23
  "spruce": "./build/index.js"
24
24
  },
@@ -86,7 +86,7 @@
86
86
  "@sprucelabs/spruce-core-schemas": "^35.1.70",
87
87
  "@sprucelabs/spruce-event-utils": "^30.0.0",
88
88
  "@sprucelabs/spruce-skill-utils": "^28.1.3",
89
- "@sprucelabs/spruce-templates": "^18.3.1",
89
+ "@sprucelabs/spruce-templates": "^18.4.0",
90
90
  "@typescript-eslint/eslint-plugin": "^5.27.1",
91
91
  "@typescript-eslint/parser": "^5.27.1",
92
92
  "cfonts": "^3.1.1",
@@ -595,5 +595,5 @@
595
595
  "terminal-kit"
596
596
  ]
597
597
  },
598
- "gitHead": "b837a2b5de3ff892d8b01f4e73c407ab54a11eec"
598
+ "gitHead": "da522d85b8178d456ecda58e41b9b4a7067b9437"
599
599
  }
@@ -116,11 +116,6 @@ export default class GeneratingMercuryEventContractTest extends AbstractCliTest
116
116
  shouldAutoHandleDependencies: true,
117
117
  }).execute({})
118
118
 
119
- await this.waitForInput()
120
- await this.ui.sendInput('Y')
121
- await this.waitForInput()
122
- await this.ui.sendInput('\n')
123
-
124
119
  const results = await promise
125
120
 
126
121
  const match = testUtil.assertFileByNameInGeneratedFiles(
@@ -4,9 +4,9 @@ import { diskUtil } from '@sprucelabs/spruce-skill-utils'
4
4
  import { test, assert, generateId } from '@sprucelabs/test-utils'
5
5
  import PermissionStore, {
6
6
  ImportedPermission,
7
+ ListPermContractsTargetAndPayload,
7
8
  } from '../../../features/permission/stores/PermissionStore'
8
9
  import { ApiClientFactoryOptions } from '../../../types/apiClient.types'
9
- import { ListPermContractsTargetAndPayload } from '../../support/EventFaker'
10
10
  import AbstractPermissionsTest from './support/AbstractPermissionsTest'
11
11
  import generateShortAlphaId from './support/generateShortAlphaId'
12
12
  import { sortPermissionContracts } from './support/sortPermissionContracts'
@@ -2,7 +2,10 @@ import { MercuryClientFactory } from '@sprucelabs/mercury-client'
2
2
  import { diskUtil } from '@sprucelabs/spruce-skill-utils'
3
3
  import { assert, test } from '@sprucelabs/test-utils'
4
4
  import ActionFactory from '../../../features/ActionFactory'
5
- import SyncAction from '../../../features/permission/actions/SyncAction'
5
+ import SyncAction, {
6
+ SyncPermissionsOptions,
7
+ } from '../../../features/permission/actions/SyncAction'
8
+ import { ListPermContractsTargetAndPayload } from '../../../features/permission/stores/PermissionStore'
6
9
  import testUtil from '../../../tests/utilities/test.utility'
7
10
  import AbstractPermissionsTest from './support/AbstractPermissionsTest'
8
11
  import generateShortAlphaId from './support/generateShortAlphaId'
@@ -112,6 +115,21 @@ export default class SyncingPermissionsTest extends AbstractPermissionsTest {
112
115
  )
113
116
  }
114
117
 
118
+ @test()
119
+ protected static async canSyncCorePermissions() {
120
+ let wasHit = false
121
+ let passedTarget: ListPermContractsTargetAndPayload['target']
122
+
123
+ await this.eventFaker.fakeListPermissionContracts((targetAndPayload) => {
124
+ passedTarget = targetAndPayload.target
125
+ wasHit = true
126
+ })
127
+
128
+ await this.sync({ shouldSyncCorePermissions: true })
129
+ assert.isTrue(wasHit)
130
+ assert.isUndefined(passedTarget)
131
+ }
132
+
115
133
  private static getCombinedPath() {
116
134
  return this.resolveHashSprucePath('permissions', 'permissions.ts')
117
135
  }
@@ -120,8 +138,8 @@ export default class SyncingPermissionsTest extends AbstractPermissionsTest {
120
138
  ActionFactory.setActionClass('permission', 'sync', ExecuteTrackingAction)
121
139
  }
122
140
 
123
- private static async sync() {
124
- return await this.syncAction.execute()
141
+ private static async sync(options?: SyncPermissionsOptions) {
142
+ return await this.syncAction.execute(options)
125
143
  }
126
144
 
127
145
  private static async emitDidExecuteUpgrade() {
@@ -22,7 +22,7 @@ export default class WatchingSkillViewsTest extends AbstractSkillTest {
22
22
  protected static async shouldCallBoot() {
23
23
  let wasHit = false
24
24
  CommandService.fakeCommand(
25
- 'ENABLED_SKILL_FEATURES=view,event SHOULD_WATCH_VIEWS=true MAXIMUM_LOG_PREFIXES_LENGTH=0 yarn boot',
25
+ 'SHOULD_WATCH_VIEWS=true MAXIMUM_LOG_PREFIXES_LENGTH=0 yarn boot',
26
26
  {
27
27
  code: 200,
28
28
  callback: () => {
@@ -1,8 +1,7 @@
1
1
  import { SpruceSchemas } from '@sprucelabs/mercury-types'
2
2
  import { eventFaker } from '@sprucelabs/spruce-test-fixtures'
3
+ import { ListPermContractsTargetAndPayload } from '../../features/permission/stores/PermissionStore'
3
4
 
4
- export type ListPermContractsTargetAndPayload =
5
- SpruceSchemas.Mercury.v2020_12_25.ListPermissionContractsEmitTargetAndPayload
6
5
  export default class EventFaker {
7
6
  public async fakeListPermissionContracts(
8
7
  cb?: (
@@ -14,12 +14,7 @@ export default class EventContractFeature extends AbstractFeature {
14
14
  public nameReadable = 'Event Contract'
15
15
  public description =
16
16
  'Pull core Mercury events down and write to single, portable, dependency-free, strongly typed contract.'
17
- public dependencies: FeatureDependency[] = [
18
- {
19
- code: 'permission',
20
- isRequired: true,
21
- },
22
- ]
17
+ public dependencies: FeatureDependency[] = []
23
18
  public packageDependencies = []
24
19
 
25
20
  public actionsDir = diskUtil.resolvePath(__dirname, 'actions')
@@ -1,6 +1,5 @@
1
1
  import { buildSchema, SchemaValues } from '@sprucelabs/schema'
2
2
  import { diskUtil } from '@sprucelabs/spruce-skill-utils'
3
- import actionUtil from '../../../utilities/action.utility'
4
3
  import AbstractAction from '../../AbstractAction'
5
4
  import { FeatureActionResponse } from '../../features.types'
6
5
 
@@ -50,10 +49,11 @@ export type CoreEventContract = ${contracts
50
49
 
51
50
  diskUtil.writeFile(destination, contents)
52
51
 
53
- const results = await this.Action('permission', 'sync').execute({})
52
+ const typesFiles = await this.syncPermissions()
54
53
 
55
- return actionUtil.mergeActionResults(results, {
54
+ return {
56
55
  files: [
56
+ ...typesFiles,
57
57
  {
58
58
  name: filename,
59
59
  path: destination,
@@ -61,6 +61,24 @@ export type CoreEventContract = ${contracts
61
61
  description: 'All your Mercury core events ready for testing!',
62
62
  },
63
63
  ],
64
+ }
65
+ }
66
+
67
+ private async syncPermissions() {
68
+ const permissions = this.Store('permission')
69
+
70
+ const coreMap = await permissions.fetchContracts({
71
+ shouldSyncCorePermissions: true,
64
72
  })
73
+
74
+ const heartwoodMap = await permissions.fetchContracts({
75
+ namespaces: ['heartwood'],
76
+ })
77
+
78
+ const typesFiles = await this.Writer('permission').writeTypesFile(
79
+ this.cwd,
80
+ { ...coreMap, ...heartwoodMap }
81
+ )
82
+ return typesFiles
65
83
  }
66
84
  }
@@ -41,13 +41,8 @@ export default class PermissionFeature extends AbstractFeature {
41
41
  const isInstalled = await this.features.isInstalled('permission')
42
42
  const isSkillInstalled = await this.features.isInstalled('skill')
43
43
 
44
- if (
45
- isSkillInstalled &&
46
- isInstalled &&
47
- featureCode === 'node' &&
48
- actionCode === 'upgrade'
49
- ) {
50
- const combinedFile = await this.writePlugin()
44
+ if (isInstalled && featureCode === 'node' && actionCode === 'upgrade') {
45
+ const combinedFile = isSkillInstalled ? await this.writePlugin() : []
51
46
  const results = await this.Action('permission', 'sync').execute({})
52
47
 
53
48
  results.files = [...(results.files ?? []), ...combinedFile]
@@ -1,4 +1,4 @@
1
- import { buildSchema } from '@sprucelabs/schema'
1
+ import { buildSchema, SchemaValues } from '@sprucelabs/schema'
2
2
  import AbstractAction from '../../AbstractAction'
3
3
  import { ActionOptions, FeatureActionResponse } from '../../features.types'
4
4
  import PermissionStore from '../stores/PermissionStore'
@@ -18,9 +18,23 @@ export default class SyncAction extends AbstractAction<OptionsSchema> {
18
18
  this.writer = this.Writer('permission')
19
19
  }
20
20
 
21
- public async execute(): Promise<FeatureActionResponse> {
22
- const map = await this.permissions.fetchContracts()
23
- const typesFiles = await this.writer.writeTypesFile(this.cwd, map)
21
+ public async execute(
22
+ options?: SyncPermissionsOptions
23
+ ): Promise<FeatureActionResponse> {
24
+ const { shouldSyncCorePermissions } = this.validateAndNormalizeOptions(
25
+ options ?? {}
26
+ )
27
+
28
+ const permissions = this.permissions
29
+ const writer = this.writer
30
+ const cwd = this.cwd
31
+
32
+ const typesFiles = await writePermissionTypesFile({
33
+ permissions,
34
+ shouldSyncCorePermissions,
35
+ writer,
36
+ cwd,
37
+ })
24
38
 
25
39
  const local = await this.permissions.loadLocalPermissions()
26
40
  const combinedFiles = await this.writer.writeCombinedFile(this.cwd, {
@@ -36,7 +50,30 @@ export default class SyncAction extends AbstractAction<OptionsSchema> {
36
50
 
37
51
  const schema = buildSchema({
38
52
  id: 'syncPermissions',
39
- fields: {},
53
+ fields: {
54
+ shouldSyncCorePermissions: {
55
+ type: 'boolean',
56
+ },
57
+ },
40
58
  })
41
59
 
42
60
  type OptionsSchema = typeof schema
61
+ export type SyncPermissionsOptions = SchemaValues<OptionsSchema>
62
+
63
+ export async function writePermissionTypesFile(options: {
64
+ permissions: PermissionStore
65
+ shouldSyncCorePermissions: boolean | undefined
66
+ namespaces?: string[]
67
+ writer: PermissionWriter
68
+ cwd: string
69
+ }) {
70
+ const { permissions, shouldSyncCorePermissions, writer, cwd, namespaces } =
71
+ options
72
+
73
+ const map = await permissions.fetchContracts({
74
+ namespaces,
75
+ shouldSyncCorePermissions,
76
+ })
77
+ const typesFiles = await writer.writeTypesFile(cwd, map)
78
+ return typesFiles
79
+ }
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  PermissionContract,
3
3
  PermissionContractMap,
4
+ SpruceSchemas,
4
5
  } from '@sprucelabs/mercury-types'
5
6
  import { diskUtil } from '@sprucelabs/spruce-skill-utils'
6
7
  import globby from 'globby'
@@ -33,9 +34,28 @@ export default class PermissionStore extends AbstractStore {
33
34
  return imported
34
35
  }
35
36
 
36
- public async fetchContracts() {
37
+ public async fetchContracts(options?: {
38
+ shouldSyncCorePermissions?: boolean
39
+ namespaces?: string[]
40
+ }) {
41
+ const { shouldSyncCorePermissions, namespaces } = options ?? {}
42
+
43
+ let target: ListPermContractsTargetAndPayload['target']
37
44
  const client = await this.connectToApi({ shouldAuthAsCurrentSkill: true })
38
- const deps = this.Service('dependency').get()
45
+
46
+ if (!shouldSyncCorePermissions) {
47
+ const deps = this.Service('dependency').get()
48
+ target = {
49
+ namespaces: namespaces ?? deps.map((d) => d.namespace),
50
+ }
51
+ }
52
+
53
+ const [{ permissionContracts }] = await client.emitAndFlattenResponses(
54
+ 'list-permission-contracts::v2020_12_25',
55
+ {
56
+ target,
57
+ }
58
+ )
39
59
 
40
60
  const local = await this.loadLocalPermissions()
41
61
  const map: PermissionContractMap = local.reduce<PermissionContractMap>(
@@ -46,15 +66,6 @@ export default class PermissionStore extends AbstractStore {
46
66
  {} as any
47
67
  )
48
68
 
49
- const [{ permissionContracts }] = await client.emitAndFlattenResponses(
50
- 'list-permission-contracts::v2020_12_25',
51
- {
52
- target: {
53
- namespaces: deps.map((d) => d.namespace),
54
- },
55
- }
56
- )
57
-
58
69
  for (const result of permissionContracts) {
59
70
  map[result.contract.id] = result.contract.permissions.map((p) => p.id)
60
71
  }
@@ -68,3 +79,6 @@ export interface ImportedPermission {
68
79
  permissions: string[]
69
80
  path: string
70
81
  }
82
+
83
+ export type ListPermContractsTargetAndPayload =
84
+ SpruceSchemas.Mercury.v2020_12_25.ListPermissionContractsEmitTargetAndPayload
@@ -24,7 +24,7 @@ export default class WatchAction extends AbstractAction<OptionsSchema> {
24
24
  this.resetUi()
25
25
  const commands = this.Service('command')
26
26
  await commands.execute(
27
- 'ENABLED_SKILL_FEATURES=view,event SHOULD_WATCH_VIEWS=true MAXIMUM_LOG_PREFIXES_LENGTH=0 yarn boot',
27
+ 'SHOULD_WATCH_VIEWS=true MAXIMUM_LOG_PREFIXES_LENGTH=0 yarn boot',
28
28
  {
29
29
  onData: (data) => {
30
30
  const line = this.popLastLine(data)
@@ -1 +0,0 @@
1
- {"version":3,"file":"createWatchProgram.d.ts","sourceRoot":"","sources":["../../src/create-program/createWatchProgram.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA6CtD;;;GAGG;AACH,iBAAS,gBAAgB,IAAI,IAAI,CAOhC;AA0ED;;;;GAIG;AACH,iBAAS,sBAAsB,CAAC,aAAa,EAAE,aAAa,GAAG,EAAE,CAAC,OAAO,EAAE,CAuH1E;AAMD,iBAAS,kBAAkB,CACzB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,aAAa,GAC3B,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,cAAc,CAAC,CAuIzC;AAmJD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"createWatchProgram.js","sourceRoot":"","sources":["../../src/create-program/createWatchProgram.ts"],"names":[],"mappings":"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"}