@sprucelabs/spruce-cli 21.1.0 → 22.0.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 +11 -0
- package/build/__tests__/behavioral/{CreatingAConversationTopic.test.d.ts → conversations/CreatingAConversationTopic.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{CreatingAConversationTopic.test.js → conversations/CreatingAConversationTopic.test.js} +2 -2
- package/build/__tests__/behavioral/conversations/CreatingAConversationTopic.test.js.map +1 -0
- package/build/__tests__/behavioral/{RegisteringConversationsOnBoot.test.d.ts → conversations/RegisteringConversationsOnBoot.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{RegisteringConversationsOnBoot.test.js → conversations/RegisteringConversationsOnBoot.test.js} +1 -1
- package/build/__tests__/behavioral/conversations/RegisteringConversationsOnBoot.test.js.map +1 -0
- package/build/__tests__/behavioral/{TestingAConversation.test.d.ts → conversations/TestingAConversation.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{TestingAConversation.test.js → conversations/TestingAConversation.test.js} +2 -2
- package/build/__tests__/behavioral/conversations/TestingAConversation.test.js.map +1 -0
- package/build/__tests__/behavioral/events/KeepingListenersInSync.test.d.ts +1 -1
- package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js +2 -2
- package/build/__tests__/behavioral/events/KeepingListenersInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/{GettingCliVersion.test.d.ts → versions/GettingCliVersion.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{GettingCliVersion.test.js → versions/GettingCliVersion.test.js} +4 -4
- package/build/__tests__/behavioral/versions/GettingCliVersion.test.js.map +1 -0
- package/build/__tests__/behavioral/versions/ResolvingVersions.test.d.ts +24 -0
- package/build/__tests__/behavioral/versions/ResolvingVersions.test.js +140 -0
- package/build/__tests__/behavioral/versions/ResolvingVersions.test.js.map +1 -0
- package/build/__tests__/behavioral/views/CreatingASkillView.test.d.ts +2 -0
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js +20 -6
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
- package/build/features/AbstractAction.d.ts +0 -1
- package/build/features/AbstractAction.js +3 -40
- package/build/features/AbstractAction.js.map +1 -1
- package/build/features/VersionResolver.d.ts +12 -0
- package/build/features/VersionResolver.js +88 -0
- package/build/features/VersionResolver.js.map +1 -0
- package/build/features/view/actions/CreateAction.js +3 -2
- package/build/features/view/actions/CreateAction.js.map +1 -1
- package/build/features/view/writers/ViewWriter.d.ts +1 -1
- package/build/features/view/writers/ViewWriter.js +4 -3
- package/build/features/view/writers/ViewWriter.js.map +1 -1
- package/build/tests/buildTestCache.js +2 -2
- package/build/tests/buildTestCache.js.map +1 -1
- package/package.json +3 -3
- package/src/__tests__/behavioral/{CreatingAConversationTopic.test.ts → conversations/CreatingAConversationTopic.test.ts} +3 -3
- package/src/__tests__/behavioral/{RegisteringConversationsOnBoot.test.ts → conversations/RegisteringConversationsOnBoot.test.ts} +1 -1
- package/src/__tests__/behavioral/{TestingAConversation.test.ts → conversations/TestingAConversation.test.ts} +2 -3
- package/src/__tests__/behavioral/events/KeepingListenersInSync.test.ts +2 -2
- package/src/__tests__/behavioral/{GettingCliVersion.test.ts → versions/GettingCliVersion.test.ts} +4 -4
- package/src/__tests__/behavioral/versions/ResolvingVersions.test.ts +146 -0
- package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +26 -8
- package/src/features/AbstractAction.ts +7 -56
- package/src/features/VersionResolver.ts +121 -0
- package/src/features/view/actions/CreateAction.ts +4 -3
- package/src/features/view/writers/ViewWriter.ts +4 -3
- package/src/tests/buildTestCache.ts +2 -2
- package/build/__tests__/behavioral/CreatingAConversationTopic.test.js.map +0 -1
- package/build/__tests__/behavioral/GettingCliVersion.test.js.map +0 -1
- package/build/__tests__/behavioral/RegisteringConversationsOnBoot.test.js.map +0 -1
- package/build/__tests__/behavioral/TestingAConversation.test.js.map +0 -1
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { assertOptions } from '@sprucelabs/schema'
|
|
2
|
+
import {
|
|
3
|
+
GraphicsInterface,
|
|
4
|
+
PkgService,
|
|
5
|
+
versionUtil,
|
|
6
|
+
} from '@sprucelabs/spruce-skill-utils'
|
|
7
|
+
|
|
8
|
+
export default class VersionResolver {
|
|
9
|
+
private constructor(
|
|
10
|
+
private ui: GraphicsInterface,
|
|
11
|
+
private pkg: PkgService
|
|
12
|
+
) {}
|
|
13
|
+
|
|
14
|
+
public static Resolver(ui: GraphicsInterface, pkg: PkgService) {
|
|
15
|
+
assertOptions({ ui, pkg }, ['ui', 'pkg'])
|
|
16
|
+
return new this(ui, pkg)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
public async resolveVersion(
|
|
20
|
+
resolvedDestination: string,
|
|
21
|
+
userSuppliedVersion?: string | null
|
|
22
|
+
) {
|
|
23
|
+
if (userSuppliedVersion) {
|
|
24
|
+
versionUtil.assertValidVersion(userSuppliedVersion)
|
|
25
|
+
}
|
|
26
|
+
let resolvedVersion = versionUtil.generateVersion(
|
|
27
|
+
userSuppliedVersion ?? undefined
|
|
28
|
+
).constValue
|
|
29
|
+
|
|
30
|
+
if (!userSuppliedVersion) {
|
|
31
|
+
resolvedVersion =
|
|
32
|
+
await this.askForVersionIfTodaysVersionDoesNotExist(
|
|
33
|
+
resolvedDestination,
|
|
34
|
+
resolvedVersion
|
|
35
|
+
)
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const version = versionUtil.generateVersion(resolvedVersion).dirValue
|
|
39
|
+
|
|
40
|
+
this.persistVersion(version)
|
|
41
|
+
|
|
42
|
+
return version
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
private persistVersion(version: string) {
|
|
46
|
+
this.pkg.set({
|
|
47
|
+
path: 'skill.version',
|
|
48
|
+
value: version,
|
|
49
|
+
})
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
private async askForVersionIfTodaysVersionDoesNotExist(
|
|
53
|
+
resolvedDestination: string,
|
|
54
|
+
fallbackVersion: string
|
|
55
|
+
) {
|
|
56
|
+
const versions = this.loadVersions(resolvedDestination)
|
|
57
|
+
const choices = this.buildChoices(versions)
|
|
58
|
+
|
|
59
|
+
if (versions.length > 0) {
|
|
60
|
+
return await this.ui.prompt({
|
|
61
|
+
type: 'select',
|
|
62
|
+
label: 'Version',
|
|
63
|
+
hint: 'Confirm which version you want to use?',
|
|
64
|
+
isRequired: true,
|
|
65
|
+
options: {
|
|
66
|
+
choices,
|
|
67
|
+
},
|
|
68
|
+
})
|
|
69
|
+
}
|
|
70
|
+
return fallbackVersion
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
private buildChoices(
|
|
74
|
+
versions: { intValue: number; constValue: string; dirValue: string }[]
|
|
75
|
+
) {
|
|
76
|
+
const todaysVersion = versionUtil.generateVersion()
|
|
77
|
+
const alreadyHasToday = !!versions.find(
|
|
78
|
+
(version) => version.dirValue === todaysVersion.dirValue
|
|
79
|
+
)
|
|
80
|
+
const choices = []
|
|
81
|
+
|
|
82
|
+
if (!alreadyHasToday) {
|
|
83
|
+
choices.push({
|
|
84
|
+
label: 'New Version',
|
|
85
|
+
value: todaysVersion.dirValue,
|
|
86
|
+
})
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
choices.push(
|
|
90
|
+
...versions
|
|
91
|
+
.sort((a, b) => {
|
|
92
|
+
return a.intValue > b.intValue ? -1 : 1
|
|
93
|
+
})
|
|
94
|
+
.map((version) => ({
|
|
95
|
+
value: version.dirValue,
|
|
96
|
+
label: version.dirValue,
|
|
97
|
+
}))
|
|
98
|
+
)
|
|
99
|
+
return choices
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
private loadVersions(resolvedDestination: string) {
|
|
103
|
+
const versions = versionUtil.getAllVersions(resolvedDestination)
|
|
104
|
+
const persistedVersion = this.pkg.get('skill.version')
|
|
105
|
+
const todaysVersion = versionUtil.generateVersion().dirValue
|
|
106
|
+
|
|
107
|
+
if (
|
|
108
|
+
persistedVersion &&
|
|
109
|
+
todaysVersion !== persistedVersion &&
|
|
110
|
+
!versions.find((v) => v.dirValue === persistedVersion)
|
|
111
|
+
) {
|
|
112
|
+
versions.push({
|
|
113
|
+
intValue:
|
|
114
|
+
versionUtil.generateVersion(persistedVersion).intValue,
|
|
115
|
+
dirValue: persistedVersion,
|
|
116
|
+
constValue: persistedVersion,
|
|
117
|
+
})
|
|
118
|
+
}
|
|
119
|
+
return versions
|
|
120
|
+
}
|
|
121
|
+
}
|
|
@@ -20,11 +20,12 @@ export default class CreateAction extends AbstractAction<OptionsSchema> {
|
|
|
20
20
|
|
|
21
21
|
const writer = this.Writer('view')
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
const shouldAskAboutRootSvc =
|
|
24
24
|
viewType === 'skillView' &&
|
|
25
25
|
!isRoot &&
|
|
26
|
-
!writer.doesRootControllerExist(this.cwd)
|
|
27
|
-
|
|
26
|
+
!(await writer.doesRootControllerExist(this.cwd))
|
|
27
|
+
|
|
28
|
+
if (shouldAskAboutRootSvc) {
|
|
28
29
|
isRoot = await this.ui.confirm(
|
|
29
30
|
'Do you want to create a root view controller?'
|
|
30
31
|
)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import globby from '@sprucelabs/globby'
|
|
1
2
|
import { diskUtil } from '@sprucelabs/spruce-skill-utils'
|
|
2
3
|
import {
|
|
3
4
|
VcTemplateItem,
|
|
@@ -119,9 +120,9 @@ export default class ViewWriter extends AbstractWriter {
|
|
|
119
120
|
return results
|
|
120
121
|
}
|
|
121
122
|
|
|
122
|
-
public doesRootControllerExist(cwd: string) {
|
|
123
|
-
const
|
|
124
|
-
return
|
|
123
|
+
public async doesRootControllerExist(cwd: string) {
|
|
124
|
+
const matches = await globby('**/Root.svc.ts', { cwd })
|
|
125
|
+
return matches.length > 0
|
|
125
126
|
}
|
|
126
127
|
|
|
127
128
|
public async writeViewControllerPlugin(options: {
|
|
@@ -48,7 +48,7 @@ async function run() {
|
|
|
48
48
|
term.clear()
|
|
49
49
|
|
|
50
50
|
if (process.env.WILL_BUILD_CACHE_SCRIPT) {
|
|
51
|
-
term.renderLine('Running
|
|
51
|
+
term.renderLine('Running will-build cache script')
|
|
52
52
|
if (process.env.CLEAN_CACHE_SCRIPT) {
|
|
53
53
|
try {
|
|
54
54
|
execSync(process.env.CLEAN_CACHE_SCRIPT)
|
|
@@ -236,7 +236,7 @@ function dropInS(remaining: number) {
|
|
|
236
236
|
void run()
|
|
237
237
|
.then(() => {
|
|
238
238
|
if (process.env.DID_BUILD_CACHE_SCRIPT) {
|
|
239
|
-
term.renderLine('Running
|
|
239
|
+
term.renderLine('Running did-build cache script')
|
|
240
240
|
execSync(process.env.DID_BUILD_CACHE_SCRIPT)
|
|
241
241
|
}
|
|
242
242
|
if (progressInterval) {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CreatingAConversationTopic.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/CreatingAConversationTopic.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,kDAA+C;AAC/C,uDAAqD;AACrD,kFAAyD;AACzD,sFAAyD;AAGzD,MAAqB,8BAA+B,SAAQ,yBAAe;IAEhD,AAAb,MAAM,CAAC,KAAK,CAAC,2BAA2B;QAC9C,mBAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAA;IACpE,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,uCAAuC;QAC1D,MAAM,GAAG,GACL,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAA;QAErE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC;YAChE,YAAY,EAAE,qBAAqB;YACnC,SAAS,EAAE,mBAAmB;SACjC,CAAC,CAAA;QAEF,MAAM,KAAK,GAAG,sBAAQ,CAAC,gCAAgC,CACnD,4BAA4B,EAC5B,OAAO,CAAC,KAAK,CAChB,CAAA;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAElE,mBAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QACzB,mBAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAA;QACrD,mBAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QACnC,mBAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAE/B,MAAM,IAAI,CAAC,gCAAgC,CAAC,GAAG,CAAC,CAAA;IACpD,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,GAAiB;QACnE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAA;QACtC,YAAY;QACZ,mBAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QACpC,YAAY;QACZ,mBAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QAC1C,YAAY;QACZ,mBAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAC9C,YAAY;QACZ,mBAAM,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IACvE,CAAC;CACJ;AA1CD,iDA0CC;AAxC0B;IADtB,IAAA,iBAAI,GAAE;uEAGN;AAGsB;IADtB,IAAA,iBAAI,GAAE;mFAuBN"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GettingCliVersion.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/GettingCliVersion.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,uDAAqD;AACrD,kFAAyD;AAEzD,MAAqB,qBAAsB,SAAQ,yBAAe;IACpD,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QACxB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAC5D,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,sBAAsB;QACzC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CACjD,0BAA0B,CAC7B,CAAA;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAA;QAEvD,mBAAM,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9C,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,4BAA4B;QAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CACjD,iCAAiC,CACpC,CAAA;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAA;QAEvD,mBAAM,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9C,CAAC;CACJ;AAzBD,wCAyBC;AAlB0B;IADtB,IAAA,iBAAI,GAAE;yDAQN;AAGsB;IADtB,IAAA,iBAAI,GAAE;+DAQN"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RegisteringConversationsOnBoot.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/RegisteringConversationsOnBoot.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,uDAAqD;AACrD,sFAA6D;AAE7D,MAAqB,kCAAmC,SAAQ,2BAAiB;IAEtD,AAAb,MAAM,CAAC,KAAK,CAAC,8BAA8B;QACjD,MAAM,EAAE,YAAY,EAAE,GAClB,MAAM,IAAI,CAAC,iDAAiD,CACxD,cAAc,CACjB,CAAA;QAEL,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC;YAChD,YAAY,EAAE,qBAAqB;YACnC,SAAS,EAAE,mBAAmB;SACjC,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAExE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC;YACnC,OAAO,EAAE,YAAY,CAAC,EAAE;YACxB,MAAM,EAAE,YAAY,CAAC,MAAM;SAC9B,CAAC,CAAA;QAEF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;YAClD,gBAAgB,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM;SACvC,CAAC,CAAC,qBAAqB,EAAE,CAAA;QAE1B,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAA;QAElC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAA;QAEjB,mBAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAC1B,mBAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAA;IACtD,CAAC;CACJ;AA/BD,qDA+BC;AA7B0B;IADtB,IAAA,iBAAI,GAAE;8EA6BN"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TestingAConversation.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/TestingAConversation.test.ts"],"names":[],"mappings":"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"}
|