@postxl/generators 1.12.3 → 1.14.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 (195) hide show
  1. package/dist/backend-ai/ai.generator.d.ts +18 -0
  2. package/dist/backend-ai/ai.generator.js +174 -0
  3. package/dist/backend-ai/ai.generator.js.map +1 -0
  4. package/dist/backend-ai/generators/ai-agent-service.generator.d.ts +4 -0
  5. package/dist/backend-ai/generators/ai-agent-service.generator.js +264 -0
  6. package/dist/backend-ai/generators/ai-agent-service.generator.js.map +1 -0
  7. package/dist/backend-ai/generators/ai-cache-service.generator.d.ts +1 -0
  8. package/dist/backend-ai/generators/ai-cache-service.generator.js +110 -0
  9. package/dist/backend-ai/generators/ai-cache-service.generator.js.map +1 -0
  10. package/dist/backend-ai/generators/ai-config.generator.d.ts +1 -0
  11. package/dist/backend-ai/generators/ai-config.generator.js +27 -0
  12. package/dist/backend-ai/generators/ai-config.generator.js.map +1 -0
  13. package/dist/backend-ai/generators/ai-module.generator.d.ts +2 -0
  14. package/dist/backend-ai/generators/ai-module.generator.js +89 -0
  15. package/dist/backend-ai/generators/ai-module.generator.js.map +1 -0
  16. package/dist/backend-ai/generators/ai-route.generator.d.ts +1 -0
  17. package/dist/backend-ai/generators/ai-route.generator.js +29 -0
  18. package/dist/backend-ai/generators/ai-route.generator.js.map +1 -0
  19. package/dist/backend-ai/generators/ai-tools-service.generator.d.ts +4 -0
  20. package/dist/backend-ai/generators/ai-tools-service.generator.js +222 -0
  21. package/dist/backend-ai/generators/ai-tools-service.generator.js.map +1 -0
  22. package/dist/backend-ai/generators/model-provider-interface.generator.d.ts +1 -0
  23. package/dist/backend-ai/generators/model-provider-interface.generator.js +48 -0
  24. package/dist/backend-ai/generators/model-provider-interface.generator.js.map +1 -0
  25. package/dist/backend-ai/generators/openai-model-provider-service.generator.d.ts +1 -0
  26. package/dist/backend-ai/generators/openai-model-provider-service.generator.js +128 -0
  27. package/dist/backend-ai/generators/openai-model-provider-service.generator.js.map +1 -0
  28. package/dist/backend-ai/index.d.ts +4 -0
  29. package/dist/backend-ai/index.js +40 -0
  30. package/dist/backend-ai/index.js.map +1 -0
  31. package/dist/backend-authentication/generators/authentication-service.generator.js +1 -1
  32. package/dist/backend-core/backend.generator.js +0 -4
  33. package/dist/backend-core/backend.generator.js.map +1 -1
  34. package/dist/backend-core/generators/main.generator.js +4 -3
  35. package/dist/backend-core/generators/main.generator.js.map +1 -1
  36. package/dist/backend-core/modules/backend-module-xlport.generator.js +1 -1
  37. package/dist/backend-e2e/backend-e2e.generator.js +4 -4
  38. package/dist/backend-e2e/backend-e2e.generator.js.map +1 -1
  39. package/dist/backend-excel-io/excel-io.generator.d.ts +19 -0
  40. package/dist/backend-excel-io/excel-io.generator.js +106 -0
  41. package/dist/backend-excel-io/excel-io.generator.js.map +1 -0
  42. package/dist/backend-excel-io/generators/excel-io-service.generator.d.ts +9 -0
  43. package/dist/backend-excel-io/generators/excel-io-service.generator.js +680 -0
  44. package/dist/backend-excel-io/generators/excel-io-service.generator.js.map +1 -0
  45. package/dist/backend-excel-io/index.d.ts +2 -0
  46. package/dist/backend-excel-io/index.js +22 -0
  47. package/dist/backend-excel-io/index.js.map +1 -0
  48. package/dist/backend-excel-io/template/README.md +24 -0
  49. package/dist/backend-excel-io/template/excel-io.controller.ts +195 -0
  50. package/dist/backend-excel-io/template/excel-io.module.ts +17 -0
  51. package/dist/backend-import/generators/detect-delta/detect-delta-functions.generator.js +149 -14
  52. package/dist/backend-import/generators/detect-delta/detect-delta-functions.generator.js.map +1 -1
  53. package/dist/backend-import/generators/filter-error-rows.generator.d.ts +2 -0
  54. package/dist/backend-import/generators/filter-error-rows.generator.js +28 -0
  55. package/dist/backend-import/generators/filter-error-rows.generator.js.map +1 -0
  56. package/dist/backend-import/generators/import-service.generator.js +126 -2
  57. package/dist/backend-import/generators/import-service.generator.js.map +1 -1
  58. package/dist/backend-import/import.generator.js +2 -0
  59. package/dist/backend-import/import.generator.js.map +1 -1
  60. package/dist/backend-repositories/generators/model-repository.generator.js +17 -2
  61. package/dist/backend-repositories/generators/model-repository.generator.js.map +1 -1
  62. package/dist/backend-router-trpc/generators/app-routes.generator.js +8 -1
  63. package/dist/backend-router-trpc/generators/app-routes.generator.js.map +1 -1
  64. package/dist/backend-router-trpc/generators/excel-io-route.generator.d.ts +4 -0
  65. package/dist/backend-router-trpc/generators/excel-io-route.generator.js +35 -0
  66. package/dist/backend-router-trpc/generators/excel-io-route.generator.js.map +1 -0
  67. package/dist/backend-router-trpc/generators/trpc-plugin.generator.js +9 -0
  68. package/dist/backend-router-trpc/generators/trpc-plugin.generator.js.map +1 -1
  69. package/dist/backend-router-trpc/generators/trpc-router-module.generator.js +9 -1
  70. package/dist/backend-router-trpc/generators/trpc-router-module.generator.js.map +1 -1
  71. package/dist/backend-router-trpc/generators/trpc-shared.generator.js +16 -1
  72. package/dist/backend-router-trpc/generators/trpc-shared.generator.js.map +1 -1
  73. package/dist/backend-router-trpc/router-trpc.generator.d.ts +3 -1
  74. package/dist/backend-router-trpc/router-trpc.generator.js +6 -0
  75. package/dist/backend-router-trpc/router-trpc.generator.js.map +1 -1
  76. package/dist/backend-seed/seed.generator.js +10 -1
  77. package/dist/backend-seed/seed.generator.js.map +1 -1
  78. package/dist/base/base.generator.js +0 -4
  79. package/dist/base/base.generator.js.map +1 -1
  80. package/dist/base/template/scripts/setup.sh +9 -4
  81. package/dist/base/template/sonar-project.properties +9 -1
  82. package/dist/decoders/datamodel-decoder.generator.js +91 -1
  83. package/dist/decoders/datamodel-decoder.generator.js.map +1 -1
  84. package/dist/decoders/decoders.generator.d.ts +9 -0
  85. package/dist/decoders/decoders.generator.js +15 -0
  86. package/dist/decoders/decoders.generator.js.map +1 -1
  87. package/dist/devops/devops.generator.d.ts +5 -1
  88. package/dist/devops/devops.generator.js +5 -4
  89. package/dist/devops/devops.generator.js.map +1 -1
  90. package/dist/devops/generators/bitbucket-pipelines-yml.generator.js +1 -0
  91. package/dist/devops/generators/bitbucket-pipelines-yml.generator.js.map +1 -1
  92. package/dist/devops/generators/docker-compose-yml.generator.d.ts +1 -1
  93. package/dist/devops/generators/docker-compose-yml.generator.js +16 -1
  94. package/dist/devops/generators/docker-compose-yml.generator.js.map +1 -1
  95. package/dist/devops/generators/e2e-yml.generator.js +35 -10
  96. package/dist/devops/generators/e2e-yml.generator.js.map +1 -1
  97. package/dist/devops/generators/jenkinsfile.generator.js +25 -1
  98. package/dist/devops/generators/jenkinsfile.generator.js.map +1 -1
  99. package/dist/e2e/template/e2e/specs/example.spec.ts-snapshots/Navigate-to-homepage-and-take-snapshot-1-chromium-linux.png +0 -0
  100. package/dist/frontend-actions/actions.generator.d.ts +9 -0
  101. package/dist/frontend-actions/actions.generator.js +111 -0
  102. package/dist/frontend-actions/actions.generator.js.map +1 -0
  103. package/dist/frontend-actions/generators/ai-action-text.utils.generator.d.ts +1 -0
  104. package/dist/frontend-actions/generators/ai-action-text.utils.generator.js +52 -0
  105. package/dist/frontend-actions/generators/ai-action-text.utils.generator.js.map +1 -0
  106. package/dist/frontend-actions/generators/ai-assistant-store.generator.d.ts +1 -0
  107. package/dist/frontend-actions/generators/ai-assistant-store.generator.js +230 -0
  108. package/dist/frontend-actions/generators/ai-assistant-store.generator.js.map +1 -0
  109. package/dist/frontend-actions/generators/ai-sidebar-content.generator.d.ts +1 -0
  110. package/dist/frontend-actions/generators/ai-sidebar-content.generator.js +139 -0
  111. package/dist/frontend-actions/generators/ai-sidebar-content.generator.js.map +1 -0
  112. package/dist/frontend-actions/generators/ai-sidepane.generator.d.ts +1 -0
  113. package/dist/frontend-actions/generators/ai-sidepane.generator.js +98 -0
  114. package/dist/frontend-actions/generators/ai-sidepane.generator.js.map +1 -0
  115. package/dist/frontend-actions/generators/base-global-actions.generator.d.ts +1 -0
  116. package/dist/frontend-actions/generators/base-global-actions.generator.js +405 -0
  117. package/dist/frontend-actions/generators/base-global-actions.generator.js.map +1 -0
  118. package/dist/frontend-actions/generators/command-palette-action.generator.d.ts +1 -0
  119. package/dist/frontend-actions/generators/command-palette-action.generator.js +87 -0
  120. package/dist/frontend-actions/generators/command-palette-action.generator.js.map +1 -0
  121. package/dist/frontend-actions/generators/command-palette-store.generator.d.ts +1 -0
  122. package/dist/frontend-actions/generators/command-palette-store.generator.js +288 -0
  123. package/dist/frontend-actions/generators/command-palette-store.generator.js.map +1 -0
  124. package/dist/frontend-actions/generators/command-palette.generator.d.ts +5 -0
  125. package/dist/frontend-actions/generators/command-palette.generator.js +332 -0
  126. package/dist/frontend-actions/generators/command-palette.generator.js.map +1 -0
  127. package/dist/frontend-actions/generators/filter-utils.generator.d.ts +1 -0
  128. package/dist/frontend-actions/generators/filter-utils.generator.js +50 -0
  129. package/dist/frontend-actions/generators/filter-utils.generator.js.map +1 -0
  130. package/dist/frontend-actions/generators/sidepanel-toggle.generator.d.ts +1 -0
  131. package/dist/frontend-actions/generators/sidepanel-toggle.generator.js +37 -0
  132. package/dist/frontend-actions/generators/sidepanel-toggle.generator.js.map +1 -0
  133. package/dist/frontend-actions/index.d.ts +4 -0
  134. package/dist/frontend-actions/index.js +40 -0
  135. package/dist/frontend-actions/index.js.map +1 -0
  136. package/dist/frontend-admin/admin.generator.d.ts +5 -1
  137. package/dist/frontend-admin/admin.generator.js +36 -1
  138. package/dist/frontend-admin/admin.generator.js.map +1 -1
  139. package/dist/frontend-admin/generators/admin-global-actions.generator.d.ts +4 -0
  140. package/dist/frontend-admin/generators/admin-global-actions.generator.js +230 -0
  141. package/dist/frontend-admin/generators/admin-global-actions.generator.js.map +1 -0
  142. package/dist/frontend-admin/generators/admin-overview-page.generator.js +21 -1
  143. package/dist/frontend-admin/generators/admin-overview-page.generator.js.map +1 -1
  144. package/dist/frontend-admin/generators/admin-sidebar.generator.js +20 -0
  145. package/dist/frontend-admin/generators/admin-sidebar.generator.js.map +1 -1
  146. package/dist/frontend-admin/generators/detail-sidebar.generator.js +44 -32
  147. package/dist/frontend-admin/generators/detail-sidebar.generator.js.map +1 -1
  148. package/dist/frontend-admin/generators/excel-io-page.generator.d.ts +4 -0
  149. package/dist/frontend-admin/generators/excel-io-page.generator.js +258 -0
  150. package/dist/frontend-admin/generators/excel-io-page.generator.js.map +1 -0
  151. package/dist/frontend-admin/generators/import-review-page-result-stage.generator.d.ts +1 -0
  152. package/dist/frontend-admin/generators/import-review-page-result-stage.generator.js +104 -0
  153. package/dist/frontend-admin/generators/import-review-page-result-stage.generator.js.map +1 -0
  154. package/dist/frontend-admin/generators/import-review-page-review-stage.generator.d.ts +1 -0
  155. package/dist/frontend-admin/generators/import-review-page-review-stage.generator.js +1031 -0
  156. package/dist/frontend-admin/generators/import-review-page-review-stage.generator.js.map +1 -0
  157. package/dist/frontend-admin/generators/import-review-page-upload-stage.generator.d.ts +1 -0
  158. package/dist/frontend-admin/generators/import-review-page-upload-stage.generator.js +77 -0
  159. package/dist/frontend-admin/generators/import-review-page-upload-stage.generator.js.map +1 -0
  160. package/dist/frontend-admin/generators/import-review-page.generator.d.ts +7 -0
  161. package/dist/frontend-admin/generators/import-review-page.generator.js +180 -0
  162. package/dist/frontend-admin/generators/import-review-page.generator.js.map +1 -0
  163. package/dist/frontend-admin/generators/model-admin-page.generator.js +198 -60
  164. package/dist/frontend-admin/generators/model-admin-page.generator.js.map +1 -1
  165. package/dist/frontend-admin/utils.d.ts +1 -0
  166. package/dist/frontend-admin/utils.js +26 -33
  167. package/dist/frontend-admin/utils.js.map +1 -1
  168. package/dist/frontend-core/frontend.generator.js +1 -2
  169. package/dist/frontend-core/frontend.generator.js.map +1 -1
  170. package/dist/frontend-core/generators/tsconfig.generator.js +1 -0
  171. package/dist/frontend-core/generators/tsconfig.generator.js.map +1 -1
  172. package/dist/frontend-core/template/.env.example +3 -0
  173. package/dist/frontend-core/template/src/components/admin/excel-io-actions.tsx +64 -0
  174. package/dist/frontend-core/template/src/components/admin/table-view-panel.tsx +41 -3
  175. package/dist/frontend-core/template/src/components/ui/color-mode-toggle/color-mode-toggle.tsx +1 -1
  176. package/dist/frontend-core/template/src/hooks/use-excel-io.ts +137 -0
  177. package/dist/frontend-core/template/src/hooks/use-import-review.ts +143 -0
  178. package/dist/frontend-core/template/src/lib/color.ts +6 -3
  179. package/dist/frontend-core/template/src/lib/config.ts +3 -1
  180. package/dist/frontend-core/template/src/lib/excel-download.ts +28 -0
  181. package/dist/frontend-core/types/hook.d.ts +1 -1
  182. package/dist/frontend-tables/generators/model-table.generator.js +21 -13
  183. package/dist/frontend-tables/generators/model-table.generator.js.map +1 -1
  184. package/dist/generators.js +6 -0
  185. package/dist/generators.js.map +1 -1
  186. package/dist/index.d.ts +3 -0
  187. package/dist/index.js +11 -2
  188. package/dist/index.js.map +1 -1
  189. package/dist/seed-data/seed-data.generator.d.ts +3 -0
  190. package/dist/seed-data/seed-data.generator.js +45 -1
  191. package/dist/seed-data/seed-data.generator.js.map +1 -1
  192. package/dist/types/template/ai.types.ts +34 -0
  193. package/dist/types/types.generator.js +1 -0
  194. package/dist/types/types.generator.js.map +1 -1
  195. package/package.json +4 -4
