UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

1,017 lines 106 kB
export { SpruceSchemas } from '@sprucelabs/spruce-core-schemas/build/.spruce/schemas/core.schemas.types'; import { default as SchemaEntity } from '@sprucelabs/schema'; import * as SpruceSchema from '@sprucelabs/schema'; import { BaseWidget } from './../../widgets/types/widgets.types'; import AbstractSpruceError from '@sprucelabs/error'; declare module '@sprucelabs/spruce-core-schemas/build/.spruce/schemas/core.schemas.types' { namespace SpruceSchemas.SpruceCli.v2020_07_22 { interface GeneratedDir { 'name': string; 'path': string; 'description'?: string | undefined | null; 'action': ("skipped" | "generated" | "updated" | "deleted"); } interface GeneratedDirSchema extends SpruceSchema.Schema { id: 'generatedDir'; version: 'v2020_07_22'; namespace: 'SpruceCli'; name: ''; fields: { /** . */ 'name': { type: 'text'; isRequired: true; options: undefined; }; /** . */ 'path': { type: 'text'; isRequired: true; options: undefined; }; /** . */ 'description': { type: 'text'; options: undefined; }; /** . */ 'action': { type: 'select'; isRequired: true; options: { choices: [{ "label": "Skipped"; "value": "skipped"; }, { "label": "Generated"; "value": "generated"; }, { "label": "Updated"; "value": "updated"; }, { "label": "Deleted"; "value": "deleted"; }]; }; }; }; } interface GeneratedDirEntity extends SchemaEntity<SpruceSchemas.SpruceCli.v2020_07_22.GeneratedDirSchema> { } } namespace SpruceSchemas.SpruceCli.v2020_07_22 { interface WatcherDidDetectChangesEmitPayload { 'changes': ({ id: 'generatedFile'; values: SpruceSchemas.SpruceCli.v2020_07_22.GeneratedFile; } | { id: 'generatedDir'; values: SpruceSchemas.SpruceCli.v2020_07_22.GeneratedDir; })[]; } interface WatcherDidDetectChangesEmitPayloadSchema extends SpruceSchema.Schema { id: 'watcherDidDetectChangesEmitPayload'; version: 'v2020_07_22'; namespace: 'SpruceCli'; name: 'Watcher did detect changes emit payload'; fields: { /** . */ 'changes': { type: 'schema'; isRequired: true; isArray: true; options: { schemas: (SpruceSchemas.SpruceCli.v2020_07_22.GeneratedFileSchema | SpruceSchemas.SpruceCli.v2020_07_22.GeneratedDirSchema)[]; }; }; }; } interface WatcherDidDetectChangesEmitPayloadEntity extends SchemaEntity<SpruceSchemas.SpruceCli.v2020_07_22.WatcherDidDetectChangesEmitPayloadSchema> { } } namespace SpruceSchemas.SpruceCli.v2020_07_22 { /** Upgrade. Everything. Heads up, this can take a few minutes. ⏱ */ interface UpgradeSkillOptions { /** Build after upgrade. Should I build your source after the upgrade? */ 'shouldBuild'?: boolean | undefined | null; /** Upgrade mode. */ 'upgradeMode'?: ("askForChanged" | "forceEverything" | "forceRequiredSkipRest") | undefined | null; } interface UpgradeSkillOptionsSchema extends SpruceSchema.Schema { id: 'upgradeSkillOptions'; version: 'v2020_07_22'; namespace: 'SpruceCli'; name: 'Upgrade skill action'; description: 'Upgrade. Everything. Heads up, this can take a few minutes. ⏱'; fields: { /** Build after upgrade. Should I build your source after the upgrade? */ 'shouldBuild': { label: 'Build after upgrade'; type: 'boolean'; hint: 'Should I build your source after the upgrade?'; defaultValue: true; options: undefined; }; /** Upgrade mode. */ 'upgradeMode': { label: 'Upgrade mode'; type: 'select'; defaultValue: "askForChanged"; options: { choices: [{ "value": "askForChanged"; "label": "Ask for changed files"; }, { "value": "forceEverything"; "label": "Force everything"; }, { "value": "forceRequiredSkipRest"; "label": "Force required (skipping all non-essential)"; }]; }; }; }; } interface UpgradeSkillOptionsEntity extends SchemaEntity<SpruceSchemas.SpruceCli.v2020_07_22.UpgradeSkillOptionsSchema> { } } namespace SpruceSchemas.SpruceCli.v2020_07_22 { /** Test your might! 💪 */ interface TestOptions { /** Report while running. Should I output the test results while they are running? */ 'shouldReportWhileRunning'?: boolean | undefined | null; /** Pattern. I'll filter all tests that match this pattern */ 'pattern'?: string | undefined | null; /** Inspect. Pass --inspect related args to test process. */ 'inspect'?: number | undefined | null; /** Should wait for manual start?. */ 'shouldHoldAtStart'?: boolean | undefined | null; /** Wait until tests are finished. For testing. Returns immediately after executing test so the running process can be managed programatically. */ 'shouldReturnImmediately'?: boolean | undefined | null; /** Watch. */ 'watchMode'?: ("off" | "standard" | "smart") | undefined | null; } interface TestOptionsSchema extends SpruceSchema.Schema { id: 'testOptions'; version: 'v2020_07_22'; namespace: 'SpruceCli'; name: 'Test skill'; description: 'Test your might! 💪'; fields: { /** Report while running. Should I output the test results while they are running? */ 'shouldReportWhileRunning': { label: 'Report while running'; type: 'boolean'; hint: 'Should I output the test results while they are running?'; defaultValue: true; options: undefined; }; /** Pattern. I'll filter all tests that match this pattern */ 'pattern': { label: 'Pattern'; type: 'text'; hint: 'I\'ll filter all tests that match this pattern'; options: undefined; }; /** Inspect. Pass --inspect related args to test process. */ 'inspect': { label: 'Inspect'; type: 'number'; hint: 'Pass --inspect related args to test process.'; options: undefined; }; /** Should wait for manual start?. */ 'shouldHoldAtStart': { label: 'Should wait for manual start?'; type: 'boolean'; defaultValue: false; options: undefined; }; /** Wait until tests are finished. For testing. Returns immediately after executing test so the running process can be managed programatically. */ 'shouldReturnImmediately': { label: 'Wait until tests are finished'; type: 'boolean'; isPrivate: true; hint: 'For testing. Returns immediately after executing test so the running process can be managed programatically.'; defaultValue: false; options: undefined; }; /** Watch. */ 'watchMode': { label: 'Watch'; type: 'select'; options: { choices: [{ "value": "off"; "label": "Off"; }, { "value": "standard"; "label": "Standard"; }, { "value": "smart"; "label": "Smart"; }]; }; }; }; } interface TestOptionsEntity extends SchemaEntity<SpruceSchemas.SpruceCli.v2020_07_22.TestOptionsSchema> { } } namespace SpruceSchemas.SpruceCli.v2020_07_22 { /** Options for schema.sync. */ interface SyncSchemasOptions { /** Field types directory. Where field types and interfaces will be generated. */ 'fieldTypesDestinationDir'?: string | undefined | null; /** Addons lookup directory. Where I'll look for new schema fields to be registered. */ 'addonsLookupDir'?: string | undefined | null; /** Generate field types. Should I generate field types too? */ 'generateFieldTypes'?: boolean | undefined | null; /** Schema types destination directory. Where I will generate schema types and interfaces. */ 'schemaTypesDestinationDirOrFile'?: string | undefined | null; /** . Where I should look for your schema builders? */ 'schemaLookupDir'?: string | undefined | null; /** Module import. When other skills use your schemas, will they import them from a module? */ 'moduleToImportFromWhenRemote'?: string | undefined | null; /** Auto install missing dependencies. */ 'shouldInstallMissingDependencies'?: boolean | undefined | null; /** Enable versioning. Should we use versioning? */ 'shouldEnableVersioning'?: boolean | undefined | null; /** Global namespace. The name you'll use when accessing these schemas, e.g. SpruceSchemas */ 'globalSchemaNamespace'?: string | undefined | null; /** Fetch remote schemas. I will pull in schemas from other features. */ 'shouldFetchRemoteSchemas'?: boolean | undefined | null; /** Fetch local schemas. I will look in schemaLookupDir to load local schemas. */ 'shouldFetchLocalSchemas'?: boolean | undefined | null; /** Fetch core schemas. Should I pull in core schemas too? */ 'shouldFetchCoreSchemas'?: boolean | undefined | null; /** Generate core schemas. Used only for updating the @sprucelabs/spruce-core-schemas. Ensures core schemas are generated like local schemas. Also an alias for `--shouldFetchRemoteSchemas=false --shouldFetchCoreSchemas=false --generateStandaloneTypesFile. */ 'shouldGenerateCoreSchemaTypes'?: boolean | undefined | null; /** Register built schemas. Should the schemas use the SchemaRegistry for tracking? */ 'registerBuiltSchemas'?: boolean | undefined | null; /** Delete directory if no schemas. Should I delete the schema directory if no schemas are found? */ 'deleteDestinationDirIfNoSchemas'?: boolean | undefined | null; /** Delete orphaned schemas. Should I delete schemas where the builders are missing? */ 'deleteOrphanedSchemas'?: boolean | undefined | null; /** Generate standalone types file. By default, I'll generate a types file that augments core types from @sprucelabs/spruce-core-schemas. Setting this to true will generate a stand alone types file. */ 'generateStandaloneTypesFile'?: boolean | undefined | null; /** message. */ 'syncingMessage'?: string | undefined | null; } interface SyncSchemasOptionsSchema extends SpruceSchema.Schema { id: 'syncSchemasOptions'; version: 'v2020_07_22'; namespace: 'SpruceCli'; name: 'Sync schemas action'; description: 'Options for schema.sync.'; fields: { /** Field types directory. Where field types and interfaces will be generated. */ 'fieldTypesDestinationDir': { label: 'Field types directory'; type: 'text'; isPrivate: true; hint: 'Where field types and interfaces will be generated.'; defaultValue: "#spruce/schemas"; options: undefined; }; /** Addons lookup directory. Where I'll look for new schema fields to be registered. */ 'addonsLookupDir': { label: 'Addons lookup directory'; type: 'text'; hint: 'Where I\'ll look for new schema fields to be registered.'; defaultValue: "src/addons"; options: undefined; }; /** Generate field types. Should I generate field types too? */ 'generateFieldTypes': { label: 'Generate field types'; type: 'boolean'; isPrivate: true; hint: 'Should I generate field types too?'; defaultValue: true; options: undefined; }; /** Schema types destination directory. Where I will generate schema types and interfaces. */ 'schemaTypesDestinationDirOrFile': { label: 'Schema types destination directory'; type: 'text'; hint: 'Where I will generate schema types and interfaces.'; defaultValue: "#spruce/schemas"; options: undefined; }; /** . Where I should look for your schema builders? */ 'schemaLookupDir': { type: 'text'; hint: 'Where I should look for your schema builders?'; defaultValue: "src/schemas"; options: undefined; }; /** Module import. When other skills use your schemas, will they import them from a module? */ 'moduleToImportFromWhenRemote': { label: 'Module import'; type: 'text'; hint: 'When other skills use your schemas, will they import them from a module?'; options: undefined; }; /** Auto install missing dependencies. */ 'shouldInstallMissingDependencies': { label: 'Auto install missing dependencies'; type: 'boolean'; options: undefined; }; /** Enable versioning. Should we use versioning? */ 'shouldEnableVersioning': { label: 'Enable versioning'; type: 'boolean'; isPrivate: true; hint: 'Should we use versioning?'; defaultValue: true; options: undefined; }; /** Global namespace. The name you'll use when accessing these schemas, e.g. SpruceSchemas */ 'globalSchemaNamespace': { label: 'Global namespace'; type: 'text'; isPrivate: true; hint: 'The name you\'ll use when accessing these schemas, e.g. SpruceSchemas'; defaultValue: "SpruceSchemas"; options: undefined; }; /** Fetch remote schemas. I will pull in schemas from other features. */ 'shouldFetchRemoteSchemas': { label: 'Fetch remote schemas'; type: 'boolean'; isPrivate: true; hint: 'I will pull in schemas from other features.'; defaultValue: true; options: undefined; }; /** Fetch local schemas. I will look in schemaLookupDir to load local schemas. */ 'shouldFetchLocalSchemas': { label: 'Fetch local schemas'; type: 'boolean'; isPrivate: true; hint: 'I will look in schemaLookupDir to load local schemas.'; defaultValue: true; options: undefined; }; /** Fetch core schemas. Should I pull in core schemas too? */ 'shouldFetchCoreSchemas': { label: 'Fetch core schemas'; type: 'boolean'; isPrivate: true; hint: 'Should I pull in core schemas too?'; defaultValue: true; options: undefined; }; /** Generate core schemas. Used only for updating the @sprucelabs/spruce-core-schemas. Ensures core schemas are generated like local schemas. Also an alias for `--shouldFetchRemoteSchemas=false --shouldFetchCoreSchemas=false --generateStandaloneTypesFile. */ 'shouldGenerateCoreSchemaTypes': { label: 'Generate core schemas'; type: 'boolean'; isPrivate: true; hint: 'Used only for updating the @sprucelabs/spruce-core-schemas. Ensures core schemas are generated like local schemas. Also an alias for `--shouldFetchRemoteSchemas=false --shouldFetchCoreSchemas=false --generateStandaloneTypesFile.'; options: undefined; }; /** Register built schemas. Should the schemas use the SchemaRegistry for tracking? */ 'registerBuiltSchemas': { label: 'Register built schemas'; type: 'boolean'; isPrivate: true; hint: 'Should the schemas use the SchemaRegistry for tracking?'; defaultValue: true; options: undefined; }; /** Delete directory if no schemas. Should I delete the schema directory if no schemas are found? */ 'deleteDestinationDirIfNoSchemas': { label: 'Delete directory if no schemas'; type: 'boolean'; isPrivate: true; hint: 'Should I delete the schema directory if no schemas are found?'; defaultValue: false; options: undefined; }; /** Delete orphaned schemas. Should I delete schemas where the builders are missing? */ 'deleteOrphanedSchemas': { label: 'Delete orphaned schemas'; type: 'boolean'; isPrivate: true; hint: 'Should I delete schemas where the builders are missing?'; defaultValue: true; options: undefined; }; /** Generate standalone types file. By default, I'll generate a types file that augments core types from @sprucelabs/spruce-core-schemas. Setting this to true will generate a stand alone types file. */ 'generateStandaloneTypesFile': { label: 'Generate standalone types file'; type: 'boolean'; isPrivate: true; hint: 'By default, I\'ll generate a types file that augments core types from @sprucelabs/spruce-core-schemas. Setting this to true will generate a stand alone types file.'; defaultValue: false; options: undefined; }; /** message. */ 'syncingMessage': { label: ' message'; type: 'text'; isPrivate: true; defaultValue: "Syncing schemas..."; options: undefined; }; }; } interface SyncSchemasOptionsEntity extends SchemaEntity<SpruceSchemas.SpruceCli.v2020_07_22.SyncSchemasOptionsSchema> { } } namespace SpruceSchemas.SpruceCli.v2020_07_22 { /** Sync schema fields so you can use schemas! */ interface SyncSchemaFieldsOptions { /** Field types directory. Where field types and interfaces will be generated. */ 'fieldTypesDestinationDir'?: string | undefined | null; /** Addons lookup directory. Where I'll look for new schema fields to be registered. */ 'addonsLookupDir'?: string | undefined | null; /** Generate field types. Should I generate field types too? */ 'generateFieldTypes'?: boolean | undefined | null; } interface SyncSchemaFieldsOptionsSchema extends SpruceSchema.Schema { id: 'syncSchemaFieldsOptions'; version: 'v2020_07_22'; namespace: 'SpruceCli'; name: 'syncSchemaFieldsOptions'; description: 'Sync schema fields so you can use schemas!'; fields: { /** Field types directory. Where field types and interfaces will be generated. */ 'fieldTypesDestinationDir': { label: 'Field types directory'; type: 'text'; isPrivate: true; hint: 'Where field types and interfaces will be generated.'; defaultValue: "#spruce/schemas"; options: undefined; }; /** Addons lookup directory. Where I'll look for new schema fields to be registered. */ 'addonsLookupDir': { label: 'Addons lookup directory'; type: 'text'; hint: 'Where I\'ll look for new schema fields to be registered.'; defaultValue: "src/addons"; options: undefined; }; /** Generate field types. Should I generate field types too? */ 'generateFieldTypes': { label: 'Generate field types'; type: 'boolean'; isPrivate: true; hint: 'Should I generate field types too?'; defaultValue: true; options: undefined; }; }; } interface SyncSchemaFieldsOptionsEntity extends SchemaEntity<SpruceSchemas.SpruceCli.v2020_07_22.SyncSchemaFieldsOptionsSchema> { } } namespace SpruceSchemas.SpruceCli.v2020_07_22 { /** Pull down event contracts from Mercury to make them available in your skill. */ interface SyncEventOptions { /** Contract destination. Where I will generate event contracts. */ 'contractDestinationDir'?: string | undefined | null; /** Schema types lookup directory. Where I will lookup schema types and interfaces. */ 'schemaTypesLookupDir'?: string | undefined | null; /** Sync only core events. For use in @sprucelabs/mercury-types */ 'shouldSyncOnlyCoreEvents'?: boolean | undefined | null; /** Event signature types file. */ 'skillEventContractTypesFile'?: string | undefined | null; /** Event builder file. */ 'eventBuilderFile'?: string | undefined | null; } interface SyncEventOptionsSchema extends SpruceSchema.Schema { id: 'syncEventOptions'; version: 'v2020_07_22'; namespace: 'SpruceCli'; name: 'sync event action'; description: 'Pull down event contracts from Mercury to make them available in your skill.'; fields: { /** Contract destination. Where I will generate event contracts. */ 'contractDestinationDir': { label: 'Contract destination'; type: 'text'; hint: 'Where I will generate event contracts.'; defaultValue: "#spruce/events"; options: undefined; }; /** Schema types lookup directory. Where I will lookup schema types and interfaces. */ 'schemaTypesLookupDir': { label: 'Schema types lookup directory'; type: 'text'; hint: 'Where I will lookup schema types and interfaces.'; defaultValue: "#spruce/schemas"; options: undefined; }; /** Sync only core events. For use in @sprucelabs/mercury-types */ 'shouldSyncOnlyCoreEvents': { label: 'Sync only core events'; type: 'boolean'; hint: 'For use in @sprucelabs/mercury-types'; options: undefined; }; /** Event signature types file. */ 'skillEventContractTypesFile': { label: 'Event signature types file'; type: 'text'; defaultValue: "@sprucelabs/mercury-types/build/types/mercury.types"; options: undefined; }; /** Event builder file. */ 'eventBuilderFile': { label: 'Event builder file'; type: 'text'; defaultValue: "@sprucelabs/mercury-types"; options: undefined; }; }; } interface SyncEventOptionsEntity extends SchemaEntity<SpruceSchemas.SpruceCli.v2020_07_22.SyncEventOptionsSchema> { } } namespace SpruceSchemas.SpruceCli.v2020_07_22 { /** Keep your errors types in sync with your builders */ interface SyncErrorOptions { /** Field types directory. Where field types and interfaces will be generated. */ 'fieldTypesDestinationDir'?: string | undefined | null; /** Addons lookup directory. Where I'll look for new schema fields to be registered. */ 'addonsLookupDir'?: string | undefined | null; /** Generate field types. Should I generate field types too? */ 'generateFieldTypes'?: boolean | undefined | null; /** Schema types destination directory. Where I will generate schema types and interfaces. */ 'schemaTypesDestinationDirOrFile'?: string | undefined | null; /** . Where I should look for your schema builders? */ 'schemaLookupDir'?: string | undefined | null; /** Module import. When other skills use your schemas, will they import them from a module? */ 'moduleToImportFromWhenRemote'?: string | undefined | null; /** Auto install missing dependencies. */ 'shouldInstallMissingDependencies'?: boolean | undefined | null; /** Enable versioning. Should we use versioning? */ 'shouldEnableVersioning'?: boolean | undefined | null; /** Global namespace. The name you'll use when accessing these schemas, e.g. SpruceSchemas */ 'globalSchemaNamespace'?: string | undefined | null; /** Fetch remote schemas. I will pull in schemas from other features. */ 'shouldFetchRemoteSchemas'?: boolean | undefined | null; /** Fetch local schemas. I will look in schemaLookupDir to load local schemas. */ 'shouldFetchLocalSchemas'?: boolean | undefined | null; /** Fetch core schemas. Should I pull in core schemas too? */ 'shouldFetchCoreSchemas'?: boolean | undefined | null; /** Generate core schemas. Used only for updating the @sprucelabs/spruce-core-schemas. Ensures core schemas are generated like local schemas. Also an alias for `--shouldFetchRemoteSchemas=false --shouldFetchCoreSchemas=false --generateStandaloneTypesFile. */ 'shouldGenerateCoreSchemaTypes'?: boolean | undefined | null; /** Register built schemas. Should the schemas use the SchemaRegistry for tracking? */ 'registerBuiltSchemas'?: boolean | undefined | null; /** Generate standalone types file. By default, I'll generate a types file that augments core types from @sprucelabs/spruce-core-schemas. Setting this to true will generate a stand alone types file. */ 'generateStandaloneTypesFile'?: boolean | undefined | null; /** message. */ 'syncingMessage'?: string | undefined | null; /** Error class destination. Where I'll save your new Error class file? */ 'errorClassDestinationDir': string; /** . Where I should look for your error builders? */ 'errorLookupDir'?: string | undefined | null; /** Types destination dir. This is where error options and type information will be written */ 'errorTypesDestinationDir'?: string | undefined | null; } interface SyncErrorOptionsSchema extends SpruceSchema.Schema { id: 'syncErrorOptions'; version: 'v2020_07_22'; namespace: 'SpruceCli'; name: 'Sync error action'; description: 'Keep your errors types in sync with your builders'; fields: { /** Field types directory. Where field types and interfaces will be generated. */ 'fieldTypesDestinationDir': { label: 'Field types directory'; type: 'text'; isPrivate: true; hint: 'Where field types and interfaces will be generated.'; defaultValue: "#spruce/schemas"; options: undefined; }; /** Addons lookup directory. Where I'll look for new schema fields to be registered. */ 'addonsLookupDir': { label: 'Addons lookup directory'; type: 'text'; hint: 'Where I\'ll look for new schema fields to be registered.'; defaultValue: "src/addons"; options: undefined; }; /** Generate field types. Should I generate field types too? */ 'generateFieldTypes': { label: 'Generate field types'; type: 'boolean'; isPrivate: true; hint: 'Should I generate field types too?'; defaultValue: true; options: undefined; }; /** Schema types destination directory. Where I will generate schema types and interfaces. */ 'schemaTypesDestinationDirOrFile': { label: 'Schema types destination directory'; type: 'text'; hint: 'Where I will generate schema types and interfaces.'; defaultValue: "#spruce/schemas"; options: undefined; }; /** . Where I should look for your schema builders? */ 'schemaLookupDir': { type: 'text'; hint: 'Where I should look for your schema builders?'; defaultValue: "src/schemas"; options: undefined; }; /** Module import. When other skills use your schemas, will they import them from a module? */ 'moduleToImportFromWhenRemote': { label: 'Module import'; type: 'text'; hint: 'When other skills use your schemas, will they import them from a module?'; options: undefined; }; /** Auto install missing dependencies. */ 'shouldInstallMissingDependencies': { label: 'Auto install missing dependencies'; type: 'boolean'; options: undefined; }; /** Enable versioning. Should we use versioning? */ 'shouldEnableVersioning': { label: 'Enable versioning'; type: 'boolean'; isPrivate: true; hint: 'Should we use versioning?'; defaultValue: true; options: undefined; }; /** Global namespace. The name you'll use when accessing these schemas, e.g. SpruceSchemas */ 'globalSchemaNamespace': { label: 'Global namespace'; type: 'text'; isPrivate: true; hint: 'The name you\'ll use when accessing these schemas, e.g. SpruceSchemas'; defaultValue: "SpruceSchemas"; options: undefined; }; /** Fetch remote schemas. I will pull in schemas from other features. */ 'shouldFetchRemoteSchemas': { label: 'Fetch remote schemas'; type: 'boolean'; isPrivate: true; hint: 'I will pull in schemas from other features.'; defaultValue: true; options: undefined; }; /** Fetch local schemas. I will look in schemaLookupDir to load local schemas. */ 'shouldFetchLocalSchemas': { label: 'Fetch local schemas'; type: 'boolean'; isPrivate: true; hint: 'I will look in schemaLookupDir to load local schemas.'; defaultValue: true; options: undefined; }; /** Fetch core schemas. Should I pull in core schemas too? */ 'shouldFetchCoreSchemas': { label: 'Fetch core schemas'; type: 'boolean'; isPrivate: true; hint: 'Should I pull in core schemas too?'; defaultValue: true; options: undefined; }; /** Generate core schemas. Used only for updating the @sprucelabs/spruce-core-schemas. Ensures core schemas are generated like local schemas. Also an alias for `--shouldFetchRemoteSchemas=false --shouldFetchCoreSchemas=false --generateStandaloneTypesFile. */ 'shouldGenerateCoreSchemaTypes': { label: 'Generate core schemas'; type: 'boolean'; isPrivate: true; hint: 'Used only for updating the @sprucelabs/spruce-core-schemas. Ensures core schemas are generated like local schemas. Also an alias for `--shouldFetchRemoteSchemas=false --shouldFetchCoreSchemas=false --generateStandaloneTypesFile.'; options: undefined; }; /** Register built schemas. Should the schemas use the SchemaRegistry for tracking? */ 'registerBuiltSchemas': { label: 'Register built schemas'; type: 'boolean'; isPrivate: true; hint: 'Should the schemas use the SchemaRegistry for tracking?'; defaultValue: true; options: undefined; }; /** Generate standalone types file. By default, I'll generate a types file that augments core types from @sprucelabs/spruce-core-schemas. Setting this to true will generate a stand alone types file. */ 'generateStandaloneTypesFile': { label: 'Generate standalone types file'; type: 'boolean'; isPrivate: true; hint: 'By default, I\'ll generate a types file that augments core types from @sprucelabs/spruce-core-schemas. Setting this to true will generate a stand alone types file.'; defaultValue: false; options: undefined; }; /** message. */ 'syncingMessage': { label: ' message'; type: 'text'; isPrivate: true; defaultValue: "Syncing schemas..."; options: undefined; }; /** Error class destination. Where I'll save your new Error class file? */ 'errorClassDestinationDir': { label: 'Error class destination'; type: 'text'; isPrivate: true; isRequired: true; hint: 'Where I\'ll save your new Error class file?'; defaultValue: "src/errors"; options: undefined; }; /** . Where I should look for your error builders? */ 'errorLookupDir': { type: 'text'; hint: 'Where I should look for your error builders?'; defaultValue: "src/errors"; options: undefined; }; /** Types destination dir. This is where error options and type information will be written */ 'errorTypesDestinationDir': { label: 'Types destination dir'; type: 'text'; hint: 'This is where error options and type information will be written'; defaultValue: "#spruce/errors"; options: undefined; }; }; } interface SyncErrorOptionsEntity extends SchemaEntity<SpruceSchemas.SpruceCli.v2020_07_22.SyncErrorOptionsSchema> { } } namespace SpruceSchemas.SpruceCli.v2020_07_22 { interface SkillFeature { 'destination'?: string | undefined | null; /** What's the name of your skill?. This marketing focused, like "8-bit Stories" or "Adventures". */ 'name': string; /** How would you describe your skill?. */ 'description': string; } interface SkillFeatureSchema extends SpruceSchema.Schema { id: 'skillFeature'; version: 'v2020_07_22'; namespace: 'SpruceCli'; name: 'Skill feature options'; fields: { /** . */ 'destination': { type: 'text'; defaultValue: "."; options: undefined; }; /** What's the name of your skill?. This marketing focused, like "8-bit Stories" or "Adventures". */ 'name': { label: 'What\'s the name of your skill?'; type: 'text'; isRequired: true; hint: 'This marketing focused, like "8-bit Stories" or "Adventures".'; options: undefined; }; /** How would you describe your skill?. */ 'description': { label: 'How would you describe your skill?'; type: 'text'; isRequired: true; options: undefined; }; }; } interface SkillFeatureEntity extends SchemaEntity<SpruceSchemas.SpruceCli.v2020_07_22.SkillFeatureSchema> { } } namespace SpruceSchemas.SpruceCli.v2020_07_22 { /** Install vscode extensions, launch configs, and settings the Spruce team uses in-house! */ interface SetupVscodeOptions { /** Install everything. */ 'all'?: boolean | undefined | null; } interface SetupVscodeOptionsSchema extends SpruceSchema.Schema { id: 'setupVscodeOptions'; version: 'v2020_07_22'; namespace: 'SpruceCli'; name: 'Setup vscode action'; description: 'Install vscode extensions, launch configs, and settings the Spruce team uses in-house!'; fields: { /** Install everything. */ 'all': { label: 'Install everything'; type: 'boolean'; options: undefined; }; }; } interface SetupVscodeOptionsEntity extends SchemaEntity<SpruceSchemas.SpruceCli.v2020_07_22.SetupVscodeOptionsSchema> { } } namespace SpruceSchemas.SpruceCli.v2020_07_22 { /** Use this with in your CI/CD environment to get your skill ready to run tests. */ interface SetupTestsOptions { /** Demo phone number. */ 'demoNumber': string; /** Namespace. */ 'skillSlug': string; } interface SetupTestsOptionsSchema extends SpruceSchema.Schema { id: 'setupTestsOptions'; version: 'v2020_07_22'; namespace: 'SpruceCli'; name: 'Setup tests options'; description: 'Use this with in your CI/CD environment to get your skill ready to run tests.'; fields: { /** Demo phone number. */ 'demoNumber': { label: 'Demo phone number'; type: 'phone'; isRequired: true; options: undefined; }; /** Namespace. */ 'skillSlug': { label: 'Namespace'; type: 'text'; isRequired: true; options: undefined; }; }; } interface SetupTestsOptionsEntity extends SchemaEntity<SpruceSchemas.SpruceCli.v2020_07_22.SetupTestsOptionsSchema> { } } namespace SpruceSchemas.SpruceCli.v2020_07_22 { interface RegisterDashboardWidgetsEmitPayloadSchema { 'widgets'?: (BaseWidget) | undefined | null; } interface RegisterDashboardWidgetsEmitPayloadSchemaSchema extends SpruceSchema.Schema { id: 'registerDashboardWidgetsEmitPayloadSchema'; version: 'v2020_07_22'; namespace: 'SpruceCli'; name: 'register dashboard widgets emit payload schema'; fields: { /** . */ 'widgets': { type: 'raw'; options: { valueType: `BaseWidget`; }; }; }; } interface RegisterDashboardWidgetsEmitPayloadSchemaEntity extends SchemaEntity<SpruceSchemas.SpruceCli.v2020_07_22.RegisterDashboardWidgetsEmitPayloadSchemaSchema> { } } namespace SpruceSchemas.SpruceCli.v2020_07_22 { /** A stripped down cli user with token details for login */ interface PersonWithToken { /** Id. */ 'id': string; /** Casual name. The name you can use when talking to this person. */ 'casualName': string; 'token': string; /** Logged in. */ 'isLoggedIn'?: boolean | undefined | null; } interface PersonWithTokenSchema extends SpruceSchema.Schema { id: 'personWithToken'; version: 'v2020_07_22'; namespace: 'SpruceCli'; name: ''; description: 'A stripped down cli user with token details for login'; fields: { /** Id. */ 'id': { label: 'Id'; type: 'id'; isRequired: true; options: undefined; }; /** Casual name. The name you can use when talking to this person. */ 'casualName': { label: 'Casual name'; type: 'text'; isRequired: true; hint: 'The name you can use when talking to this person.'; options: undefined; }; /** . */ 'token': { type: 'text'; isRequired: true; options: undefined; }; /** Logged in. */ 'isLoggedIn': { label: 'Logged in'; type: 'boolean'; options: undefined; }; }; } interface PersonWithTokenEntity extends SchemaEntity<SpruceSchemas.SpruceCli.v2020_07_22.PersonWithTokenSchema> { } } namespace SpruceSchemas.SpruceCli.v2020_07_22 { /** Track onboarding progress and tutorials &amp; quizzes completed. */ interface Onboarding { /** mode. */ 'mode': ("short" | "immersive" | "off"); /** Stage. */ 'stage'?: ("create.skill" | "test") | undefined | null; } interface OnboardingSchema extends SpruceSchema.Schema { id: 'onboarding'; version: 'v2020_07_22'; namespace: 'SpruceCli'; name: 'Onboarding'; description: 'Track onboarding progress and tutorials & quizzes completed.'; fields: { /** mode. */ 'mode': { label: 'mode'; type: 'select'; isRequired: true; options: { choices: [{ "label": "Short"; "value": "short"; }, { "label": "Immersive"; "value": "immersive"; }, { "label": "Off"; "value": "off"; }]; }; }; /** Stage. */ 'stage': { label: 'Stage'; type: 'select'; options: { choices: [{ "label": "Create skill"; "value": "create.skill"; }, { "label": "Test"; "value": "test"; }]; }; }; }; } interface OnboardingEntity extends SchemaEntity<SpruceSchemas.SpruceCli.v2020_07_22.OnboardingSchema> { } } namespace SpruceSchemas.SpruceCli.v2020_07_22 { /** The question is; Are you read? ⚡️ */ interface OnboardOptions { } interface OnboardOptionsSchema extends SpruceSchema.Schema { id: 'onboardOptions'; version: 'v2020_07_22'; namespace: 'SpruceCli'; name: 'Onboard action'; description: 'The question is; Are you read? ⚡️'; fields: {}; } interface OnboardOptionsEntity extends SchemaEntity<SpruceSchemas.SpruceCli.v2020_07_22.OnboardOptionsSchema> { } } namespace SpruceSchemas.SpruceCli.v2020_07_22 { /** Create a new node module, to be written in typescript, ready to rock! */ interface NodeFeatureOptions { 'destination'?: string | undefined | null; /** What's the name of your module?. */ 'name': string; /** How would you describe your module?. */ 'description': string; } interface NodeFeatureOptionsSchema extends SpruceSchema.Schema { id: 'nodeFeatureOptions'; version: 'v2020_07_22'; namespace: 'SpruceCli'; name: 'Create node module'; description: 'Create a new node module, to be written in typescript, ready to rock!'; fields: { /** . */ 'destination': { type: 'text'; defaultValue: "."; options: undefined; }; /** What's the name of your module?. */ 'name': { label: 'What\'s the name of your module?'; type: 'text'; isRequired: true; options: undefined; }; /** How would you describe your module?. */ 'description': { label: 'How would you describe your module?'; type: 'text'; i