@baseplate-dev/project-builder-server 0.6.2 → 0.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +34 -0
- package/LICENSE +114 -123
- package/dist/actions/__tests__/action-test-utils.d.ts +7 -1
- package/dist/actions/__tests__/action-test-utils.d.ts.map +1 -1
- package/dist/actions/__tests__/action-test-utils.js +9 -0
- package/dist/actions/__tests__/action-test-utils.js.map +1 -1
- package/dist/actions/definition/apply-fix.action.d.ts +19 -0
- package/dist/actions/definition/apply-fix.action.d.ts.map +1 -0
- package/dist/actions/definition/apply-fix.action.js +53 -0
- package/dist/actions/definition/apply-fix.action.js.map +1 -0
- package/dist/actions/definition/commit-draft.action.d.ts +2 -0
- package/dist/actions/definition/commit-draft.action.d.ts.map +1 -1
- package/dist/actions/definition/commit-draft.action.js +12 -11
- package/dist/actions/definition/commit-draft.action.js.map +1 -1
- package/dist/actions/definition/configure-plugin.action.d.ts +20 -0
- package/dist/actions/definition/configure-plugin.action.d.ts.map +1 -0
- package/dist/actions/definition/configure-plugin.action.js +57 -0
- package/dist/actions/definition/configure-plugin.action.js.map +1 -0
- package/dist/actions/definition/disable-plugin.action.d.ts +19 -0
- package/dist/actions/definition/disable-plugin.action.d.ts.map +1 -0
- package/dist/actions/definition/disable-plugin.action.js +46 -0
- package/dist/actions/definition/disable-plugin.action.js.map +1 -0
- package/dist/actions/definition/entity-type-blacklist.d.ts +14 -0
- package/dist/actions/definition/entity-type-blacklist.d.ts.map +1 -0
- package/dist/actions/definition/entity-type-blacklist.js +19 -0
- package/dist/actions/definition/entity-type-blacklist.js.map +1 -0
- package/dist/actions/definition/index.d.ts +5 -0
- package/dist/actions/definition/index.d.ts.map +1 -1
- package/dist/actions/definition/index.js +5 -0
- package/dist/actions/definition/index.js.map +1 -1
- package/dist/actions/definition/list-entity-types.action.d.ts.map +1 -1
- package/dist/actions/definition/list-entity-types.action.js +4 -1
- package/dist/actions/definition/list-entity-types.action.js.map +1 -1
- package/dist/actions/definition/list-plugins.action.d.ts +16 -0
- package/dist/actions/definition/list-plugins.action.d.ts.map +1 -0
- package/dist/actions/definition/list-plugins.action.js +56 -0
- package/dist/actions/definition/list-plugins.action.js.map +1 -0
- package/dist/actions/definition/search-entities.action.d.ts +13 -0
- package/dist/actions/definition/search-entities.action.d.ts.map +1 -0
- package/dist/actions/definition/search-entities.action.js +55 -0
- package/dist/actions/definition/search-entities.action.js.map +1 -0
- package/dist/actions/definition/stage-create-entity.action.d.ts +2 -0
- package/dist/actions/definition/stage-create-entity.action.d.ts.map +1 -1
- package/dist/actions/definition/stage-create-entity.action.js +7 -18
- package/dist/actions/definition/stage-create-entity.action.js.map +1 -1
- package/dist/actions/definition/stage-delete-entity.action.d.ts +2 -0
- package/dist/actions/definition/stage-delete-entity.action.d.ts.map +1 -1
- package/dist/actions/definition/stage-delete-entity.action.js +7 -18
- package/dist/actions/definition/stage-delete-entity.action.js.map +1 -1
- package/dist/actions/definition/stage-update-entity.action.d.ts +2 -0
- package/dist/actions/definition/stage-update-entity.action.d.ts.map +1 -1
- package/dist/actions/definition/stage-update-entity.action.js +7 -18
- package/dist/actions/definition/stage-update-entity.action.js.map +1 -1
- package/dist/actions/definition/validate-draft.d.ts +56 -4
- package/dist/actions/definition/validate-draft.d.ts.map +1 -1
- package/dist/actions/definition/validate-draft.js +107 -6
- package/dist/actions/definition/validate-draft.js.map +1 -1
- package/dist/actions/registry.d.ts +46 -0
- package/dist/actions/registry.d.ts.map +1 -1
- package/dist/actions/registry.js +6 -1
- package/dist/actions/registry.js.map +1 -1
- package/dist/compiler/backend/authorizer-compiler.d.ts.map +1 -1
- package/dist/compiler/backend/authorizer-compiler.js +12 -4
- package/dist/compiler/backend/authorizer-compiler.js.map +1 -1
- package/dist/compiler/backend/backend-compiler.d.ts.map +1 -1
- package/dist/compiler/backend/backend-compiler.js +1 -0
- package/dist/compiler/backend/backend-compiler.js.map +1 -1
- package/dist/compiler/backend/fastify.d.ts.map +1 -1
- package/dist/compiler/backend/fastify.js +1 -4
- package/dist/compiler/backend/fastify.js.map +1 -1
- package/dist/compiler/backend/models.d.ts.map +1 -1
- package/dist/compiler/backend/models.js +6 -1
- package/dist/compiler/backend/models.js.map +1 -1
- package/dist/compiler/backend/query-filter-compiler.d.ts.map +1 -1
- package/dist/compiler/backend/query-filter-compiler.js +67 -11
- package/dist/compiler/backend/query-filter-compiler.js.map +1 -1
- package/dist/compiler/library/node-library-package-compiler.d.ts.map +1 -1
- package/dist/compiler/library/node-library-package-compiler.js +1 -0
- package/dist/compiler/library/node-library-package-compiler.js.map +1 -1
- package/dist/compiler/root/root-package-compiler.d.ts.map +1 -1
- package/dist/compiler/root/root-package-compiler.js +7 -2
- package/dist/compiler/root/root-package-compiler.js.map +1 -1
- package/dist/compiler/web/web-compiler.d.ts.map +1 -1
- package/dist/compiler/web/web-compiler.js +5 -6
- package/dist/compiler/web/web-compiler.js.map +1 -1
- package/dist/dev-server/mcp/fastify.js +1 -1
- package/dist/dev-server/mcp/fastify.js.map +1 -1
- package/dist/sync/sync-metadata-service.d.ts.map +1 -1
- package/dist/sync/sync-metadata-service.js +6 -3
- package/dist/sync/sync-metadata-service.js.map +1 -1
- package/dist/templates/utils/resolve-generator.d.ts.map +1 -1
- package/dist/templates/utils/resolve-generator.js +2 -5
- package/dist/templates/utils/resolve-generator.js.map +1 -1
- package/package.json +12 -11
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const configurePluginAction: import("#src/actions/types.js").ServiceAction<z.ZodObject<{
|
|
3
|
+
project: z.ZodString;
|
|
4
|
+
pluginKey: z.ZodString;
|
|
5
|
+
config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
6
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
7
|
+
message: z.ZodString;
|
|
8
|
+
issues: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
9
|
+
message: z.ZodString;
|
|
10
|
+
entityId: z.ZodOptional<z.ZodString>;
|
|
11
|
+
path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
12
|
+
severity: z.ZodEnum<{
|
|
13
|
+
error: "error";
|
|
14
|
+
warning: "warning";
|
|
15
|
+
}>;
|
|
16
|
+
fixLabel: z.ZodOptional<z.ZodString>;
|
|
17
|
+
fixId: z.ZodOptional<z.ZodString>;
|
|
18
|
+
}, z.core.$strip>>>;
|
|
19
|
+
}, z.core.$strip>>;
|
|
20
|
+
//# sourceMappingURL=configure-plugin.action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure-plugin.action.d.ts","sourceRoot":"","sources":["../../../src/actions/definition/configure-plugin.action.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA2CxB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;kBAqDhC,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { PluginUtils, ProjectDefinitionContainer, serializeSchema, } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
import { produce } from 'immer';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { createServiceAction } from '#src/actions/types.js';
|
|
5
|
+
import { getOrCreateDraftSession } from './draft-session.js';
|
|
6
|
+
import { definitionIssueSchema, mapIssueToOutput, validateAndSaveDraft, writeIssuesCliOutput, } from './validate-draft.js';
|
|
7
|
+
const configurePluginInputSchema = z.object({
|
|
8
|
+
project: z.string().describe('The name or ID of the project.'),
|
|
9
|
+
pluginKey: z.string().describe('The plugin key to enable or configure.'),
|
|
10
|
+
config: z
|
|
11
|
+
.record(z.string(), z.unknown())
|
|
12
|
+
.optional()
|
|
13
|
+
.describe('Optional plugin configuration. Defaults to empty config.'),
|
|
14
|
+
});
|
|
15
|
+
const configurePluginOutputSchema = z.object({
|
|
16
|
+
message: z.string().describe('A summary of the staged change.'),
|
|
17
|
+
issues: z
|
|
18
|
+
.array(definitionIssueSchema)
|
|
19
|
+
.optional()
|
|
20
|
+
.describe('Definition issues found after staging.'),
|
|
21
|
+
});
|
|
22
|
+
function findPluginByKey(plugins, pluginKey) {
|
|
23
|
+
const plugin = plugins.find((p) => p.key === pluginKey);
|
|
24
|
+
if (!plugin) {
|
|
25
|
+
const available = plugins.map((p) => p.key).join(', ');
|
|
26
|
+
throw new Error(`Plugin "${pluginKey}" not found. Available plugins: ${available}`);
|
|
27
|
+
}
|
|
28
|
+
return plugin;
|
|
29
|
+
}
|
|
30
|
+
export const configurePluginAction = createServiceAction({
|
|
31
|
+
name: 'configure-plugin',
|
|
32
|
+
title: 'Configure Plugin',
|
|
33
|
+
description: 'Enable a plugin or update its configuration in the draft session. Changes are not persisted until commit-draft is called.',
|
|
34
|
+
inputSchema: configurePluginInputSchema,
|
|
35
|
+
outputSchema: configurePluginOutputSchema,
|
|
36
|
+
handler: async (input, context) => {
|
|
37
|
+
const { session, parserContext, projectDirectory } = await getOrCreateDraftSession(input.project, context);
|
|
38
|
+
const pluginMetadata = findPluginByKey(context.plugins, input.pluginKey);
|
|
39
|
+
const container = ProjectDefinitionContainer.fromSerializedConfig(session.draftDefinition, parserContext);
|
|
40
|
+
const pluginConfig = input.config ?? {};
|
|
41
|
+
// Apply setPluginConfig via produce
|
|
42
|
+
const newDefinition = produce((draft) => {
|
|
43
|
+
PluginUtils.setPluginConfig(draft, pluginMetadata, pluginConfig, container);
|
|
44
|
+
})(container.definition);
|
|
45
|
+
// Serialize back to name-based format
|
|
46
|
+
const serializedDef = serializeSchema(container.schema, newDefinition);
|
|
47
|
+
const { warnings } = await validateAndSaveDraft(serializedDef, parserContext, session, projectDirectory);
|
|
48
|
+
const isNew = PluginUtils.byKey(container.definition, input.pluginKey) == null;
|
|
49
|
+
const action = isNew ? 'Enabled' : 'Updated configuration for';
|
|
50
|
+
return {
|
|
51
|
+
message: `${action} plugin "${pluginMetadata.displayName}". Use commit-draft to persist.`,
|
|
52
|
+
issues: warnings.length > 0 ? warnings.map(mapIssueToOutput) : undefined,
|
|
53
|
+
};
|
|
54
|
+
},
|
|
55
|
+
writeCliOutput: writeIssuesCliOutput,
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=configure-plugin.action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure-plugin.action.js","sourceRoot":"","sources":["../../../src/actions/definition/configure-plugin.action.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const disablePluginAction: import("#src/actions/types.js").ServiceAction<z.ZodObject<{
|
|
3
|
+
project: z.ZodString;
|
|
4
|
+
pluginKey: z.ZodString;
|
|
5
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
6
|
+
message: z.ZodString;
|
|
7
|
+
issues: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
8
|
+
message: z.ZodString;
|
|
9
|
+
entityId: z.ZodOptional<z.ZodString>;
|
|
10
|
+
path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
11
|
+
severity: z.ZodEnum<{
|
|
12
|
+
error: "error";
|
|
13
|
+
warning: "warning";
|
|
14
|
+
}>;
|
|
15
|
+
fixLabel: z.ZodOptional<z.ZodString>;
|
|
16
|
+
fixId: z.ZodOptional<z.ZodString>;
|
|
17
|
+
}, z.core.$strip>>>;
|
|
18
|
+
}, z.core.$strip>>;
|
|
19
|
+
//# sourceMappingURL=disable-plugin.action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disable-plugin.action.d.ts","sourceRoot":"","sources":["../../../src/actions/definition/disable-plugin.action.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyBxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;kBAiD9B,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { PluginUtils, ProjectDefinitionContainer, serializeSchema, } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
import { produce } from 'immer';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { createServiceAction } from '#src/actions/types.js';
|
|
5
|
+
import { getOrCreateDraftSession } from './draft-session.js';
|
|
6
|
+
import { definitionIssueSchema, mapIssueToOutput, validateAndSaveDraft, writeIssuesCliOutput, } from './validate-draft.js';
|
|
7
|
+
const disablePluginInputSchema = z.object({
|
|
8
|
+
project: z.string().describe('The name or ID of the project.'),
|
|
9
|
+
pluginKey: z.string().describe('The plugin key to disable.'),
|
|
10
|
+
});
|
|
11
|
+
const disablePluginOutputSchema = z.object({
|
|
12
|
+
message: z.string().describe('A summary of the staged change.'),
|
|
13
|
+
issues: z
|
|
14
|
+
.array(definitionIssueSchema)
|
|
15
|
+
.optional()
|
|
16
|
+
.describe('Definition issues found after staging.'),
|
|
17
|
+
});
|
|
18
|
+
export const disablePluginAction = createServiceAction({
|
|
19
|
+
name: 'disable-plugin',
|
|
20
|
+
title: 'Disable Plugin',
|
|
21
|
+
description: 'Disable a plugin in the draft session. Also disables any plugins managed by this plugin. Changes are not persisted until commit-draft is called.',
|
|
22
|
+
inputSchema: disablePluginInputSchema,
|
|
23
|
+
outputSchema: disablePluginOutputSchema,
|
|
24
|
+
handler: async (input, context) => {
|
|
25
|
+
const { session, parserContext, projectDirectory } = await getOrCreateDraftSession(input.project, context);
|
|
26
|
+
const container = ProjectDefinitionContainer.fromSerializedConfig(session.draftDefinition, parserContext);
|
|
27
|
+
// Verify the plugin is currently enabled
|
|
28
|
+
const existingPlugin = PluginUtils.byKey(container.definition, input.pluginKey);
|
|
29
|
+
if (!existingPlugin) {
|
|
30
|
+
throw new Error(`Plugin "${input.pluginKey}" is not currently enabled.`);
|
|
31
|
+
}
|
|
32
|
+
// Apply disablePlugin via produce
|
|
33
|
+
const newDefinition = produce((draft) => {
|
|
34
|
+
PluginUtils.disablePlugin(draft, input.pluginKey, parserContext);
|
|
35
|
+
})(container.definition);
|
|
36
|
+
// Serialize back to name-based format
|
|
37
|
+
const serializedDef = serializeSchema(container.schema, newDefinition);
|
|
38
|
+
const { warnings } = await validateAndSaveDraft(serializedDef, parserContext, session, projectDirectory);
|
|
39
|
+
return {
|
|
40
|
+
message: `Disabled plugin "${input.pluginKey}". Use commit-draft to persist.`,
|
|
41
|
+
issues: warnings.length > 0 ? warnings.map(mapIssueToOutput) : undefined,
|
|
42
|
+
};
|
|
43
|
+
},
|
|
44
|
+
writeCliOutput: writeIssuesCliOutput,
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=disable-plugin.action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disable-plugin.action.js","sourceRoot":"","sources":["../../../src/actions/definition/disable-plugin.action.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EACX,0BAA0B,EAC1B,eAAe,GAChB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAC9D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;CAC7D,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC/D,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,qBAAqB,CAAC;SAC5B,QAAQ,EAAE;SACV,QAAQ,CAAC,wCAAwC,CAAC;CACtD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;IACrD,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,gBAAgB;IACvB,WAAW,EACT,kJAAkJ;IACpJ,WAAW,EAAE,wBAAwB;IACrC,YAAY,EAAE,yBAAyB;IACvC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAChD,MAAM,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAExD,MAAM,SAAS,GAAG,0BAA0B,CAAC,oBAAoB,CAC/D,OAAO,CAAC,eAAe,EACvB,aAAa,CACd,CAAC;QAEF,yCAAyC;QACzC,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CACtC,SAAS,CAAC,UAAU,EACpB,KAAK,CAAC,SAAS,CAChB,CAAC;QACF,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC,SAAS,6BAA6B,CAAC,CAAC;QAC3E,CAAC;QAED,kCAAkC;QAClC,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,KAAwB,EAAE,EAAE;YACzD,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAEzB,sCAAsC;QACtC,MAAM,aAAa,GAAG,eAAe,CACnC,SAAS,CAAC,MAAM,EAChB,aAAa,CACa,CAAC;QAE7B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,oBAAoB,CAC7C,aAAa,EACb,aAAa,EACb,OAAO,EACP,gBAAgB,CACjB,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,oBAAoB,KAAK,CAAC,SAAS,iCAAiC;YAC7E,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS;SACzE,CAAC;IACJ,CAAC;IACD,cAAc,EAAE,oBAAoB;CACrC,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity types that are blocked from generic entity operations
|
|
3
|
+
* (list-entity-types, stage-create, stage-update, stage-delete).
|
|
4
|
+
*
|
|
5
|
+
* Plugins require special lifecycle handling (migrations, implementation
|
|
6
|
+
* store setup) and must be managed via the dedicated plugin actions
|
|
7
|
+
* (configure-plugin, disable-plugin).
|
|
8
|
+
*/
|
|
9
|
+
export declare const BLACKLISTED_ENTITY_TYPES: Set<string>;
|
|
10
|
+
/**
|
|
11
|
+
* Throws an error if the given entity type is blacklisted.
|
|
12
|
+
*/
|
|
13
|
+
export declare function assertEntityTypeNotBlacklisted(entityTypeName: string): void;
|
|
14
|
+
//# sourceMappingURL=entity-type-blacklist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-type-blacklist.d.ts","sourceRoot":"","sources":["../../../src/actions/definition/entity-type-blacklist.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,aAAsB,CAAC;AAE5D;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAO3E"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity types that are blocked from generic entity operations
|
|
3
|
+
* (list-entity-types, stage-create, stage-update, stage-delete).
|
|
4
|
+
*
|
|
5
|
+
* Plugins require special lifecycle handling (migrations, implementation
|
|
6
|
+
* store setup) and must be managed via the dedicated plugin actions
|
|
7
|
+
* (configure-plugin, disable-plugin).
|
|
8
|
+
*/
|
|
9
|
+
export const BLACKLISTED_ENTITY_TYPES = new Set(['plugin']);
|
|
10
|
+
/**
|
|
11
|
+
* Throws an error if the given entity type is blacklisted.
|
|
12
|
+
*/
|
|
13
|
+
export function assertEntityTypeNotBlacklisted(entityTypeName) {
|
|
14
|
+
if (BLACKLISTED_ENTITY_TYPES.has(entityTypeName)) {
|
|
15
|
+
throw new Error(`Entity type "${entityTypeName}" cannot be managed via generic entity operations. ` +
|
|
16
|
+
'Use configure-plugin or disable-plugin instead.');
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=entity-type-blacklist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-type-blacklist.js","sourceRoot":"","sources":["../../../src/actions/definition/entity-type-blacklist.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE5D;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAAC,cAAsB;IACnE,IAAI,wBAAwB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CACb,gBAAgB,cAAc,qDAAqD;YACjF,iDAAiD,CACpD,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
export { applyFixAction } from './apply-fix.action.js';
|
|
1
2
|
export { commitDraftAction } from './commit-draft.action.js';
|
|
3
|
+
export { configurePluginAction } from './configure-plugin.action.js';
|
|
4
|
+
export { disablePluginAction } from './disable-plugin.action.js';
|
|
2
5
|
export { discardDraftAction } from './discard-draft.action.js';
|
|
3
6
|
export { getEntitySchemaAction } from './get-entity-schema.action.js';
|
|
4
7
|
export { getEntityAction } from './get-entity.action.js';
|
|
5
8
|
export { listEntitiesAction } from './list-entities.action.js';
|
|
6
9
|
export { listEntityTypesAction } from './list-entity-types.action.js';
|
|
10
|
+
export { listPluginsAction } from './list-plugins.action.js';
|
|
11
|
+
export { searchEntitiesAction } from './search-entities.action.js';
|
|
7
12
|
export { showDraftAction } from './show-draft.action.js';
|
|
8
13
|
export { stageCreateEntityAction } from './stage-create-entity.action.js';
|
|
9
14
|
export { stageDeleteEntityAction } from './stage-delete-entity.action.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/actions/definition/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/actions/definition/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
export { applyFixAction } from './apply-fix.action.js';
|
|
1
2
|
export { commitDraftAction } from './commit-draft.action.js';
|
|
3
|
+
export { configurePluginAction } from './configure-plugin.action.js';
|
|
4
|
+
export { disablePluginAction } from './disable-plugin.action.js';
|
|
2
5
|
export { discardDraftAction } from './discard-draft.action.js';
|
|
3
6
|
export { getEntitySchemaAction } from './get-entity-schema.action.js';
|
|
4
7
|
export { getEntityAction } from './get-entity.action.js';
|
|
5
8
|
export { listEntitiesAction } from './list-entities.action.js';
|
|
6
9
|
export { listEntityTypesAction } from './list-entity-types.action.js';
|
|
10
|
+
export { listPluginsAction } from './list-plugins.action.js';
|
|
11
|
+
export { searchEntitiesAction } from './search-entities.action.js';
|
|
7
12
|
export { showDraftAction } from './show-draft.action.js';
|
|
8
13
|
export { stageCreateEntityAction } from './stage-create-entity.action.js';
|
|
9
14
|
export { stageDeleteEntityAction } from './stage-delete-entity.action.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/definition/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/definition/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-entity-types.action.d.ts","sourceRoot":"","sources":["../../../src/actions/definition/list-entity-types.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"list-entity-types.action.d.ts","sourceRoot":"","sources":["../../../src/actions/definition/list-entity-types.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyBxB,eAAO,MAAM,qBAAqB;;;;;;;kBA8BhC,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { createServiceAction } from '#src/actions/types.js';
|
|
3
|
+
import { BLACKLISTED_ENTITY_TYPES } from './entity-type-blacklist.js';
|
|
3
4
|
import { loadEntityServiceContext } from './load-entity-service-context.js';
|
|
4
5
|
const listEntityTypesInputSchema = z.object({
|
|
5
6
|
project: z.string().describe('The name or ID of the project.'),
|
|
@@ -32,7 +33,9 @@ export const listEntityTypesAction = createServiceAction({
|
|
|
32
33
|
},
|
|
33
34
|
handler: async (input, context) => {
|
|
34
35
|
const { entityContext } = await loadEntityServiceContext(input.project, context);
|
|
35
|
-
const entityTypes = [...entityContext.entityTypeMap.entries()]
|
|
36
|
+
const entityTypes = [...entityContext.entityTypeMap.entries()]
|
|
37
|
+
.filter(([name]) => !BLACKLISTED_ENTITY_TYPES.has(name))
|
|
38
|
+
.map(([name, metadata]) => ({
|
|
36
39
|
name,
|
|
37
40
|
parentEntityTypeName: metadata.parentEntityTypeName ?? null,
|
|
38
41
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-entity-types.action.js","sourceRoot":"","sources":["../../../src/actions/definition/list-entity-types.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;CAC/D,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAClD,oBAAoB,EAAE,CAAC;SACpB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8DAA8D,CAAC;CAC5E,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,WAAW,EAAE,CAAC;SACX,KAAK,CAAC,oBAAoB,CAAC;SAC3B,QAAQ,CAAC,qCAAqC,CAAC;CACnD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;IACvD,IAAI,EAAE,mBAAmB;IACzB,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EACT,gHAAgH;IAClH,WAAW,EAAE,0BAA0B;IACvC,YAAY,EAAE,2BAA2B;IACzC,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE;QACzB,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,oBAAoB;gBAC5C,CAAC,CAAC,aAAa,UAAU,CAAC,oBAAoB,GAAG;gBACjD,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,wBAAwB,CACtD,KAAK,CAAC,OAAO,EACb,OAAO,CACR,CAAC;QAEF,MAAM,WAAW,GAAG,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"list-entity-types.action.js","sourceRoot":"","sources":["../../../src/actions/definition/list-entity-types.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;CAC/D,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAClD,oBAAoB,EAAE,CAAC;SACpB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8DAA8D,CAAC;CAC5E,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,WAAW,EAAE,CAAC;SACX,KAAK,CAAC,oBAAoB,CAAC;SAC3B,QAAQ,CAAC,qCAAqC,CAAC;CACnD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;IACvD,IAAI,EAAE,mBAAmB;IACzB,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EACT,gHAAgH;IAClH,WAAW,EAAE,0BAA0B;IACvC,YAAY,EAAE,2BAA2B;IACzC,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE;QACzB,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,oBAAoB;gBAC5C,CAAC,CAAC,aAAa,UAAU,CAAC,oBAAoB,GAAG;gBACjD,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,wBAAwB,CACtD,KAAK,CAAC,OAAO,EACb,OAAO,CACR,CAAC;QAEF,MAAM,WAAW,GAAG,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;aAC3D,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACvD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1B,IAAI;YACJ,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB,IAAI,IAAI;SAC5D,CAAC,CAAC,CAAC;QAEN,OAAO,EAAE,WAAW,EAAE,CAAC;IACzB,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const listPluginsAction: import("#src/actions/types.js").ServiceAction<z.ZodObject<{
|
|
3
|
+
project: z.ZodString;
|
|
4
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
5
|
+
plugins: z.ZodArray<z.ZodObject<{
|
|
6
|
+
key: z.ZodString;
|
|
7
|
+
name: z.ZodString;
|
|
8
|
+
displayName: z.ZodString;
|
|
9
|
+
description: z.ZodString;
|
|
10
|
+
packageName: z.ZodString;
|
|
11
|
+
version: z.ZodString;
|
|
12
|
+
enabled: z.ZodBoolean;
|
|
13
|
+
managedBy: z.ZodOptional<z.ZodString>;
|
|
14
|
+
}, z.core.$strip>>;
|
|
15
|
+
}, z.core.$strip>>;
|
|
16
|
+
//# sourceMappingURL=list-plugins.action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-plugins.action.d.ts","sourceRoot":"","sources":["../../../src/actions/definition/list-plugins.action.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA8BxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;kBAuC5B,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { PluginUtils } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { createServiceAction } from '#src/actions/types.js';
|
|
4
|
+
import { loadEntityServiceContext } from './load-entity-service-context.js';
|
|
5
|
+
const listPluginsInputSchema = z.object({
|
|
6
|
+
project: z.string().describe('The name or ID of the project.'),
|
|
7
|
+
});
|
|
8
|
+
const pluginInfoSchema = z.object({
|
|
9
|
+
key: z.string().describe('The unique plugin key.'),
|
|
10
|
+
name: z.string().describe('The plugin name.'),
|
|
11
|
+
displayName: z.string().describe('Human-readable display name.'),
|
|
12
|
+
description: z.string().describe('Plugin description.'),
|
|
13
|
+
packageName: z.string().describe('The npm package name.'),
|
|
14
|
+
version: z.string().describe('The plugin version.'),
|
|
15
|
+
enabled: z.boolean().describe('Whether the plugin is currently enabled.'),
|
|
16
|
+
managedBy: z
|
|
17
|
+
.string()
|
|
18
|
+
.optional()
|
|
19
|
+
.describe('Fully qualified name of the plugin that manages this one, if any.'),
|
|
20
|
+
});
|
|
21
|
+
const listPluginsOutputSchema = z.object({
|
|
22
|
+
plugins: z.array(pluginInfoSchema).describe('Available plugins.'),
|
|
23
|
+
});
|
|
24
|
+
export const listPluginsAction = createServiceAction({
|
|
25
|
+
name: 'list-plugins',
|
|
26
|
+
title: 'List Plugins',
|
|
27
|
+
description: 'List available plugins and their enabled/disabled status in the project.',
|
|
28
|
+
inputSchema: listPluginsInputSchema,
|
|
29
|
+
outputSchema: listPluginsOutputSchema,
|
|
30
|
+
writeCliOutput: (output) => {
|
|
31
|
+
for (const plugin of output.plugins) {
|
|
32
|
+
const status = plugin.enabled ? '✓' : '○';
|
|
33
|
+
const managed = plugin.managedBy
|
|
34
|
+
? ` (managed by ${plugin.managedBy})`
|
|
35
|
+
: '';
|
|
36
|
+
console.info(` ${status} ${plugin.displayName} [${plugin.key}]${managed}`);
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
handler: async (input, context) => {
|
|
40
|
+
const { container } = await loadEntityServiceContext(input.project, context);
|
|
41
|
+
const plugins = context.plugins
|
|
42
|
+
.filter((p) => !p.hidden)
|
|
43
|
+
.map((plugin) => ({
|
|
44
|
+
key: plugin.key,
|
|
45
|
+
name: plugin.name,
|
|
46
|
+
displayName: plugin.displayName,
|
|
47
|
+
description: plugin.description,
|
|
48
|
+
packageName: plugin.packageName,
|
|
49
|
+
version: plugin.version,
|
|
50
|
+
enabled: PluginUtils.byKey(container.definition, plugin.key) != null,
|
|
51
|
+
managedBy: plugin.managedBy,
|
|
52
|
+
}));
|
|
53
|
+
return { plugins };
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=list-plugins.action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-plugins.action.js","sourceRoot":"","sources":["../../../src/actions/definition/list-plugins.action.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const searchEntitiesAction: import("#src/actions/types.js").ServiceAction<z.ZodObject<{
|
|
3
|
+
project: z.ZodString;
|
|
4
|
+
query: z.ZodString;
|
|
5
|
+
entityTypeName: z.ZodOptional<z.ZodString>;
|
|
6
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
7
|
+
results: z.ZodArray<z.ZodObject<{
|
|
8
|
+
id: z.ZodString;
|
|
9
|
+
name: z.ZodString;
|
|
10
|
+
type: z.ZodString;
|
|
11
|
+
}, z.core.$strip>>;
|
|
12
|
+
}, z.core.$strip>>;
|
|
13
|
+
//# sourceMappingURL=search-entities.action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-entities.action.d.ts","sourceRoot":"","sources":["../../../src/actions/definition/search-entities.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA2BxB,eAAO,MAAM,oBAAoB;;;;;;;;;;kBAuC/B,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { createServiceAction } from '#src/actions/types.js';
|
|
3
|
+
import { loadEntityServiceContext } from './load-entity-service-context.js';
|
|
4
|
+
const searchEntitiesInputSchema = z.object({
|
|
5
|
+
project: z.string().describe('The name or ID of the project.'),
|
|
6
|
+
query: z
|
|
7
|
+
.string()
|
|
8
|
+
.describe('Case-insensitive substring to match against entity names.'),
|
|
9
|
+
entityTypeName: z
|
|
10
|
+
.string()
|
|
11
|
+
.optional()
|
|
12
|
+
.describe('Restrict search to a specific entity type.'),
|
|
13
|
+
});
|
|
14
|
+
const entityStubSchema = z.object({
|
|
15
|
+
id: z.string().describe('The entity ID.'),
|
|
16
|
+
name: z.string().describe('The entity name.'),
|
|
17
|
+
type: z.string().describe('The entity type name.'),
|
|
18
|
+
});
|
|
19
|
+
const searchEntitiesOutputSchema = z.object({
|
|
20
|
+
results: z.array(entityStubSchema).describe('Matching entities.'),
|
|
21
|
+
});
|
|
22
|
+
export const searchEntitiesAction = createServiceAction({
|
|
23
|
+
name: 'search-entities',
|
|
24
|
+
title: 'Search Entities',
|
|
25
|
+
description: 'Search entities by name across the project definition. Returns matching entity stubs.',
|
|
26
|
+
inputSchema: searchEntitiesInputSchema,
|
|
27
|
+
outputSchema: searchEntitiesOutputSchema,
|
|
28
|
+
writeCliOutput: (output) => {
|
|
29
|
+
if (output.results.length === 0) {
|
|
30
|
+
console.info(' No matching entities found.');
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
for (const entity of output.results) {
|
|
34
|
+
console.info(` ${entity.name} (${entity.type}) [${entity.id}]`);
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
handler: async (input, context) => {
|
|
38
|
+
const { container } = await loadEntityServiceContext(input.project, context);
|
|
39
|
+
const queryLower = input.query.toLowerCase();
|
|
40
|
+
const results = container.entities
|
|
41
|
+
.filter((entity) => {
|
|
42
|
+
if (input.entityTypeName && entity.type.name !== input.entityTypeName) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
return entity.name.toLowerCase().includes(queryLower);
|
|
46
|
+
})
|
|
47
|
+
.map((entity) => ({
|
|
48
|
+
id: entity.id,
|
|
49
|
+
name: entity.name,
|
|
50
|
+
type: entity.type.name,
|
|
51
|
+
}));
|
|
52
|
+
return { results };
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=search-entities.action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-entities.action.js","sourceRoot":"","sources":["../../../src/actions/definition/search-entities.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAC9D,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,CAAC,2DAA2D,CAAC;IACxE,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4CAA4C,CAAC;CAC1D,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;CACnD,CAAC,CAAC;AAEH,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;CAClE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;IACtD,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,iBAAiB;IACxB,WAAW,EACT,uFAAuF;IACzF,WAAW,EAAE,yBAAyB;IACtC,YAAY,EAAE,0BAA0B;IACxC,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE;QACzB,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,wBAAwB,CAClD,KAAK,CAAC,OAAO,EACb,OAAO,CACR,CAAC;QAEF,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAE7C,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ;aAC/B,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YACjB,IAAI,KAAK,CAAC,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,cAAc,EAAE,CAAC;gBACtE,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACxD,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAChB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;SACvB,CAAC,CAAC,CAAC;QAEN,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -14,6 +14,8 @@ export declare const stageCreateEntityAction: import("#src/actions/types.js").Se
|
|
|
14
14
|
error: "error";
|
|
15
15
|
warning: "warning";
|
|
16
16
|
}>;
|
|
17
|
+
fixLabel: z.ZodOptional<z.ZodString>;
|
|
18
|
+
fixId: z.ZodOptional<z.ZodString>;
|
|
17
19
|
}, z.core.$strip>>>;
|
|
18
20
|
}, z.core.$strip>>;
|
|
19
21
|
//# sourceMappingURL=stage-create-entity.action.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage-create-entity.action.d.ts","sourceRoot":"","sources":["../../../src/actions/definition/stage-create-entity.action.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"stage-create-entity.action.d.ts","sourceRoot":"","sources":["../../../src/actions/definition/stage-create-entity.action.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqCxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;kBAmClC,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { createEntity } from '@baseplate-dev/project-builder-lib';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { createServiceAction } from '#src/actions/types.js';
|
|
4
|
-
import { getOrCreateDraftSession
|
|
5
|
-
import {
|
|
4
|
+
import { getOrCreateDraftSession } from './draft-session.js';
|
|
5
|
+
import { assertEntityTypeNotBlacklisted } from './entity-type-blacklist.js';
|
|
6
|
+
import { definitionIssueSchema, mapIssueToOutput, validateAndSaveDraft, writeIssuesCliOutput, } from './validate-draft.js';
|
|
6
7
|
const stageCreateEntityInputSchema = z.object({
|
|
7
8
|
project: z.string().describe('The name or ID of the project.'),
|
|
8
9
|
entityTypeName: z
|
|
@@ -30,31 +31,19 @@ export const stageCreateEntityAction = createServiceAction({
|
|
|
30
31
|
inputSchema: stageCreateEntityInputSchema,
|
|
31
32
|
outputSchema: stageCreateEntityOutputSchema,
|
|
32
33
|
handler: async (input, context) => {
|
|
34
|
+
assertEntityTypeNotBlacklisted(input.entityTypeName);
|
|
33
35
|
const { session, entityContext, parserContext, projectDirectory } = await getOrCreateDraftSession(input.project, context);
|
|
34
36
|
const newDefinition = createEntity({
|
|
35
37
|
entityTypeName: input.entityTypeName,
|
|
36
38
|
entityData: input.entityData,
|
|
37
39
|
parentEntityId: input.parentEntityId,
|
|
38
40
|
}, entityContext);
|
|
39
|
-
|
|
40
|
-
const { errors, warnings } = validateDraftDefinition(newDefinition, parserContext);
|
|
41
|
-
if (errors.length > 0) {
|
|
42
|
-
const messages = errors.map((e) => e.message).join('; ');
|
|
43
|
-
throw new Error(`Staging blocked by definition errors: ${messages}`);
|
|
44
|
-
}
|
|
45
|
-
await saveDraftSession(projectDirectory, session);
|
|
41
|
+
const { warnings } = await validateAndSaveDraft(newDefinition, parserContext, session, projectDirectory);
|
|
46
42
|
return {
|
|
47
43
|
message: `Staged creation of ${input.entityTypeName} entity. Use commit-draft to persist.`,
|
|
48
|
-
issues: warnings.length > 0 ? warnings : undefined,
|
|
44
|
+
issues: warnings.length > 0 ? warnings.map(mapIssueToOutput) : undefined,
|
|
49
45
|
};
|
|
50
46
|
},
|
|
51
|
-
writeCliOutput:
|
|
52
|
-
console.info(`✓ ${output.message}`);
|
|
53
|
-
if (output.issues) {
|
|
54
|
-
for (const issue of output.issues) {
|
|
55
|
-
console.warn(` ⚠ ${issue.message}`);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
},
|
|
47
|
+
writeCliOutput: writeIssuesCliOutput,
|
|
59
48
|
});
|
|
60
49
|
//# sourceMappingURL=stage-create-entity.action.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage-create-entity.action.js","sourceRoot":"","sources":["../../../src/actions/definition/stage-create-entity.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,uBAAuB,EAAE,
|
|
1
|
+
{"version":3,"file":"stage-create-entity.action.js","sourceRoot":"","sources":["../../../src/actions/definition/stage-create-entity.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAC9D,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,CAAC,uDAAuD,CAAC;IACpE,UAAU,EAAE,CAAC;SACV,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;SAC/B,QAAQ,CAAC,4BAA4B,CAAC;IACzC,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,0EAA0E,CAC3E;CACJ,CAAC,CAAC;AAEH,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC/D,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,qBAAqB,CAAC;SAC5B,QAAQ,EAAE;SACV,QAAQ,CAAC,wCAAwC,CAAC;CACtD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;IACzD,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EACT,2GAA2G;IAC7G,WAAW,EAAE,4BAA4B;IACzC,YAAY,EAAE,6BAA6B;IAC3C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChC,8BAA8B,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAErD,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAC/D,MAAM,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAExD,MAAM,aAAa,GAAG,YAAY,CAChC;YACE,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,cAAc,EAAE,KAAK,CAAC,cAAc;SACrC,EACD,aAAa,CACd,CAAC;QAEF,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,oBAAoB,CAC7C,aAAa,EACb,aAAa,EACb,OAAO,EACP,gBAAgB,CACjB,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,sBAAsB,KAAK,CAAC,cAAc,uCAAuC;YAC1F,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS;SACzE,CAAC;IACJ,CAAC;IACD,cAAc,EAAE,oBAAoB;CACrC,CAAC,CAAC"}
|
|
@@ -13,6 +13,8 @@ export declare const stageDeleteEntityAction: import("#src/actions/types.js").Se
|
|
|
13
13
|
error: "error";
|
|
14
14
|
warning: "warning";
|
|
15
15
|
}>;
|
|
16
|
+
fixLabel: z.ZodOptional<z.ZodString>;
|
|
17
|
+
fixId: z.ZodOptional<z.ZodString>;
|
|
16
18
|
}, z.core.$strip>>>;
|
|
17
19
|
}, z.core.$strip>>;
|
|
18
20
|
//# sourceMappingURL=stage-delete-entity.action.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage-delete-entity.action.d.ts","sourceRoot":"","sources":["../../../src/actions/definition/stage-delete-entity.action.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"stage-delete-entity.action.d.ts","sourceRoot":"","sources":["../../../src/actions/definition/stage-delete-entity.action.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+BxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;kBAkClC,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { deleteEntity } from '@baseplate-dev/project-builder-lib';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { createServiceAction } from '#src/actions/types.js';
|
|
4
|
-
import { getOrCreateDraftSession
|
|
5
|
-
import {
|
|
4
|
+
import { getOrCreateDraftSession } from './draft-session.js';
|
|
5
|
+
import { assertEntityTypeNotBlacklisted } from './entity-type-blacklist.js';
|
|
6
|
+
import { definitionIssueSchema, mapIssueToOutput, validateAndSaveDraft, writeIssuesCliOutput, } from './validate-draft.js';
|
|
6
7
|
const stageDeleteEntityInputSchema = z.object({
|
|
7
8
|
project: z.string().describe('The name or ID of the project.'),
|
|
8
9
|
entityTypeName: z
|
|
@@ -26,30 +27,18 @@ export const stageDeleteEntityAction = createServiceAction({
|
|
|
26
27
|
inputSchema: stageDeleteEntityInputSchema,
|
|
27
28
|
outputSchema: stageDeleteEntityOutputSchema,
|
|
28
29
|
handler: async (input, context) => {
|
|
30
|
+
assertEntityTypeNotBlacklisted(input.entityTypeName);
|
|
29
31
|
const { session, entityContext, parserContext, projectDirectory } = await getOrCreateDraftSession(input.project, context);
|
|
30
32
|
const newDefinition = deleteEntity({
|
|
31
33
|
entityTypeName: input.entityTypeName,
|
|
32
34
|
entityId: input.entityId,
|
|
33
35
|
}, entityContext);
|
|
34
|
-
|
|
35
|
-
const { errors, warnings } = validateDraftDefinition(newDefinition, parserContext);
|
|
36
|
-
if (errors.length > 0) {
|
|
37
|
-
const messages = errors.map((e) => e.message).join('; ');
|
|
38
|
-
throw new Error(`Staging blocked by definition errors: ${messages}`);
|
|
39
|
-
}
|
|
40
|
-
await saveDraftSession(projectDirectory, session);
|
|
36
|
+
const { warnings } = await validateAndSaveDraft(newDefinition, parserContext, session, projectDirectory);
|
|
41
37
|
return {
|
|
42
38
|
message: `Staged deletion of ${input.entityTypeName} entity "${input.entityId}". Use commit-draft to persist.`,
|
|
43
|
-
issues: warnings.length > 0 ? warnings : undefined,
|
|
39
|
+
issues: warnings.length > 0 ? warnings.map(mapIssueToOutput) : undefined,
|
|
44
40
|
};
|
|
45
41
|
},
|
|
46
|
-
writeCliOutput:
|
|
47
|
-
console.info(`✓ ${output.message}`);
|
|
48
|
-
if (output.issues) {
|
|
49
|
-
for (const issue of output.issues) {
|
|
50
|
-
console.warn(` ⚠ ${issue.message}`);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
},
|
|
42
|
+
writeCliOutput: writeIssuesCliOutput,
|
|
54
43
|
});
|
|
55
44
|
//# sourceMappingURL=stage-delete-entity.action.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage-delete-entity.action.js","sourceRoot":"","sources":["../../../src/actions/definition/stage-delete-entity.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,uBAAuB,EAAE,
|
|
1
|
+
{"version":3,"file":"stage-delete-entity.action.js","sourceRoot":"","sources":["../../../src/actions/definition/stage-delete-entity.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAC9D,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,CAAC,2DAA2D,CAAC;IACxE,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,CAAC,wDAAwD,CAAC;CACtE,CAAC,CAAC;AAEH,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC/D,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,qBAAqB,CAAC;SAC5B,QAAQ,EAAE;SACV,QAAQ,CAAC,wCAAwC,CAAC;CACtD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;IACzD,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EACT,wGAAwG;IAC1G,WAAW,EAAE,4BAA4B;IACzC,YAAY,EAAE,6BAA6B;IAC3C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChC,8BAA8B,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAErD,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAC/D,MAAM,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAExD,MAAM,aAAa,GAAG,YAAY,CAChC;YACE,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,EACD,aAAa,CACd,CAAC;QAEF,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,oBAAoB,CAC7C,aAAa,EACb,aAAa,EACb,OAAO,EACP,gBAAgB,CACjB,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,sBAAsB,KAAK,CAAC,cAAc,YAAY,KAAK,CAAC,QAAQ,iCAAiC;YAC9G,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS;SACzE,CAAC;IACJ,CAAC;IACD,cAAc,EAAE,oBAAoB;CACrC,CAAC,CAAC"}
|