@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
1,017 lines • 106 kB
TypeScript
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 & 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