@sprucelabs/spruce-templates 23.1.0 → 24.1.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/LICENSE +21 -0
- package/build/index.js +4 -1
- package/build/templates/typescript/sandbox/will-boot.listener.ts.hbs +136 -73
- package/build/templates/typescript/test/Test.test.ts.hbs +4 -3
- package/build/types/templates.types.d.ts +1 -0
- package/package.json +9 -9
- package/build/addons/eq.addon.js.map +0 -1
- package/build/addons/escape.addon.js.map +0 -1
- package/build/addons/fieldDefinitionBodyPartial.addon.js.map +0 -1
- package/build/addons/fieldDefinitionOptions.addon.js.map +0 -1
- package/build/addons/fieldTypeEnum.addon.js.map +0 -1
- package/build/addons/fieldValue.addon.js.map +0 -1
- package/build/addons/gt.addon.js.map +0 -1
- package/build/addons/hasKeys.addon.js.map +0 -1
- package/build/addons/hasNoneCoreSchemaTemplateItems.addon.js.map +0 -1
- package/build/addons/importRelatedSchemas.addon.js.map +0 -1
- package/build/addons/index.js.map +0 -1
- package/build/addons/isDefined.addon.js.map +0 -1
- package/build/addons/json.addon.js.map +0 -1
- package/build/addons/neq.addon.js.map +0 -1
- package/build/addons/operators.addon.js.map +0 -1
- package/build/addons/pascalCase.addon.js.map +0 -1
- package/build/addons/permissionContractBuilder.addon.js.map +0 -1
- package/build/addons/schemaBodyPartial.addon.js.map +0 -1
- package/build/addons/schemaNamespacePath.addon.js.map +0 -1
- package/build/addons/schemaValuesPartial.addon.js.map +0 -1
- package/build/addons/valueTypeGenerator.addon.js.map +0 -1
- package/build/addons/valueTypeLiteral.addon.js.map +0 -1
- package/build/addons/valueTypeMapper.addon.js.map +0 -1
- package/build/dist/templates/directories/skill/.nvmrc +0 -1
- package/build/dist/templates/directories/skill/README.md +0 -4
- package/build/dist/templates/directories/skill/eslint.config.mjs +0 -3
- package/build/dist/templates/directories/skill/package.json.hbs +0 -15
- package/build/dist/templates/directories/skill/src/errors/SpruceError.ts.hbs +0 -20
- package/build/dist/templates/directories/skill/tsconfig.json +0 -39
- package/build/dist/templates/directories/vscode/.vscode/launch.json +0 -58
- package/build/dist/templates/directories/vscode/.vscode/settings.json +0 -67
- package/build/dist/templates/directories/vscode/.vscode/tasks.json +0 -112
- package/build/dist/templates/typescript/conversation/conversation.plugin.ts.hbs +0 -1
- package/build/dist/templates/typescript/conversation/conversation.topic.ts.hbs +0 -19
- package/build/dist/templates/typescript/deploy/deploy.plugin.ts.hbs +0 -1
- package/build/dist/templates/typescript/error/SpruceError.ts.hbs +0 -31
- package/build/dist/templates/typescript/error/error.plugin.ts.hbs +0 -78
- package/build/dist/templates/typescript/error/example.ts.hbs +0 -10
- package/build/dist/templates/typescript/error/options.types.ts.hbs +0 -12
- package/build/dist/templates/typescript/event/event.contract.ts.hbs +0 -26
- package/build/dist/templates/typescript/event/event.options.ts.hbs +0 -11
- package/build/dist/templates/typescript/event/events.contract.ts.hbs +0 -24
- package/build/dist/templates/typescript/event/listener.ts.hbs +0 -23
- package/build/dist/templates/typescript/event/listeners.ts.hbs +0 -15
- package/build/dist/templates/typescript/event/payload.builder.ts.hbs +0 -15
- package/build/dist/templates/typescript/log/transport.plugin.ts.hbs +0 -14
- package/build/dist/templates/typescript/permissions/contract.builder.ts.hbs +0 -36
- package/build/dist/templates/typescript/permissions/permission.plugin.ts.hbs +0 -1
- package/build/dist/templates/typescript/permissions/permissions.ts.hbs +0 -13
- package/build/dist/templates/typescript/permissions/permissions.types.ts.hbs +0 -14
- package/build/dist/templates/typescript/polish/polish.ts.hbs +0 -67
- package/build/dist/templates/typescript/sandbox/will-boot.listener.ts.hbs +0 -109
- package/build/dist/templates/typescript/schema/builder.ts.hbs +0 -24
- package/build/dist/templates/typescript/schema/core.schemas.types.ts.hbs +0 -34
- package/build/dist/templates/typescript/schema/example.ts.hbs +0 -20
- package/build/dist/templates/typescript/schema/fields/fieldClassMap.ts.hbs +0 -16
- package/build/dist/templates/typescript/schema/fields/fields.types.ts.hbs +0 -1
- package/build/dist/templates/typescript/schema/imported.schema.ts.hbs +0 -1
- package/build/dist/templates/typescript/schema/partials/fieldDefinitionBody.ts.hbs +0 -12
- package/build/dist/templates/typescript/schema/partials/schemaBody.ts.hbs +0 -20
- package/build/dist/templates/typescript/schema/partials/schemaValues.ts.hbs +0 -7
- package/build/dist/templates/typescript/schema/schema.plugin.ts.hbs +0 -101
- package/build/dist/templates/typescript/schema/schema.ts.hbs +0 -12
- package/build/dist/templates/typescript/schema/schemas.types.ts.hbs +0 -44
- package/build/dist/templates/typescript/schema/valueTypes.ts.hbs +0 -67
- package/build/dist/templates/typescript/store/Store.store.ts.hbs +0 -95
- package/build/dist/templates/typescript/store/store.plugin.ts.hbs +0 -1
- package/build/dist/templates/typescript/store/stores.ts.hbs +0 -9
- package/build/dist/templates/typescript/store/stores.types.ts.hbs +0 -17
- package/build/dist/templates/typescript/view/App.ac.ts.hbs +0 -6
- package/build/dist/templates/typescript/view/View.svc.ts.hbs +0 -23
- package/build/dist/templates/typescript/view/View.vc.ts.hbs +0 -17
- package/build/dist/templates/typescript/view/skill.theme.ts.hbs +0 -70
- package/build/dist/templates/typescript/view/view.plugin.ts.hbs +0 -1
- package/build/dist/templates/typescript/view/viewController.plugin.ts.hbs +0 -3
- package/build/dist/templates/typescript/view/views.ts.hbs +0 -93
- package/build/esm/addons/eq.addon.d.ts +0 -1
- package/build/esm/addons/eq.addon.js +0 -4
- package/build/esm/addons/escape.addon.d.ts +0 -1
- package/build/esm/addons/escape.addon.js +0 -5
- package/build/esm/addons/fieldDefinitionBodyPartial.addon.d.ts +0 -1
- package/build/esm/addons/fieldDefinitionBodyPartial.addon.js +0 -8
- package/build/esm/addons/fieldDefinitionOptions.addon.d.ts +0 -1
- package/build/esm/addons/fieldDefinitionOptions.addon.js +0 -66
- package/build/esm/addons/fieldTypeEnum.addon.d.ts +0 -1
- package/build/esm/addons/fieldTypeEnum.addon.js +0 -9
- package/build/esm/addons/fieldValue.addon.d.ts +0 -1
- package/build/esm/addons/fieldValue.addon.js +0 -8
- package/build/esm/addons/gt.addon.d.ts +0 -1
- package/build/esm/addons/gt.addon.js +0 -4
- package/build/esm/addons/hasKeys.addon.d.ts +0 -1
- package/build/esm/addons/hasKeys.addon.js +0 -4
- package/build/esm/addons/hasNoneCoreSchemaTemplateItems.addon.d.ts +0 -1
- package/build/esm/addons/hasNoneCoreSchemaTemplateItems.addon.js +0 -6
- package/build/esm/addons/importRelatedSchemas.addon.d.ts +0 -1
- package/build/esm/addons/importRelatedSchemas.addon.js +0 -34
- package/build/esm/addons/index.d.ts +0 -23
- package/build/esm/addons/index.js +0 -23
- package/build/esm/addons/isDefined.addon.d.ts +0 -1
- package/build/esm/addons/isDefined.addon.js +0 -5
- package/build/esm/addons/json.addon.d.ts +0 -1
- package/build/esm/addons/json.addon.js +0 -7
- package/build/esm/addons/neq.addon.d.ts +0 -1
- package/build/esm/addons/neq.addon.js +0 -4
- package/build/esm/addons/operators.addon.d.ts +0 -1
- package/build/esm/addons/operators.addon.js +0 -15
- package/build/esm/addons/pascalCase.addon.d.ts +0 -1
- package/build/esm/addons/pascalCase.addon.js +0 -6
- package/build/esm/addons/permissionContractBuilder.addon.d.ts +0 -1
- package/build/esm/addons/permissionContractBuilder.addon.js +0 -4
- package/build/esm/addons/schemaBodyPartial.addon.d.ts +0 -1
- package/build/esm/addons/schemaBodyPartial.addon.js +0 -8
- package/build/esm/addons/schemaNamespacePath.addon.d.ts +0 -1
- package/build/esm/addons/schemaNamespacePath.addon.js +0 -18
- package/build/esm/addons/schemaValuesPartial.addon.d.ts +0 -1
- package/build/esm/addons/schemaValuesPartial.addon.js +0 -8
- package/build/esm/addons/valueTypeGenerator.addon.d.ts +0 -1
- package/build/esm/addons/valueTypeGenerator.addon.js +0 -15
- package/build/esm/addons/valueTypeLiteral.addon.d.ts +0 -1
- package/build/esm/addons/valueTypeLiteral.addon.js +0 -32
- package/build/esm/addons/valueTypeMapper.addon.d.ts +0 -1
- package/build/esm/addons/valueTypeMapper.addon.js +0 -9
- package/build/esm/index.d.ts +0 -141
- package/build/esm/index.js +0 -255
- package/build/esm/templates/directories/skill/.nvmrc +0 -1
- package/build/esm/templates/directories/skill/README.md +0 -4
- package/build/esm/templates/directories/skill/eslint.config.mjs +0 -3
- package/build/esm/templates/directories/skill/package.json.hbs +0 -15
- package/build/esm/templates/directories/skill/src/.spruce/errors/options.types.ts +0 -6
- package/build/esm/templates/directories/skill/src/.spruce/features/event.plugin.ts +0 -1
- package/build/esm/templates/directories/skill/src/.spruce/skill.ts +0 -8
- package/build/esm/templates/directories/skill/src/errors/SpruceError.ts.hbs +0 -20
- package/build/esm/templates/directories/skill/src/index.ts +0 -35
- package/build/esm/templates/directories/skill/tsconfig.json +0 -39
- package/build/esm/templates/directories/vscode/.vscode/launch.json +0 -58
- package/build/esm/templates/directories/vscode/.vscode/settings.json +0 -67
- package/build/esm/templates/directories/vscode/.vscode/tasks.json +0 -112
- package/build/esm/templates/typescript/conversation/conversation.plugin.ts.hbs +0 -1
- package/build/esm/templates/typescript/conversation/conversation.topic.ts.hbs +0 -19
- package/build/esm/templates/typescript/deploy/deploy.plugin.ts.hbs +0 -1
- package/build/esm/templates/typescript/error/SpruceError.ts.hbs +0 -31
- package/build/esm/templates/typescript/error/error.plugin.ts.hbs +0 -78
- package/build/esm/templates/typescript/error/example.ts.hbs +0 -10
- package/build/esm/templates/typescript/error/options.types.ts.hbs +0 -12
- package/build/esm/templates/typescript/event/event.contract.ts.hbs +0 -26
- package/build/esm/templates/typescript/event/event.options.ts.hbs +0 -11
- package/build/esm/templates/typescript/event/events.contract.ts.hbs +0 -24
- package/build/esm/templates/typescript/event/listener.ts.hbs +0 -23
- package/build/esm/templates/typescript/event/listeners.ts.hbs +0 -15
- package/build/esm/templates/typescript/event/payload.builder.ts.hbs +0 -15
- package/build/esm/templates/typescript/log/transport.plugin.ts.hbs +0 -14
- package/build/esm/templates/typescript/permissions/contract.builder.ts.hbs +0 -36
- package/build/esm/templates/typescript/permissions/permission.plugin.ts.hbs +0 -1
- package/build/esm/templates/typescript/permissions/permissions.ts.hbs +0 -13
- package/build/esm/templates/typescript/permissions/permissions.types.ts.hbs +0 -14
- package/build/esm/templates/typescript/polish/polish.ts.hbs +0 -67
- package/build/esm/templates/typescript/sandbox/will-boot.listener.ts.hbs +0 -109
- package/build/esm/templates/typescript/schema/builder.ts.hbs +0 -24
- package/build/esm/templates/typescript/schema/core.schemas.types.ts.hbs +0 -34
- package/build/esm/templates/typescript/schema/example.ts.hbs +0 -20
- package/build/esm/templates/typescript/schema/fields/fieldClassMap.ts.hbs +0 -16
- package/build/esm/templates/typescript/schema/fields/fields.types.ts.hbs +0 -1
- package/build/esm/templates/typescript/schema/imported.schema.ts.hbs +0 -1
- package/build/esm/templates/typescript/schema/partials/fieldDefinitionBody.ts.hbs +0 -12
- package/build/esm/templates/typescript/schema/partials/schemaBody.ts.hbs +0 -20
- package/build/esm/templates/typescript/schema/partials/schemaValues.ts.hbs +0 -7
- package/build/esm/templates/typescript/schema/schema.plugin.ts.hbs +0 -101
- package/build/esm/templates/typescript/schema/schema.ts.hbs +0 -12
- package/build/esm/templates/typescript/schema/schemas.types.ts.hbs +0 -44
- package/build/esm/templates/typescript/schema/valueTypes.ts.hbs +0 -67
- package/build/esm/templates/typescript/store/Store.store.ts.hbs +0 -95
- package/build/esm/templates/typescript/store/store.plugin.ts.hbs +0 -1
- package/build/esm/templates/typescript/store/stores.ts.hbs +0 -9
- package/build/esm/templates/typescript/store/stores.types.ts.hbs +0 -17
- package/build/esm/templates/typescript/test/Test.test.ts.hbs +0 -20
- package/build/esm/templates/typescript/view/App.ac.ts.hbs +0 -6
- package/build/esm/templates/typescript/view/View.svc.ts.hbs +0 -23
- package/build/esm/templates/typescript/view/View.vc.ts.hbs +0 -17
- package/build/esm/templates/typescript/view/skill.theme.ts.hbs +0 -70
- package/build/esm/templates/typescript/view/view.plugin.ts.hbs +0 -1
- package/build/esm/templates/typescript/view/viewController.plugin.ts.hbs +0 -3
- package/build/esm/templates/typescript/view/views.ts.hbs +0 -93
- package/build/esm/types/templates.types.d.ts +0 -121
- package/build/esm/types/templates.types.js +0 -5
- package/build/esm/utilities/DirectoryTemplateUtility.d.ts +0 -15
- package/build/esm/utilities/DirectoryTemplateUtility.js +0 -79
- package/build/esm/utilities/KeyGeneratorUtility.d.ts +0 -5
- package/build/esm/utilities/KeyGeneratorUtility.js +0 -6
- package/build/esm/utilities/importExtractor.utility.d.ts +0 -10
- package/build/esm/utilities/importExtractor.utility.js +0 -32
- package/build/esm/utilities/templateImporter.utility.d.ts +0 -4
- package/build/esm/utilities/templateImporter.utility.js +0 -18
- package/build/esm/utilities/templateItem.utility.d.ts +0 -6
- package/build/esm/utilities/templateItem.utility.js +0 -25
- package/build/index.js.map +0 -1
- package/build/types/templates.types.js.map +0 -1
- package/build/utilities/DirectoryTemplateUtility.js.map +0 -1
- package/build/utilities/KeyGeneratorUtility.js.map +0 -1
- package/build/utilities/importExtractor.utility.js.map +0 -1
- package/build/utilities/templateImporter.utility.js.map +0 -1
- package/build/utilities/templateItem.utility.js.map +0 -1
- /package/build/{dist/templates/typescript/test/Test.test.ts.hbs → templates/typescript/test/StaticTest.test.ts.hbs} +0 -0
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { default as SchemaEntity } from '@sprucelabs/schema'
|
|
2
|
-
{{#each imports}}
|
|
3
|
-
import * as {{importAs}} from '{{package}}'
|
|
4
|
-
{{/each}}
|
|
5
|
-
{{#each schemaTemplateItems}}
|
|
6
|
-
|
|
7
|
-
{{#each imports}}
|
|
8
|
-
{{{this}}}
|
|
9
|
-
{{/each}}
|
|
10
|
-
{{/each}}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
{{#each schemaTemplateItems}}
|
|
15
|
-
|
|
16
|
-
export declare namespace {{../globalSchemaNamespace}}.{{namespace}}{{#if (isDefined schema.version)}}.{{schema.version}}{{/if}} {
|
|
17
|
-
|
|
18
|
-
{{#if schema.description}}/** {{schema.description}} */{{/if}}
|
|
19
|
-
export interface {{namePascal}} {
|
|
20
|
-
{{> schemaValues schema=schema renderAs="type" }}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export interface {{namePascal}}Schema extends SpruceSchema.Schema {
|
|
24
|
-
{{> schemaBody namespace=namespace schema=schema renderAs="type" }}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export type {{namePascal}}Entity = SchemaEntity<{{../globalSchemaNamespace}}.{{namespace}}{{#if (isDefined schema.version)}}.{{schema.version}}{{/if}}.{{namePascal}}Schema>
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
{{/each}}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
// Importing your schema
|
|
2
|
-
import {{nameCamel}}Schema from '#spruce/schemas/v2020_07_22/{{nameCamel}}.schema'
|
|
3
|
-
|
|
4
|
-
// Importing interfaces
|
|
5
|
-
import { {{namePascal}}, {{namePascal}}Entity } from '#spruce/schemas/v2020_07_22/{{nameCamel}}.types'
|
|
6
|
-
|
|
7
|
-
// Create an entity instance based on a schema
|
|
8
|
-
import Entity from '@sprucelabs/schema'
|
|
9
|
-
const {{nameCamel}} = new Entity({{nameCamel}}Schema, values)
|
|
10
|
-
|
|
11
|
-
// Set a value
|
|
12
|
-
{{nameCamel}}.set('fieldName', newValue);
|
|
13
|
-
|
|
14
|
-
// Get some values
|
|
15
|
-
{{#each schema.fields}}
|
|
16
|
-
const {{@key}} = {{../nameCamel}}.get('{{@key}}');
|
|
17
|
-
{{/each}}
|
|
18
|
-
|
|
19
|
-
// ensure it validates
|
|
20
|
-
{{nameCamel}}.validate() // throws SchemaFieldValidationError
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { fieldClassMap } from '@sprucelabs/schema'
|
|
2
|
-
|
|
3
|
-
{{#each fieldTemplateItems}}
|
|
4
|
-
{{#if isLocal}}
|
|
5
|
-
import {{className}} from '{{package}}'
|
|
6
|
-
{{/if}}
|
|
7
|
-
{{/each}}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
{{#each fieldTemplateItems}}
|
|
11
|
-
{{#if isLocal}}
|
|
12
|
-
fieldClassMap.{{camelType}} = {{className}}
|
|
13
|
-
{{/if}}
|
|
14
|
-
{{/each}}
|
|
15
|
-
|
|
16
|
-
export default fieldClassMap
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { FieldDefinitions, FieldDefinitionMap, FieldValueTypeGeneratorMap, FieldMap } from '@sprucelabs/schema'
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { {{nameCamel}}Schema as default } from '{{importFrom}}'
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
{{#if field.label}}label: '{{{escape field.label}}}',
|
|
2
|
-
{{/if}}type: {{{fieldTypeEnum field}}}{{#if field.keyName}},
|
|
3
|
-
keyName: '{{{escape field.keyName}}}'{{/if}}{{#if field.isPrivate}},
|
|
4
|
-
isPrivate: true{{/if}}{{#if field.isRequired}},
|
|
5
|
-
isRequired: true{{/if}}{{#if field.hint}},
|
|
6
|
-
hint: '{{{escape field.hint}}}'{{/if}}{{#if (isDefined field.value)}},
|
|
7
|
-
value: {{{json field.value}}}{{/if}}{{#if (isDefined field.defaultValue)}},
|
|
8
|
-
defaultValue: {{{json field.defaultValue}}}{{/if}}{{#if field.isArray}},
|
|
9
|
-
isArray: true{{/if}}{{#if (isDefined field.minArrayLength)}},
|
|
10
|
-
minArrayLength: {{field.minArrayLength}}{{/if}}{{#if field.description}},
|
|
11
|
-
description: '{{{escape field.description}}}'{{/if}},
|
|
12
|
-
options: {{{fieldDefinitionOptions namespace schemaNameCamel schema.version fieldName field renderAs}}}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
id: '{{{escape schema.id}}}',{{#if schema.version}}
|
|
2
|
-
version: '{{{escape schema.version}}}',{{/if}}{{#if namespace}}
|
|
3
|
-
namespace: '{{{escape namespace}}}',{{/if}}
|
|
4
|
-
name: '{{{escape schema.name}}}',{{#if schema.importsWhenRemote}}
|
|
5
|
-
importsWhenRemote: [{{#each schema.importsWhenRemote}}'{{{escape this}}}',{{/each}}],{{/if}}{{#if schema.moduleToImportFromWhenRemote}}
|
|
6
|
-
moduleToImportFromWhenRemote: '{{{escape schema.moduleToImportFromWhenRemote}}}',{{/if}}{{#if schema.description}}
|
|
7
|
-
description: '{{{escape schema.description}}}',{{/if}}{{#if schema.typeSuffix}}
|
|
8
|
-
typeSuffix: '{{{escape schema.typeSuffix}}}',{{/if}}{{#if schema.dynamicFieldSignature}}
|
|
9
|
-
dynamicFieldSignature: {
|
|
10
|
-
{{> fieldDefinitionBody namespace=namespace schemaNameCamel=nameCamel schema=schema fieldName="__dynamicFieldSignature" field=schema.dynamicFieldSignature renderAs=renderAs}}
|
|
11
|
-
},{{/if}}{{#if schema.fields}}
|
|
12
|
-
fields: {
|
|
13
|
-
{{#each schema.fields}}
|
|
14
|
-
/** {{{label}}}.{{#if hint}} {{{hint}}}{{/if}} */
|
|
15
|
-
'{{@key}}': {
|
|
16
|
-
{{> fieldDefinitionBody namespace=../namespace schemaNameCamel=../nameCamel schema=../schema fieldName=@key field=this renderAs=../renderAs }}
|
|
17
|
-
},
|
|
18
|
-
{{/each}}
|
|
19
|
-
}
|
|
20
|
-
{{/if}}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{{#if schema.dynamicFieldSignature }}
|
|
2
|
-
/** {{schema.dynamicFieldSignature.label}}.{{#if schema.dynamicFieldSignature.hint}} {{schema.dynamicFieldSignature.hint}}{{/if}} */
|
|
3
|
-
[{{schema.dynamicFieldSignature.keyName}}:string]: {{{valueTypeLiteral namespace nameCamel schema.version "__dynamicFieldSignature" renderAs }}}{{#unless schema.dynamicFieldSignature.isRequired}}| undefined | null{{/unless}}{{/if}}
|
|
4
|
-
{{#each schema.fields}}
|
|
5
|
-
{{#if (or label hint) }}/** {{{label}}}.{{#if hint}} {{{hint}}}{{/if}} */{{/if}}
|
|
6
|
-
'{{@key}}'{{#unless isRequired}}?{{/unless}}: {{{valueTypeLiteral ../namespace ../nameCamel ../schema.version @key ../renderAs }}}{{#unless isRequired}} | undefined | null{{/unless}}
|
|
7
|
-
{{/each}}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import fs from 'fs'
|
|
2
|
-
import pathUtil from 'path'
|
|
3
|
-
import globby from '@sprucelabs/globby'
|
|
4
|
-
import { SchemaError } from '@sprucelabs/schema'
|
|
5
|
-
import {
|
|
6
|
-
SchemaHealthCheckItem,
|
|
7
|
-
SkillFeature,
|
|
8
|
-
Skill,
|
|
9
|
-
diskUtil,
|
|
10
|
-
HASH_SPRUCE_DIR_NAME,
|
|
11
|
-
BootCallback,
|
|
12
|
-
} from '@sprucelabs/spruce-skill-utils'
|
|
13
|
-
|
|
14
|
-
class SchemaFeature implements SkillFeature {
|
|
15
|
-
private skill: Skill
|
|
16
|
-
private _isBooted = false
|
|
17
|
-
private bootHandler?: BootCallback
|
|
18
|
-
|
|
19
|
-
public constructor(skill: Skill) {
|
|
20
|
-
this.skill = skill
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
public onBoot(cb: BootCallback) {
|
|
24
|
-
this.bootHandler = cb
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
public execute = async () => {
|
|
28
|
-
if (process.env.SHOULD_VALIDATE_SCHEMAS_ON_BOOT !== 'false') {
|
|
29
|
-
await this.loadSchemas()
|
|
30
|
-
}
|
|
31
|
-
this._isBooted = true
|
|
32
|
-
void this.bootHandler?.()
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
public checkHealth = async () => {
|
|
36
|
-
const schemas = await this.loadSchemas()
|
|
37
|
-
|
|
38
|
-
const health: SchemaHealthCheckItem = {
|
|
39
|
-
status: 'passed',
|
|
40
|
-
schemas,
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return health
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
public async destroy() {
|
|
47
|
-
this._isBooted = false
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
public isInstalled = async () => {
|
|
51
|
-
const schemaPath = pathUtil.join(
|
|
52
|
-
this.skill.rootDir,
|
|
53
|
-
'node_modules',
|
|
54
|
-
'@sprucelabs/schema'
|
|
55
|
-
)
|
|
56
|
-
|
|
57
|
-
const isSchemaInstalled = fs.existsSync(schemaPath)
|
|
58
|
-
|
|
59
|
-
return isSchemaInstalled
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
public isBooted() {
|
|
63
|
-
return this._isBooted
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
private async loadSchemas() {
|
|
67
|
-
const schemaFiles = await globby(
|
|
68
|
-
diskUtil.resolvePath(
|
|
69
|
-
this.skill.activeDir,
|
|
70
|
-
HASH_SPRUCE_DIR_NAME,
|
|
71
|
-
'schemas',
|
|
72
|
-
'**/*.schema.[t|j]s'
|
|
73
|
-
)
|
|
74
|
-
)
|
|
75
|
-
|
|
76
|
-
return schemaFiles.map((file) => {
|
|
77
|
-
try {
|
|
78
|
-
const schema = require(file).default
|
|
79
|
-
return {
|
|
80
|
-
id: schema.id,
|
|
81
|
-
name: schema.name,
|
|
82
|
-
version: schema.version,
|
|
83
|
-
namespace: schema.namespace ?? '***MISSING***',
|
|
84
|
-
description: schema.description,
|
|
85
|
-
}
|
|
86
|
-
} catch (err: any) {
|
|
87
|
-
throw new SchemaError({
|
|
88
|
-
//@ts-ignore
|
|
89
|
-
code: 'FAILED_LOADING_SCHEMA',
|
|
90
|
-
originalError: err,
|
|
91
|
-
friendlyMessage: `Error importing schema from: ${file}.`,
|
|
92
|
-
})
|
|
93
|
-
}
|
|
94
|
-
})
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
export default (skill: Skill) => {
|
|
99
|
-
const feature = new SchemaFeature(skill)
|
|
100
|
-
skill.registerFeature('schema', feature)
|
|
101
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
{{#if registerBuiltSchemas}}import { SchemaRegistry } from '@sprucelabs/schema'{{/if}}
|
|
2
|
-
import { {{globalSchemaNamespace}} } from '{{typesFile}}'
|
|
3
|
-
|
|
4
|
-
{{{ importRelatedSchemas schema }}}
|
|
5
|
-
|
|
6
|
-
const {{nameCamel}}Schema: {{globalSchemaNamespace}}.{{namespace}}{{#if schema.version}}.{{schema.version}}{{/if}}.{{namePascal}}Schema = {
|
|
7
|
-
{{> schemaBody nameCamel=nameCamel namespace=namespace schema=schema renderAs="value" }}
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
{{#if registerBuiltSchemas}}SchemaRegistry.getInstance().trackSchema({{nameCamel}}Schema){{/if}}
|
|
11
|
-
|
|
12
|
-
export default {{nameCamel}}Schema
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-namespace */
|
|
2
|
-
/* eslint-disable no-redeclare */
|
|
3
|
-
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
4
|
-
/* eslint-disable import/order */
|
|
5
|
-
|
|
6
|
-
export { SpruceSchemas } from '@sprucelabs/spruce-core-schemas/build/.spruce/schemas/core.schemas.types'
|
|
7
|
-
|
|
8
|
-
{{#if (hasNonCoreSchemaTemplateItems schemaTemplateItems)}}
|
|
9
|
-
import { default as SchemaEntity } from '@sprucelabs/schema'
|
|
10
|
-
{{/if}}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
{{#if (hasNonCoreSchemaTemplateItems schemaTemplateItems)}}
|
|
14
|
-
|
|
15
|
-
{{#each imports}}
|
|
16
|
-
import * as {{importAs}} from '{{package}}'
|
|
17
|
-
{{/each}}
|
|
18
|
-
|
|
19
|
-
{{#each schemaImports}}
|
|
20
|
-
{{{this}}}
|
|
21
|
-
{{/each}}
|
|
22
|
-
|
|
23
|
-
declare module '@sprucelabs/spruce-core-schemas/build/.spruce/schemas/core.schemas.types' {
|
|
24
|
-
|
|
25
|
-
{{#each schemaTemplateItems}}
|
|
26
|
-
|
|
27
|
-
namespace {{../globalSchemaNamespace}}.{{namespace}}{{#if (isDefined schema.version)}}.{{schema.version}}{{/if}} {
|
|
28
|
-
|
|
29
|
-
{{#if schema.description}}/** {{schema.description}} */{{/if}}
|
|
30
|
-
interface {{namePascal}}{{{schema.typeSuffix}}} {
|
|
31
|
-
{{> schemaValues schema=schema renderAs="type" }}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
interface {{namePascal}}Schema extends SpruceSchema.Schema {
|
|
35
|
-
{{> schemaBody namespace=namespace schema=schema renderAs="type" }}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
interface {{namePascal}}Entity extends SchemaEntity<{{../globalSchemaNamespace}}.{{namespace}}{{#if (isDefined schema.version)}}.{{schema.version}}{{/if}}.{{namePascal}}Schema> {}
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
{{/each}}
|
|
43
|
-
}
|
|
44
|
-
{{/if}}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { FieldDefinitions } from '#spruce/schemas/fields/fields.types'
|
|
2
|
-
|
|
3
|
-
import fieldClassMap from '#spruce/schemas/fields/fieldClassMap'
|
|
4
|
-
import { TemplateRenderAs, FieldTemplateDetailOptions } from '@sprucelabs/schema'
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
{{#each imports}}
|
|
8
|
-
// @ts-ignore
|
|
9
|
-
import * as {{importAs}} from '{{package}}'
|
|
10
|
-
{{/each}}
|
|
11
|
-
|
|
12
|
-
const schemaTemplateItems = {{{json schemaTemplateItems}}}
|
|
13
|
-
// @ts-ignore
|
|
14
|
-
const generateTypeLiteral = (definition: FieldDefinitions, renderAs: TemplateRenderAs, importAs: string) => {
|
|
15
|
-
const options: FieldTemplateDetailOptions<FieldDefinitions> = {
|
|
16
|
-
language: 'ts',
|
|
17
|
-
// @ts-ignore
|
|
18
|
-
templateItems: schemaTemplateItems,
|
|
19
|
-
globalNamespace: '{{globalSchemaNamespace}}',
|
|
20
|
-
definition,
|
|
21
|
-
importAs,
|
|
22
|
-
renderAs
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
const FieldClass = fieldClassMap[definition.type]
|
|
26
|
-
const details = FieldClass.generateTemplateDetails(
|
|
27
|
-
options as any
|
|
28
|
-
)
|
|
29
|
-
|
|
30
|
-
return details.valueType
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
const valueTypes = {
|
|
35
|
-
{{#each schemaTemplatesByNamespaceAndName}}
|
|
36
|
-
"{{@key}}": {
|
|
37
|
-
{{#each this}}
|
|
38
|
-
"{{@key}}": {
|
|
39
|
-
{{#each this}}
|
|
40
|
-
"{{schema.version}}{{#unless schema.version}}{{../../../SCHEMA_VERSION_FALLBACK}}{{/unless}}":{
|
|
41
|
-
{{#if schema.dynamicFieldSignature}}
|
|
42
|
-
__dynamicFieldSignature: {
|
|
43
|
-
valueTypes: {
|
|
44
|
-
{{#each ../../../rendersAs}}
|
|
45
|
-
{{this}}: {{{ valueTypeGenerator ../schema.dynamicFieldSignature this 'generateTypeLiteral'}}},
|
|
46
|
-
{{/each}}
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
{{/if}}
|
|
50
|
-
{{#each schema.fields}}
|
|
51
|
-
"{{@key}}": {
|
|
52
|
-
valueTypes: {
|
|
53
|
-
{{#each ../../../../rendersAs}}
|
|
54
|
-
{{this}}: {{{ valueTypeGenerator ../this this 'generateTypeLiteral'}}},
|
|
55
|
-
{{/each}}
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
{{/each}}
|
|
59
|
-
},
|
|
60
|
-
{{/each}}
|
|
61
|
-
},
|
|
62
|
-
{{/each}}
|
|
63
|
-
},
|
|
64
|
-
{{/each}}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
export default valueTypes
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { AbstractStore, UniversalStoreOptions, PrepareOptions, PrepareResults } from '@sprucelabs/data-stores'
|
|
2
|
-
import { buildSchema, dropFields, makeFieldsOptional, SchemaValues, SchemaFieldNames } from '@sprucelabs/schema'
|
|
3
|
-
|
|
4
|
-
export default class {{namePascalPlural}}Store extends AbstractStore<
|
|
5
|
-
FullSchema,
|
|
6
|
-
CreateSchema,
|
|
7
|
-
UpdateSchema,
|
|
8
|
-
DatabaseSchema
|
|
9
|
-
> {
|
|
10
|
-
public name = '{{namePascalPlural}}'
|
|
11
|
-
protected collectionName = '{{nameSnakePlural}}'
|
|
12
|
-
|
|
13
|
-
protected createSchema = createSchema
|
|
14
|
-
protected updateSchema = updateSchema
|
|
15
|
-
protected fullSchema = fullSchema
|
|
16
|
-
protected databaseSchema = databaseSchema
|
|
17
|
-
|
|
18
|
-
public static Store(options: {{namePascal}}StoreOptions & UniversalStoreOptions) {
|
|
19
|
-
return new this(options.db)
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
protected async willCreate(
|
|
23
|
-
values: Create{{namePascal}}
|
|
24
|
-
): Promise<Omit<Database{{namePascal}}, 'id'>> {
|
|
25
|
-
return values
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
protected async willUpdate(values: Update{{namePascal}}) {
|
|
29
|
-
return values as Partial<Database{{namePascal}}>
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
protected async prepareRecord<
|
|
34
|
-
IncludePrivateFields extends boolean,
|
|
35
|
-
F extends SchemaFieldNames<FullSchema> = SchemaFieldNames<FullSchema>
|
|
36
|
-
>(
|
|
37
|
-
record: Database{{namePascal}},
|
|
38
|
-
_options?: PrepareOptions<IncludePrivateFields, FullSchema, F>
|
|
39
|
-
) {
|
|
40
|
-
return record as PrepareResults<FullSchema, IncludePrivateFields>
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// The structure of the data you'll be returning from finds
|
|
46
|
-
const fullSchema = buildSchema({
|
|
47
|
-
id: 'full{{namePascal}}',
|
|
48
|
-
fields: {
|
|
49
|
-
id: {
|
|
50
|
-
type: 'id',
|
|
51
|
-
isRequired: true,
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
})
|
|
55
|
-
|
|
56
|
-
// The values you will accept when creating a record
|
|
57
|
-
const createSchema = buildSchema({
|
|
58
|
-
id: 'create{{namePascal}}',
|
|
59
|
-
fields: {
|
|
60
|
-
...dropFields(fullSchema.fields, ['id'])
|
|
61
|
-
},
|
|
62
|
-
})
|
|
63
|
-
|
|
64
|
-
// The values you will accept when updating a record
|
|
65
|
-
const updateSchema = buildSchema({
|
|
66
|
-
id: 'update{{namePascal}}',
|
|
67
|
-
fields: {
|
|
68
|
-
...makeFieldsOptional(dropFields(fullSchema.fields, ['id']))
|
|
69
|
-
},
|
|
70
|
-
})
|
|
71
|
-
|
|
72
|
-
// The values you will actually save to the databases (in this case, makes id required)
|
|
73
|
-
const databaseSchema = buildSchema({
|
|
74
|
-
id: 'database{{namePascal}}',
|
|
75
|
-
fields: {
|
|
76
|
-
...fullSchema.fields,
|
|
77
|
-
id: {
|
|
78
|
-
type: 'id',
|
|
79
|
-
isRequired: true
|
|
80
|
-
}
|
|
81
|
-
},
|
|
82
|
-
})
|
|
83
|
-
|
|
84
|
-
type FullSchema = typeof fullSchema
|
|
85
|
-
type CreateSchema = typeof createSchema
|
|
86
|
-
type UpdateSchema = typeof updateSchema
|
|
87
|
-
type DatabaseSchema = typeof databaseSchema
|
|
88
|
-
|
|
89
|
-
// type {{namePascal}} = SchemaValues<FullSchema>
|
|
90
|
-
type Create{{namePascal}} = SchemaValues<CreateSchema>
|
|
91
|
-
type Update{{namePascal}} = SchemaValues<UpdateSchema>
|
|
92
|
-
type Database{{namePascal}} = SchemaValues<DatabaseSchema>
|
|
93
|
-
// type Query{{namePascal}} = Partial<{{namePascal}}>
|
|
94
|
-
|
|
95
|
-
type {{namePascal}}StoreOptions = UniversalStoreOptions
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { plugin as default } from '@sprucelabs/spruce-store-plugin'
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{{#each stores}}
|
|
2
|
-
import {{namePascalPlural}}Store from '{{path}}'
|
|
3
|
-
{{/each}}
|
|
4
|
-
|
|
5
|
-
declare module '@sprucelabs/data-stores/build/types/stores.types' {
|
|
6
|
-
interface StoreMap {
|
|
7
|
-
{{#each stores}}
|
|
8
|
-
{{nameCamelPlural}}: {{namePascalPlural}}Store
|
|
9
|
-
{{/each}}
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
interface StoreOptionsMap {
|
|
13
|
-
{{#each stores}}
|
|
14
|
-
{{nameCamelPlural}}: Omit<Parameters<typeof {{namePascalPlural}}Store['Store']>[0], keyof UniversalStoreOptions>
|
|
15
|
-
{{/each}}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
{{#if isTestFixturesInstalled}}import { fake } from '@sprucelabs/spruce-test-fixtures'{{/if}}
|
|
2
|
-
import {{#unless (isDefined parentTestClass)}}AbstractSpruceTest, {{/unless}}{ test, assert } from '@sprucelabs/test-utils'
|
|
3
|
-
{{#if (isDefined parentTestClass)}}import {{#if parentTestClass.isDefaultExport}}{{parentTestClass.name}}{{else}}{ {{parentTestClass.name}} }{{/if}} from '{{parentTestClass.importPath}}'
|
|
4
|
-
{{/if}}
|
|
5
|
-
|
|
6
|
-
{{#if isTestFixturesInstalled}}@fake.login(){{/if}}
|
|
7
|
-
export default class {{namePascal}}Test extends {{#if (isDefined parentTestClass)}}{{parentTestClass.name}}{{else}}AbstractSpruceTest{{/if}} {
|
|
8
|
-
@test()
|
|
9
|
-
protected static async canCreate{{namePascal}}() {
|
|
10
|
-
const {{nameCamel}} = new {{namePascal}}()
|
|
11
|
-
assert.isTruthy({{nameCamel}})
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
@test()
|
|
15
|
-
protected static async yourNextTest() {
|
|
16
|
-
assert.isTrue(false)
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
class {{namePascal}} {}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { AbstractAppController, AppControllerLoadOptions } from '@sprucelabs/heartwood-view-controllers'
|
|
2
|
-
|
|
3
|
-
export default class {{ namespacePascal }}AppController extends AbstractAppController {
|
|
4
|
-
public static id = "{{ id }}"
|
|
5
|
-
public async load(_options: AppControllerLoadOptions) {}
|
|
6
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
AbstractSkillViewController,
|
|
3
|
-
ViewControllerOptions,
|
|
4
|
-
SkillView,
|
|
5
|
-
} from '@sprucelabs/heartwood-view-controllers'
|
|
6
|
-
|
|
7
|
-
export default class {{namePascal}}SkillViewController extends AbstractSkillViewController {
|
|
8
|
-
public static id = '{{nameKebab}}'
|
|
9
|
-
|
|
10
|
-
public constructor(options: ViewControllerOptions) {
|
|
11
|
-
super(options)
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
public render(): SkillView {
|
|
15
|
-
return {
|
|
16
|
-
layouts: [
|
|
17
|
-
{
|
|
18
|
-
cards: [],
|
|
19
|
-
},
|
|
20
|
-
],
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
AbstractViewController,
|
|
3
|
-
ViewControllerOptions,
|
|
4
|
-
{{viewModel}},
|
|
5
|
-
} from '@sprucelabs/heartwood-view-controllers'
|
|
6
|
-
|
|
7
|
-
export default class {{namePascal}}ViewController extends AbstractViewController<{{viewModel}}> {
|
|
8
|
-
public static id = '{{nameKebab}}'
|
|
9
|
-
|
|
10
|
-
public constructor(options: ViewControllerOptions) {
|
|
11
|
-
super(options)
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
public render() {
|
|
15
|
-
return {}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { SpruceSchemas } from '@sprucelabs/spruce-core-schemas'
|
|
2
|
-
import '#spruce/schemas/schemas.types'
|
|
3
|
-
|
|
4
|
-
// The Theme Skill (https://theme.spruce.bot/) is available to help you build your theme!
|
|
5
|
-
|
|
6
|
-
const theme: SpruceSchemas.HeartwoodViewControllers.v2021_02_11.ThemeProps = {
|
|
7
|
-
/**
|
|
8
|
-
************************************
|
|
9
|
-
* Background
|
|
10
|
-
************************************
|
|
11
|
-
*/
|
|
12
|
-
color1: '#ffffff',
|
|
13
|
-
color1Inverse: '#0f4c8a',
|
|
14
|
-
color1InverseGradient: 'linear-gradient(to left, #24c6dc, #514a9d)',
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
************************************
|
|
18
|
-
* Cards
|
|
19
|
-
************************************
|
|
20
|
-
*/
|
|
21
|
-
color2: 'black',
|
|
22
|
-
color2Transparent: 'rgba(0,0,0,0.4)',
|
|
23
|
-
color2Inverse: 'white',
|
|
24
|
-
color2InverseTransparent: 'rgba(255,255,255,0.9)',
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
************************************
|
|
28
|
-
* Headers
|
|
29
|
-
************************************
|
|
30
|
-
*/
|
|
31
|
-
color3: 'grey',
|
|
32
|
-
color3Inverse: 'transparent',
|
|
33
|
-
color3Compliment: 'grey',
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
************************************
|
|
37
|
-
* Buttons
|
|
38
|
-
************************************
|
|
39
|
-
*/
|
|
40
|
-
color4: '#3a3a3a',
|
|
41
|
-
color4Inverse: '#DCE0E7',
|
|
42
|
-
color4Compliment: '#DCE0E4',
|
|
43
|
-
color4ComplimentTransparent: 'rgba(0,0,0,0.2)',
|
|
44
|
-
color4InverseCompliment: '#c7c7c7',
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
************************************
|
|
48
|
-
* Control bar
|
|
49
|
-
************************************
|
|
50
|
-
*/
|
|
51
|
-
controlBarColor1: 'black',
|
|
52
|
-
controlBarColor2: 'white',
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
************************************
|
|
56
|
-
* Tool belt
|
|
57
|
-
************************************
|
|
58
|
-
*/
|
|
59
|
-
toolBeltColor2: 'white',
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
************************************
|
|
63
|
-
* Errors
|
|
64
|
-
************************************
|
|
65
|
-
*/
|
|
66
|
-
errorColor1: '#fff',
|
|
67
|
-
errorColor1Inverse: '#FF3326',
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export default theme
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { plugin as default } from '@sprucelabs/spruce-view-plugin'
|