@ingenyus/swarm-wasp 0.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.
Files changed (126) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +34 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/common/filesystem.d.ts +87 -0
  5. package/dist/common/filesystem.d.ts.map +1 -0
  6. package/dist/common/index.d.ts +6 -0
  7. package/dist/common/index.d.ts.map +1 -0
  8. package/dist/common/plugin.d.ts +2 -0
  9. package/dist/common/plugin.d.ts.map +1 -0
  10. package/dist/common/prisma.d.ts +80 -0
  11. package/dist/common/prisma.d.ts.map +1 -0
  12. package/dist/common/schemas.d.ts +50 -0
  13. package/dist/common/schemas.d.ts.map +1 -0
  14. package/dist/common/templates.d.ts +15 -0
  15. package/dist/common/templates.d.ts.map +1 -0
  16. package/dist/generators/action/action-generator.d.ts +36 -0
  17. package/dist/generators/action/action-generator.d.ts.map +1 -0
  18. package/dist/generators/action/index.d.ts +2 -0
  19. package/dist/generators/action/index.d.ts.map +1 -0
  20. package/dist/generators/action/schema.d.ts +27 -0
  21. package/dist/generators/action/schema.d.ts.map +1 -0
  22. package/dist/generators/api/api-generator.d.ts +37 -0
  23. package/dist/generators/api/api-generator.d.ts.map +1 -0
  24. package/dist/generators/api/index.d.ts +2 -0
  25. package/dist/generators/api/index.d.ts.map +1 -0
  26. package/dist/generators/api/schema.d.ts +26 -0
  27. package/dist/generators/api/schema.d.ts.map +1 -0
  28. package/dist/generators/api/templates/api.eta +6 -0
  29. package/dist/generators/api/templates/config/api.eta +11 -0
  30. package/dist/generators/api-namespace/api-namespace-generator.d.ts +28 -0
  31. package/dist/generators/api-namespace/api-namespace-generator.d.ts.map +1 -0
  32. package/dist/generators/api-namespace/index.d.ts +2 -0
  33. package/dist/generators/api-namespace/index.d.ts.map +1 -0
  34. package/dist/generators/api-namespace/schema.d.ts +16 -0
  35. package/dist/generators/api-namespace/schema.d.ts.map +1 -0
  36. package/dist/generators/api-namespace/templates/config/api-namespace.eta +3 -0
  37. package/dist/generators/api-namespace/templates/middleware.eta +19 -0
  38. package/dist/generators/args.types.d.ts +85 -0
  39. package/dist/generators/args.types.d.ts.map +1 -0
  40. package/dist/generators/base/entity-generator.base.d.ts +57 -0
  41. package/dist/generators/base/entity-generator.base.d.ts.map +1 -0
  42. package/dist/generators/base/index.d.ts +3 -0
  43. package/dist/generators/base/index.d.ts.map +1 -0
  44. package/dist/generators/base/operation-generator.base.d.ts +60 -0
  45. package/dist/generators/base/operation-generator.base.d.ts.map +1 -0
  46. package/dist/generators/base/wasp-generator.base.d.ts +47 -0
  47. package/dist/generators/base/wasp-generator.base.d.ts.map +1 -0
  48. package/dist/generators/config/config-generator.d.ts +17 -0
  49. package/dist/generators/config/config-generator.d.ts.map +1 -0
  50. package/dist/generators/config/index.d.ts +3 -0
  51. package/dist/generators/config/index.d.ts.map +1 -0
  52. package/dist/generators/config/templates/api-namespace.eta +3 -0
  53. package/dist/generators/config/templates/api.eta +11 -0
  54. package/dist/generators/config/templates/crud.eta +4 -0
  55. package/dist/generators/config/templates/job.eta +9 -0
  56. package/dist/generators/config/templates/operation.eta +6 -0
  57. package/dist/generators/config/templates/route.eta +4 -0
  58. package/dist/generators/config/wasp-config-generator.d.ts +92 -0
  59. package/dist/generators/config/wasp-config-generator.d.ts.map +1 -0
  60. package/dist/generators/crud/crud-generator.d.ts +40 -0
  61. package/dist/generators/crud/crud-generator.d.ts.map +1 -0
  62. package/dist/generators/crud/index.d.ts +2 -0
  63. package/dist/generators/crud/index.d.ts.map +1 -0
  64. package/dist/generators/crud/schema.d.ts +22 -0
  65. package/dist/generators/crud/schema.d.ts.map +1 -0
  66. package/dist/generators/crud/templates/config/crud.eta +4 -0
  67. package/dist/generators/crud/templates/crud.eta +2 -0
  68. package/dist/generators/feature-directory/feature-directory-generator.d.ts +18 -0
  69. package/dist/generators/feature-directory/feature-directory-generator.d.ts.map +1 -0
  70. package/dist/generators/feature-directory/index.d.ts +2 -0
  71. package/dist/generators/feature-directory/index.d.ts.map +1 -0
  72. package/dist/generators/feature-directory/schema.d.ts +8 -0
  73. package/dist/generators/feature-directory/schema.d.ts.map +1 -0
  74. package/dist/generators/feature-directory/templates/feature.wasp.eta +22 -0
  75. package/dist/generators/index.d.ts +10 -0
  76. package/dist/generators/index.d.ts.map +1 -0
  77. package/dist/generators/job/index.d.ts +2 -0
  78. package/dist/generators/job/index.d.ts.map +1 -0
  79. package/dist/generators/job/job-generator.d.ts +35 -0
  80. package/dist/generators/job/job-generator.d.ts.map +1 -0
  81. package/dist/generators/job/schema.d.ts +22 -0
  82. package/dist/generators/job/schema.d.ts.map +1 -0
  83. package/dist/generators/job/templates/config/job.eta +9 -0
  84. package/dist/generators/job/templates/job.eta +5 -0
  85. package/dist/generators/operation/templates/config/operation.eta +6 -0
  86. package/dist/generators/operation/templates/create.eta +17 -0
  87. package/dist/generators/operation/templates/delete.eta +21 -0
  88. package/dist/generators/operation/templates/get.eta +19 -0
  89. package/dist/generators/operation/templates/getAll.eta +13 -0
  90. package/dist/generators/operation/templates/getFiltered.eta +17 -0
  91. package/dist/generators/operation/templates/update.eta +26 -0
  92. package/dist/generators/query/index.d.ts +2 -0
  93. package/dist/generators/query/index.d.ts.map +1 -0
  94. package/dist/generators/query/query-generator.d.ts +36 -0
  95. package/dist/generators/query/query-generator.d.ts.map +1 -0
  96. package/dist/generators/query/schema.d.ts +27 -0
  97. package/dist/generators/query/schema.d.ts.map +1 -0
  98. package/dist/generators/route/index.d.ts +2 -0
  99. package/dist/generators/route/index.d.ts.map +1 -0
  100. package/dist/generators/route/route-generator.d.ts +32 -0
  101. package/dist/generators/route/route-generator.d.ts.map +1 -0
  102. package/dist/generators/route/schema.d.ts +19 -0
  103. package/dist/generators/route/schema.d.ts.map +1 -0
  104. package/dist/generators/route/templates/config/route.eta +4 -0
  105. package/dist/generators/route/templates/page.eta +10 -0
  106. package/dist/index.d.ts +12 -0
  107. package/dist/index.d.ts.map +1 -0
  108. package/dist/index.js +2718 -0
  109. package/dist/plugin.d.ts +6 -0
  110. package/dist/plugin.d.ts.map +1 -0
  111. package/dist/types/constants.d.ts +102 -0
  112. package/dist/types/constants.d.ts.map +1 -0
  113. package/dist/types/constants.js +63 -0
  114. package/dist/types/index.d.ts +4 -0
  115. package/dist/types/index.d.ts.map +1 -0
  116. package/dist/types/index.js +63 -0
  117. package/dist/types/prisma.types.d.ts +23 -0
  118. package/dist/types/prisma.types.d.ts.map +1 -0
  119. package/dist/types/prisma.types.js +0 -0
  120. package/dist/wasp-config/app.d.ts +146 -0
  121. package/dist/wasp-config/app.d.ts.map +1 -0
  122. package/dist/wasp-config/index.d.ts +3 -0
  123. package/dist/wasp-config/index.d.ts.map +1 -0
  124. package/dist/wasp-config/stubs/index.d.ts +180 -0
  125. package/dist/wasp-config/stubs/index.d.ts.map +1 -0
  126. package/package.json +92 -0
