@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.
- package/dist/backend-ai/ai.generator.d.ts +18 -0
- package/dist/backend-ai/ai.generator.js +174 -0
- package/dist/backend-ai/ai.generator.js.map +1 -0
- package/dist/backend-ai/generators/ai-agent-service.generator.d.ts +4 -0
- package/dist/backend-ai/generators/ai-agent-service.generator.js +264 -0
- package/dist/backend-ai/generators/ai-agent-service.generator.js.map +1 -0
- package/dist/backend-ai/generators/ai-cache-service.generator.d.ts +1 -0
- package/dist/backend-ai/generators/ai-cache-service.generator.js +110 -0
- package/dist/backend-ai/generators/ai-cache-service.generator.js.map +1 -0
- package/dist/backend-ai/generators/ai-config.generator.d.ts +1 -0
- package/dist/backend-ai/generators/ai-config.generator.js +27 -0
- package/dist/backend-ai/generators/ai-config.generator.js.map +1 -0
- package/dist/backend-ai/generators/ai-module.generator.d.ts +2 -0
- package/dist/backend-ai/generators/ai-module.generator.js +89 -0
- package/dist/backend-ai/generators/ai-module.generator.js.map +1 -0
- package/dist/backend-ai/generators/ai-route.generator.d.ts +1 -0
- package/dist/backend-ai/generators/ai-route.generator.js +29 -0
- package/dist/backend-ai/generators/ai-route.generator.js.map +1 -0
- package/dist/backend-ai/generators/ai-tools-service.generator.d.ts +4 -0
- package/dist/backend-ai/generators/ai-tools-service.generator.js +222 -0
- package/dist/backend-ai/generators/ai-tools-service.generator.js.map +1 -0
- package/dist/backend-ai/generators/model-provider-interface.generator.d.ts +1 -0
- package/dist/backend-ai/generators/model-provider-interface.generator.js +48 -0
- package/dist/backend-ai/generators/model-provider-interface.generator.js.map +1 -0
- package/dist/backend-ai/generators/openai-model-provider-service.generator.d.ts +1 -0
- package/dist/backend-ai/generators/openai-model-provider-service.generator.js +128 -0
- package/dist/backend-ai/generators/openai-model-provider-service.generator.js.map +1 -0
- package/dist/backend-ai/index.d.ts +4 -0
- package/dist/backend-ai/index.js +40 -0
- package/dist/backend-ai/index.js.map +1 -0
- package/dist/backend-authentication/generators/authentication-service.generator.js +1 -1
- package/dist/backend-core/backend.generator.js +0 -4
- package/dist/backend-core/backend.generator.js.map +1 -1
- package/dist/backend-core/generators/main.generator.js +4 -3
- package/dist/backend-core/generators/main.generator.js.map +1 -1
- package/dist/backend-core/modules/backend-module-xlport.generator.js +1 -1
- package/dist/backend-e2e/backend-e2e.generator.js +4 -4
- package/dist/backend-e2e/backend-e2e.generator.js.map +1 -1
- package/dist/backend-excel-io/excel-io.generator.d.ts +19 -0
- package/dist/backend-excel-io/excel-io.generator.js +106 -0
- package/dist/backend-excel-io/excel-io.generator.js.map +1 -0
- package/dist/backend-excel-io/generators/excel-io-service.generator.d.ts +9 -0
- package/dist/backend-excel-io/generators/excel-io-service.generator.js +680 -0
- package/dist/backend-excel-io/generators/excel-io-service.generator.js.map +1 -0
- package/dist/backend-excel-io/index.d.ts +2 -0
- package/dist/backend-excel-io/index.js +22 -0
- package/dist/backend-excel-io/index.js.map +1 -0
- package/dist/backend-excel-io/template/README.md +24 -0
- package/dist/backend-excel-io/template/excel-io.controller.ts +195 -0
- package/dist/backend-excel-io/template/excel-io.module.ts +17 -0
- package/dist/backend-import/generators/detect-delta/detect-delta-functions.generator.js +149 -14
- package/dist/backend-import/generators/detect-delta/detect-delta-functions.generator.js.map +1 -1
- package/dist/backend-import/generators/filter-error-rows.generator.d.ts +2 -0
- package/dist/backend-import/generators/filter-error-rows.generator.js +28 -0
- package/dist/backend-import/generators/filter-error-rows.generator.js.map +1 -0
- package/dist/backend-import/generators/import-service.generator.js +126 -2
- package/dist/backend-import/generators/import-service.generator.js.map +1 -1
- package/dist/backend-import/import.generator.js +2 -0
- package/dist/backend-import/import.generator.js.map +1 -1
- package/dist/backend-repositories/generators/model-repository.generator.js +17 -2
- package/dist/backend-repositories/generators/model-repository.generator.js.map +1 -1
- package/dist/backend-router-trpc/generators/app-routes.generator.js +8 -1
- package/dist/backend-router-trpc/generators/app-routes.generator.js.map +1 -1
- package/dist/backend-router-trpc/generators/excel-io-route.generator.d.ts +4 -0
- package/dist/backend-router-trpc/generators/excel-io-route.generator.js +35 -0
- package/dist/backend-router-trpc/generators/excel-io-route.generator.js.map +1 -0
- package/dist/backend-router-trpc/generators/trpc-plugin.generator.js +9 -0
- package/dist/backend-router-trpc/generators/trpc-plugin.generator.js.map +1 -1
- package/dist/backend-router-trpc/generators/trpc-router-module.generator.js +9 -1
- package/dist/backend-router-trpc/generators/trpc-router-module.generator.js.map +1 -1
- package/dist/backend-router-trpc/generators/trpc-shared.generator.js +16 -1
- package/dist/backend-router-trpc/generators/trpc-shared.generator.js.map +1 -1
- package/dist/backend-router-trpc/router-trpc.generator.d.ts +3 -1
- package/dist/backend-router-trpc/router-trpc.generator.js +6 -0
- package/dist/backend-router-trpc/router-trpc.generator.js.map +1 -1
- package/dist/backend-seed/seed.generator.js +10 -1
- package/dist/backend-seed/seed.generator.js.map +1 -1
- package/dist/base/base.generator.js +0 -4
- package/dist/base/base.generator.js.map +1 -1
- package/dist/base/template/scripts/setup.sh +9 -4
- package/dist/base/template/sonar-project.properties +9 -1
- package/dist/decoders/datamodel-decoder.generator.js +91 -1
- package/dist/decoders/datamodel-decoder.generator.js.map +1 -1
- package/dist/decoders/decoders.generator.d.ts +9 -0
- package/dist/decoders/decoders.generator.js +15 -0
- package/dist/decoders/decoders.generator.js.map +1 -1
- package/dist/devops/devops.generator.d.ts +5 -1
- package/dist/devops/devops.generator.js +5 -4
- package/dist/devops/devops.generator.js.map +1 -1
- package/dist/devops/generators/bitbucket-pipelines-yml.generator.js +1 -0
- package/dist/devops/generators/bitbucket-pipelines-yml.generator.js.map +1 -1
- package/dist/devops/generators/docker-compose-yml.generator.d.ts +1 -1
- package/dist/devops/generators/docker-compose-yml.generator.js +16 -1
- package/dist/devops/generators/docker-compose-yml.generator.js.map +1 -1
- package/dist/devops/generators/e2e-yml.generator.js +35 -10
- package/dist/devops/generators/e2e-yml.generator.js.map +1 -1
- package/dist/devops/generators/jenkinsfile.generator.js +25 -1
- package/dist/devops/generators/jenkinsfile.generator.js.map +1 -1
- package/dist/e2e/template/e2e/specs/example.spec.ts-snapshots/Navigate-to-homepage-and-take-snapshot-1-chromium-linux.png +0 -0
- package/dist/frontend-actions/actions.generator.d.ts +9 -0
- package/dist/frontend-actions/actions.generator.js +111 -0
- package/dist/frontend-actions/actions.generator.js.map +1 -0
- package/dist/frontend-actions/generators/ai-action-text.utils.generator.d.ts +1 -0
- package/dist/frontend-actions/generators/ai-action-text.utils.generator.js +52 -0
- package/dist/frontend-actions/generators/ai-action-text.utils.generator.js.map +1 -0
- package/dist/frontend-actions/generators/ai-assistant-store.generator.d.ts +1 -0
- package/dist/frontend-actions/generators/ai-assistant-store.generator.js +230 -0
- package/dist/frontend-actions/generators/ai-assistant-store.generator.js.map +1 -0
- package/dist/frontend-actions/generators/ai-sidebar-content.generator.d.ts +1 -0
- package/dist/frontend-actions/generators/ai-sidebar-content.generator.js +139 -0
- package/dist/frontend-actions/generators/ai-sidebar-content.generator.js.map +1 -0
- package/dist/frontend-actions/generators/ai-sidepane.generator.d.ts +1 -0
- package/dist/frontend-actions/generators/ai-sidepane.generator.js +98 -0
- package/dist/frontend-actions/generators/ai-sidepane.generator.js.map +1 -0
- package/dist/frontend-actions/generators/base-global-actions.generator.d.ts +1 -0
- package/dist/frontend-actions/generators/base-global-actions.generator.js +405 -0
- package/dist/frontend-actions/generators/base-global-actions.generator.js.map +1 -0
- package/dist/frontend-actions/generators/command-palette-action.generator.d.ts +1 -0
- package/dist/frontend-actions/generators/command-palette-action.generator.js +87 -0
- package/dist/frontend-actions/generators/command-palette-action.generator.js.map +1 -0
- package/dist/frontend-actions/generators/command-palette-store.generator.d.ts +1 -0
- package/dist/frontend-actions/generators/command-palette-store.generator.js +288 -0
- package/dist/frontend-actions/generators/command-palette-store.generator.js.map +1 -0
- package/dist/frontend-actions/generators/command-palette.generator.d.ts +5 -0
- package/dist/frontend-actions/generators/command-palette.generator.js +332 -0
- package/dist/frontend-actions/generators/command-palette.generator.js.map +1 -0
- package/dist/frontend-actions/generators/filter-utils.generator.d.ts +1 -0
- package/dist/frontend-actions/generators/filter-utils.generator.js +50 -0
- package/dist/frontend-actions/generators/filter-utils.generator.js.map +1 -0
- package/dist/frontend-actions/generators/sidepanel-toggle.generator.d.ts +1 -0
- package/dist/frontend-actions/generators/sidepanel-toggle.generator.js +37 -0
- package/dist/frontend-actions/generators/sidepanel-toggle.generator.js.map +1 -0
- package/dist/frontend-actions/index.d.ts +4 -0
- package/dist/frontend-actions/index.js +40 -0
- package/dist/frontend-actions/index.js.map +1 -0
- package/dist/frontend-admin/admin.generator.d.ts +5 -1
- package/dist/frontend-admin/admin.generator.js +36 -1
- package/dist/frontend-admin/admin.generator.js.map +1 -1
- package/dist/frontend-admin/generators/admin-global-actions.generator.d.ts +4 -0
- package/dist/frontend-admin/generators/admin-global-actions.generator.js +230 -0
- package/dist/frontend-admin/generators/admin-global-actions.generator.js.map +1 -0
- package/dist/frontend-admin/generators/admin-overview-page.generator.js +21 -1
- package/dist/frontend-admin/generators/admin-overview-page.generator.js.map +1 -1
- package/dist/frontend-admin/generators/admin-sidebar.generator.js +20 -0
- package/dist/frontend-admin/generators/admin-sidebar.generator.js.map +1 -1
- package/dist/frontend-admin/generators/detail-sidebar.generator.js +44 -32
- package/dist/frontend-admin/generators/detail-sidebar.generator.js.map +1 -1
- package/dist/frontend-admin/generators/excel-io-page.generator.d.ts +4 -0
- package/dist/frontend-admin/generators/excel-io-page.generator.js +258 -0
- package/dist/frontend-admin/generators/excel-io-page.generator.js.map +1 -0
- package/dist/frontend-admin/generators/import-review-page-result-stage.generator.d.ts +1 -0
- package/dist/frontend-admin/generators/import-review-page-result-stage.generator.js +104 -0
- package/dist/frontend-admin/generators/import-review-page-result-stage.generator.js.map +1 -0
- package/dist/frontend-admin/generators/import-review-page-review-stage.generator.d.ts +1 -0
- package/dist/frontend-admin/generators/import-review-page-review-stage.generator.js +1031 -0
- package/dist/frontend-admin/generators/import-review-page-review-stage.generator.js.map +1 -0
- package/dist/frontend-admin/generators/import-review-page-upload-stage.generator.d.ts +1 -0
- package/dist/frontend-admin/generators/import-review-page-upload-stage.generator.js +77 -0
- package/dist/frontend-admin/generators/import-review-page-upload-stage.generator.js.map +1 -0
- package/dist/frontend-admin/generators/import-review-page.generator.d.ts +7 -0
- package/dist/frontend-admin/generators/import-review-page.generator.js +180 -0
- package/dist/frontend-admin/generators/import-review-page.generator.js.map +1 -0
- package/dist/frontend-admin/generators/model-admin-page.generator.js +198 -60
- package/dist/frontend-admin/generators/model-admin-page.generator.js.map +1 -1
- package/dist/frontend-admin/utils.d.ts +1 -0
- package/dist/frontend-admin/utils.js +26 -33
- package/dist/frontend-admin/utils.js.map +1 -1
- package/dist/frontend-core/frontend.generator.js +1 -2
- package/dist/frontend-core/frontend.generator.js.map +1 -1
- package/dist/frontend-core/generators/tsconfig.generator.js +1 -0
- package/dist/frontend-core/generators/tsconfig.generator.js.map +1 -1
- package/dist/frontend-core/template/.env.example +3 -0
- package/dist/frontend-core/template/src/components/admin/excel-io-actions.tsx +64 -0
- package/dist/frontend-core/template/src/components/admin/table-view-panel.tsx +41 -3
- package/dist/frontend-core/template/src/components/ui/color-mode-toggle/color-mode-toggle.tsx +1 -1
- package/dist/frontend-core/template/src/hooks/use-excel-io.ts +137 -0
- package/dist/frontend-core/template/src/hooks/use-import-review.ts +143 -0
- package/dist/frontend-core/template/src/lib/color.ts +6 -3
- package/dist/frontend-core/template/src/lib/config.ts +3 -1
- package/dist/frontend-core/template/src/lib/excel-download.ts +28 -0
- package/dist/frontend-core/types/hook.d.ts +1 -1
- package/dist/frontend-tables/generators/model-table.generator.js +21 -13
- package/dist/frontend-tables/generators/model-table.generator.js.map +1 -1
- package/dist/generators.js +6 -0
- package/dist/generators.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +11 -2
- package/dist/index.js.map +1 -1
- package/dist/seed-data/seed-data.generator.d.ts +3 -0
- package/dist/seed-data/seed-data.generator.js +45 -1
- package/dist/seed-data/seed-data.generator.js.map +1 -1
- package/dist/types/template/ai.types.ts +34 -0
- package/dist/types/types.generator.js +1 -0
- package/dist/types/types.generator.js.map +1 -1
- 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAiC;AAEjC,6DAA8C;
|
|
1
|
+
{"version":3,"file":"devops.generator.js","sourceRoot":"","sources":["../../src/devops/devops.generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitbucket-pipelines-yml.generator.js","sourceRoot":"","sources":["../../../src/devops/generators/bitbucket-pipelines-yml.generator.ts"],"names":[],"mappings":";;AAEA,
|
|
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,
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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"}
|
|
Binary file
|
|
@@ -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;
|