@common-stack/generate-plugin 7.0.4-alpha.2 → 7.0.4-alpha.20

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 (46) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/lib/common/package-releases/package.json +1 -0
  3. package/lib/common/package-releases/package.json.cjs +1 -0
  4. package/lib/common/package-releases/package.json.cjs.map +1 -1
  5. package/lib/common/package-releases/package.json.mjs +1 -0
  6. package/lib/common/package-releases/package.json.mjs.map +1 -1
  7. package/lib/generators/add-backend/files/package.json +1 -1
  8. package/lib/generators/add-frontend/frameworks/antui/src/entry.client.tsx.template +7 -2
  9. package/lib/generators/add-frontend/frameworks/antui/src/root.tsx.template +2 -1
  10. package/lib/generators/add-frontend/generator.cjs +1 -1
  11. package/lib/generators/add-frontend/generator.cjs.map +1 -1
  12. package/lib/generators/add-frontend/generator.mjs +1 -1
  13. package/lib/generators/add-frontend/generator.mjs.map +1 -1
  14. package/lib/generators/add-frontend/templates/package.json +2 -2
  15. package/lib/generators/add-fullstack/files/_gitignore +3 -0
  16. package/lib/generators/add-fullstack/files/package.json +4 -8
  17. package/lib/generators/add-fullstack/files/rollup.config.base.mjs +3 -4
  18. package/lib/generators/add-fullstack/generator.cjs +7 -1
  19. package/lib/generators/add-fullstack/generator.cjs.map +1 -1
  20. package/lib/generators/add-fullstack/generator.mjs +7 -1
  21. package/lib/generators/add-fullstack/generator.mjs.map +1 -1
  22. package/lib/generators/add-fullstack/schema.d.ts +10 -0
  23. package/lib/generators/add-fullstack/updates/nxSetup.cjs +114 -58
  24. package/lib/generators/add-fullstack/updates/nxSetup.cjs.map +1 -1
  25. package/lib/generators/add-fullstack/updates/nxSetup.d.ts +1 -1
  26. package/lib/generators/add-fullstack/updates/nxSetup.mjs +114 -58
  27. package/lib/generators/add-fullstack/updates/nxSetup.mjs.map +1 -1
  28. package/lib/generators/add-moleculer/files/package.json +5 -5
  29. package/lib/generators/add-package/files/browser/package.json +1 -1
  30. package/lib/generators/add-package/files/server/package.json +3 -3
  31. package/package.json +3 -3
  32. package/src/common/package-releases/package.json +1 -0
  33. package/src/generators/add-backend/files/package.json +1 -1
  34. package/src/generators/add-frontend/frameworks/antui/src/entry.client.tsx.template +7 -2
  35. package/src/generators/add-frontend/frameworks/antui/src/root.tsx.template +2 -1
  36. package/src/generators/add-frontend/generator.ts +1 -1
  37. package/src/generators/add-frontend/templates/package.json +2 -2
  38. package/src/generators/add-fullstack/files/_gitignore +3 -0
  39. package/src/generators/add-fullstack/files/package.json +4 -8
  40. package/src/generators/add-fullstack/files/rollup.config.base.mjs +3 -4
  41. package/src/generators/add-fullstack/generator.ts +8 -2
  42. package/src/generators/add-fullstack/schema.ts +10 -0
  43. package/src/generators/add-fullstack/updates/nxSetup.ts +123 -73
  44. package/src/generators/add-moleculer/files/package.json +5 -5
  45. package/src/generators/add-package/files/browser/package.json +1 -1
  46. package/src/generators/add-package/files/server/package.json +3 -3
