@ingenyus/swarm-wasp 0.1.0 → 0.2.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/README.md +229 -21
- package/dist/.tsbuildinfo +1 -1
- package/dist/common/filesystem.d.ts +0 -14
- package/dist/common/filesystem.d.ts.map +1 -1
- package/dist/common/filesystem.js +123 -0
- package/dist/common/index.js +391 -0
- package/dist/common/plugin.js +41 -0
- package/dist/common/prisma.js +140 -0
- package/dist/common/schemas.d.ts +8 -42
- package/dist/common/schemas.d.ts.map +1 -1
- package/dist/common/schemas.js +54 -0
- package/dist/common/templates.js +52 -0
- package/dist/generators/action/action-generator.d.ts +16 -29
- package/dist/generators/action/action-generator.d.ts.map +1 -1
- package/dist/generators/action/action-generator.js +1429 -0
- package/dist/generators/action/index.js +1429 -0
- package/dist/generators/action/schema.d.ts +11 -23
- package/dist/generators/action/schema.d.ts.map +1 -1
- package/dist/generators/action/schema.js +119 -0
- package/dist/generators/api/api-generator.d.ts +19 -26
- package/dist/generators/api/api-generator.d.ts.map +1 -1
- package/dist/generators/api/api-generator.js +1108 -0
- package/dist/generators/api/index.js +1108 -0
- package/dist/generators/api/schema.d.ts +13 -21
- package/dist/generators/api/schema.d.ts.map +1 -1
- package/dist/generators/api/schema.js +121 -0
- package/dist/generators/api-namespace/api-namespace-generator.d.ts +10 -17
- package/dist/generators/api-namespace/api-namespace-generator.d.ts.map +1 -1
- package/dist/generators/api-namespace/api-namespace-generator.js +1032 -0
- package/dist/generators/api-namespace/index.js +1032 -0
- package/dist/generators/api-namespace/schema.d.ts +4 -12
- package/dist/generators/api-namespace/schema.d.ts.map +1 -1
- package/dist/generators/api-namespace/schema.js +93 -0
- package/dist/generators/base/{entity-generator.base.d.ts → component-generator.base.d.ts} +9 -9
- package/dist/generators/base/component-generator.base.d.ts.map +1 -0
- package/dist/generators/base/component-generator.base.js +935 -0
- package/dist/generators/base/index.d.ts +1 -1
- package/dist/generators/base/index.d.ts.map +1 -1
- package/dist/generators/base/index.js +1334 -0
- package/dist/generators/base/operation-generator.base.d.ts +12 -3
- package/dist/generators/base/operation-generator.base.d.ts.map +1 -1
- package/dist/generators/base/operation-generator.base.js +1335 -0
- package/dist/generators/base/wasp-generator.base.d.ts +2 -1
- package/dist/generators/base/wasp-generator.base.d.ts.map +1 -1
- package/dist/generators/base/wasp-generator.base.js +710 -0
- package/dist/generators/config/config-generator.d.ts +7 -4
- package/dist/generators/config/config-generator.d.ts.map +1 -1
- package/dist/generators/config/config-generator.js +0 -0
- package/dist/generators/config/index.js +600 -0
- package/dist/generators/config/wasp-config-generator.d.ts +1 -1
- package/dist/generators/config/wasp-config-generator.d.ts.map +1 -1
- package/dist/generators/config/wasp-config-generator.js +600 -0
- package/dist/generators/crud/crud-generator.d.ts +34 -22
- package/dist/generators/crud/crud-generator.d.ts.map +1 -1
- package/dist/generators/crud/crud-generator.js +1554 -0
- package/dist/generators/crud/index.js +1554 -0
- package/dist/generators/crud/schema.d.ts +25 -18
- package/dist/generators/crud/schema.d.ts.map +1 -1
- package/dist/generators/crud/schema.js +137 -0
- package/dist/generators/feature/feature-generator.d.ts +20 -0
- package/dist/generators/feature/feature-generator.d.ts.map +1 -0
- package/dist/generators/feature/feature-generator.js +769 -0
- package/dist/generators/feature/index.d.ts +2 -0
- package/dist/generators/feature/index.d.ts.map +1 -0
- package/dist/generators/feature/index.js +769 -0
- package/dist/generators/feature/schema.d.ts +5 -0
- package/dist/generators/feature/schema.d.ts.map +1 -0
- package/dist/generators/feature/schema.js +90 -0
- package/dist/generators/index.d.ts +1 -1
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +2215 -0
- package/dist/generators/job/index.js +1103 -0
- package/dist/generators/job/job-generator.d.ts +12 -23
- package/dist/generators/job/job-generator.d.ts.map +1 -1
- package/dist/generators/job/job-generator.js +1103 -0
- package/dist/generators/job/schema.d.ts +6 -18
- package/dist/generators/job/schema.d.ts.map +1 -1
- package/dist/generators/job/schema.js +156 -0
- package/dist/generators/query/index.js +1429 -0
- package/dist/generators/query/query-generator.d.ts +16 -29
- package/dist/generators/query/query-generator.d.ts.map +1 -1
- package/dist/generators/query/query-generator.js +1429 -0
- package/dist/generators/query/schema.d.ts +11 -23
- package/dist/generators/query/schema.d.ts.map +1 -1
- package/dist/generators/query/schema.js +119 -0
- package/dist/generators/route/index.js +1042 -0
- package/dist/generators/route/route-generator.d.ts +11 -20
- package/dist/generators/route/route-generator.d.ts.map +1 -1
- package/dist/generators/route/route-generator.js +1042 -0
- package/dist/generators/route/schema.d.ts +5 -15
- package/dist/generators/route/schema.d.ts.map +1 -1
- package/dist/generators/route/schema.js +94 -0
- package/dist/index.d.ts +2 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1730 -1839
- package/dist/plugins/index.d.ts +2 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/wasp.d.ts +3 -0
- package/dist/plugins/wasp.d.ts.map +1 -0
- package/dist/types/constants.d.ts +4 -22
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/constants.js +8 -2
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +8 -2
- package/dist/wasp-config/app.d.ts +2 -1
- package/dist/wasp-config/app.d.ts.map +1 -1
- package/dist/wasp-config/app.js +357 -0
- package/dist/wasp-config/index.js +357 -0
- package/dist/wasp-config/stubs/index.js +48 -0
- package/package.json +5 -14
- package/dist/generators/args.types.d.ts +0 -85
- package/dist/generators/args.types.d.ts.map +0 -1
- package/dist/generators/base/entity-generator.base.d.ts.map +0 -1
- package/dist/generators/feature-directory/feature-directory-generator.d.ts +0 -18
- package/dist/generators/feature-directory/feature-directory-generator.d.ts.map +0 -1
- package/dist/generators/feature-directory/index.d.ts +0 -2
- package/dist/generators/feature-directory/index.d.ts.map +0 -1
- package/dist/generators/feature-directory/schema.d.ts +0 -8
- package/dist/generators/feature-directory/schema.d.ts.map +0 -1
- package/dist/plugin.d.ts +0 -6
- package/dist/plugin.d.ts.map +0 -1
- /package/dist/generators/{feature-directory → feature}/templates/feature.wasp.eta +0 -0
package/dist/common/schemas.d.ts
CHANGED
|
@@ -4,47 +4,13 @@ import { z } from 'zod';
|
|
|
4
4
|
* These provide consistent validation rules for common generator arguments
|
|
5
5
|
*/
|
|
6
6
|
export declare const commonSchemas: {
|
|
7
|
-
feature: z.ZodString
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
16
|
-
entities: z.ZodOptional<z.ZodString> & {
|
|
17
|
-
_metadata: import("@ingenyus/swarm").FieldMetadata;
|
|
18
|
-
};
|
|
19
|
-
force: z.ZodOptional<z.ZodBoolean> & {
|
|
20
|
-
_metadata: import("@ingenyus/swarm").FieldMetadata;
|
|
21
|
-
};
|
|
22
|
-
auth: z.ZodOptional<z.ZodBoolean> & {
|
|
23
|
-
_metadata: import("@ingenyus/swarm").FieldMetadata;
|
|
24
|
-
};
|
|
7
|
+
feature: z.ZodString;
|
|
8
|
+
name: z.ZodString;
|
|
9
|
+
target: z.ZodString;
|
|
10
|
+
path: z.ZodString;
|
|
11
|
+
dataType: z.ZodString;
|
|
12
|
+
entities: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
13
|
+
force: z.ZodOptional<z.ZodBoolean>;
|
|
14
|
+
auth: z.ZodOptional<z.ZodBoolean>;
|
|
25
15
|
};
|
|
26
|
-
/**
|
|
27
|
-
* Creates a case-insensitive validation function for typed arrays
|
|
28
|
-
* @param validValues - Array of valid type values
|
|
29
|
-
* @returns A function that validates a comma-separated string as an array of typed values
|
|
30
|
-
*/
|
|
31
|
-
export declare const getTypedArrayValidator: <T extends string>(validValues: readonly T[]) => (input: string | undefined) => boolean;
|
|
32
|
-
/**
|
|
33
|
-
* Creates a case-insensitive transformation function for typed arrays
|
|
34
|
-
* @param validValues - Array of valid type values
|
|
35
|
-
* @returns A function that transforms a comma-separated string to an array of typed values
|
|
36
|
-
*/
|
|
37
|
-
export declare const getTypedArrayTransformer: <T extends string>(validValues: readonly T[]) => (input: string | undefined) => T[] | undefined;
|
|
38
|
-
/**
|
|
39
|
-
* Creates a case-insensitive validation function for single typed values
|
|
40
|
-
* @param validValues - Array of valid type values
|
|
41
|
-
* @returns A function that validates a string as an enum value
|
|
42
|
-
*/
|
|
43
|
-
export declare const getTypedValueValidator: <T extends string>(validValues: readonly T[]) => (value: string) => boolean;
|
|
44
|
-
/**
|
|
45
|
-
* Creates a case-insensitive transformation function for single typed values
|
|
46
|
-
* @param validValues - Array of valid type values
|
|
47
|
-
* @returns A function that transforms a string to a typed value
|
|
48
|
-
*/
|
|
49
|
-
export declare const getTypedValueTransformer: <T extends string>(validValues: readonly T[]) => (value: string) => T;
|
|
50
16
|
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/common/schemas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/common/schemas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;CAqFc,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// src/common/schemas.ts
|
|
2
|
+
import { commandRegistry } from "@ingenyus/swarm";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
var commonSchemas = {
|
|
5
|
+
feature: z.string().min(1, "Feature is required").meta({
|
|
6
|
+
description: "The feature directory this component will be generated in"
|
|
7
|
+
}).register(commandRegistry, {
|
|
8
|
+
shortName: "f",
|
|
9
|
+
examples: ["root", "auth", "dashboard/users"],
|
|
10
|
+
helpText: "Can be nested as a logical or relative path, e.g. 'dashboard/users' or 'features/dashboard/features/users'"
|
|
11
|
+
}),
|
|
12
|
+
name: z.string().min(1, "Name is required").meta({ description: "The name of the generated component" }).register(commandRegistry, {
|
|
13
|
+
shortName: "n",
|
|
14
|
+
examples: ["users", "task"],
|
|
15
|
+
helpText: "Will be used for generated files and configuration entries"
|
|
16
|
+
}),
|
|
17
|
+
target: z.string().min(1, "Target directory is required").meta({ description: "The target path of the generated directory" }).register(commandRegistry, {
|
|
18
|
+
shortName: "t",
|
|
19
|
+
examples: ["dashboard/users", "features/dashboard/features/users"],
|
|
20
|
+
helpText: "A logical or relative path, e.g. 'dashboard/users' or 'features/dashboard/features/users'"
|
|
21
|
+
}),
|
|
22
|
+
path: z.string().min(1, "Path is required").meta({ description: "The path that this component will be accessible at" }).register(commandRegistry, {
|
|
23
|
+
shortName: "p",
|
|
24
|
+
examples: ["/api/users/:id", "/api/products"],
|
|
25
|
+
helpText: "Supports Express-style placeholders, e.g. '/api/users/:id'"
|
|
26
|
+
}),
|
|
27
|
+
dataType: z.string().min(1, "Data type is required").meta({ description: "The data type/model name for this operation" }).register(commandRegistry, {
|
|
28
|
+
shortName: "d",
|
|
29
|
+
examples: ["User", "Product", "Task"],
|
|
30
|
+
helpText: "The Wasp entity or model name this operation will interact with"
|
|
31
|
+
}),
|
|
32
|
+
entities: z.array(z.string()).optional().meta({
|
|
33
|
+
description: "The Wasp entities that will be available to this component (optional)"
|
|
34
|
+
}).register(commandRegistry, {
|
|
35
|
+
shortName: "e",
|
|
36
|
+
examples: ["User", "User Task"],
|
|
37
|
+
helpText: "An array of Wasp entity names"
|
|
38
|
+
}),
|
|
39
|
+
force: z.boolean().optional().meta({
|
|
40
|
+
description: "Force overwrite of existing files and configuration entries (optional)"
|
|
41
|
+
}).register(commandRegistry, {
|
|
42
|
+
shortName: "F",
|
|
43
|
+
helpText: "CAUTION: Will overwrite existing files and configuration entries with current parameters"
|
|
44
|
+
}),
|
|
45
|
+
auth: z.boolean().optional().meta({
|
|
46
|
+
description: "Require authentication for this component (optional)"
|
|
47
|
+
}).register(commandRegistry, {
|
|
48
|
+
shortName: "a",
|
|
49
|
+
helpText: "Will generate authentication checks"
|
|
50
|
+
})
|
|
51
|
+
};
|
|
52
|
+
export {
|
|
53
|
+
commonSchemas
|
|
54
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// src/common/templates.ts
|
|
2
|
+
import { toKebabCase } from "@ingenyus/swarm";
|
|
3
|
+
import { Eta } from "eta";
|
|
4
|
+
import path from "path";
|
|
5
|
+
var TemplateUtility = class {
|
|
6
|
+
constructor(fileSystem) {
|
|
7
|
+
this.fileSystem = fileSystem;
|
|
8
|
+
}
|
|
9
|
+
processTemplate(templatePath, replacements) {
|
|
10
|
+
const declarations = Object.keys(replacements).map((key) => `${key}=it.${key}`).join(", ");
|
|
11
|
+
const functionHeader = declarations ? `const ${declarations};` : void 0;
|
|
12
|
+
const templateDir = path.dirname(templatePath);
|
|
13
|
+
const eta = new Eta({
|
|
14
|
+
autoTrim: false,
|
|
15
|
+
autoEscape: false,
|
|
16
|
+
views: templateDir,
|
|
17
|
+
functionHeader
|
|
18
|
+
});
|
|
19
|
+
const templateName = path.basename(templatePath).replace(/\.eta$/, "");
|
|
20
|
+
if (this.fileSystem.existsSync(templatePath)) {
|
|
21
|
+
return eta.render(templateName, replacements);
|
|
22
|
+
} else {
|
|
23
|
+
const template = this.fileSystem.readFileSync(templatePath, "utf8");
|
|
24
|
+
return eta.renderString(template, replacements);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Helper method to resolve template paths for concrete generators
|
|
29
|
+
* @param relativePath - The relative path to the template file
|
|
30
|
+
* @param generatorName - The name of the generator (e.g., 'api', 'job')
|
|
31
|
+
* @param currentFileUrl - The import.meta.url from the concrete generator class
|
|
32
|
+
* @returns The full path to the template file
|
|
33
|
+
*/
|
|
34
|
+
resolveTemplatePath(relativePath, generatorName, currentFileUrl) {
|
|
35
|
+
const generatorDirName = toKebabCase(generatorName);
|
|
36
|
+
const currentFilePath = new URL(currentFileUrl).pathname;
|
|
37
|
+
const currentFileDir = path.dirname(currentFilePath);
|
|
38
|
+
const currentFileName = path.basename(currentFilePath);
|
|
39
|
+
const isInstalledPackage = currentFileDir.includes("node_modules") && currentFileDir.endsWith("/dist") && currentFileName === "index.js";
|
|
40
|
+
const startDir = isInstalledPackage ? currentFileDir : path.dirname(path.dirname(currentFileDir));
|
|
41
|
+
return path.join(
|
|
42
|
+
startDir,
|
|
43
|
+
"generators",
|
|
44
|
+
generatorDirName,
|
|
45
|
+
"templates",
|
|
46
|
+
relativePath
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
export {
|
|
51
|
+
TemplateUtility
|
|
52
|
+
};
|
|
@@ -1,36 +1,23 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Out } from '@ingenyus/swarm';
|
|
2
2
|
import { CONFIG_TYPES } from '../../types';
|
|
3
3
|
import { OperationGeneratorBase } from '../base';
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
import { schema } from './schema';
|
|
5
|
+
export declare class ActionGenerator extends OperationGeneratorBase<typeof schema, typeof CONFIG_TYPES.ACTION> {
|
|
6
|
+
protected get componentType(): "Action";
|
|
6
7
|
description: string;
|
|
7
8
|
schema: import("zod").ZodObject<{
|
|
8
|
-
feature: import("zod").ZodString
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
dataType: import("zod").ZodString
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}> & {
|
|
20
|
-
_metadata: import("@ingenyus/swarm").FieldMetadata;
|
|
21
|
-
};
|
|
22
|
-
entities: import("zod").ZodOptional<import("zod").ZodString> & {
|
|
23
|
-
_metadata: import("@ingenyus/swarm").FieldMetadata;
|
|
24
|
-
};
|
|
25
|
-
force: import("zod").ZodOptional<import("zod").ZodBoolean> & {
|
|
26
|
-
_metadata: import("@ingenyus/swarm").FieldMetadata;
|
|
27
|
-
};
|
|
28
|
-
auth: import("zod").ZodOptional<import("zod").ZodBoolean> & {
|
|
29
|
-
_metadata: import("@ingenyus/swarm").FieldMetadata;
|
|
30
|
-
};
|
|
9
|
+
feature: import("zod").ZodString;
|
|
10
|
+
operation: import("zod").ZodPipe<import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>, import("zod").ZodEnum<{
|
|
11
|
+
readonly CREATE: "create";
|
|
12
|
+
readonly UPDATE: "update";
|
|
13
|
+
readonly DELETE: "delete";
|
|
14
|
+
}>>;
|
|
15
|
+
dataType: import("zod").ZodString;
|
|
16
|
+
name: import("zod").ZodOptional<import("zod").ZodString>;
|
|
17
|
+
entities: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
18
|
+
force: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
19
|
+
auth: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
31
20
|
}, import("zod/v4/core").$strip>;
|
|
32
|
-
generate(
|
|
33
|
-
name?: string;
|
|
34
|
-
}): Promise<void>;
|
|
21
|
+
generate(args: Out<typeof schema>): Promise<void>;
|
|
35
22
|
}
|
|
36
23
|
//# sourceMappingURL=action-generator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-generator.d.ts","sourceRoot":"","sources":["../../../src/generators/action/action-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"action-generator.d.ts","sourceRoot":"","sources":["../../../src/generators/action/action-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,eAAgB,SAAQ,sBAAsB,CACzD,OAAO,MAAM,EACb,OAAO,YAAY,CAAC,MAAM,CAC3B;IACC,SAAS,KAAK,aAAa,aAE1B;IAED,WAAW,SAA6B;IACxC,MAAM;;;;;;;;;;;;qCAAU;IAEV,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CA0DxD"}
|