@@ -36,6 +36,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.configureDevopsGenerator = exports.generatorId = void 0;
37
37
  const Path = __importStar(require("node:path"));
38
38
  const Generator = __importStar(require("@postxl/generator"));
39
+ const generator_1 = require("@postxl/generator");
40
+ const backend_core_1 = require("../backend-core");
39
41
  const backend_build_sh_generator_1 = require("./generators/backend-build-sh.generator");
40
42
  const backend_dockerfile_generator_1 = require("./generators/backend-dockerfile.generator");
41
43
  const backend_start_api_sh_generator_1 = require("./generators/backend-start-api-sh.generator");
@@ -50,7 +52,9 @@ const root_dotenv_example_generator_1 = require("./generators/root-dotenv-exampl
50
52
  exports.generatorId = Generator.toGeneratorInterfaceId('devops');
51
53
  const configureDevopsGenerator = (config) => ({
52
54
  id: exports.generatorId,
55
+ requires: [backend_core_1.backendGeneratorId],
53
56
  register: (context) => {
57
+ const useXlPort = context.backend.modules.some((module) => module.moduleClass?.location === (0, generator_1.toBackendModuleLocation)('@xlport/xlport.module'));
54
58
  return {
55
59
  ...context,
56
60
  devOps: {
@@ -72,6 +76,7 @@ const configureDevopsGenerator = (config) => ({
72
76
  realm: `${context.schema.slug}`,
73
77
  }
74
78
  : undefined,
79
+ useXlPort,
75
80
  useBitbucket: config?.useBitbucket ?? false,
76
81
  useS3: config?.useS3 ?? false,
77
82
  },
@@ -116,10 +121,6 @@ const configureDevopsGenerator = (config) => ({
116
121
  context.vfs.write('Jenkinsfile', (0, jenkinsfile_generator_1.generateJenkinsfile)(context));
117
122
  const env = (0, root_dotenv_example_generator_1.generateDotEnvExample)(context.devOps);
118
123
  context.vfs.write('.env.example', env);
119
- // We write the .env file so that the project can get started without the need for the developer to
120
- // copy the .env.example file. The .env file is not committed to the repository as it is part of the
121
- // .gitignore file.
122
- context.vfs.write('.env', env);
123
124
  return context;
124
125
  },
125
126
  });
@@ -1 +1 @@
1
- {"version":3,"file":"devops.generator.js","sourceRoot":"","sources":["../../src/devops/devops.generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"devops.generator.js","sourceRoot":"","sources":["../../src/devops/devops.generator.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ definitions:
29
29
  script:
30
30
  - export ENABLE_BACKEND_SHUTDOWN=true
31
31
  - export PLAYWRIGHT_WORKERS=1
32
+ - export AI_ENABLED=false
32
33
  ${database ? startPostgres : ''}
33
34
  - npm install -g pnpm
34
35
  - pnpm run setup
@@ -1 +1 @@
1
- {"version":3,"file":"bitbucket-pipelines-yml.generator.js","sourceRoot":"","sources":["../../../src/devops/generators/bitbucket-pipelines-yml.generator.ts"],"names":[],"mappings":";;AAEA,sEAiGC;AAjGD,SAAgB,6BAA6B,CAAC,EAC5C,MAAM,EAAE,EAAE,IAAI,EAAE,EAChB,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,GACV;IACpB,OAAO,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;YA2BL,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAkC7B,QAAQ,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;YAWvD,QAAQ,CAAC,CAAC,CAAC,qBAAqB,IAAI,oDAAoD,CAAC,CAAC,CAAC,EAAE;8BAC3E,IAAI;8BACJ,IAAI;;;;;;;;;;;;;;;;;;CAkBjC,CAAA;AACD,CAAC;AAED,MAAM,aAAa,GAAG;;;;;CAKrB,CAAA"}
1
+ {"version":3,"file":"bitbucket-pipelines-yml.generator.js","sourceRoot":"","sources":["../../../src/devops/generators/bitbucket-pipelines-yml.generator.ts"],"names":[],"mappings":";;AAEA,sEAkGC;AAlGD,SAAgB,6BAA6B,CAAC,EAC5C,MAAM,EAAE,EAAE,IAAI,EAAE,EAChB,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,GACV;IACpB,OAAO,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA4BL,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAkC7B,QAAQ,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;YAWvD,QAAQ,CAAC,CAAC,CAAC,qBAAqB,IAAI,oDAAoD,CAAC,CAAC,CAAC,EAAE;8BAC3E,IAAI;8BACJ,IAAI;;;;;;;;;;;;;;;;;;CAkBjC,CAAA;AACD,CAAC;AAED,MAAM,aAAa,GAAG;;;;;CAKrB,CAAA"}
@@ -1,2 +1,2 @@
1
1
  import { DevOpsContext } from '../devops.generator';
2
- export declare function generateDockerComposeYaml({ database, keycloak }: DevOpsContext): string;
2
+ export declare function generateDockerComposeYaml({ database, keycloak, useXlPort }: DevOpsContext): string;
@@ -1,13 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateDockerComposeYaml = generateDockerComposeYaml;
4
- function generateDockerComposeYaml({ database, keycloak }) {
4
+ function generateDockerComposeYaml({ database, keycloak, useXlPort }) {
5
5
  return /*yml*/ `
6
6
  services:
7
7
  ${database ? dbService(database) : ''}
8
8
 
9
9
  ${keycloak ? keycloakService(keycloak) : ''}
10
10
 
11
+ ${useXlPort ? xlportService : ''}
12
+
11
13
  networks:
12
14
  backend: {}
13
15
 
@@ -71,6 +73,19 @@ const keycloakService = ({ host, pathPrefix, clientId, clientSecret, realm }) =>
71
73
  networks:
72
74
  - backend
73
75
  `;
76
+ const xlportService = `
77
+ xlport:
78
+ image: xlport:latest
79
+ restart: unless-stopped
80
+ ports:
81
+ - '8433:8080'
82
+ expose:
83
+ - '8080'
84
+ volumes:
85
+ - ./backend/xlport:/var/lib/jetty/webapps/ROOT/WEB-INF/templates:ro
86
+ networks:
87
+ - backend
88
+ `;
74
89
  const volumes = `
75
90
  volumes:
76
91
  postgres:
@@ -1 +1 @@
1
- {"version":3,"file":"docker-compose-yml.generator.js","sourceRoot":"","sources":["../../../src/devops/generators/docker-compose-yml.generator.ts"],"names":[],"mappings":";;AAEA,8DAYC;AAZD,SAAgB,yBAAyB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAiB;IAC7E,OAAO,OAAO,CAAC;;IAEb,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;;IAEnC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;;;;;EAK3C,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;CACxB,CAAA;AACD,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAkB,EAAE,EAAE,CAAC;;;;;;;;;uBASjD,QAAQ;2BACJ,QAAQ;qBACd,QAAQ;;;;;;;2CAOc,QAAQ,OAAO,QAAQ;;;;CAIjE,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAkB,EAAE,EAAE,CAAC;;;;;;;;;;;;;;sBAc3E,IAAI,GAAG,UAAU;4BACX,IAAI,GAAG,UAAU;;;wBAGrB,KAAK;4BACD,QAAQ;;gCAEJ,YAAY;;;;;;;;;;;;CAY3C,CAAA;AAED,MAAM,OAAO,GAAG;;;CAGf,CAAA"}
1
+ {"version":3,"file":"docker-compose-yml.generator.js","sourceRoot":"","sources":["../../../src/devops/generators/docker-compose-yml.generator.ts"],"names":[],"mappings":";;AAEA,8DAcC;AAdD,SAAgB,yBAAyB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAiB;IACxF,OAAO,OAAO,CAAC;;IAEb,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;;IAEnC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;;IAEzC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;;;;;EAKhC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;CACxB,CAAA;AACD,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAkB,EAAE,EAAE,CAAC;;;;;;;;;uBASjD,QAAQ;2BACJ,QAAQ;qBACd,QAAQ;;;;;;;2CAOc,QAAQ,OAAO,QAAQ;;;;CAIjE,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAkB,EAAE,EAAE,CAAC;;;;;;;;;;;;;;sBAc3E,IAAI,GAAG,UAAU;4BACX,IAAI,GAAG,UAAU;;;wBAGrB,KAAK;4BACD,QAAQ;;gCAEJ,YAAY;;;;;;;;;;;;CAY3C,CAAA;AAED,MAAM,aAAa,GAAG;;;;;;;;;;;;CAYrB,CAAA;AAED,MAAM,OAAO,GAAG;;;CAGf,CAAA"}
@@ -49,9 +49,20 @@ function generateE2EYaml(context) {
49
49
  ${database ? databaseSetup(connectionString) : ''}
50
50
 
51
51
  - name: Start backend
52
- run: pnpm e2e:coverage:stateless > backend.log 2>&1 &
52
+ run: |
53
+ pnpm e2e:coverage:stateless > backend.log 2>&1 &
54
+ echo $! > backend.pid
55
+ sleep 5
56
+ if ! ps -p $(cat backend.pid) > /dev/null 2>&1; then
57
+ echo "Backend process exited early."
58
+ echo "Backend Logs:"
59
+ cat backend.log || true
60
+ exit 1
61
+ fi
53
62
  working-directory: backend
54
- ${database ? databaseConnectionEnv(connectionString) : ''}
63
+ env:
64
+ AI_ENABLED: 'false'
65
+ ${database ? `DATABASE_CONNECTION: '${connectionString}'` : ''}
55
66
 
56
67
  - name: Start frontend
57
68
  run: pnpm e2e:ci > frontend.log 2>&1 &
@@ -66,10 +77,17 @@ function generateE2EYaml(context) {
66
77
  sleep 30
67
78
 
68
79
  echo "Backend Logs:"
69
- cat backend/backend.log
80
+ cat backend/backend.log || true
81
+
82
+ echo "Backend Process:"
83
+ if [ -f backend/backend.pid ]; then
84
+ ps -p $(cat backend/backend.pid) -f || true
85
+ else
86
+ echo "backend.pid not found"
87
+ fi
70
88
 
71
89
  echo "Frontend Logs:"
72
- cat frontend/frontend.log
90
+ cat frontend/frontend.log || true
73
91
 
74
92
  - name: Wait for Backend to be ready
75
93
  run: |
@@ -95,6 +113,16 @@ function generateE2EYaml(context) {
95
113
 
96
114
  echo "$url is ready!"
97
115
 
116
+ - name: Dump backend logs on failure
117
+ if: \${{ failure() }}
118
+ run: |
119
+ echo "Backend failed to start. Dumping backend log tail:"
120
+ tail -n 400 backend/backend.log || true
121
+ echo "Backend process info:"
122
+ if [ -f backend/backend.pid ]; then
123
+ ps -p $(cat backend/backend.pid) -f || true
124
+ fi
125
+
98
126
  - name: Wait for Frontend to be ready
99
127
  run: |
100
128
  retry=0
@@ -184,14 +212,11 @@ const postgresContainerSetup = ({ username, password, database }) => `
184
212
  --health-timeout 5s
185
213
  --health-retries 5
186
214
  `;
187
- const databaseConnectionEnv = (connectionString) => `
188
- env:
189
- # We need to use postgres service name as the host when running in a container!
190
- DATABASE_CONNECTION: '${connectionString}'
191
- `;
192
215
  const databaseSetup = (connectionString) => `
193
216
  - name: Setup Test Database
194
217
  run: pnpm prisma migrate dev
195
- ${databaseConnectionEnv(connectionString)}
218
+ env:
219
+ # We need to use postgres service name as the host when running in a container!
220
+ DATABASE_CONNECTION: '${connectionString}'
196
221
  `;
197
222
  //# sourceMappingURL=e2e-yml.generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"e2e-yml.generator.js","sourceRoot":"","sources":["../../../src/devops/generators/e2e-yml.generator.ts"],"names":[],"mappings":";;AAEA,0CAwKC;AAxKD,SAAgB,eAAe,CAAC,OAA4B;IAC1D,MAAM,EACJ,MAAM,EAAE,EAAE,QAAQ,EAAE,GACrB,GAAG,OAAO,CAAA;IACX,0FAA0F;IAC1F,MAAM,gBAAgB,GAAG,gDAAgD,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAE9F,OAAO,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;QAqBT,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;UAoB9C,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE;;;;;YAK7C,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkHlE,CAAA;AACD,CAAC;AAED,MAAM,sBAAsB,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAkB,EAAE,EAAE,CAAC;;;;;6BAKxD,QAAQ;iCACJ,QAAQ;2BACd,QAAQ;;;;;;;;;CASlC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,gBAAwB,EAAE,EAAE,CAAC;;;oCAGxB,gBAAgB;CACnD,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,gBAAwB,EAAE,EAAE,CAAC;;;EAGlD,qBAAqB,CAAC,gBAAgB,CAAC;CACxC,CAAA"}
1
+ {"version":3,"file":"e2e-yml.generator.js","sourceRoot":"","sources":["../../../src/devops/generators/e2e-yml.generator.ts"],"names":[],"mappings":";;AAEA,0CAoMC;AApMD,SAAgB,eAAe,CAAC,OAA4B;IAC1D,MAAM,EACJ,MAAM,EAAE,EAAE,QAAQ,EAAE,GACrB,GAAG,OAAO,CAAA;IACX,0FAA0F;IAC1F,MAAM,gBAAgB,GAAG,gDAAgD,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAE9F,OAAO,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;QAqBT,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;UAoB9C,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;cAgB3C,QAAQ,CAAC,CAAC,CAAC,yBAAyB,gBAAgB,GAAG,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmIzE,CAAA;AACD,CAAC;AAED,MAAM,sBAAsB,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAkB,EAAE,EAAE,CAAC;;;;;6BAKxD,QAAQ;iCACJ,QAAQ;2BACd,QAAQ;;;;;;;;;CASlC,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,gBAAwB,EAAE,EAAE,CAAC;;;;;oCAKhB,gBAAgB;CACnD,CAAA"}
@@ -56,6 +56,29 @@ function generateJenkinsfile({ devOps: { database, keycloak, useS3 }, schema: {
56
56
  -e AWS_FILE_PREFIX=\${AWS_FILE_PREFIX} \\
57
57
  -e AWS_REGION=\${AWS_REGION} \\`
58
58
  : '';
59
+ const aiEnv = `
60
+ AI_ENABLED = "false"
61
+ AI_OPENAI_KEY = ""
62
+ AI_OPENAI_KEYS = ""
63
+ AI_OPENAI_MODEL = "gpt-4.1-mini"
64
+ AI_OPENAI_TIMEOUT_MS = "20000"
65
+ AI_RATE_LIMIT_WINDOW_MS = "60000"
66
+ AI_RATE_LIMIT_MAX_REQUESTS = "120"
67
+ AI_CONVERSATION_TTL_MS = "900000"
68
+ AI_CONVERSATION_CACHE_MAX_SIZE = "500"
69
+ AI_MAX_INTERNAL_TOOL_STEPS = "12"
70
+ `;
71
+ const aiRunEnv = `
72
+ -e AI_ENABLED=\${AI_ENABLED} \\
73
+ -e AI_OPENAI_KEY=\${AI_OPENAI_KEY} \\
74
+ -e AI_OPENAI_KEYS=\${AI_OPENAI_KEYS} \\
75
+ -e AI_OPENAI_MODEL=\${AI_OPENAI_MODEL} \\
76
+ -e AI_OPENAI_TIMEOUT_MS=\${AI_OPENAI_TIMEOUT_MS} \\
77
+ -e AI_RATE_LIMIT_WINDOW_MS=\${AI_RATE_LIMIT_WINDOW_MS} \\
78
+ -e AI_RATE_LIMIT_MAX_REQUESTS=\${AI_RATE_LIMIT_MAX_REQUESTS} \\
79
+ -e AI_CONVERSATION_TTL_MS=\${AI_CONVERSATION_TTL_MS} \\
80
+ -e AI_CONVERSATION_CACHE_MAX_SIZE=\${AI_CONVERSATION_CACHE_MAX_SIZE} \\
81
+ -e AI_MAX_INTERNAL_TOOL_STEPS=\${AI_MAX_INTERNAL_TOOL_STEPS} \\`;
59
82
  return /*Jenkinsfile*/ `
60
83
  def secrets = [${dbSecrets}${keycloakSecrets}
61
84
  [envVar: 'TURBO_TOKEN', secretRef: 'op://PostXL service/Turborepo Cache Token/password'],
@@ -82,7 +105,7 @@ pipeline {
82
105
  PORT_MAPPING_BACKEND = "4011:\${API_PORT}"
83
106
  FRONTEND_URL = "https://${slug}.postxl.com"
84
107
  PORT_MAPPING_FRONTEND = "4010:8080"
85
- ${keycloakEnv}${s3Env}
108
+ ${keycloakEnv}${s3Env}${aiEnv}
86
109
  XLPORT_APIKEY = "pass123"
87
110
  }
88
111
  stages{
@@ -125,6 +148,7 @@ pipeline {
125
148
  -e API_URL=\${API_URL} \\
126
149
  -e API_PORT=\${API_PORT} \\
127
150
  -e APP_SECRET=\${APP_SECRET} \\${dbEnv}${keycloakRunEnv}${s3RunEnv}
151
+ ${aiRunEnv}
128
152
  -e XLPORT_APIKEY=\${XLPORT_APIKEY} \\
129
153
  -p 0.0.0.0:\${PORT_MAPPING_BACKEND} \\
130
154
  \${REGISTRY}/\${PROJECT_NAME}_backend:latest"
@@ -1 +1 @@
1
- {"version":3,"file":"jenkinsfile.generator.js","sourceRoot":"","sources":["../../../src/devops/generators/jenkinsfile.generator.ts"],"names":[],"mappings":";;AAEA,kDAyJC;AAzJD,SAAgB,mBAAmB,CAAC,EAClC,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,EACrC,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GACT;IACpB,iFAAiF;IACjF,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACtC,MAAM,SAAS,GAAG,QAAQ;QACxB,CAAC,CAAC;mFAC6E,IAAI;mFACJ,IAAI;KAClF;QACD,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,eAAe,GAAG,QAAQ;QAC9B,CAAC,CAAC;oGAC8F,IAAI;KACnG;QACD,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,WAAW,GAAG,QAAQ;QAC1B,CAAC,CAAC;;gCAE0B,IAAI;4BACR,IAAI;;;SAGvB;QACL,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,KAAK,GAAG,QAAQ;QACpB,CAAC,CAAC;wIACkI;QACpI,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,cAAc,GAAG,QAAQ;QAC7B,CAAC,CAAC;;;;;;0GAMoG;QACtG,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,sBAAsB,GAAG,QAAQ;QACrC,CAAC,CAAC;;;sFAGgF;QAClF,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,KAAK,GAAG,KAAK;QACjB,CAAC,CAAC;;;;SAIG;QACL,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,QAAQ,GAAG,KAAK;QACpB,CAAC,CAAC;;;sEAGgE;QAClE,CAAC,CAAC,EAAE,CAAA;IAEN,OAAO,eAAe,CAAC;iBACR,SAAS,GAAG,eAAe;;;;;;;;;;;;;;0BAclB,IAAI;;;;;;6BAMD,IAAI;;;kCAGC,IAAI;;UAE5B,WAAW,GAAG,KAAK;;;;;;;sBAOP,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,GAAG;;;;;;;;sBAQvD,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;uEA2BN,KAAK,GAAG,cAAc,GAAG,QAAQ;;;;;;;;4EAQ5B,sBAAsB;;;;;;;;;;CAUjG,CAAA;AACD,CAAC"}
1
+ {"version":3,"file":"jenkinsfile.generator.js","sourceRoot":"","sources":["../../../src/devops/generators/jenkinsfile.generator.ts"],"names":[],"mappings":";;AAEA,kDAmLC;AAnLD,SAAgB,mBAAmB,CAAC,EAClC,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,EACrC,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GACT;IACpB,iFAAiF;IACjF,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACtC,MAAM,SAAS,GAAG,QAAQ;QACxB,CAAC,CAAC;mFAC6E,IAAI;mFACJ,IAAI;KAClF;QACD,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,eAAe,GAAG,QAAQ;QAC9B,CAAC,CAAC;oGAC8F,IAAI;KACnG;QACD,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,WAAW,GAAG,QAAQ;QAC1B,CAAC,CAAC;;gCAE0B,IAAI;4BACR,IAAI;;;SAGvB;QACL,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,KAAK,GAAG,QAAQ;QACpB,CAAC,CAAC;wIACkI;QACpI,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,cAAc,GAAG,QAAQ;QAC7B,CAAC,CAAC;;;;;;0GAMoG;QACtG,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,sBAAsB,GAAG,QAAQ;QACrC,CAAC,CAAC;;;sFAGgF;QAClF,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,KAAK,GAAG,KAAK;QACjB,CAAC,CAAC;;;;SAIG;QACL,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,QAAQ,GAAG,KAAK;QACpB,CAAC,CAAC;;;sEAGgE;QAClE,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,KAAK,GAAG;;;;;;;;;;;SAWP,CAAA;IAEP,MAAM,QAAQ,GAAG;;;;;;;;;;sGAUmF,CAAA;IAEpG,OAAO,eAAe,CAAC;iBACR,SAAS,GAAG,eAAe;;;;;;;;;;;;;;0BAclB,IAAI;;;;;;6BAMD,IAAI;;;kCAGC,IAAI;;UAE5B,WAAW,GAAG,KAAK,GAAG,KAAK;;;;;;;sBAOf,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,GAAG;;;;;;;;sBAQvD,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;uEA2BN,KAAK,GAAG,cAAc,GAAG,QAAQ;wCAChE,QAAQ;;;;;;;;4EAQ4B,sBAAsB;;;;;;;;;;CAUjG,CAAA;AACD,CAAC"}
@@ -0,0 +1,9 @@
1
+ import * as Generator from '@postxl/generator';
2
+ export type WithFrontendActions<Context extends Generator.Context> = Generator.ExtendContext<Context, {
3
+ frontendActions: {
4
+ commandPalette: Generator.ImportableFunction;
5
+ globalActionHooks: Generator.ImportableFunction[];
6
+ };
7
+ }>;
8
+ export declare const generatorId: string & import("zod").$brand<"PXL.GeneratorInterfaceId">;
9
+ export declare const generator: Generator.GeneratorInterface;
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.generator = exports.generatorId = void 0;
37
+ const Generator = __importStar(require("@postxl/generator"));
38
+ const backend_router_trpc_1 = require("../backend-router-trpc");
39
+ const base_1 = require("../base");
40
+ const frontend_core_1 = require("../frontend-core");
41
+ const frontend_trpc_client_1 = require("../frontend-trpc-client");
42
+ const ai_action_text_utils_generator_1 = require("./generators/ai-action-text.utils.generator");
43
+ const ai_assistant_store_generator_1 = require("./generators/ai-assistant-store.generator");
44
+ const ai_sidebar_content_generator_1 = require("./generators/ai-sidebar-content.generator");
45
+ const ai_sidepane_generator_1 = require("./generators/ai-sidepane.generator");
46
+ const base_global_actions_generator_1 = require("./generators/base-global-actions.generator");
47
+ const command_palette_generator_1 = require("./generators/command-palette.generator");
48
+ const command_palette_action_generator_1 = require("./generators/command-palette-action.generator");
49
+ const command_palette_store_generator_1 = require("./generators/command-palette-store.generator");
50
+ const filter_utils_generator_1 = require("./generators/filter-utils.generator");
51
+ const sidepanel_toggle_generator_1 = require("./generators/sidepanel-toggle.generator");
52
+ exports.generatorId = Generator.toGeneratorInterfaceId('frontend-actions');
53
+ exports.generator = {
54
+ id: exports.generatorId,
55
+ requires: [base_1.baseGeneratorId, frontend_core_1.frontendGeneratorId, backend_router_trpc_1.backendTrpcRouterGeneratorId, frontend_trpc_client_1.frontendTrpcClientGeneratorId],
56
+ register: (context) => {
57
+ const commandPalette = {
58
+ name: Generator.toFunctionName('CommandPalette'),
59
+ location: Generator.toBackendModuleLocation('@app-actions/command-palette'),
60
+ };
61
+ const baseGlobalActions = {
62
+ name: Generator.toFunctionName('useBaseGlobalActions'),
63
+ location: Generator.toBackendModuleLocation('@app-actions/base-global.actions'),
64
+ };
65
+ return {
66
+ ...context,
67
+ frontendActions: {
68
+ commandPalette,
69
+ globalActionHooks: [baseGlobalActions],
70
+ },
71
+ };
72
+ },
73
+ generate: (context) => {
74
+ context.vfs.write('frontend/src/actions/command-palette-action.ts', (0, command_palette_action_generator_1.generateCommandPaletteAction)());
75
+ context.vfs.write('frontend/src/actions/command-palette-store.ts', (0, command_palette_store_generator_1.generateCommandPaletteStore)());
76
+ context.vfs.write('frontend/src/actions/ai-assistant-store.ts', (0, ai_assistant_store_generator_1.generateAiAssistantStore)());
77
+ context.vfs.write('frontend/src/actions/ai-action-text.utils.ts', (0, ai_action_text_utils_generator_1.generateAiActionTextUtils)());
78
+ context.vfs.write('frontend/src/actions/ai-sidebar-content.tsx', (0, ai_sidebar_content_generator_1.generateAiSidebarContent)());
79
+ context.vfs.write('frontend/src/actions/ai-sidepane.tsx', (0, ai_sidepane_generator_1.generateAiSidepane)());
80
+ context.vfs.write('frontend/src/actions/sidepanel-toggle.tsx', (0, sidepanel_toggle_generator_1.generateSidepanelToggle)());
81
+ context.vfs.write('frontend/src/actions/base-global.actions.tsx', (0, base_global_actions_generator_1.generateBaseGlobalActions)());
82
+ context.vfs.write('frontend/src/actions/command-palette.tsx', (0, command_palette_generator_1.generateCommandPalette)({ context }));
83
+ context.vfs.write('frontend/src/lib/command-palette-filter.utils.ts', (0, filter_utils_generator_1.generateFilterUtils)());
84
+ const rootDocumentPath = 'frontend/src/pages/root-document.tsx';
85
+ const rootDocument = context.vfs.get(rootDocumentPath);
86
+ if (typeof rootDocument === 'string') {
87
+ let content = rootDocument;
88
+ if (!content.includes("import { CommandPalette } from '@app-actions/command-palette'")) {
89
+ content = content.replace("import { APP_CONFIG } from '@lib/config'", "import { CommandPalette } from '@app-actions/command-palette'\nimport { APP_CONFIG } from '@lib/config'");
90
+ }
91
+ if (!content.includes("import { AiSidepane } from '@app-actions/ai-sidepane'")) {
92
+ content = content.replace("import { CommandPalette } from '@app-actions/command-palette'", "import { AiSidepane } from '@app-actions/ai-sidepane'\nimport { CommandPalette } from '@app-actions/command-palette'");
93
+ }
94
+ if (!content.includes("import { SidepanelToggle } from '@app-actions/sidepanel-toggle'")) {
95
+ content = content.replace("import { AiSidepane } from '@app-actions/ai-sidepane'", "import { AiSidepane } from '@app-actions/ai-sidepane'\nimport { SidepanelToggle } from '@app-actions/sidepanel-toggle'");
96
+ }
97
+ if (!content.includes('<CommandPalette />')) {
98
+ content = content.replace('<Outlet />', '<Outlet />\n <CommandPalette />');
99
+ }
100
+ if (!content.includes('<AiSidepane />')) {
101
+ content = content.replace('<CommandPalette />', '<CommandPalette />\n <AiSidepane />');
102
+ }
103
+ if (!content.includes('<SidepanelToggle />')) {
104
+ content = content.replace('<AiSidepane />', '<AiSidepane />\n <SidepanelToggle />');
105
+ }
106
+ context.vfs.write(rootDocumentPath, content);
107
+ }
108
+ return context;
109
+ },
110
+ };
111
+ //# sourceMappingURL=actions.generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.generator.js","sourceRoot":"","sources":["../../src/frontend-actions/actions.generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function generateAiActionTextUtils(): string;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateAiActionTextUtils = generateAiActionTextUtils;
4
+ function generateAiActionTextUtils() {
5
+ return `export const toTitle = (value: string): string =>
6
+ value.length > 0 ? value.charAt(0).toUpperCase() + value.slice(1) : value
7
+
8
+ export const humanizeToken = (value: string): string =>
9
+ value
10
+ .replaceAll(/([A-Z])([A-Z][a-z])/g, '$1 $2')
11
+ .replaceAll(/([a-z])([A-Z])/g, '$1 $2')
12
+ .replaceAll(/[_-]+/g, ' ')
13
+ .replaceAll(/\\s+/g, ' ')
14
+ .trim()
15
+
16
+ export const formatInputValue = (value: unknown): string => {
17
+ if (value === undefined || value === null) {
18
+ return ''
19
+ }
20
+
21
+ if (typeof value === 'string') {
22
+ const trimmed = value.trim()
23
+ return trimmed.length > 0 ? '"' + trimmed + '"' : ''
24
+ }
25
+
26
+ if (typeof value === 'number' || typeof value === 'boolean') {
27
+ return String(value)
28
+ }
29
+
30
+ if (Array.isArray(value)) {
31
+ const entries = value.map((entry) => formatInputValue(entry)).filter((entry) => entry.length > 0)
32
+ return entries.join(', ')
33
+ }
34
+
35
+ if (typeof value === 'object') {
36
+ const entries = Object.entries(value as Record<string, unknown>)
37
+ .map(([key, entry]) => {
38
+ const formatted = formatInputValue(entry)
39
+ if (!formatted) {
40
+ return ''
41
+ }
42
+ return humanizeToken(key) + ': ' + formatted
43
+ })
44
+ .filter((entry) => entry.length > 0)
45
+ return entries.join(', ')
46
+ }
47
+
48
+ return ''
49
+ }
50
+ `;
51
+ }
52
+ //# sourceMappingURL=ai-action-text.utils.generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-action-text.utils.generator.js","sourceRoot":"","sources":["../../../src/frontend-actions/generators/ai-action-text.utils.generator.ts"],"names":[],"mappings":";;AAAA,8DA+CC;AA/CD,SAAgB,yBAAyB;IACvC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CR,CAAA;AACD,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function generateAiAssistantStore(): string;