crankscript 0.2.0 → 0.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/package.json +3 -2
- package/src/commands/GenerateTypes/GenerateTypesCommand.js +3 -1
- package/src/commands/GenerateTypes/GenerateTypesCommand.js.map +1 -1
- package/src/commands/GenerateTypes/components/GenerateTypes.d.ts +2 -1
- package/src/commands/GenerateTypes/components/GenerateTypes.js +17 -2
- package/src/commands/GenerateTypes/components/GenerateTypes.js.map +1 -1
- package/src/components/CheckList/CheckList.d.ts +7 -0
- package/src/components/CheckList/CheckList.js +34 -0
- package/src/components/CheckList/CheckList.js.map +1 -0
- package/src/components/CheckList/Item.d.ts +7 -0
- package/src/components/CheckList/Item.js +79 -0
- package/src/components/CheckList/Item.js.map +1 -0
- package/src/components/CheckList/index.d.ts +1 -0
- package/src/components/CheckList/index.js +3 -0
- package/src/components/CheckList/index.js.map +1 -0
- package/src/environment/configuration/ConfigurationSchema.d.ts +1 -1
- package/src/environment/configuration/ConfigurationSchema.js +4 -1
- package/src/environment/configuration/ConfigurationSchema.js.map +1 -1
- package/src/hooks/useQuitOnCtrlC.d.ts +1 -0
- package/src/hooks/useQuitOnCtrlC.js +10 -0
- package/src/hooks/useQuitOnCtrlC.js.map +1 -0
- package/src/types.d.ts +10 -1
- package/src/types.js +1 -0
- package/src/types.js.map +1 -1
package/package.json
CHANGED
@@ -12,10 +12,12 @@ export class GenerateTypesCommand extends EnvironmentAwareCommand {
|
|
12
12
|
}
|
13
13
|
constructor(...args){
|
14
14
|
super(...args);
|
15
|
-
this.version = Option.String('-
|
15
|
+
this.version = Option.String('-s,--sdk-version', PlaydateSdkVersionIdentifier.FromConfig, {
|
16
|
+
tolerateBoolean: false,
|
16
17
|
description: 'The version',
|
17
18
|
validator: t.isOneOf([
|
18
19
|
t.isLiteral(PlaydateSdkVersionIdentifier.FromConfig),
|
20
|
+
t.isLiteral(PlaydateSdkVersionIdentifier.Latest),
|
19
21
|
t.matchesRegExp(/^[0-9]+\.[0-9]+\.[0-9]+$/)
|
20
22
|
])
|
21
23
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../../../libs/cli/src/commands/GenerateTypes/GenerateTypesCommand.tsx"],"sourcesContent":["import { Command, Option } from 'clipanion';\nimport React from 'react';\nimport * as t from 'typanion';\nimport { AnyStrictValidator } from 'typanion';\nimport { EnvironmentAwareCommand } from '@/cli/commands/EnvironmentAwareCommand/index.js';\nimport { Environment } from '@/cli/environment/dto/Environment.js';\nimport { PlaydateSdkVersionIdentifier } from '@/cli/types.js';\nimport { GenerateTypes } from './components/GenerateTypes.js';\n\nexport class GenerateTypesCommand extends EnvironmentAwareCommand {\n static override paths = [['generate-types']];\n static override usage = Command.Usage({\n description: 'Generate types from the Playdate SDK documentation',\n });\n\n version = Option.String(\n '-
|
1
|
+
{"version":3,"sources":["../../../../../../libs/cli/src/commands/GenerateTypes/GenerateTypesCommand.tsx"],"sourcesContent":["import { Command, Option } from 'clipanion';\nimport React from 'react';\nimport * as t from 'typanion';\nimport { AnyStrictValidator } from 'typanion';\nimport { EnvironmentAwareCommand } from '@/cli/commands/EnvironmentAwareCommand/index.js';\nimport { Environment } from '@/cli/environment/dto/Environment.js';\nimport { PlaydateSdkVersionIdentifier } from '@/cli/types.js';\nimport { GenerateTypes } from './components/GenerateTypes.js';\n\nexport class GenerateTypesCommand extends EnvironmentAwareCommand {\n static override paths = [['generate-types']];\n static override usage = Command.Usage({\n description: 'Generate types from the Playdate SDK documentation',\n });\n\n version = Option.String(\n '-s,--sdk-version',\n PlaydateSdkVersionIdentifier.FromConfig,\n {\n tolerateBoolean: false,\n description: 'The version',\n validator: t.isOneOf([\n t.isLiteral(PlaydateSdkVersionIdentifier.FromConfig),\n t.isLiteral(PlaydateSdkVersionIdentifier.Latest),\n t.matchesRegExp(\n /^[0-9]+\\.[0-9]+\\.[0-9]+$/\n ) as AnyStrictValidator,\n ]),\n }\n );\n\n override renderWithEnvironment(environment: Environment) {\n return (\n <GenerateTypes\n version={\n this.version === PlaydateSdkVersionIdentifier.FromConfig\n ? environment.configuration.version\n : this.version\n }\n />\n );\n }\n}\n"],"names":["Command","Option","React","t","EnvironmentAwareCommand","PlaydateSdkVersionIdentifier","GenerateTypes","GenerateTypesCommand","renderWithEnvironment","environment","version","FromConfig","configuration","String","tolerateBoolean","description","validator","isOneOf","isLiteral","Latest","matchesRegExp","paths","usage","Usage"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,OAAO,EAAEC,MAAM,QAAQ,YAAY;AAC5C,OAAOC,WAAW,QAAQ;AAC1B,YAAYC,OAAO,WAAW;AAE9B,SAASC,uBAAuB,QAAQ,kDAAkD;AAE1F,SAASC,4BAA4B,QAAQ,iBAAiB;AAC9D,SAASC,aAAa,QAAQ,gCAAgC;AAE9D,OAAO,MAAMC,6BAA6BH;IAsB7BI,sBAAsBC,WAAwB,EAAE;QACrD,qBACI,oBAACH;YACGI,SACI,IAAI,CAACA,OAAO,KAAKL,6BAA6BM,UAAU,GAClDF,YAAYG,aAAa,CAACF,OAAO,GACjC,IAAI,CAACA,OAAO;;IAIlC;;;aA1BAA,UAAUT,OAAOY,MAAM,CACnB,oBACAR,6BAA6BM,UAAU,EACvC;YACIG,iBAAiB;YACjBC,aAAa;YACbC,WAAWb,EAAEc,OAAO,CAAC;gBACjBd,EAAEe,SAAS,CAACb,6BAA6BM,UAAU;gBACnDR,EAAEe,SAAS,CAACb,6BAA6Bc,MAAM;gBAC/ChB,EAAEiB,aAAa,CACX;aAEP;QACL;;AAcR;AAjCab,qBACOc,QAAQ;IAAC;QAAC;KAAiB;CAAC;AADnCd,qBAEOe,QAAQtB,QAAQuB,KAAK,CAAC;IAClCR,aAAa;AACjB"}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import React from 'react';
|
2
|
+
import { ConfigurationType } from '@/cli/environment/configuration/ConfigurationSchema.js';
|
2
3
|
interface Props {
|
3
|
-
version:
|
4
|
+
version: ConfigurationType['version'];
|
4
5
|
}
|
5
6
|
export declare const GenerateTypes: ({ version }: Props) => React.JSX.Element;
|
6
7
|
export {};
|
@@ -1,7 +1,22 @@
|
|
1
|
-
import { Text } from 'ink';
|
2
1
|
import React from 'react';
|
2
|
+
import { CheckList } from '@/cli/components/CheckList/index.js';
|
3
|
+
import { useQuitOnCtrlC } from '@/cli/hooks/useQuitOnCtrlC.js';
|
3
4
|
export const GenerateTypes = ({ version })=>{
|
4
|
-
|
5
|
+
useQuitOnCtrlC();
|
6
|
+
return /*#__PURE__*/ React.createElement(CheckList, {
|
7
|
+
items: [
|
8
|
+
{
|
9
|
+
// Example
|
10
|
+
waitingDescription: ()=>`Generating types for version ${version}`,
|
11
|
+
runningDescription: ()=>'Generating types...',
|
12
|
+
errorDescription: ()=>'Failed to generate types',
|
13
|
+
finishedDescription: ()=>'Types generated',
|
14
|
+
runner: async ()=>{
|
15
|
+
await new Promise((resolve)=>setTimeout(resolve, 1000));
|
16
|
+
}
|
17
|
+
}
|
18
|
+
]
|
19
|
+
});
|
5
20
|
};
|
6
21
|
|
7
22
|
//# sourceMappingURL=GenerateTypes.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../../../../libs/cli/src/commands/GenerateTypes/components/GenerateTypes.tsx"],"sourcesContent":["import {
|
1
|
+
{"version":3,"sources":["../../../../../../../libs/cli/src/commands/GenerateTypes/components/GenerateTypes.tsx"],"sourcesContent":["import React from 'react';\nimport { CheckList } from '@/cli/components/CheckList/index.js';\nimport { ConfigurationType } from '@/cli/environment/configuration/ConfigurationSchema.js';\nimport { useQuitOnCtrlC } from '@/cli/hooks/useQuitOnCtrlC.js';\n\ninterface Props {\n version: ConfigurationType['version'];\n}\n\nexport const GenerateTypes = ({ version }: Props) => {\n useQuitOnCtrlC();\n\n return (\n <CheckList\n items={[\n {\n // Example\n waitingDescription: () =>\n `Generating types for version ${version}`,\n runningDescription: () => 'Generating types...',\n errorDescription: () => 'Failed to generate types',\n finishedDescription: () => 'Types generated',\n runner: async () => {\n await new Promise((resolve) =>\n setTimeout(resolve, 1000)\n );\n },\n },\n ]}\n />\n );\n};\n"],"names":["React","CheckList","useQuitOnCtrlC","GenerateTypes","version","items","waitingDescription","runningDescription","errorDescription","finishedDescription","runner","Promise","resolve","setTimeout"],"rangeMappings":";;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,SAAS,QAAQ,sCAAsC;AAEhE,SAASC,cAAc,QAAQ,gCAAgC;AAM/D,OAAO,MAAMC,gBAAgB,CAAC,EAAEC,OAAO,EAAS;IAC5CF;IAEA,qBACI,oBAACD;QACGI,OAAO;YACH;gBACI,UAAU;gBACVC,oBAAoB,IAChB,CAAC,6BAA6B,EAAEF,QAAQ,CAAC;gBAC7CG,oBAAoB,IAAM;gBAC1BC,kBAAkB,IAAM;gBACxBC,qBAAqB,IAAM;gBAC3BC,QAAQ;oBACJ,MAAM,IAAIC,QAAQ,CAACC,UACfC,WAAWD,SAAS;gBAE5B;YACJ;SACH;;AAGb,EAAE"}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import { _ as _extends } from "@swc/helpers/_/_extends";
|
2
|
+
import React, { useEffect, useState } from 'react';
|
3
|
+
import { Item } from './Item.js';
|
4
|
+
export const CheckList = ({ items })=>{
|
5
|
+
const [currentIndex, setCurrentIndex] = useState(null);
|
6
|
+
useEffect(()=>{
|
7
|
+
if (currentIndex === null && items.length > 0) {
|
8
|
+
setCurrentIndex(0);
|
9
|
+
}
|
10
|
+
}, [
|
11
|
+
currentIndex,
|
12
|
+
items
|
13
|
+
]);
|
14
|
+
const handleFinish = (index)=>{
|
15
|
+
if (index + 1 < items.length) {
|
16
|
+
setCurrentIndex(index + 1);
|
17
|
+
} else {
|
18
|
+
setCurrentIndex(null);
|
19
|
+
}
|
20
|
+
};
|
21
|
+
return /*#__PURE__*/ React.createElement(React.Fragment, null, items.map((item, index)=>/*#__PURE__*/ React.createElement(Item, {
|
22
|
+
key: index,
|
23
|
+
item: _extends({}, item, {
|
24
|
+
onFinish: ()=>{
|
25
|
+
var _item_onFinish;
|
26
|
+
item == null ? void 0 : (_item_onFinish = item.onFinish) == null ? void 0 : _item_onFinish.call(item);
|
27
|
+
handleFinish(index);
|
28
|
+
}
|
29
|
+
}),
|
30
|
+
start: index === currentIndex
|
31
|
+
})));
|
32
|
+
};
|
33
|
+
|
34
|
+
//# sourceMappingURL=CheckList.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../../../../../libs/cli/src/components/CheckList/CheckList.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { CheckListItem } from '@/cli/types.js';\nimport { Item } from './Item.js';\n\ninterface Props {\n items: CheckListItem[];\n}\n\nexport const CheckList = ({ items }: Props) => {\n const [currentIndex, setCurrentIndex] = useState<number | null>(null);\n\n useEffect(() => {\n if (currentIndex === null && items.length > 0) {\n setCurrentIndex(0);\n }\n }, [currentIndex, items]);\n\n const handleFinish = (index: number) => {\n if (index + 1 < items.length) {\n setCurrentIndex(index + 1);\n } else {\n setCurrentIndex(null);\n }\n };\n\n return (\n <>\n {items.map((item, index) => (\n <Item\n key={index}\n item={{\n ...item,\n onFinish: () => {\n item?.onFinish?.();\n handleFinish(index);\n },\n }}\n start={index === currentIndex}\n />\n ))}\n </>\n );\n};\n"],"names":["React","useEffect","useState","Item","CheckList","items","currentIndex","setCurrentIndex","length","handleFinish","index","map","item","key","onFinish","start"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,OAAOA,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAEnD,SAASC,IAAI,QAAQ,YAAY;AAMjC,OAAO,MAAMC,YAAY,CAAC,EAAEC,KAAK,EAAS;IACtC,MAAM,CAACC,cAAcC,gBAAgB,GAAGL,SAAwB;IAEhED,UAAU;QACN,IAAIK,iBAAiB,QAAQD,MAAMG,MAAM,GAAG,GAAG;YAC3CD,gBAAgB;QACpB;IACJ,GAAG;QAACD;QAAcD;KAAM;IAExB,MAAMI,eAAe,CAACC;QAClB,IAAIA,QAAQ,IAAIL,MAAMG,MAAM,EAAE;YAC1BD,gBAAgBG,QAAQ;QAC5B,OAAO;YACHH,gBAAgB;QACpB;IACJ;IAEA,qBACI,0CACKF,MAAMM,GAAG,CAAC,CAACC,MAAMF,sBACd,oBAACP;YACGU,KAAKH;YACLE,MAAM,aACCA;gBACHE,UAAU;wBACNF;oBAAAA,yBAAAA,iBAAAA,KAAME,QAAQ,qBAAdF,oBAAAA;oBACAH,aAAaC;gBACjB;;YAEJK,OAAOL,UAAUJ;;AAKrC,EAAE"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { CheckListItem } from '@/cli/types.js';
|
3
|
+
export interface ItemProps {
|
4
|
+
item: CheckListItem;
|
5
|
+
start: boolean;
|
6
|
+
}
|
7
|
+
export declare const Item: ({ item: { runningDescription, waitingDescription, errorDescription, finishedDescription, runner, onFinish, }, start, }: ItemProps) => React.JSX.Element;
|
@@ -0,0 +1,79 @@
|
|
1
|
+
import { StatusMessage, Spinner, extendTheme, defaultTheme, ThemeProvider } from '@inkjs/ui';
|
2
|
+
import { Text } from 'ink';
|
3
|
+
import React, { useEffect, useState } from 'react';
|
4
|
+
// todo: possibly extract this
|
5
|
+
const SpinnerTheme = extendTheme(defaultTheme, {
|
6
|
+
components: {
|
7
|
+
Spinner: {
|
8
|
+
styles: {
|
9
|
+
frame: ()=>({
|
10
|
+
color: 'yellowBright'
|
11
|
+
}),
|
12
|
+
label: ()=>({
|
13
|
+
color: 'yellowBright'
|
14
|
+
})
|
15
|
+
}
|
16
|
+
}
|
17
|
+
}
|
18
|
+
});
|
19
|
+
export const Item = ({ item: { runningDescription, waitingDescription, errorDescription, finishedDescription, runner, onFinish }, start })=>{
|
20
|
+
const [resultPresent, setResultPresent] = useState(false);
|
21
|
+
const [failedReason, setfailedReason] = useState(null);
|
22
|
+
const hasResult = !failedReason && resultPresent;
|
23
|
+
const isRunning = !failedReason && !hasResult && start;
|
24
|
+
const isWaiting = !failedReason && !hasResult && !start;
|
25
|
+
useEffect(()=>{
|
26
|
+
if (failedReason) {
|
27
|
+
process.exit();
|
28
|
+
}
|
29
|
+
}, [
|
30
|
+
failedReason
|
31
|
+
]);
|
32
|
+
useEffect(()=>{
|
33
|
+
if (!start) {
|
34
|
+
return;
|
35
|
+
}
|
36
|
+
runner().then((result)=>{
|
37
|
+
if (result === false) {
|
38
|
+
setfailedReason(errorDescription);
|
39
|
+
return;
|
40
|
+
}
|
41
|
+
setResultPresent(true);
|
42
|
+
onFinish == null ? void 0 : onFinish();
|
43
|
+
}).catch((reason)=>{
|
44
|
+
setfailedReason(reason.message);
|
45
|
+
});
|
46
|
+
}, [
|
47
|
+
errorDescription,
|
48
|
+
onFinish,
|
49
|
+
runner,
|
50
|
+
start
|
51
|
+
]);
|
52
|
+
let message = waitingDescription();
|
53
|
+
let variant = 'info';
|
54
|
+
if (failedReason) {
|
55
|
+
message = failedReason;
|
56
|
+
variant = 'error';
|
57
|
+
} else if (isRunning) {
|
58
|
+
message = runningDescription();
|
59
|
+
variant = 'warning';
|
60
|
+
} else if (hasResult) {
|
61
|
+
message = finishedDescription();
|
62
|
+
variant = 'success';
|
63
|
+
}
|
64
|
+
if (isRunning) {
|
65
|
+
return /*#__PURE__*/ React.createElement(ThemeProvider, {
|
66
|
+
theme: SpinnerTheme
|
67
|
+
}, /*#__PURE__*/ React.createElement(Spinner, {
|
68
|
+
label: ` ${message}`
|
69
|
+
}));
|
70
|
+
}
|
71
|
+
return /*#__PURE__*/ React.createElement(StatusMessage, {
|
72
|
+
variant: variant
|
73
|
+
}, /*#__PURE__*/ React.createElement(Text, {
|
74
|
+
bold: !isWaiting,
|
75
|
+
color: isRunning ? 'yellow' : isWaiting ? 'gray' : failedReason ? 'red' : 'green'
|
76
|
+
}, message));
|
77
|
+
};
|
78
|
+
|
79
|
+
//# sourceMappingURL=Item.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../../../../../libs/cli/src/components/CheckList/Item.tsx"],"sourcesContent":["import {\n StatusMessage,\n StatusMessageProps,\n Spinner,\n extendTheme,\n defaultTheme,\n ThemeProvider,\n} from '@inkjs/ui';\nimport { Text, TextProps } from 'ink';\nimport React, { useEffect, useState } from 'react';\nimport { CheckListItem } from '@/cli/types.js';\n\nexport interface ItemProps {\n item: CheckListItem;\n start: boolean;\n}\n\n// todo: possibly extract this\nconst SpinnerTheme = extendTheme(defaultTheme, {\n components: {\n Spinner: {\n styles: {\n frame: (): TextProps => ({\n color: 'yellowBright',\n }),\n label: (): TextProps => ({\n color: 'yellowBright',\n }),\n },\n },\n },\n});\n\nexport const Item = ({\n item: {\n runningDescription,\n waitingDescription,\n errorDescription,\n finishedDescription,\n runner,\n onFinish,\n },\n start,\n}: ItemProps) => {\n const [resultPresent, setResultPresent] = useState(false);\n const [failedReason, setfailedReason] = useState<string | null>(null);\n const hasResult = !failedReason && resultPresent;\n const isRunning = !failedReason && !hasResult && start;\n const isWaiting = !failedReason && !hasResult && !start;\n\n useEffect(() => {\n if (failedReason) {\n process.exit();\n }\n }, [failedReason]);\n\n useEffect(() => {\n if (!start) {\n return;\n }\n\n runner()\n .then((result) => {\n if (result === false) {\n setfailedReason(errorDescription);\n\n return;\n }\n\n setResultPresent(true);\n onFinish?.();\n })\n .catch((reason) => {\n setfailedReason(reason.message);\n });\n }, [errorDescription, onFinish, runner, start]);\n\n let message = waitingDescription();\n let variant: StatusMessageProps['variant'] = 'info';\n\n if (failedReason) {\n message = failedReason;\n variant = 'error';\n } else if (isRunning) {\n message = runningDescription();\n variant = 'warning';\n } else if (hasResult) {\n message = finishedDescription();\n variant = 'success';\n }\n\n if (isRunning) {\n return (\n <ThemeProvider theme={SpinnerTheme}>\n <Spinner label={` ${message}`} />\n </ThemeProvider>\n );\n }\n\n return (\n <StatusMessage variant={variant}>\n <Text\n bold={!isWaiting}\n color={\n isRunning\n ? 'yellow'\n : isWaiting\n ? 'gray'\n : failedReason\n ? 'red'\n : 'green'\n }\n >\n {message}\n </Text>\n </StatusMessage>\n );\n};\n"],"names":["StatusMessage","Spinner","extendTheme","defaultTheme","ThemeProvider","Text","React","useEffect","useState","SpinnerTheme","components","styles","frame","color","label","Item","item","runningDescription","waitingDescription","errorDescription","finishedDescription","runner","onFinish","start","resultPresent","setResultPresent","failedReason","setfailedReason","hasResult","isRunning","isWaiting","process","exit","then","result","catch","reason","message","variant","theme","bold"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SACIA,aAAa,EAEbC,OAAO,EACPC,WAAW,EACXC,YAAY,EACZC,aAAa,QACV,YAAY;AACnB,SAASC,IAAI,QAAmB,MAAM;AACtC,OAAOC,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAQnD,8BAA8B;AAC9B,MAAMC,eAAeP,YAAYC,cAAc;IAC3CO,YAAY;QACRT,SAAS;YACLU,QAAQ;gBACJC,OAAO,IAAkB,CAAA;wBACrBC,OAAO;oBACX,CAAA;gBACAC,OAAO,IAAkB,CAAA;wBACrBD,OAAO;oBACX,CAAA;YACJ;QACJ;IACJ;AACJ;AAEA,OAAO,MAAME,OAAO,CAAC,EACjBC,MAAM,EACFC,kBAAkB,EAClBC,kBAAkB,EAClBC,gBAAgB,EAChBC,mBAAmB,EACnBC,MAAM,EACNC,QAAQ,EACX,EACDC,KAAK,EACG;IACR,MAAM,CAACC,eAAeC,iBAAiB,GAAGjB,SAAS;IACnD,MAAM,CAACkB,cAAcC,gBAAgB,GAAGnB,SAAwB;IAChE,MAAMoB,YAAY,CAACF,gBAAgBF;IACnC,MAAMK,YAAY,CAACH,gBAAgB,CAACE,aAAaL;IACjD,MAAMO,YAAY,CAACJ,gBAAgB,CAACE,aAAa,CAACL;IAElDhB,UAAU;QACN,IAAImB,cAAc;YACdK,QAAQC,IAAI;QAChB;IACJ,GAAG;QAACN;KAAa;IAEjBnB,UAAU;QACN,IAAI,CAACgB,OAAO;YACR;QACJ;QAEAF,SACKY,IAAI,CAAC,CAACC;YACH,IAAIA,WAAW,OAAO;gBAClBP,gBAAgBR;gBAEhB;YACJ;YAEAM,iBAAiB;YACjBH,4BAAAA;QACJ,GACCa,KAAK,CAAC,CAACC;YACJT,gBAAgBS,OAAOC,OAAO;QAClC;IACR,GAAG;QAAClB;QAAkBG;QAAUD;QAAQE;KAAM;IAE9C,IAAIc,UAAUnB;IACd,IAAIoB,UAAyC;IAE7C,IAAIZ,cAAc;QACdW,UAAUX;QACVY,UAAU;IACd,OAAO,IAAIT,WAAW;QAClBQ,UAAUpB;QACVqB,UAAU;IACd,OAAO,IAAIV,WAAW;QAClBS,UAAUjB;QACVkB,UAAU;IACd;IAEA,IAAIT,WAAW;QACX,qBACI,oBAACzB;YAAcmC,OAAO9B;yBAClB,oBAACR;YAAQa,OAAO,CAAC,CAAC,EAAEuB,QAAQ,CAAC;;IAGzC;IAEA,qBACI,oBAACrC;QAAcsC,SAASA;qBACpB,oBAACjC;QACGmC,MAAM,CAACV;QACPjB,OACIgB,YACM,WACAC,YACA,SACAJ,eACA,QACA;OAGTW;AAIjB,EAAE"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './CheckList.js';
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../../../../../libs/cli/src/components/CheckList/index.ts"],"sourcesContent":["export * from './CheckList.js';\n"],"names":[],"rangeMappings":"","mappings":"AAAA,cAAc,iBAAiB"}
|
@@ -1,6 +1,9 @@
|
|
1
1
|
import { z } from 'zod';
|
2
2
|
export const ConfigurationSchema = z.object({
|
3
|
-
version: z.
|
3
|
+
version: z.union([
|
4
|
+
z.string().regex(/^\d+\.\d+\.\d+$/),
|
5
|
+
z.literal('latest')
|
6
|
+
])
|
4
7
|
});
|
5
8
|
|
6
9
|
//# sourceMappingURL=ConfigurationSchema.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../../../libs/cli/src/environment/configuration/ConfigurationSchema.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const ConfigurationSchema = z.object({\n version: z.string().regex(/^\\d+\\.\\d+\\.\\d+$/),\n});\n\nexport type ConfigurationType = z.infer<typeof ConfigurationSchema>;\n"],"names":["z","ConfigurationSchema","object","version","string","regex"],"rangeMappings":"
|
1
|
+
{"version":3,"sources":["../../../../../../libs/cli/src/environment/configuration/ConfigurationSchema.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const ConfigurationSchema = z.object({\n version: z.union([\n z.string().regex(/^\\d+\\.\\d+\\.\\d+$/),\n z.literal('latest'),\n ]),\n});\n\nexport type ConfigurationType = z.infer<typeof ConfigurationSchema>;\n"],"names":["z","ConfigurationSchema","object","version","union","string","regex","literal"],"rangeMappings":";;;;;;","mappings":"AAAA,SAASA,CAAC,QAAQ,MAAM;AAExB,OAAO,MAAMC,sBAAsBD,EAAEE,MAAM,CAAC;IACxCC,SAASH,EAAEI,KAAK,CAAC;QACbJ,EAAEK,MAAM,GAAGC,KAAK,CAAC;QACjBN,EAAEO,OAAO,CAAC;KACb;AACL,GAAG"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare const useQuitOnCtrlC: () => void;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../../../../libs/cli/src/hooks/useQuitOnCtrlC.ts"],"sourcesContent":["import { useInput } from 'ink';\n\nexport const useQuitOnCtrlC = () => {\n useInput((input, key) => {\n if (key.ctrl && input === 'c') {\n process.exit();\n }\n });\n};\n"],"names":["useInput","useQuitOnCtrlC","input","key","ctrl","process","exit"],"rangeMappings":";;;;;;;","mappings":"AAAA,SAASA,QAAQ,QAAQ,MAAM;AAE/B,OAAO,MAAMC,iBAAiB;IAC1BD,SAAS,CAACE,OAAOC;QACb,IAAIA,IAAIC,IAAI,IAAIF,UAAU,KAAK;YAC3BG,QAAQC,IAAI;QAChB;IACJ;AACJ,EAAE"}
|
package/src/types.d.ts
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import { Environment } from '@/cli/environment/dto/Environment.js';
|
2
2
|
export declare enum PlaydateSdkVersionIdentifier {
|
3
|
-
FromConfig = "FromConfig"
|
3
|
+
FromConfig = "FromConfig",
|
4
|
+
Latest = "latest"
|
4
5
|
}
|
5
6
|
export type EnvironmentHealthResult = {
|
6
7
|
isHealthy: true;
|
@@ -24,3 +25,11 @@ export declare enum ConfigurationFileValidationErrorType {
|
|
24
25
|
InvalidJson = "InvalidJson",
|
25
26
|
InvalidSchema = "InvalidSchema"
|
26
27
|
}
|
28
|
+
export type CheckListItem = {
|
29
|
+
runningDescription: () => string;
|
30
|
+
waitingDescription: () => string;
|
31
|
+
errorDescription: () => string;
|
32
|
+
finishedDescription: () => string;
|
33
|
+
runner: () => Promise<void> | Promise<false>;
|
34
|
+
onFinish?: () => void;
|
35
|
+
};
|
package/src/types.js
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
export var PlaydateSdkVersionIdentifier;
|
2
2
|
(function(PlaydateSdkVersionIdentifier) {
|
3
3
|
PlaydateSdkVersionIdentifier["FromConfig"] = "FromConfig";
|
4
|
+
PlaydateSdkVersionIdentifier["Latest"] = "latest";
|
4
5
|
})(PlaydateSdkVersionIdentifier || (PlaydateSdkVersionIdentifier = {}));
|
5
6
|
export var HealthCheckStatus;
|
6
7
|
(function(HealthCheckStatus) {
|
package/src/types.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../libs/cli/src/types.ts"],"sourcesContent":["import { Environment } from '@/cli/environment/dto/Environment.js';\n\nexport enum PlaydateSdkVersionIdentifier {\n FromConfig = 'FromConfig',\n}\n\nexport type EnvironmentHealthResult =\n | {\n isHealthy: true;\n environment: Environment;\n health: EnvironmentHealth;\n }\n | {\n isHealthy: false;\n health: EnvironmentHealth;\n };\n\nexport enum HealthCheckStatus {\n Healthy = 'Healthy',\n Unhealthy = 'Unhealthy',\n Unknown = 'Unknown',\n}\n\nexport interface EnvironmentHealth {\n configurationFilePresent: HealthCheckStatus;\n configurationFileValid: HealthCheckStatus;\n sdkPathKnown: HealthCheckStatus;\n}\n\nexport enum ConfigurationFileValidationErrorType {\n InvalidJson = 'InvalidJson',\n InvalidSchema = 'InvalidSchema',\n}\n"],"names":["PlaydateSdkVersionIdentifier","HealthCheckStatus","ConfigurationFileValidationErrorType"],"rangeMappings":"
|
1
|
+
{"version":3,"sources":["../../../../libs/cli/src/types.ts"],"sourcesContent":["import { Environment } from '@/cli/environment/dto/Environment.js';\n\nexport enum PlaydateSdkVersionIdentifier {\n FromConfig = 'FromConfig',\n Latest = 'latest',\n}\n\nexport type EnvironmentHealthResult =\n | {\n isHealthy: true;\n environment: Environment;\n health: EnvironmentHealth;\n }\n | {\n isHealthy: false;\n health: EnvironmentHealth;\n };\n\nexport enum HealthCheckStatus {\n Healthy = 'Healthy',\n Unhealthy = 'Unhealthy',\n Unknown = 'Unknown',\n}\n\nexport interface EnvironmentHealth {\n configurationFilePresent: HealthCheckStatus;\n configurationFileValid: HealthCheckStatus;\n sdkPathKnown: HealthCheckStatus;\n}\n\nexport enum ConfigurationFileValidationErrorType {\n InvalidJson = 'InvalidJson',\n InvalidSchema = 'InvalidSchema',\n}\n\nexport type CheckListItem = {\n runningDescription: () => string;\n waitingDescription: () => string;\n errorDescription: () => string;\n finishedDescription: () => string;\n runner: () => Promise<void> | Promise<false>;\n onFinish?: () => void;\n};\n"],"names":["PlaydateSdkVersionIdentifier","HealthCheckStatus","ConfigurationFileValidationErrorType"],"rangeMappings":";;;;;;;;;;;;;;;","mappings":";UAEYA;;;GAAAA,iCAAAA;;UAgBAC;;;;GAAAA,sBAAAA;;UAYAC;;;GAAAA,yCAAAA"}
|