@@ -0,0 +1,4 @@
1
+ .addRoute(feature, "<%=routeName%>", {
2
+ path: "<%=routePath%>",
3
+ auth: <%=auth%>,
4
+ })
@@ -0,0 +1,92 @@
1
+ import { FileSystem, Logger } from '@ingenyus/swarm';
2
+ import path from 'node:path';
3
+ import { TemplateUtility } from '../../common';
4
+ import { ConfigGenerator } from '../../generators/config';
5
+ export declare class WaspConfigGenerator implements ConfigGenerator {
6
+ protected logger: Logger;
7
+ protected fileSystem: FileSystem;
8
+ protected path: path.PlatformPath;
9
+ protected templateUtility: TemplateUtility;
10
+ constructor(logger?: Logger, fileSystem?: FileSystem);
11
+ /**
12
+ * Gets the template path for feature config templates.
13
+ * Feature config templates are located in the feature-directory generator's templates directory.
14
+ * @param templateName - The name of the template file (e.g., 'feature.wasp.eta')
15
+ * @returns The full path to the template file
16
+ */
17
+ private getTemplatePath;
18
+ /**
19
+ * Generate a TypeScript Wasp config file in a feature directory
20
+ * @param featurePath - The feature directory path
21
+ */
22
+ generate(featurePath: string): void;
23
+ /**
24
+ * Updates or creates a feature configuration file with a pre-built declaration.
25
+ * @param featurePath - The path to the feature
26
+ * @param declaration - The pre-built declaration string to add or update
27
+ * @returns The updated feature configuration file
28
+ */
29
+ update(featurePath: string, declaration: string): string;
30
+ /**
31
+ * Determines the insertion index for a method name based on alphabetical ordering
32
+ * of existing groups in the configuration file.
33
+ * @param groups - Object containing existing method groups
34
+ * @param methodName - The method name to find insertion index for
35
+ * @returns The insertion index for the method name
36
+ */
37
+ private getInsertionIndexForMethod;
38
+ /**
39
+ * Gets the comment text for a method type.
40
+ * @param methodName The method name (e.g., 'addApi')
41
+ * @returns The comment text for the method type
42
+ */
43
+ private getMethodComment;
44
+ /**
45
+ * Finds the correct insertion point for a new configuration item.
46
+ * @param lines - Array of file lines
47
+ * @param methodName - The method name (e.g., 'addApi')
48
+ * @param definition - The definition string to parse for item name
49
+ * @returns Object with insertion index and whether to add a comment
50
+ */
51
+ private findGroupInsertionPoint;
52
+ /**
53
+ * Inserts a definition with optional comment header.
54
+ * @param lines - Array of file lines
55
+ * @param declaration - The declaration to insert
56
+ * @param insertIndex - The index where to insert
57
+ * @param methodName - The method name for comment generation
58
+ * @param addComment - Whether to add a comment before the declaration
59
+ * @returns The modified lines array
60
+ */
61
+ private insertWithSpacing;
62
+ /**
63
+ * Checks if there are any existing definitions of a specific type in the content.
64
+ * @param content - The file content to search
65
+ * @param methodName - The method name to check for (e.g., 'addJob', 'addApi')
66
+ * @returns true if there are existing definitions of this type, false otherwise
67
+ */
68
+ private hasExistingDefinitions;
69
+ /**
70
+ * Removes an existing definition from the content by finding the helper method call
71
+ * and removing the entire method call block.
72
+ * @param content - The file content
73
+ * @param definition - The new definition to find the existing one from
74
+ * @returns The content with the existing definition removed
75
+ */
76
+ private removeExistingDefinition;
77
+ /**
78
+ * Adds a definition to the content by finding the appropriate place to insert it.
79
+ * @param content - The current file content
80
+ * @param definition - The definition to add
81
+ * @returns The updated content with the new definition
82
+ */
83
+ private addDefinitionToContent;
84
+ /**
85
+ * Normalises semicolons in the config file by removing them from method chain calls
86
+ * while preserving them in other contexts (imports, declarations, etc.).
87
+ * @param content - The file content to normalise
88
+ * @returns The normalised content
89
+ */
90
+ private normaliseSemicolons;
91
+ }
92
+ //# sourceMappingURL=wasp-config-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wasp-config-generator.d.ts","sourceRoot":"","sources":["../../../src/generators/config/wasp-config-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,MAAM,EAGP,MAAM,iBAAiB,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAiC,eAAe,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,qBAAa,mBAAoB,YAAW,eAAe;IAKvD,SAAS,CAAC,MAAM,EAAE,MAAM;IACxB,SAAS,CAAC,UAAU,EAAE,UAAU;IALlC,SAAS,CAAC,IAAI,oBAAQ;IACtB,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;gBAG/B,MAAM,GAAE,MAA4B,EACpC,UAAU,GAAE,UAA2B;IAKnD;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAQvB;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IA2BnC;;;;;OAKG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAmGxD;;;;;;OAMG;IACH,OAAO,CAAC,0BAA0B;IAYlC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IA0K/B;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAuBzB;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAY9B;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAgFhC;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAoB9B;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;CAkE5B"}
@@ -0,0 +1,40 @@
1
+ import { CrudFlags } from '../../generators/args.types';
2
+ import { CONFIG_TYPES } from '../../types';
3
+ import { OperationGeneratorBase } from '../base';
4
+ export declare class CrudGenerator extends OperationGeneratorBase<typeof CONFIG_TYPES.CRUD> {
5
+ protected get entityType(): "Crud";
6
+ description: string;
7
+ schema: import("zod").ZodObject<{
8
+ feature: import("zod").ZodString & {
9
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
10
+ };
11
+ name: import("zod").ZodString & {
12
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
13
+ };
14
+ public: import("zod").ZodPipe<import("zod").ZodOptional<import("zod").ZodString>, import("zod").ZodTransform<("create" | "update" | "delete" | "get" | "getAll")[] | undefined, string | undefined>> & {
15
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
16
+ };
17
+ override: import("zod").ZodPipe<import("zod").ZodOptional<import("zod").ZodString>, import("zod").ZodTransform<("create" | "update" | "delete" | "get" | "getAll")[] | undefined, string | undefined>> & {
18
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
19
+ };
20
+ exclude: import("zod").ZodPipe<import("zod").ZodOptional<import("zod").ZodString>, import("zod").ZodTransform<("create" | "update" | "delete" | "get" | "getAll")[] | undefined, string | undefined>> & {
21
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
22
+ };
23
+ force: import("zod").ZodOptional<import("zod").ZodBoolean> & {
24
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
25
+ };
26
+ }, import("zod/v4/core").$strip>;
27
+ generate(flags: CrudFlags): Promise<void>;
28
+ private generateCrudFile;
29
+ private updateConfigFile;
30
+ private buildOperations;
31
+ /**
32
+ * Generates operation code for overridden CRUD operations and returns as a single string.
33
+ */
34
+ private getOperationsCode;
35
+ /**
36
+ * Generates a CRUD definition for the feature configuration.
37
+ */
38
+ getDefinition(crudName: string, dataType: string, operations: any): string;
39
+ }
40
+ //# sourceMappingURL=crud-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crud-generator.d.ts","sourceRoot":"","sources":["../../../src/generators/crud/crud-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAiB,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAWjD,qBAAa,aAAc,SAAQ,sBAAsB,CACvD,OAAO,YAAY,CAAC,IAAI,CACzB;IACC,SAAS,KAAK,UAAU,WAEvB;IAED,WAAW,SAAoD;IAC/D,MAAM;;;;;;;;;;;;;;;;;;;qCAAU;IAEV,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;YAwCjC,gBAAgB;YAyBhB,gBAAgB;IAoB9B,OAAO,CAAC,eAAe;IA+BvB;;OAEG;YACW,iBAAiB;IA0B/B;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,MAAM;CAoB3E"}
@@ -0,0 +1,2 @@
1
+ export { CrudGenerator } from './crud-generator';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/crud/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { z } from 'zod';
2
+ export declare const schema: z.ZodObject<{
3
+ feature: z.ZodString & {
4
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
5
+ };
6
+ name: z.ZodString & {
7
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
8
+ };
9
+ public: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<("create" | "update" | "delete" | "get" | "getAll")[] | undefined, string | undefined>> & {
10
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
11
+ };
12
+ override: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<("create" | "update" | "delete" | "get" | "getAll")[] | undefined, string | undefined>> & {
13
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
14
+ };
15
+ exclude: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<("create" | "update" | "delete" | "get" | "getAll")[] | undefined, string | undefined>> & {
16
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
17
+ };
18
+ force: z.ZodOptional<z.ZodBoolean> & {
19
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
20
+ };
21
+ }, z.core.$strip>;
22
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/generators/crud/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;iBAyBjB,CAAC"}
@@ -0,0 +1,4 @@
1
+ .addCrud(feature, "<%=crudName%>", {
2
+ entity: "<%=dataType%>",
3
+ <%=operations%>,
4
+ })
@@ -0,0 +1,2 @@
1
+ <%=imports%>
2
+ <%=operations-%>
@@ -0,0 +1,18 @@
1
+ import { ExtendedSchema, FileSystem, Logger } from '@ingenyus/swarm';
2
+ import { WaspGeneratorBase } from '../base/wasp-generator.base';
3
+ import { SchemaArgs } from './schema';
4
+ export declare class FeatureDirectoryGenerator extends WaspGeneratorBase<SchemaArgs> {
5
+ logger: Logger;
6
+ fileSystem: FileSystem;
7
+ name: string;
8
+ description: string;
9
+ schema: ExtendedSchema;
10
+ constructor(logger?: Logger, fileSystem?: FileSystem);
11
+ protected getDefaultTemplatePath(templateName: string): string;
12
+ /**
13
+ * Generate feature directory structure (main entry point)
14
+ * @param featurePath - The path to the feature
15
+ */
16
+ generate(flags: SchemaArgs): Promise<void>;
17
+ }
18
+ //# sourceMappingURL=feature-directory-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-directory-generator.d.ts","sourceRoot":"","sources":["../../../src/generators/feature-directory/feature-directory-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,UAAU,EAEV,MAAM,EAGP,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAU,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9C,qBAAa,yBAA0B,SAAQ,iBAAiB,CAAC,UAAU,CAAC;IAMjE,MAAM,EAAE,MAAM;IACd,UAAU,EAAE,UAAU;IAN/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,cAAc,CAAC;gBAGd,MAAM,GAAE,MAA4B,EACpC,UAAU,GAAE,UAA2B;IAQhD,SAAS,CAAC,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAQ9D;;;OAGG;IACG,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CA0BjD"}
@@ -0,0 +1,2 @@
1
+ export { FeatureDirectoryGenerator } from './feature-directory-generator';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/feature-directory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ export declare const schema: z.ZodObject<{
3
+ path: z.ZodString & {
4
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
5
+ };
6
+ }, z.core.$strip>;
7
+ export type SchemaArgs = z.infer<typeof schema>;
8
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/generators/feature-directory/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,MAAM;;;;iBAEjB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { App } from "@ingenyus/swarm-wasp";
2
+
3
+ /**
4
+ * Fluent Wasp feature configuration
5
+ *
6
+ * Example usage:
7
+ * ```ts
8
+ * app
9
+ * .addApi(feature, "getItems", {
10
+ * method: "GET", route: "/api/feature/items", entities: ["Item"], auth: true
11
+ * })
12
+ * .addApiNamespace(feature, "apiNamespace", {
13
+ * path: "/api/feature"
14
+ * })
15
+ * .addRoute(feature, "featureRoute", {
16
+ * path: "/feature", componentName: "Feature", auth: false
17
+ * });
18
+ * ```
19
+ */
20
+ export default function configureFeature(app: App, feature: string): void {
21
+ app
22
+ }
@@ -0,0 +1,10 @@
1
+ export { ActionGenerator } from './action';
2
+ export { ApiGenerator } from './api';
3
+ export { ApiNamespaceGenerator } from './api-namespace';
4
+ export { WaspConfigGenerator } from './config';
5
+ export { CrudGenerator } from './crud';
6
+ export { FeatureDirectoryGenerator } from './feature-directory';
7
+ export { JobGenerator } from './job';
8
+ export { QueryGenerator } from './query';
9
+ export { RouteGenerator } from './route';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { JobGenerator } from './job-generator';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/job/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { JobFlags } from '../../generators/args.types';
2
+ import { CONFIG_TYPES } from '../../types';
3
+ import { EntityGeneratorBase } from '../base';
4
+ export declare class JobGenerator extends EntityGeneratorBase<typeof CONFIG_TYPES.JOB> {
5
+ protected get entityType(): "Job";
6
+ description: string;
7
+ schema: import("zod").ZodObject<{
8
+ feature: import("zod").ZodString & {
9
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
10
+ };
11
+ name: import("zod").ZodString & {
12
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
13
+ };
14
+ entities: import("zod").ZodOptional<import("zod").ZodString> & {
15
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
16
+ };
17
+ cron: import("zod").ZodOptional<import("zod").ZodString> & {
18
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
19
+ };
20
+ args: import("zod").ZodOptional<import("zod").ZodString> & {
21
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
22
+ };
23
+ force: import("zod").ZodOptional<import("zod").ZodBoolean> & {
24
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
25
+ };
26
+ }, import("zod/v4/core").$strip>;
27
+ generate(flags: JobFlags): Promise<void>;
28
+ private generateJobFile;
29
+ private updateConfigFile;
30
+ /**
31
+ * Generates a job definition for the feature configuration.
32
+ */
33
+ getDefinition(jobName: string, entities: string[], cron: string, args: string): string;
34
+ }
35
+ //# sourceMappingURL=job-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job-generator.d.ts","sourceRoot":"","sources":["../../../src/generators/job/job-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAG9C,qBAAa,YAAa,SAAQ,mBAAmB,CAAC,OAAO,YAAY,CAAC,GAAG,CAAC;IAC5E,SAAS,KAAK,UAAU,UAEvB;IAED,WAAW,SAAgD;IAC3D,MAAM;;;;;;;;;;;;;;;;;;;qCAAU;IAEV,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;YAgBhC,eAAe;IAgC7B,OAAO,CAAC,gBAAgB;IA8BxB;;OAEG;IACH,aAAa,CACX,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAAE,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,MAAM;CAUV"}
@@ -0,0 +1,22 @@
1
+ import { z } from 'zod';
2
+ export declare const schema: z.ZodObject<{
3
+ feature: z.ZodString & {
4
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
5
+ };
6
+ name: z.ZodString & {
7
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
8
+ };
9
+ entities: z.ZodOptional<z.ZodString> & {
10
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
11
+ };
12
+ cron: z.ZodOptional<z.ZodString> & {
13
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
14
+ };
15
+ args: z.ZodOptional<z.ZodString> & {
16
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
17
+ };
18
+ force: z.ZodOptional<z.ZodBoolean> & {
19
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
20
+ };
21
+ }, z.core.$strip>;
22
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/generators/job/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA4HxB,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;iBAOjB,CAAC"}
@@ -0,0 +1,9 @@
1
+ .addJob(feature, "<%=jobName%>", {
2
+ cron: "<%=cron%>",
3
+ <%- if (args !== '{}') { %>
4
+ args: <%=args%>,
5
+ <%- } %>
6
+ <%- if (entities.length > 0) { %>
7
+ entities: [<%=entities%>],
8
+ <%- } %>
9
+ })
@@ -0,0 +1,5 @@
1
+ <%=imports%>
2
+ export const <%=jobName%>: <%=jobType%><never, void> = async (_args, _context) => {
3
+ // TODO: Implement job logic
4
+ console.log("Job executed");
5
+ }
@@ -0,0 +1,6 @@
1
+ .add<%=operationType%>(feature, "<%=operationName%>", {
2
+ <%- if (entities.length > 0) { %>
3
+ entities: [<%=entities%>],
4
+ <%- } %>
5
+ auth: <%=auth%>,
6
+ })
@@ -0,0 +1,17 @@
1
+ <%=imports%>
2
+
3
+ export const <%=operationName%><%=typeAnnotation%> = async (data, context) => {
4
+ <%=authCheck%> try {
5
+ const created<%=modelName%> = await context.entities.<%=modelName%>.create({
6
+ data: {
7
+ ...data<%=jsonTypeHandling%>,
8
+ }
9
+ });
10
+
11
+ return created<%=modelName%>;
12
+ } catch (error) {
13
+ console.error("Failed to create <%=modelName%>:", error);
14
+
15
+ throw new HttpError(500, "Failed to create <%=modelName%>");
16
+ }
17
+ }; <%=satisfiesType%>
@@ -0,0 +1,21 @@
1
+ <%=imports%>
2
+
3
+ export const <%=operationName%><%=typeAnnotation%> = async ({ <%=idFieldParams%> }, context) => {
4
+ <%=authCheck%> try {
5
+ const <%=modelNameLower%> = await context.entities.<%=modelName%>.findUnique({
6
+ where: { <%=whereClause%> },
7
+ });
8
+
9
+ if (!<%=modelNameLower%>) {
10
+ throw new HttpError(404, `<%=modelName%> ${<%=idField%>} not found`);
11
+ }
12
+
13
+ await context.entities.<%=modelName%>.delete({
14
+ where: { <%=whereClause%> },
15
+ });
16
+ } catch (error) {
17
+ console.error(`Failed to delete <%=modelNameLower%> ${<%=idField%>}:`, error);
18
+
19
+ throw new HttpError(500, `Failed to delete <%=modelNameLower%> ${<%=idField%>}`);
20
+ }
21
+ }; <%=satisfiesType%>
@@ -0,0 +1,19 @@
1
+ <%=imports%>
2
+
3
+ export const <%=operationName%><%=typeAnnotation%> = (async ({ <%=idFieldParams%> }, context) => {
4
+ <%=authCheck%> try {
5
+ const <%=modelNameLower%> = await context.entities.<%=modelName%>.findUnique({
6
+ where: { <%=whereClause%> },
7
+ });
8
+
9
+ if (!<%=modelNameLower%>) {
10
+ throw new HttpError(404, `<%=modelNameLower%> ${<%=idField%>} not found`);
11
+ }
12
+
13
+ return <%=modelNameLower%>;
14
+ } catch (error) {
15
+ console.error(`Failed to get <%=modelNameLower%> ${<%=idField%>}:`, error);
16
+
17
+ throw new HttpError(500, `Failed to get <%=modelNameLower%> ${<%=idField%>}`);
18
+ }
19
+ }) <%=satisfiesType%>;
@@ -0,0 +1,13 @@
1
+ <%=imports%>
2
+
3
+ export const <%=operationName%><%=typeAnnotation%> = (async (_args, context) => {
4
+ <%=authCheck%> try {
5
+ const <%=pluralModelNameLower%> = await context.entities.<%=modelName%>.findMany();
6
+
7
+ return <%=pluralModelNameLower%>;
8
+ } catch (error) {
9
+ console.error("Failed to get all <%=pluralModelNameLower%>:", error);
10
+
11
+ throw new HttpError(500, "Failed to get all <%=pluralModelNameLower%>");
12
+ }
13
+ }) <%=satisfiesType%>;
@@ -0,0 +1,17 @@
1
+ <%=imports%>
2
+
3
+ export const <%=operationName%><%=typeAnnotation%> = (async (args, context) => {
4
+ <%=authCheck%> try {
5
+ const <%=pluralModelNameLower%> = await context.entities.<%=modelName%>.findMany({
6
+ where: {
7
+ ...args,
8
+ },
9
+ });
10
+
11
+ return <%=pluralModelNameLower%>;
12
+ } catch (error) {
13
+ console.error("Failed to get filtered <%=pluralModelNameLower%>:", error);
14
+
15
+ throw new HttpError(500, "Failed to get filtered <%=pluralModelNameLower%>");
16
+ }
17
+ }) <%=satisfiesType%>;
@@ -0,0 +1,26 @@
1
+ <%=imports%>
2
+
3
+ export const <%=operationName%><%=typeAnnotation%> = async ({ <%=idField%>, ...data }, context) => {
4
+ <%=authCheck%> try {
5
+ const <%=modelNameLower%> = await context.entities.<%=modelName%>.findUnique({
6
+ where: { <%=idField%> },
7
+ });
8
+
9
+ if (!<%=modelNameLower%>) {
10
+ throw new HttpError(404, `<%=modelName%> ${<%=idField%>} not found`);
11
+ }
12
+
13
+ const updated<%=modelName%> = await context.entities.<%=modelName%>.update({
14
+ where: { <%=idField%> },
15
+ data: {
16
+ ...data<%=jsonTypeHandling%>,
17
+ },
18
+ });
19
+
20
+ return updated<%=modelName%>;
21
+ } catch (error) {
22
+ console.error(`Failed to update <%=modelNameLower%> ${<%=idField%>}:`, error);
23
+
24
+ throw new HttpError(500, `Failed to update <%=modelNameLower%> ${<%=idField%>}`);
25
+ }
26
+ }; <%=satisfiesType%>
@@ -0,0 +1,2 @@
1
+ export { QueryGenerator } from './query-generator';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/query/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { QueryFlags } from '../../generators/args.types';
2
+ import { CONFIG_TYPES } from '../../types';
3
+ import { OperationGeneratorBase } from '../base';
4
+ export declare class QueryGenerator extends OperationGeneratorBase<typeof CONFIG_TYPES.QUERY> {
5
+ protected get entityType(): "Query";
6
+ description: string;
7
+ schema: import("zod").ZodObject<{
8
+ feature: import("zod").ZodString & {
9
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
10
+ };
11
+ operation: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<"get" | "getAll" | "getFiltered", string>> & {
12
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
13
+ };
14
+ dataType: import("zod").ZodString & {
15
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
16
+ };
17
+ name: import("zod").ZodOptional<import("zod").ZodString & {
18
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
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
+ };
31
+ }, import("zod/v4/core").$strip>;
32
+ generate(flags: Omit<QueryFlags, 'name'> & {
33
+ name?: string;
34
+ }): Promise<void>;
35
+ }
36
+ //# sourceMappingURL=query-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-generator.d.ts","sourceRoot":"","sources":["../../../src/generators/query/query-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAGjD,qBAAa,cAAe,SAAQ,sBAAsB,CACxD,OAAO,YAAY,CAAC,KAAK,CAC1B;IACC,SAAS,KAAK,UAAU,YAEvB;IAED,WAAW,SAA4D;IACvE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;qCAAU;IAEV,QAAQ,CACZ,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAClD,OAAO,CAAC,IAAI,CAAC;CAiEjB"}
@@ -0,0 +1,27 @@
1
+ import { z } from 'zod';
2
+ export declare const schema: z.ZodObject<{
3
+ feature: z.ZodString & {
4
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
5
+ };
6
+ operation: z.ZodPipe<z.ZodString, z.ZodTransform<"get" | "getAll" | "getFiltered", string>> & {
7
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
8
+ };
9
+ dataType: z.ZodString & {
10
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
11
+ };
12
+ name: z.ZodOptional<z.ZodString & {
13
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
14
+ }> & {
15
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
16
+ };
17
+ entities: z.ZodOptional<z.ZodString> & {
18
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
19
+ };
20
+ force: z.ZodOptional<z.ZodBoolean> & {
21
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
22
+ };
23
+ auth: z.ZodOptional<z.ZodBoolean> & {
24
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
25
+ };
26
+ }, z.core.$strip>;
27
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/generators/query/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmCxB,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;iBAQjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { RouteGenerator } from './route-generator';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/route/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { RouteFlags } from '../../generators/args.types';
2
+ import { CONFIG_TYPES } from '../../types';
3
+ import { EntityGeneratorBase } from '../base';
4
+ export declare class RouteGenerator extends EntityGeneratorBase<typeof CONFIG_TYPES.ROUTE> {
5
+ protected get entityType(): "Route";
6
+ description: string;
7
+ schema: import("zod").ZodObject<{
8
+ feature: import("zod").ZodString & {
9
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
10
+ };
11
+ name: import("zod").ZodString & {
12
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
13
+ };
14
+ path: import("zod").ZodString & {
15
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
16
+ };
17
+ auth: import("zod").ZodOptional<import("zod").ZodBoolean> & {
18
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
19
+ };
20
+ force: import("zod").ZodOptional<import("zod").ZodBoolean> & {
21
+ _metadata: import("@ingenyus/swarm").FieldMetadata;
22
+ };
23
+ }, import("zod/v4/core").$strip>;
24
+ generate(flags: RouteFlags): Promise<void>;
25
+ private generatePageFile;
26
+ private updateConfigFile;
27
+ /**
28
+ * Generates a route definition for the feature configuration.
29
+ */
30
+ getDefinition(routeName: string, routePath: string, featurePath: string, auth?: boolean): string;
31
+ }
32
+ //# sourceMappingURL=route-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-generator.d.ts","sourceRoot":"","sources":["../../../src/generators/route/route-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAG9C,qBAAa,cAAe,SAAQ,mBAAmB,CACrD,OAAO,YAAY,CAAC,KAAK,CAC1B;IACC,SAAS,KAAK,UAAU,YAEvB;IAED,WAAW,SAAmD;IAC9D,MAAM;;;;;;;;;;;;;;;;qCAAU;IAEV,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;YAgBlC,gBAAgB;IAoB9B,OAAO,CAAC,gBAAgB;IAwBxB;;OAEG;IACH,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,IAAI,UAAQ,GACX,MAAM;CAUV"}