@@ -1,81 +1,137 @@
1
1
  'use strict';var tslib=require('tslib'),devkit=require('@nx/devkit'),path=require('path'),readline=require('readline');function _interopNamespaceDefault(e){var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var path__namespace=/*#__PURE__*/_interopNamespaceDefault(path);var readline__namespace=/*#__PURE__*/_interopNamespaceDefault(readline);/**
2
- * Prompts the user for AWS credentials and updates nx.json
2
+ * Sets up Nx configuration with optional AWS credentials
3
3
  */
4
4
  function setupNxConfig(tree, projectRoot) {
5
5
  return tslib.__awaiter(this, void 0, void 0, function* () {
6
- try {
7
- // Create readline interface for user input
8
- const rl = readline__namespace.createInterface({
9
- input: process.stdin,
10
- output: process.stdout
11
- });
12
- console.log('\nAWS Configuration for Nx Cache');
13
- console.log('=============================');
14
- console.log('This project uses AWS S3 for remote caching with Nx.');
15
- console.log('Please provide your AWS credentials or press Enter to skip for now.');
16
- // Prompt for the AWS access key ID
17
- const awsAccessKeyId = yield new Promise((resolve) => {
18
- rl.question('AWS Access Key ID: ', (answer) => {
19
- resolve(answer.trim());
6
+ console.log('\nAWS Configuration for Nx Cache');
7
+ console.log('=============================');
8
+ console.log('This project uses AWS S3 for remote caching with Nx.');
9
+ console.log('Please provide your AWS credentials or press Enter to skip for now.');
10
+ // Basic configuration without AWS credentials
11
+ const basicConfig = {
12
+ tasksRunnerOptions: {
13
+ default: {
14
+ runner: 'nx/tasks-runners/default',
15
+ options: {
16
+ cacheableOperations: ['build', 'test', 'lint'],
17
+ accessibleHosts: ['https://registry.npmjs.org'],
18
+ useDaemonProcess: false,
19
+ parallel: 3,
20
+ },
21
+ },
22
+ },
23
+ };
24
+ const nxJsonPath = path__namespace.join(projectRoot, 'nx.json');
25
+ // Safe prompt function with timeout that returns a string
26
+ const askWithTimeout = (rl, question, timeoutMs = 10000) => {
27
+ return new Promise((resolve) => {
28
+ let resolved = false;
29
+ const timeout = setTimeout(() => {
30
+ if (!resolved) {
31
+ resolved = true;
32
+ console.log(`\nTimeout waiting for input. Skipping.`);
33
+ resolve('');
34
+ }
35
+ }, timeoutMs);
36
+ rl.question(question, (answer) => {
37
+ if (!resolved) {
38
+ resolved = true;
39
+ clearTimeout(timeout);
40
+ resolve(answer);
41
+ }
20
42
  });
21
43
  });
22
- // Prompt for the AWS secret access key if access key ID was provided
23
- let awsSecretAccessKey = '';
24
- if (awsAccessKeyId) {
25
- awsSecretAccessKey = yield new Promise((resolve) => {
26
- rl.question('AWS Secret Access Key: ', (answer) => {
27
- resolve(answer.trim());
28
- });
29
- });
30
- }
31
- // Prompt for the AWS region
32
- const awsRegion = yield new Promise((resolve) => {
33
- rl.question('AWS Region (default: us-east-1): ', (answer) => {
34
- resolve(answer.trim() || 'us-east-1');
35
- });
36
- });
37
- // Prompt for the S3 bucket name
38
- const awsBucket = yield new Promise((resolve) => {
39
- rl.question('AWS S3 Bucket Name: ', (answer) => {
40
- resolve(answer.trim());
41
- });
44
+ };
45
+ let rl;
46
+ try {
47
+ rl = readline__namespace.createInterface({
48
+ input: process.stdin,
49
+ output: process.stdout,
42
50
  });
43
- rl.close();
44
- // Wait for the close event to ensure we don't proceed before input is complete
45
- yield new Promise(resolve => rl.on('close', resolve));
46
- // Update nx.json if it exists and AWS credentials were provided
47
- if (awsAccessKeyId && awsSecretAccessKey && awsBucket) {
48
- const nxJsonPath = path__namespace.join(projectRoot, 'nx.json');
51
+ // Ask for AWS credentials with timeouts
52
+ const accessKeyId = yield askWithTimeout(rl, 'AWS Access Key ID (press Enter to skip): ');
53
+ // If user skips, create basic config
54
+ if (!accessKeyId || accessKeyId === '') {
55
+ console.log('Skipping AWS configuration. Creating basic nx.json.');
56
+ // Check if nx.json exists and update or create
49
57
  if (tree.exists(nxJsonPath)) {
50
58
  devkit.updateJson(tree, nxJsonPath, (json) => {
51
- // Preserve the existing configuration, just update the AWS credentials
52
59
  if (!json.tasksRunnerOptions) {
53
- json.tasksRunnerOptions = {};
60
+ json.tasksRunnerOptions = basicConfig.tasksRunnerOptions;
54
61
  }
55
- if (!json.tasksRunnerOptions.default) {
56
- json.tasksRunnerOptions.default = {
57
- runner: '@nx-aws-plugin/nx-aws-cache',
58
- options: {
59
- runtimeCacheInputs: ['node --version']
60
- }
61
- };
62
- }
63
- // Update only the AWS credentials
64
- json.tasksRunnerOptions.default.options = Object.assign(Object.assign({}, json.tasksRunnerOptions.default.options), { awsAccessKeyId,
65
- awsSecretAccessKey,
66
- awsRegion,
67
- awsBucket });
68
- console.log('Updated nx.json with AWS configuration');
69
62
  return json;
70
63
  });
71
64
  }
65
+ else {
66
+ tree.write(nxJsonPath, JSON.stringify(basicConfig, null, 2));
67
+ }
72
68
  }
73
69
  else {
74
- console.log('Skipped AWS configuration for nx.json');
70
+ // Get remaining AWS info
71
+ const secretAccessKey = yield askWithTimeout(rl, 'AWS Secret Access Key: ');
72
+ const region = (yield askWithTimeout(rl, 'AWS Region (default: us-east-1): ')) || 'us-east-1';
73
+ const bucketName = yield askWithTimeout(rl, 'AWS S3 Bucket Name: ');
74
+ // Only add AWS config if all fields are provided
75
+ if (secretAccessKey && bucketName) {
76
+ // Use type assertion to avoid TypeScript errors
77
+ const awsConfig = Object.assign({}, basicConfig);
78
+ // Use "as any" to bypass type checking
79
+ awsConfig.tasksRunnerOptions.default.options = Object.assign(Object.assign({}, awsConfig.tasksRunnerOptions.default.options), { cacheDirectory: '.nx/cache', remoteCache: {
80
+ s3: {
81
+ accessKeyId,
82
+ secretAccessKey,
83
+ region,
84
+ bucketName,
85
+ },
86
+ } });
87
+ // Update or create nx.json with AWS config
88
+ if (tree.exists(nxJsonPath)) {
89
+ devkit.updateJson(tree, nxJsonPath, () => awsConfig);
90
+ console.log('Updated nx.json with AWS configuration.');
91
+ }
92
+ else {
93
+ tree.write(nxJsonPath, JSON.stringify(awsConfig, null, 2));
94
+ console.log('Created nx.json with AWS configuration.');
95
+ }
96
+ }
97
+ else {
98
+ console.log('Incomplete AWS information. Creating basic nx.json.');
99
+ // Create basic config without AWS
100
+ if (tree.exists(nxJsonPath)) {
101
+ devkit.updateJson(tree, nxJsonPath, (json) => {
102
+ if (!json.tasksRunnerOptions) {
103
+ json.tasksRunnerOptions = basicConfig.tasksRunnerOptions;
104
+ }
105
+ return json;
106
+ });
107
+ }
108
+ else {
109
+ tree.write(nxJsonPath, JSON.stringify(basicConfig, null, 2));
110
+ }
111
+ }
75
112
  }
76
113
  }
77
114
  catch (error) {
78
115
  console.error('Error setting up Nx configuration:', error);
116
+ // Fallback to basic config
117
+ if (tree.exists(nxJsonPath)) {
118
+ devkit.updateJson(tree, nxJsonPath, (json) => {
119
+ if (!json.tasksRunnerOptions) {
120
+ json.tasksRunnerOptions = basicConfig.tasksRunnerOptions;
121
+ }
122
+ return json;
123
+ });
124
+ }
125
+ else {
126
+ tree.write(nxJsonPath, JSON.stringify(basicConfig, null, 2));
127
+ }
128
+ }
129
+ finally {
130
+ // Ensure readline interface is closed
131
+ if (rl) {
132
+ rl.close();
133
+ }
134
+ console.log('Nx configuration setup complete.');
79
135
  }
80
136
  });
81
137
  }exports.setupNxConfig=setupNxConfig;//# sourceMappingURL=nxSetup.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"nxSetup.cjs","sources":["../../../../src/generators/add-fullstack/updates/nxSetup.ts"],"sourcesContent":[null],"names":["readline","path","updateJson"],"mappings":"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"}
1
+ {"version":3,"file":"nxSetup.cjs","sources":["../../../../src/generators/add-fullstack/updates/nxSetup.ts"],"sourcesContent":[null],"names":["path","readline","updateJson"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Tree } from '@nx/devkit';
2
2
  /**
3
- * Prompts the user for AWS credentials and updates nx.json
3
+ * Sets up Nx configuration with optional AWS credentials
4
4
  */
5
5
  export declare function setupNxConfig(tree: Tree, projectRoot: string): Promise<void>;
@@ -1,81 +1,137 @@
1
1
  import {__awaiter}from'tslib';import {updateJson}from'@nx/devkit';import*as path from'path';import*as readline from'readline';/**
2
- * Prompts the user for AWS credentials and updates nx.json
2
+ * Sets up Nx configuration with optional AWS credentials
3
3
  */
4
4
  function setupNxConfig(tree, projectRoot) {
5
5
  return __awaiter(this, void 0, void 0, function* () {
6
- try {
7
- // Create readline interface for user input
8
- const rl = readline.createInterface({
9
- input: process.stdin,
10
- output: process.stdout
11
- });
12
- console.log('\nAWS Configuration for Nx Cache');
13
- console.log('=============================');
14
- console.log('This project uses AWS S3 for remote caching with Nx.');
15
- console.log('Please provide your AWS credentials or press Enter to skip for now.');
16
- // Prompt for the AWS access key ID
17
- const awsAccessKeyId = yield new Promise((resolve) => {
18
- rl.question('AWS Access Key ID: ', (answer) => {
19
- resolve(answer.trim());
6
+ console.log('\nAWS Configuration for Nx Cache');
7
+ console.log('=============================');
8
+ console.log('This project uses AWS S3 for remote caching with Nx.');
9
+ console.log('Please provide your AWS credentials or press Enter to skip for now.');
10
+ // Basic configuration without AWS credentials
11
+ const basicConfig = {
12
+ tasksRunnerOptions: {
13
+ default: {
14
+ runner: 'nx/tasks-runners/default',
15
+ options: {
16
+ cacheableOperations: ['build', 'test', 'lint'],
17
+ accessibleHosts: ['https://registry.npmjs.org'],
18
+ useDaemonProcess: false,
19
+ parallel: 3,
20
+ },
21
+ },
22
+ },
23
+ };
24
+ const nxJsonPath = path.join(projectRoot, 'nx.json');
25
+ // Safe prompt function with timeout that returns a string
26
+ const askWithTimeout = (rl, question, timeoutMs = 10000) => {
27
+ return new Promise((resolve) => {
28
+ let resolved = false;
29
+ const timeout = setTimeout(() => {
30
+ if (!resolved) {
31
+ resolved = true;
32
+ console.log(`\nTimeout waiting for input. Skipping.`);
33
+ resolve('');
34
+ }
35
+ }, timeoutMs);
36
+ rl.question(question, (answer) => {
37
+ if (!resolved) {
38
+ resolved = true;
39
+ clearTimeout(timeout);
40
+ resolve(answer);
41
+ }
20
42
  });
21
43
  });
22
- // Prompt for the AWS secret access key if access key ID was provided
23
- let awsSecretAccessKey = '';
24
- if (awsAccessKeyId) {
25
- awsSecretAccessKey = yield new Promise((resolve) => {
26
- rl.question('AWS Secret Access Key: ', (answer) => {
27
- resolve(answer.trim());
28
- });
29
- });
30
- }
31
- // Prompt for the AWS region
32
- const awsRegion = yield new Promise((resolve) => {
33
- rl.question('AWS Region (default: us-east-1): ', (answer) => {
34
- resolve(answer.trim() || 'us-east-1');
35
- });
36
- });
37
- // Prompt for the S3 bucket name
38
- const awsBucket = yield new Promise((resolve) => {
39
- rl.question('AWS S3 Bucket Name: ', (answer) => {
40
- resolve(answer.trim());
41
- });
44
+ };
45
+ let rl;
46
+ try {
47
+ rl = readline.createInterface({
48
+ input: process.stdin,
49
+ output: process.stdout,
42
50
  });
43
- rl.close();
44
- // Wait for the close event to ensure we don't proceed before input is complete
45
- yield new Promise(resolve => rl.on('close', resolve));
46
- // Update nx.json if it exists and AWS credentials were provided
47
- if (awsAccessKeyId && awsSecretAccessKey && awsBucket) {
48
- const nxJsonPath = path.join(projectRoot, 'nx.json');
51
+ // Ask for AWS credentials with timeouts
52
+ const accessKeyId = yield askWithTimeout(rl, 'AWS Access Key ID (press Enter to skip): ');
53
+ // If user skips, create basic config
54
+ if (!accessKeyId || accessKeyId === '') {
55
+ console.log('Skipping AWS configuration. Creating basic nx.json.');
56
+ // Check if nx.json exists and update or create
49
57
  if (tree.exists(nxJsonPath)) {
50
58
  updateJson(tree, nxJsonPath, (json) => {
51
- // Preserve the existing configuration, just update the AWS credentials
52
59
  if (!json.tasksRunnerOptions) {
53
- json.tasksRunnerOptions = {};
60
+ json.tasksRunnerOptions = basicConfig.tasksRunnerOptions;
54
61
  }
55
- if (!json.tasksRunnerOptions.default) {
56
- json.tasksRunnerOptions.default = {
57
- runner: '@nx-aws-plugin/nx-aws-cache',
58
- options: {
59
- runtimeCacheInputs: ['node --version']
60
- }
61
- };
62
- }
63
- // Update only the AWS credentials
64
- json.tasksRunnerOptions.default.options = Object.assign(Object.assign({}, json.tasksRunnerOptions.default.options), { awsAccessKeyId,
65
- awsSecretAccessKey,
66
- awsRegion,
67
- awsBucket });
68
- console.log('Updated nx.json with AWS configuration');
69
62
  return json;
70
63
  });
71
64
  }
65
+ else {
66
+ tree.write(nxJsonPath, JSON.stringify(basicConfig, null, 2));
67
+ }
72
68
  }
73
69
  else {
74
- console.log('Skipped AWS configuration for nx.json');
70
+ // Get remaining AWS info
71
+ const secretAccessKey = yield askWithTimeout(rl, 'AWS Secret Access Key: ');
72
+ const region = (yield askWithTimeout(rl, 'AWS Region (default: us-east-1): ')) || 'us-east-1';
73
+ const bucketName = yield askWithTimeout(rl, 'AWS S3 Bucket Name: ');
74
+ // Only add AWS config if all fields are provided
75
+ if (secretAccessKey && bucketName) {
76
+ // Use type assertion to avoid TypeScript errors
77
+ const awsConfig = Object.assign({}, basicConfig);
78
+ // Use "as any" to bypass type checking
79
+ awsConfig.tasksRunnerOptions.default.options = Object.assign(Object.assign({}, awsConfig.tasksRunnerOptions.default.options), { cacheDirectory: '.nx/cache', remoteCache: {
80
+ s3: {
81
+ accessKeyId,
82
+ secretAccessKey,
83
+ region,
84
+ bucketName,
85
+ },
86
+ } });
87
+ // Update or create nx.json with AWS config
88
+ if (tree.exists(nxJsonPath)) {
89
+ updateJson(tree, nxJsonPath, () => awsConfig);
90
+ console.log('Updated nx.json with AWS configuration.');
91
+ }
92
+ else {
93
+ tree.write(nxJsonPath, JSON.stringify(awsConfig, null, 2));
94
+ console.log('Created nx.json with AWS configuration.');
95
+ }
96
+ }
97
+ else {
98
+ console.log('Incomplete AWS information. Creating basic nx.json.');
99
+ // Create basic config without AWS
100
+ if (tree.exists(nxJsonPath)) {
101
+ updateJson(tree, nxJsonPath, (json) => {
102
+ if (!json.tasksRunnerOptions) {
103
+ json.tasksRunnerOptions = basicConfig.tasksRunnerOptions;
104
+ }
105
+ return json;
106
+ });
107
+ }
108
+ else {
109
+ tree.write(nxJsonPath, JSON.stringify(basicConfig, null, 2));
110
+ }
111
+ }
75
112
  }
76
113
  }
77
114
  catch (error) {
78
115
  console.error('Error setting up Nx configuration:', error);
116
+ // Fallback to basic config
117
+ if (tree.exists(nxJsonPath)) {
118
+ updateJson(tree, nxJsonPath, (json) => {
119
+ if (!json.tasksRunnerOptions) {
120
+ json.tasksRunnerOptions = basicConfig.tasksRunnerOptions;
121
+ }
122
+ return json;
123
+ });
124
+ }
125
+ else {
126
+ tree.write(nxJsonPath, JSON.stringify(basicConfig, null, 2));
127
+ }
128
+ }
129
+ finally {
130
+ // Ensure readline interface is closed
131
+ if (rl) {
132
+ rl.close();
133
+ }
134
+ console.log('Nx configuration setup complete.');
79
135
  }
80
136
  });
81
137
  }export{setupNxConfig};//# sourceMappingURL=nxSetup.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"nxSetup.mjs","sources":["../../../../src/generators/add-fullstack/updates/nxSetup.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nxSetup.mjs","sources":["../../../../src/generators/add-fullstack/updates/nxSetup.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -29,11 +29,11 @@
29
29
  "common": "link:./common"
30
30
  },
31
31
  "dependencies": {
32
- "@common-stack/client-core": "7.0.4-alpha.0",
33
- "@common-stack/core": "7.0.4-alpha.0",
34
- "@common-stack/server-core": "7.0.4-alpha.0",
35
- "@common-stack/server-stack": "7.0.4-alpha.0",
36
- "@common-stack/store-mongo": "7.0.4-alpha.0",
32
+ "@common-stack/client-core": "7.0.4-alpha.17",
33
+ "@common-stack/core": "7.0.4-alpha.17",
34
+ "@common-stack/server-core": "7.0.4-alpha.17",
35
+ "@common-stack/server-stack": "7.0.4-alpha.18",
36
+ "@common-stack/store-mongo": "7.0.4-alpha.17",
37
37
  "@container-stack/mailing-api": "5.2.1-alpha.1",
38
38
  "helmet": "^3.21.2",
39
39
  "react": "18.2.0",
@@ -29,7 +29,7 @@
29
29
  },
30
30
  "peerDependencies": {
31
31
  "@cdm-logger/client": "*",
32
- "@common-stack/client-react": "7.0.4-alpha.0",
32
+ "@common-stack/client-react": "7.0.4-alpha.17",
33
33
  "@remix-run/react": "*",
34
34
  "antd": ">=5.1.6",
35
35
  "lodash": "*",
@@ -62,9 +62,9 @@
62
62
  "peerDependencies": {
63
63
  "@apollo/client": ">=3.0.0",
64
64
  "@cdm-logger/server": ">=9.0.3",
65
- "@common-stack/core": "7.0.4-alpha.0",
66
- "@common-stack/server-core": "7.0.4-alpha.0",
67
- "@common-stack/store-mongo": "7.0.4-alpha.0",
65
+ "@common-stack/core": "7.0.4-alpha.17",
66
+ "@common-stack/server-core": "7.0.4-alpha.17",
67
+ "@common-stack/store-mongo": "7.0.4-alpha.17",
68
68
  "@container-stack/mailing-api": ">=0.0.35-alpha.1",
69
69
  "@vscode-alt/monaco-editor": "^0.21.4",
70
70
  "inversify": "^5.0.1",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@common-stack/generate-plugin",
3
- "version": "7.0.4-alpha.2",
3
+ "version": "7.0.4-alpha.20",
4
4
  "type": "module",
5
5
  "main": "./lib/index.mjs",
6
6
  "typings": "./lib/index.d.ts",
@@ -18,7 +18,7 @@
18
18
  "watch": "yarn build:lib:watch"
19
19
  },
20
20
  "dependencies": {
21
- "@common-stack/rollup-vite-utils": "7.0.4-alpha.0",
21
+ "@common-stack/rollup-vite-utils": "7.0.4-alpha.20",
22
22
  "tslib": "^2.3.0"
23
23
  },
24
24
  "publishConfig": {
@@ -26,5 +26,5 @@
26
26
  },
27
27
  "executors": "./executors.json",
28
28
  "generators": "./generators.json",
29
- "gitHead": "6f0008c84e4b55390bc23edf6689934300fa3aca"
29
+ "gitHead": "e031c43b10b6af5d522b7f34452fa31f2ba4e311"
30
30
  }
@@ -17,6 +17,7 @@
17
17
  "autoprefixer": "^10.4.20",
18
18
  "framer-motion": "^12.4.1",
19
19
  "postcss": "^8.5.1",
20
+ "tailwind-merge": "^3.0.2",
20
21
  "tailwindcss": "^4.0.4"
21
22
  },
22
23
  "devDependencies": {},
@@ -64,7 +64,7 @@
64
64
  "dependencies": {
65
65
  "@apollo/client": "^3.9.0",
66
66
  "@babel/runtime": "^7.20.1",
67
- "@common-stack/server-stack": "7.0.4-alpha.0",
67
+ "@common-stack/server-stack": "7.0.4-alpha.18",
68
68
  "@remix-run/node": "~2.10.1",
69
69
  "lodash": "^4.17.15",
70
70
  "react": "18.2.0"
@@ -35,7 +35,12 @@ import { LocaleContext } from './context';
35
35
  const { apolloClient: client, container, serviceFunc } = createClientContainer();
36
36
  const { store } = createReduxStore(client, serviceFunc(), container);
37
37
  const antCache = createCache();
38
- const cache = createEmotionCache();
38
+
39
+ const emotionInsertionPoint =
40
+ document.querySelector('meta[name="emotion-insertion-point"]') || document.createElement('meta');
41
+ const cache = createEmotionCache({
42
+ insertionPoint: emotionInsertionPoint,
43
+ });
39
44
 
40
45
  (window as any).__remixStore = store;
41
46
  removeUniversalPortals((window as any).__SLOT_FILLS__ || []);
@@ -72,7 +77,7 @@ async function hydrate() {
72
77
  <I18nextProvider i18n={i18next}>
73
78
  <LocaleProvider>
74
79
  <CacheProvider value={cache}>
75
- <StyleProvider cache={antCache}>
80
+ <StyleProvider container={document.head} cache={antCache}>
76
81
  <ReduxProvider store={store}>
77
82
  <SlotFillProvider>
78
83
  <InversifyProvider container={container} modules={clientModules}>
@@ -1,6 +1,6 @@
1
1
  import 'reflect-metadata';
2
2
  import * as React from 'react';
3
- import { Links, Meta, Outlet, Scripts, ScrollRestoration, useRouteLoaderData, useRouteError, json } from '@remix-run/react';
3
+ import { Links, Meta, Outlet, Scripts, ScrollRestoration, useRouteLoaderData, useRouteError } from '@remix-run/react';
4
4
  import { PluginArea } from '@common-stack/client-react';
5
5
  import { subscribeReduxRouter } from '@common-stack/remix-router-redux';
6
6
  import { ApplicationErrorHandler } from '@admin-layout/ant-ui';
@@ -71,6 +71,7 @@ export function Layout({ children }: { children: React.ReactNode }) {
71
71
  <meta charSet="utf-8" />
72
72
  <meta name="viewport" content="width=device-width, initial-scale=1" />
73
73
  <Meta />
74
+ <meta name="emotion-insertion-point" content="" />
74
75
  <Links />
75
76
  {typeof window === 'undefined' ? `[__STYLESHEET__]` : ''}
76
77
  </head>
@@ -77,7 +77,7 @@ const frameworkDependencyMap: {
77
77
  ]),
78
78
  },
79
79
  [FRAMEWORK_TAILWINDUI]: {
80
- devDependencies: mapDependencies(['tailwindcss', 'postcss', 'autoprefixer']),
80
+ devDependencies: mapDependencies(['tailwindcss', 'postcss', 'autoprefixer', 'tailwind-merge']),
81
81
  },
82
82
  };
83
83
 
@@ -56,7 +56,7 @@
56
56
  "common": "link:./common"
57
57
  },
58
58
  "dependencies": {
59
- "@common-stack/frontend-stack-react": "7.0.4-alpha.0",
59
+ "@common-stack/frontend-stack-react": "7.0.4-alpha.17",
60
60
  "@react-icons/all-files": "^4.1.0",
61
61
  "classnames": "^2.2.6",
62
62
  "compression": "^1.7.4",
@@ -81,7 +81,7 @@
81
81
  },
82
82
  "devDependencies": {
83
83
  "@cdmbase/vite-plugin-i18next-loader": "^2.0.12",
84
- "@common-stack/rollup-vite-utils": "7.0.4-alpha.0",
84
+ "@common-stack/rollup-vite-utils": "7.0.4-alpha.19",
85
85
  "@remix-run/dev": "~2.10.1",
86
86
  "@remix-run/serve": "~2.10.1",
87
87
  "cross-env": "^7.0.3",
@@ -16,6 +16,9 @@ npm-debug.log*
16
16
  .awcache
17
17
  .nx
18
18
 
19
+ # env
20
+ *.env
21
+
19
22
  # Jest Env
20
23
  globalConfig.json
21
24