@common-stack/generate-plugin 6.0.6-alpha.7 → 6.0.6-alpha.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +230 -0
- package/README.md +157 -211
- package/cde-config.json +43 -42
- package/generators.json +5 -0
- package/lib/{constants/index.cjs → common/constants.cjs} +1 -1
- package/lib/common/constants.cjs.map +1 -0
- package/lib/{constants/index.mjs → common/constants.mjs} +1 -1
- package/lib/common/constants.mjs.map +1 -0
- package/lib/generators/add-backend/files/package.json +5 -4
- package/lib/generators/add-backend/files/src/api/root-schema.graphqls +1 -7
- package/lib/generators/add-backend/generator.cjs +12 -3
- package/lib/generators/add-backend/generator.cjs.map +1 -1
- package/lib/generators/add-backend/generator.mjs +12 -3
- package/lib/generators/add-backend/generator.mjs.map +1 -1
- package/lib/generators/add-backend/schema.json +6 -1
- package/lib/generators/add-frontend/frameworks/antui/root.tsx.template +2 -2
- package/lib/generators/add-frontend/frameworks/chakraui/root.tsx.template +4 -3
- package/lib/generators/add-frontend/frameworks/tailwindui/root.tsx.template +2 -2
- package/lib/generators/add-frontend/generator.cjs +17 -13
- package/lib/generators/add-frontend/generator.cjs.map +1 -1
- package/lib/generators/add-frontend/generator.mjs +12 -8
- package/lib/generators/add-frontend/generator.mjs.map +1 -1
- package/lib/generators/add-frontend/schema.json +8 -3
- package/lib/generators/add-frontend/templates/config.json +2 -47
- package/lib/generators/add-frontend/templates/package.json +5 -8
- package/lib/generators/add-frontend/templates/tools/checkQueryUsage.mjs +192 -0
- package/lib/generators/add-frontend/templates/tools/mergeConfig.js +3 -0
- package/lib/generators/add-frontend/templates/vite.config.ts.template +53 -32
- package/lib/generators/add-fullstack/files/Jenkinsfile +7 -7
- package/lib/generators/add-fullstack/files/package.json +19 -14
- package/lib/generators/add-fullstack/files/tools/html-plugin-template.ejs +28 -0
- package/lib/generators/add-fullstack/files/tools/update-dependencies.mjs +95 -63
- package/lib/generators/add-fullstack/files/tools/update-dependency-link.mjs +12 -10
- package/lib/generators/add-fullstack/files/tools/{update-dependency-version.js → update-dependency-version.mjs} +57 -26
- package/lib/generators/add-fullstack/generator.cjs +39 -30
- package/lib/generators/add-fullstack/generator.cjs.map +1 -1
- package/lib/generators/add-fullstack/generator.mjs +39 -30
- package/lib/generators/add-fullstack/generator.mjs.map +1 -1
- package/lib/generators/add-fullstack/updates/htmlPluginUpdate.cjs +8 -0
- package/lib/generators/add-fullstack/updates/htmlPluginUpdate.cjs.map +1 -0
- package/lib/generators/add-fullstack/updates/htmlPluginUpdate.d.ts +2 -0
- package/lib/generators/add-fullstack/updates/htmlPluginUpdate.mjs +8 -0
- package/lib/generators/add-fullstack/updates/htmlPluginUpdate.mjs.map +1 -0
- package/lib/generators/add-fullstack/updates/ignoreUpdate.cjs +19 -0
- package/lib/generators/add-fullstack/updates/ignoreUpdate.cjs.map +1 -0
- package/lib/generators/add-fullstack/updates/ignoreUpdate.d.ts +3 -0
- package/lib/generators/add-fullstack/updates/ignoreUpdate.mjs +19 -0
- package/lib/generators/add-fullstack/updates/ignoreUpdate.mjs.map +1 -0
- package/lib/generators/add-fullstack/updates/index.d.ts +4 -0
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.cjs +5 -4
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.cjs.map +1 -1
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.d.ts +2 -1
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.mjs +5 -4
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.mjs.map +1 -1
- package/lib/generators/add-fullstack/updates/lernaJsonUpdate.cjs +45 -0
- package/lib/generators/add-fullstack/updates/lernaJsonUpdate.cjs.map +1 -0
- package/lib/generators/add-fullstack/updates/lernaJsonUpdate.d.ts +3 -0
- package/lib/generators/add-fullstack/updates/lernaJsonUpdate.mjs +45 -0
- package/lib/generators/add-fullstack/updates/lernaJsonUpdate.mjs.map +1 -0
- package/lib/generators/add-fullstack/updates/licenseUpdate.cjs +19 -0
- package/lib/generators/add-fullstack/updates/licenseUpdate.cjs.map +1 -0
- package/lib/generators/add-fullstack/updates/licenseUpdate.d.ts +2 -0
- package/lib/generators/add-fullstack/updates/licenseUpdate.mjs +19 -0
- package/lib/generators/add-fullstack/updates/licenseUpdate.mjs.map +1 -0
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.cjs +38 -4
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.cjs.map +1 -1
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.d.ts +2 -1
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.mjs +38 -4
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.mjs.map +1 -1
- package/lib/generators/add-moleculer/files/charts/chart/Chart.yaml +1 -1
- package/lib/generators/add-moleculer/files/package.json +5 -5
- package/lib/generators/add-moleculer/generator.cjs +7 -4
- package/lib/generators/add-moleculer/generator.cjs.map +1 -1
- package/lib/generators/add-moleculer/generator.mjs +7 -4
- package/lib/generators/add-moleculer/generator.mjs.map +1 -1
- package/lib/generators/add-moleculer/schema.json +9 -4
- package/lib/generators/add-package/generator.cjs +50 -0
- package/lib/generators/add-package/generator.cjs.map +1 -0
- package/lib/generators/add-package/generator.d.ts +5 -0
- package/lib/generators/add-package/generator.mjs +50 -0
- package/lib/generators/add-package/generator.mjs.map +1 -0
- package/lib/generators/add-package/schema.json +29 -0
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -4
- package/lib/index.mjs +1 -1
- package/lib/utils/filesConfig.cjs +76 -0
- package/lib/utils/filesConfig.cjs.map +1 -0
- package/lib/utils/filesConfig.d.ts +2 -0
- package/lib/utils/filesConfig.mjs +76 -0
- package/lib/utils/filesConfig.mjs.map +1 -0
- package/lib/utils/index.cjs +28 -2
- package/lib/utils/index.cjs.map +1 -1
- package/lib/utils/index.d.ts +3 -0
- package/lib/utils/index.mjs +28 -2
- package/lib/utils/index.mjs.map +1 -1
- package/lib/utils/syncConfig.cjs +116 -0
- package/lib/utils/syncConfig.cjs.map +1 -0
- package/lib/utils/syncConfig.d.ts +9 -0
- package/lib/utils/syncConfig.mjs +116 -0
- package/lib/utils/syncConfig.mjs.map +1 -0
- package/package.json +3 -4
- package/rollup.config.mjs +2 -8
- package/src/generators/add-backend/generator.ts +14 -3
- package/src/generators/add-backend/schema.d.ts +1 -0
- package/src/generators/add-backend/schema.json +6 -1
- package/src/generators/add-frontend/frameworks/antui/root.tsx.template +2 -2
- package/src/generators/add-frontend/frameworks/chakraui/root.tsx.template +4 -3
- package/src/generators/add-frontend/frameworks/tailwindui/root.tsx.template +2 -2
- package/src/generators/add-frontend/generator.ts +12 -8
- package/src/generators/add-frontend/schema.d.ts +1 -0
- package/src/generators/add-frontend/schema.json +8 -3
- package/src/generators/add-fullstack/files/Jenkinsfile +7 -7
- package/src/generators/add-fullstack/files/LICENSE-IST +39 -0
- package/src/generators/add-fullstack/files/package.json +19 -14
- package/src/generators/add-fullstack/files/tools/html-plugin-template.ejs +28 -0
- package/src/generators/add-fullstack/files/tools/update-dependencies.mjs +95 -63
- package/src/generators/add-fullstack/files/tools/update-dependency-link.mjs +12 -10
- package/src/generators/add-fullstack/files/tools/{update-dependency-version.js → update-dependency-version.mjs} +57 -26
- package/src/generators/add-fullstack/generator.ts +64 -38
- package/src/generators/add-fullstack/updates/htmlPluginUpdate.ts +11 -0
- package/src/generators/add-fullstack/updates/ignoreUpdate.ts +23 -0
- package/src/generators/add-fullstack/updates/index.ts +4 -0
- package/src/generators/add-fullstack/updates/jenkinsfileUpdate.ts +6 -4
- package/src/generators/add-fullstack/updates/lernaJsonUpdate.ts +53 -0
- package/src/generators/add-fullstack/updates/licenseUpdate.ts +23 -0
- package/src/generators/add-fullstack/updates/packageJsonUpdate.ts +45 -4
- package/src/generators/add-moleculer/files/charts/chart/Chart.yaml +1 -1
- package/src/generators/add-moleculer/files/package.json +5 -5
- package/src/generators/add-moleculer/generator.spec.ts +1 -1
- package/src/generators/add-moleculer/generator.ts +8 -3
- package/src/generators/add-moleculer/schema.d.ts +2 -1
- package/src/generators/add-moleculer/schema.json +9 -4
- package/src/generators/{add-core-package → add-package}/generator.spec.ts +5 -5
- package/src/generators/add-package/generator.ts +62 -0
- package/src/generators/add-package/schema.d.ts +6 -0
- package/src/generators/add-package/schema.json +29 -0
- package/src/index.ts +1 -4
- package/src/utils/filesConfig.ts +84 -0
- package/src/utils/index.ts +31 -0
- package/src/utils/syncConfig.ts +128 -0
- package/lib/constants/index.cjs.map +0 -1
- package/lib/constants/index.mjs.map +0 -1
- package/lib/generators/add-browser-package/files/jest.config.js +0 -8
- package/lib/generators/add-browser-package/files/package.json +0 -49
- package/lib/generators/add-browser-package/files/rollup.config.mjs +0 -29
- package/lib/generators/add-browser-package/files/src/index.ts.template +0 -4
- package/lib/generators/add-browser-package/files/src/interfaces/index.ts.template +0 -1
- package/lib/generators/add-browser-package/files/src/interfaces/interfaces.ts.template +0 -1
- package/lib/generators/add-browser-package/files/src/module.tsx.template +0 -7
- package/lib/generators/add-browser-package/files/tsconfig.json +0 -28
- package/lib/generators/add-browser-package/files/webpack.config.js +0 -71
- package/lib/generators/add-browser-package/generator.cjs +0 -17
- package/lib/generators/add-browser-package/generator.cjs.map +0 -1
- package/lib/generators/add-browser-package/generator.d.ts +0 -5
- package/lib/generators/add-browser-package/generator.mjs +0 -17
- package/lib/generators/add-browser-package/generator.mjs.map +0 -1
- package/lib/generators/add-browser-package/schema.json +0 -19
- package/lib/generators/add-client-package/files/CHANGELOG.md +0 -807
- package/lib/generators/add-client-package/files/jest.config.js +0 -13
- package/lib/generators/add-client-package/files/package.json +0 -30
- package/lib/generators/add-client-package/files/rollup.config.mjs +0 -29
- package/lib/generators/add-client-package/files/src/components/index.tsx.template +0 -1
- package/lib/generators/add-client-package/files/src/index.ts.template +0 -1
- package/lib/generators/add-client-package/files/tsconfig.json +0 -27
- package/lib/generators/add-client-package/files/webpack.config.js +0 -72
- package/lib/generators/add-client-package/generator.cjs +0 -17
- package/lib/generators/add-client-package/generator.cjs.map +0 -1
- package/lib/generators/add-client-package/generator.d.ts +0 -5
- package/lib/generators/add-client-package/generator.mjs +0 -17
- package/lib/generators/add-client-package/generator.mjs.map +0 -1
- package/lib/generators/add-client-package/generator.spec.d.ts +0 -1
- package/lib/generators/add-client-package/schema.json +0 -19
- package/lib/generators/add-core-package/files/jest.config.js +0 -3
- package/lib/generators/add-core-package/files/package.json +0 -30
- package/lib/generators/add-core-package/files/rollup.config.mjs +0 -65
- package/lib/generators/add-core-package/files/src/constants/index.ts.template +0 -1
- package/lib/generators/add-core-package/files/src/constants/types.ts.template +0 -3
- package/lib/generators/add-core-package/files/src/index.ts.template +0 -2
- package/lib/generators/add-core-package/files/src/types/index.ts.template +0 -1
- package/lib/generators/add-core-package/files/src/types/types.ts.template +0 -17
- package/lib/generators/add-core-package/files/tsconfig.json +0 -22
- package/lib/generators/add-core-package/files/webpack.config.js +0 -53
- package/lib/generators/add-core-package/generator.cjs +0 -17
- package/lib/generators/add-core-package/generator.cjs.map +0 -1
- package/lib/generators/add-core-package/generator.d.ts +0 -5
- package/lib/generators/add-core-package/generator.mjs +0 -17
- package/lib/generators/add-core-package/generator.mjs.map +0 -1
- package/lib/generators/add-core-package/generator.spec.d.ts +0 -1
- package/lib/generators/add-core-package/schema.json +0 -19
- package/lib/generators/add-fullstack/files/CHANGELOG.md +0 -20
- package/lib/generators/add-server-package/files/CHANGELOG.md +0 -2599
- package/lib/generators/add-server-package/files/LICENSE +0 -674
- package/lib/generators/add-server-package/files/jest.config.js +0 -32
- package/lib/generators/add-server-package/files/package.json +0 -78
- package/lib/generators/add-server-package/files/rollup.config.mjs +0 -30
- package/lib/generators/add-server-package/files/src/constants/constants.ts.template +0 -62
- package/lib/generators/add-server-package/files/src/constants/index.ts.template +0 -1
- package/lib/generators/add-server-package/files/src/constants/types.ts.template +0 -21
- package/lib/generators/add-server-package/files/src/index.ts.template +0 -6
- package/lib/generators/add-server-package/files/src/module.ts.template +0 -6
- package/lib/generators/add-server-package/files/tsconfig.json +0 -27
- package/lib/generators/add-server-package/generator.cjs +0 -17
- package/lib/generators/add-server-package/generator.cjs.map +0 -1
- package/lib/generators/add-server-package/generator.d.ts +0 -5
- package/lib/generators/add-server-package/generator.mjs +0 -17
- package/lib/generators/add-server-package/generator.mjs.map +0 -1
- package/lib/generators/add-server-package/generator.spec.d.ts +0 -1
- package/lib/generators/add-server-package/schema.json +0 -19
- package/src/generators/add-browser-package/generator.spec.ts +0 -20
- package/src/generators/add-browser-package/generator.ts +0 -24
- package/src/generators/add-browser-package/schema.d.ts +0 -4
- package/src/generators/add-browser-package/schema.json +0 -19
- package/src/generators/add-client-package/generator.spec.ts +0 -20
- package/src/generators/add-client-package/generator.ts +0 -24
- package/src/generators/add-client-package/schema.d.ts +0 -4
- package/src/generators/add-client-package/schema.json +0 -19
- package/src/generators/add-core-package/generator.ts +0 -24
- package/src/generators/add-core-package/schema.d.ts +0 -4
- package/src/generators/add-core-package/schema.json +0 -19
- package/src/generators/add-fullstack/files/CHANGELOG.md +0 -28
- package/src/generators/add-server-package/generator.spec.ts +0 -20
- package/src/generators/add-server-package/generator.ts +0 -24
- package/src/generators/add-server-package/schema.d.ts +0 -4
- package/src/generators/add-server-package/schema.json +0 -19
- /package/lib/{constants/index.d.ts → common/constants.d.ts} +0 -0
- /package/lib/generators/{add-browser-package/files/LICENSE → add-fullstack/files/LICENSE-GNU} +0 -0
- /package/lib/generators/{add-core-package/files/LICENSE → add-fullstack/files/LICENSE-IST} +0 -0
- /package/lib/generators/add-fullstack/files/{LICENSE → LICENSE-MIT} +0 -0
- /package/lib/generators/{add-browser-package → add-package}/generator.spec.d.ts +0 -0
- /package/src/{constants/index.ts → common/constants.ts} +0 -0
- /package/{lib/generators/add-client-package/files/LICENSE → src/generators/add-fullstack/files/LICENSE-GNU} +0 -0
- /package/src/generators/add-fullstack/files/{LICENSE → LICENSE-MIT} +0 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Tree, readJson } from '@nx/devkit';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
|
|
4
|
+
export function updateLicense(tree: Tree, projectRoot: string) {
|
|
5
|
+
const files = ['LICENSE-GNU', 'LICENSE-IST', 'LICENSE-MIT'];
|
|
6
|
+
const packageJsonPath = path.join(projectRoot, 'package.json');
|
|
7
|
+
const packageJson = readJson(tree, packageJsonPath);
|
|
8
|
+
|
|
9
|
+
if (packageJson.license) {
|
|
10
|
+
const fileName = `LICENSE-${packageJson.license.toUpperCase()}`;
|
|
11
|
+
|
|
12
|
+
files.forEach(file => {
|
|
13
|
+
const filePath = path.join(projectRoot, file);
|
|
14
|
+
if (file === fileName) {
|
|
15
|
+
if (tree.exists(filePath)) {
|
|
16
|
+
tree.rename(filePath, path.join(projectRoot, 'LICENSE'));
|
|
17
|
+
}
|
|
18
|
+
} else {
|
|
19
|
+
tree.delete(filePath);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -1,11 +1,52 @@
|
|
|
1
1
|
import { Tree, updateJson } from '@nx/devkit';
|
|
2
2
|
import * as path from 'path';
|
|
3
|
+
import { convertHttpsToSsh } from '../../../utils';
|
|
3
4
|
|
|
4
|
-
export function updatePackageJson(tree: Tree, projectRoot: string,
|
|
5
|
+
export function updatePackageJson(tree: Tree, projectRoot: string, json: any) {
|
|
5
6
|
const packageJsonPath = path.join(projectRoot, 'package.json');
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
|
|
8
|
+
updateJson(tree, packageJsonPath, (packageJson: any) => {
|
|
9
|
+
Object.entries(json).reduce((acc, [key, value]) => {
|
|
10
|
+
acc[key] = value;
|
|
11
|
+
return acc;
|
|
12
|
+
}, packageJson);
|
|
9
13
|
return packageJson;
|
|
10
14
|
});
|
|
11
15
|
}
|
|
16
|
+
|
|
17
|
+
export function updateRepository(tree: Tree, projectRoot: string, repository: string) {
|
|
18
|
+
if (repository.startsWith('http://')) {
|
|
19
|
+
repository = repository.replace('http://', 'https://');
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// update in package.json
|
|
23
|
+
updatePackageJson(tree, projectRoot, {
|
|
24
|
+
"homepage": `${repository}#readme`,
|
|
25
|
+
"bugs": {
|
|
26
|
+
"url": `${repository}/issues`
|
|
27
|
+
},
|
|
28
|
+
"repository": {
|
|
29
|
+
"type": "git",
|
|
30
|
+
"url": `git+${repository}.git`
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
// update in Jenkinsfile
|
|
35
|
+
const filePath = path.join(projectRoot, 'Jenkinsfile');
|
|
36
|
+
|
|
37
|
+
if (tree.exists(filePath)) {
|
|
38
|
+
const jenkinsFileContent = tree.read(filePath).toString();
|
|
39
|
+
let paramExists = false;
|
|
40
|
+
const updatedContent = jenkinsFileContent.split('\n').map(line => {
|
|
41
|
+
if (line.includes(`string(name: 'REPOSITORY_SSH_URL'`)) {
|
|
42
|
+
paramExists = true;
|
|
43
|
+
return line.replace(/defaultValue: '.*'/, `defaultValue: '${convertHttpsToSsh(repository)}'`);
|
|
44
|
+
}
|
|
45
|
+
return line;
|
|
46
|
+
}).join('\n');
|
|
47
|
+
|
|
48
|
+
if (paramExists) {
|
|
49
|
+
tree.write(filePath, updatedContent);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -25,11 +25,11 @@
|
|
|
25
25
|
"watch": "npm run start:dev"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@common-stack/client-core": "6.0.6-alpha.
|
|
29
|
-
"@common-stack/core": "6.0.6-alpha.
|
|
30
|
-
"@common-stack/server-core": "6.0.6-alpha.
|
|
31
|
-
"@common-stack/server-stack": "6.0.6-alpha.
|
|
32
|
-
"@common-stack/store-mongo": "6.0.6-alpha.
|
|
28
|
+
"@common-stack/client-core": "6.0.6-alpha.61",
|
|
29
|
+
"@common-stack/core": "6.0.6-alpha.50",
|
|
30
|
+
"@common-stack/server-core": "6.0.6-alpha.50",
|
|
31
|
+
"@common-stack/server-stack": "6.0.6-alpha.69",
|
|
32
|
+
"@common-stack/store-mongo": "6.0.6-alpha.50",
|
|
33
33
|
"@container-stack/mailing-api": "5.2.1-alpha.1",
|
|
34
34
|
"helmet": "^3.21.2",
|
|
35
35
|
"react": "18.2.0",
|
|
@@ -6,7 +6,7 @@ import { AddMoleculerGeneratorSchema } from './schema';
|
|
|
6
6
|
|
|
7
7
|
describe('add-moleculer generator', () => {
|
|
8
8
|
let tree: Tree;
|
|
9
|
-
const options: AddMoleculerGeneratorSchema = { name: 'test', directory: 'lib' };
|
|
9
|
+
const options: AddMoleculerGeneratorSchema = { ns: 'sample', name: 'test', directory: 'lib' };
|
|
10
10
|
|
|
11
11
|
beforeEach(() => {
|
|
12
12
|
tree = createTreeWithEmptyWorkspace();
|
|
@@ -3,18 +3,23 @@ import * as path from 'path';
|
|
|
3
3
|
import { AddMoleculerGeneratorSchema } from './schema';
|
|
4
4
|
import { isValid, getValid } from '../../utils';
|
|
5
5
|
|
|
6
|
+
const DEFAULT_SERVER_NAME = 'moleculer-server';
|
|
7
|
+
|
|
6
8
|
export async function addMoleculerGenerator(tree: Tree, options: AddMoleculerGeneratorSchema) {
|
|
7
|
-
const
|
|
9
|
+
const projectName = isValid(options.name) ? `${getValid(options.name)}-server` : DEFAULT_SERVER_NAME;
|
|
10
|
+
const configs: any = {...options, name: projectName};
|
|
11
|
+
|
|
8
12
|
return await generateMoleculer(tree, configs);
|
|
9
13
|
}
|
|
10
14
|
|
|
11
15
|
export const generateMoleculer = async (tree: Tree, options: any) => {
|
|
12
|
-
|
|
16
|
+
let projectName = getValid(options.name) ?? DEFAULT_SERVER_NAME;
|
|
13
17
|
const projectRoot = isValid(options.directory) ? `${getValid(options.directory)}/${projectName}` : projectName;
|
|
18
|
+
projectName = isValid(options.ns) ? `${getValid(options.ns)}-${projectName}` : projectName;
|
|
14
19
|
|
|
15
20
|
generateFiles(tree, path.join(__dirname, 'files'), projectRoot, options);
|
|
16
21
|
updateJson(tree, `${projectRoot}/package.json`, (packageJson) => {
|
|
17
|
-
packageJson['name'] =
|
|
22
|
+
packageJson['name'] = projectName;
|
|
18
23
|
return packageJson;
|
|
19
24
|
});
|
|
20
25
|
|
|
@@ -4,16 +4,21 @@
|
|
|
4
4
|
"title": "",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"properties": {
|
|
7
|
-
"
|
|
7
|
+
"ns": {
|
|
8
8
|
"type": "string",
|
|
9
|
-
"description": "",
|
|
10
|
-
"x-prompt": "What
|
|
9
|
+
"description": "The project namespace",
|
|
10
|
+
"x-prompt": "What namespace would you like to use?"
|
|
11
11
|
},
|
|
12
12
|
"directory": {
|
|
13
13
|
"type": "string",
|
|
14
14
|
"description": "",
|
|
15
15
|
"x-prompt": "What directory would you like to create in?"
|
|
16
|
+
},
|
|
17
|
+
"name": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"description": "The module name",
|
|
20
|
+
"x-prompt": "What name would you like to use for this moleculer server module?"
|
|
16
21
|
}
|
|
17
22
|
},
|
|
18
|
-
"required": ["
|
|
23
|
+
"required": ["ns", "directory", "name"]
|
|
19
24
|
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing';
|
|
2
2
|
import { Tree, readProjectConfiguration } from '@nx/devkit';
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { addPackageGenerator } from './generator';
|
|
5
|
+
import { AddPackageGeneratorSchema } from './schema';
|
|
6
6
|
|
|
7
|
-
describe('add-
|
|
7
|
+
describe('add-package generator', () => {
|
|
8
8
|
let tree: Tree;
|
|
9
|
-
const options:
|
|
9
|
+
const options: AddPackageGeneratorSchema = { name: 'test', directory: 'lib' };
|
|
10
10
|
|
|
11
11
|
beforeEach(() => {
|
|
12
12
|
tree = createTreeWithEmptyWorkspace();
|
|
13
13
|
});
|
|
14
14
|
|
|
15
15
|
it('should run successfully', async () => {
|
|
16
|
-
await
|
|
16
|
+
await addPackageGenerator(tree, options);
|
|
17
17
|
const config = readProjectConfiguration(tree, 'test');
|
|
18
18
|
expect(config).toBeDefined();
|
|
19
19
|
});
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { addProjectConfiguration, formatFiles, generateFiles, Tree, updateJson } from '@nx/devkit';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { AddPackageGeneratorSchema } from './schema';
|
|
4
|
+
import { isValid, getValid } from '../../utils';
|
|
5
|
+
import { processFiles } from '../../utils/filesConfig';
|
|
6
|
+
import { syncConfig } from '../../utils/syncConfig';
|
|
7
|
+
|
|
8
|
+
export async function addPackageGenerator(tree: Tree, options: AddPackageGeneratorSchema) {
|
|
9
|
+
if (!isValid(options.name)) {
|
|
10
|
+
console.error('Package name can not be empty, please try again!');
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const packages = ['core', 'client', 'browser', 'server'];
|
|
15
|
+
const packageType = getValid(options.packageType);
|
|
16
|
+
if (packageType && packageType.toLocaleLowerCase() !== 'all') {
|
|
17
|
+
if(!packages.includes(packageType)) {
|
|
18
|
+
console.error('Package type is not available! please choice in Client|Browser|Core|Server|All');
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
generatePackage(tree, {...options, type: packageType.toLocaleLowerCase()}, true);
|
|
22
|
+
} else {
|
|
23
|
+
packages.forEach(pkg => {
|
|
24
|
+
const configs: any = {...options, type: pkg};
|
|
25
|
+
generatePackage(tree, configs, true);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
await formatFiles(tree);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// export const generateModule = async (tree: Tree, options: any) => {
|
|
33
|
+
// for (const [packageName, packageConfig] of Object.entries(options)) {
|
|
34
|
+
// const configs: any = {...options, ...(packageConfig as any)};
|
|
35
|
+
// configs.type = packageName;
|
|
36
|
+
// generatePackage(tree, configs, false);
|
|
37
|
+
// }
|
|
38
|
+
|
|
39
|
+
// await formatFiles(tree);
|
|
40
|
+
// }
|
|
41
|
+
|
|
42
|
+
export const generatePackage = async (tree: Tree, options: any, cmdLine: boolean = false) => {
|
|
43
|
+
const basePath = `${options.name}/${options.type}`;
|
|
44
|
+
const packageRoot = isValid(options.directory) ? `${getValid(options.directory)}/${basePath}` : basePath;
|
|
45
|
+
const baseName = isValid(options.name) ? `${options.name}-${options.type}` : options.type;
|
|
46
|
+
const packageName = isValid(options.ns) ? `${getValid(options.ns)}-${baseName}` : baseName;
|
|
47
|
+
|
|
48
|
+
generateFiles(tree, path.join(__dirname, 'files', options.type), packageRoot, options);
|
|
49
|
+
updateJson(tree, `${packageRoot}/package.json`, (packageJson) => {
|
|
50
|
+
packageJson['name'] = packageName;
|
|
51
|
+
return packageJson;
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
if (cmdLine) {
|
|
55
|
+
syncConfig(tree, packageRoot, options);
|
|
56
|
+
} else {
|
|
57
|
+
processFiles(tree, packageRoot, options);
|
|
58
|
+
await formatFiles(tree);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export default addPackageGenerator;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/schema",
|
|
3
|
+
"$id": "AddPackage",
|
|
4
|
+
"title": "",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"ns": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "The project namespace(optional)",
|
|
10
|
+
"x-prompt": "What namespace would you like to use?(optional)"
|
|
11
|
+
},
|
|
12
|
+
"name": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "",
|
|
15
|
+
"x-prompt": "What name would you like to use to this module?"
|
|
16
|
+
},
|
|
17
|
+
"directory": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"description": "",
|
|
20
|
+
"x-prompt": "What directory would you like to create in?"
|
|
21
|
+
},
|
|
22
|
+
"packageType": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"description": "",
|
|
25
|
+
"x-prompt": "What type of package would you like to create in Client|Browser|Core|Server|All?(default: All)"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"required": ["name", "directory"]
|
|
29
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -2,9 +2,6 @@ export * from './generators/add-frontend/generator';
|
|
|
2
2
|
export * from './generators/add-backend/generator';
|
|
3
3
|
export * from './generators/add-fullstack/generator';
|
|
4
4
|
export * from './generators/add-moleculer/generator';
|
|
5
|
-
export * from './generators/add-
|
|
6
|
-
export * from './generators/add-client-package/generator';
|
|
7
|
-
export * from './generators/add-core-package/generator';
|
|
8
|
-
export * from './generators/add-server-package/generator';
|
|
5
|
+
export * from './generators/add-package/generator';
|
|
9
6
|
export { default as updateDeployVersion } from './executors/update-deploy-version/executor';
|
|
10
7
|
export { default as sortPackageJson } from './executors/sort-package-json/executor';
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Tree } from '@nx/devkit';
|
|
2
|
+
import * as fs from 'node:fs';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
import { deepMerge } from '@common-stack/rollup-vite-utils/lib/utils/setupConfig.cjs';
|
|
5
|
+
|
|
6
|
+
export const processFiles = (tree: Tree, projectRoot: string, options: any) => {
|
|
7
|
+
if (options.files && Object.entries(options.files).length > 0) {
|
|
8
|
+
for (const [fileName, addContent] of Object.entries(options.files)) {
|
|
9
|
+
switch (fileName) {
|
|
10
|
+
case 'config/env-config.ts':
|
|
11
|
+
updateEnvConfigFile(tree, projectRoot, addContent);
|
|
12
|
+
break;
|
|
13
|
+
case 'cdm-locales':
|
|
14
|
+
addLocalesFile(tree, projectRoot, addContent);
|
|
15
|
+
break;
|
|
16
|
+
default:
|
|
17
|
+
break;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const updateEnvConfigFile = (tree: Tree, projectRoot: string, jsonContent: any) => {
|
|
24
|
+
const filePath = path.join(projectRoot, 'src/config/env-config.ts');
|
|
25
|
+
if (tree.exists(filePath)) {
|
|
26
|
+
try {
|
|
27
|
+
let fileContent: string = tree.read(filePath).toString();
|
|
28
|
+
let additionalContent: string = ',';
|
|
29
|
+
|
|
30
|
+
for (const [key, val] of Object.entries(jsonContent)) {
|
|
31
|
+
if (typeof val === 'string') {
|
|
32
|
+
additionalContent += `${key}: str({ default: '${val}' }),\n`;
|
|
33
|
+
} else {
|
|
34
|
+
additionalContent += `${key}: ${(val as any).type}(${JSON.stringify((val as any).value)}),\n`;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
additionalContent = additionalContent.substring(1);
|
|
38
|
+
console.log('Changing the env-config file with {', additionalContent, '}');
|
|
39
|
+
|
|
40
|
+
const lines = fileContent.split(/\n/);
|
|
41
|
+
let idx;
|
|
42
|
+
for (idx = lines.length - 1; idx >= 0; idx--) {
|
|
43
|
+
if (lines[idx].trim() === '});') {
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if (idx > 0) {
|
|
49
|
+
const newLines = [
|
|
50
|
+
...lines.slice(0, idx),
|
|
51
|
+
additionalContent,
|
|
52
|
+
...lines.slice(idx),
|
|
53
|
+
];
|
|
54
|
+
fileContent = newLines.join('\n');
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
tree.write(filePath, fileContent);
|
|
58
|
+
} catch(e) {
|
|
59
|
+
console.error('Failed to change env-config', e);
|
|
60
|
+
}
|
|
61
|
+
} else {
|
|
62
|
+
console.log('No exist env-config file at ', filePath);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const addLocalesFile = async(tree: Tree, projectRoot: string, jsonContent: any) => {
|
|
67
|
+
try {
|
|
68
|
+
for (const [dirName, filesContent] of Object.entries(jsonContent)) {
|
|
69
|
+
const dirPath = path.join(projectRoot, 'src/cdm-locales', dirName);
|
|
70
|
+
for (const [fileName, fileContent] of Object.entries(filesContent)) {
|
|
71
|
+
const filePath = path.join(dirPath, fileName);
|
|
72
|
+
if (!tree.exists(filePath)) {
|
|
73
|
+
tree.write(filePath, JSON.stringify(fileContent, null, 2));
|
|
74
|
+
} else {
|
|
75
|
+
let newContent = tree.read(filePath).toJSON();
|
|
76
|
+
newContent = deepMerge(newContent, fileContent);
|
|
77
|
+
tree.write(filePath, JSON.stringify(newContent, null, 2));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
} catch (e) {
|
|
82
|
+
console.error(e);
|
|
83
|
+
}
|
|
84
|
+
}
|
package/src/utils/index.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { Tree } from '@nx/devkit';
|
|
1
2
|
import * as fs from 'node:fs';
|
|
3
|
+
import * as path from 'path';
|
|
2
4
|
|
|
3
5
|
export const resetProject = (rootDir: string) => {
|
|
4
6
|
if (fs.existsSync(`${rootDir}/project.json`)) {
|
|
@@ -16,3 +18,32 @@ export const isValid = (val: string) => {
|
|
|
16
18
|
export const getValid = (val: string) => {
|
|
17
19
|
return val ? val.trim() : null;
|
|
18
20
|
}
|
|
21
|
+
|
|
22
|
+
export const convertHttpsToSsh = (url) => {
|
|
23
|
+
const httpsPattern = /^https:\/\/(.+?)\/(.+?)\/(.+?)(\.git)?$/;
|
|
24
|
+
|
|
25
|
+
const match = url.match(httpsPattern);
|
|
26
|
+
|
|
27
|
+
if (match) {
|
|
28
|
+
const domain = match[1];
|
|
29
|
+
const user = match[2];
|
|
30
|
+
const repo = match[3];
|
|
31
|
+
|
|
32
|
+
return `git@${domain}:${user}/${repo}.git`;
|
|
33
|
+
} else {
|
|
34
|
+
throw new Error("Invalid HTTPS URL format");
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export const readDir = (tree: Tree, dirPath: string) => {
|
|
39
|
+
const files = tree.children(dirPath);
|
|
40
|
+
const result = {};
|
|
41
|
+
files.forEach(file => {
|
|
42
|
+
if (tree.isFile(path.join(dirPath, file))) {
|
|
43
|
+
result[file] = JSON.parse(tree.read(path.join(dirPath, file)).toString());
|
|
44
|
+
} else {
|
|
45
|
+
result[file] = readDir(tree, path.join(dirPath, file));
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
return result;
|
|
49
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { Tree, updateJson } from '@nx/devkit';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { parse } from '@babel/parser';
|
|
4
|
+
import traverse from '@babel/traverse';
|
|
5
|
+
import { set } from 'lodash';
|
|
6
|
+
import { getValid, readDir } from './index';
|
|
7
|
+
|
|
8
|
+
export interface SyncConfigOptions {
|
|
9
|
+
name: string;
|
|
10
|
+
type: string;
|
|
11
|
+
directory: string;
|
|
12
|
+
ns?: string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const DEFAULT_PACKAGE = 'core';
|
|
16
|
+
|
|
17
|
+
export const syncConfig = (tree: Tree, projectRoot: string, options: SyncConfigOptions) => {
|
|
18
|
+
// synchronize package in package.json and lerna.json
|
|
19
|
+
syncPackage(tree, options);
|
|
20
|
+
|
|
21
|
+
const configPath = 'cde-config.json';
|
|
22
|
+
if (tree.exists(configPath)) {
|
|
23
|
+
try {
|
|
24
|
+
const directory = getValid(options.directory) ?? 'packages';
|
|
25
|
+
const type = getValid(options.type) ?? DEFAULT_PACKAGE;
|
|
26
|
+
const moduleName = options.name; // name should not be null
|
|
27
|
+
|
|
28
|
+
const envConfigContent = getEnvConfigFileContent(tree, projectRoot);
|
|
29
|
+
const localesContent = getLocalesFileContent(tree, projectRoot);
|
|
30
|
+
const packageContent = {
|
|
31
|
+
type: `packages-${type}`,
|
|
32
|
+
files: {
|
|
33
|
+
"config/env-config.ts": envConfigContent ?? {},
|
|
34
|
+
"cdm-locales": localesContent ?? {},
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
updateJson(tree, configPath, (config: any) => {
|
|
39
|
+
set(config, [directory, 'modules', moduleName, type], packageContent);
|
|
40
|
+
return config;
|
|
41
|
+
});
|
|
42
|
+
} catch(e) {
|
|
43
|
+
console.error('Failed to change env-config', e);
|
|
44
|
+
}
|
|
45
|
+
} else {
|
|
46
|
+
console.log('No exist env-config file at ', path.join(tree.root, configPath));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const getEnvConfigFileContent = (tree: Tree, projectRoot: string) => {
|
|
51
|
+
const filePath = path.join(projectRoot, 'src/config/env-config.ts');
|
|
52
|
+
if (tree.exists(filePath)) {
|
|
53
|
+
try {
|
|
54
|
+
const result = {};
|
|
55
|
+
let fileContent: string = tree.read(filePath).toString();
|
|
56
|
+
const ast = parse(fileContent, {
|
|
57
|
+
sourceType: 'module',
|
|
58
|
+
plugins: ['typescript', 'dynamicImport'],
|
|
59
|
+
});
|
|
60
|
+
(traverse as any).default(ast, {
|
|
61
|
+
enter(astroPath) {
|
|
62
|
+
if (astroPath.node.type === "VariableDeclarator" && astroPath.node.id.name === "config") {
|
|
63
|
+
astroPath.node.init.arguments[1].properties.forEach(prop => {
|
|
64
|
+
const key = prop.key.name;
|
|
65
|
+
const callee = prop.value.callee.name;
|
|
66
|
+
let value: any;
|
|
67
|
+
if (prop.value.arguments && prop.value.arguments.length > 0) {
|
|
68
|
+
value = {};
|
|
69
|
+
prop.value.arguments[0].properties.forEach(p => {
|
|
70
|
+
if (p.value.elements && p.value.elements.length > 0) {
|
|
71
|
+
value[p.key.name] = [];
|
|
72
|
+
p.value.elements.forEach(ele => value[p.key.name].push(ele.value));
|
|
73
|
+
} else {
|
|
74
|
+
value[p.key.name] = callee == 'json' ? JSON.parse(p.value.value) : p.value.value;
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
} else {
|
|
78
|
+
value = '';
|
|
79
|
+
}
|
|
80
|
+
console.log(`${key}:`, `${callee}(${JSON.stringify(value)})`);
|
|
81
|
+
result[key] = { type: callee, value: value };
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
return result;
|
|
87
|
+
} catch(e) {
|
|
88
|
+
console.error('Failed to change env-config', e);
|
|
89
|
+
}
|
|
90
|
+
} else {
|
|
91
|
+
console.log('No exist env-config file at ', filePath);
|
|
92
|
+
}
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
const getLocalesFileContent = (tree: Tree, projectRoot: string) => {
|
|
97
|
+
const dirPath = path.join(projectRoot, 'src/cdm-locales');
|
|
98
|
+
if (tree.exists(dirPath)) {
|
|
99
|
+
try {
|
|
100
|
+
return readDir(tree, dirPath);
|
|
101
|
+
} catch (e) {
|
|
102
|
+
console.error(e);
|
|
103
|
+
}
|
|
104
|
+
} else {
|
|
105
|
+
console.log('No exist cdm-locales directory at ', dirPath);
|
|
106
|
+
}
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export const syncPackage = (tree: Tree, options: any) => {
|
|
111
|
+
const directory = getValid(options.directory) ?? 'packages';
|
|
112
|
+
|
|
113
|
+
updateJson(tree, 'package.json', (packageJson: any) => {
|
|
114
|
+
const packages = packageJson.workspaces?.packages || [];
|
|
115
|
+
if (!packages.includes(`${directory}/*`)) {
|
|
116
|
+
packageJson.workspaces.packages.push(`${directory}/*`);
|
|
117
|
+
}
|
|
118
|
+
return packageJson;
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
updateJson(tree, 'lerna.json', (lernaJson: any) => {
|
|
122
|
+
const packages = lernaJson.packages || [];
|
|
123
|
+
if (!packages.includes(`${directory}/*`)) {
|
|
124
|
+
lernaJson.packages.push(`${directory}/*`);
|
|
125
|
+
}
|
|
126
|
+
return lernaJson;
|
|
127
|
+
});
|
|
128
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../src/constants/index.ts"],"sourcesContent":[null],"names":[],"mappings":"aAAO,MAAM,eAAe,GAAG,QAAQ;AAChC,MAAM,kBAAkB,GAAG,WAAW;AACtC,MAAM,oBAAoB,GAAG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/constants/index.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAO,MAAM,eAAe,GAAG,QAAQ;AAChC,MAAM,kBAAkB,GAAG,WAAW;AACtC,MAAM,oBAAoB,GAAG"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "browser-package",
|
|
3
|
-
"version": "3.1.1-alpha.6",
|
|
4
|
-
"description": "Sample core for higher packages to depend on",
|
|
5
|
-
"license": "ISC",
|
|
6
|
-
"author": "CDMBase LLC",
|
|
7
|
-
"type": "module",
|
|
8
|
-
"main": "lib/index.js",
|
|
9
|
-
"module": "lib/index.js",
|
|
10
|
-
"typings": "lib/index.d.ts",
|
|
11
|
-
"scripts": {
|
|
12
|
-
"build": "npm run build:clean && npm run build:lib",
|
|
13
|
-
"build:clean": "rimraf lib",
|
|
14
|
-
"build:lib": "rollup -c rollup.config.mjs",
|
|
15
|
-
"build:lib:watch": "npm run build:lib -- --watch",
|
|
16
|
-
"jest": "./node_modules/.bin/jest",
|
|
17
|
-
"prepublish": "npm run build",
|
|
18
|
-
"schema:download": "./node_modules/.bin/apollo-codegen download-schema http://localhost:8080/graphql --output schema.json ",
|
|
19
|
-
"schema:generate": "./node_modules/.bin/apollo-codegen generate src/browser/graphql/**/*.gql --schema schema.json --target typescript --output src/browser/graphql/schema.ts",
|
|
20
|
-
"test": "cross-env ENV_FILE=../../config/test/test.env jest",
|
|
21
|
-
"test:debug": "npm test -- --runInBand",
|
|
22
|
-
"test:watch": "npm test -- --watch",
|
|
23
|
-
"watch": "npm run build:lib:watch"
|
|
24
|
-
},
|
|
25
|
-
"dependencies": {
|
|
26
|
-
"envalid": "~7.2.2",
|
|
27
|
-
"pluralize": "8.0.0",
|
|
28
|
-
"react-csv": "^2.0.3"
|
|
29
|
-
},
|
|
30
|
-
"peerDependencies": {
|
|
31
|
-
"@cdm-logger/client": "*",
|
|
32
|
-
"@common-stack/client-react": "6.0.6-alpha.5",
|
|
33
|
-
"@remix-run/react": "*",
|
|
34
|
-
"antd": ">=5.1.6",
|
|
35
|
-
"lodash": "*",
|
|
36
|
-
"moment": "*",
|
|
37
|
-
"react": "*",
|
|
38
|
-
"react-redux": "*",
|
|
39
|
-
"redux": ">=4.0.1",
|
|
40
|
-
"redux-observable": "*",
|
|
41
|
-
"rxjs": "*"
|
|
42
|
-
},
|
|
43
|
-
"publishConfig": {
|
|
44
|
-
"access": "public"
|
|
45
|
-
},
|
|
46
|
-
"typescript": {
|
|
47
|
-
"definition": "lib/index.d.ts"
|
|
48
|
-
}
|
|
49
|
-
}
|