create-unisphere-project 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +56 -0
  2. package/_templates/unisphere-project/.changeset/README.md +8 -0
  3. package/_templates/unisphere-project/.changeset/config.json +12 -0
  4. package/_templates/unisphere-project/.editorconfig +13 -0
  5. package/_templates/unisphere-project/.eslintignore +1 -0
  6. package/_templates/unisphere-project/.eslintrc.json +46 -0
  7. package/_templates/unisphere-project/.github/workflows/_publish-artifacts.yml +195 -0
  8. package/_templates/unisphere-project/.github/workflows/cicd.yml +55 -0
  9. package/_templates/unisphere-project/.nvmrc +1 -0
  10. package/_templates/unisphere-project/.prettierignore +5 -0
  11. package/_templates/unisphere-project/.prettierrc +3 -0
  12. package/_templates/unisphere-project/.unisphere +11 -0
  13. package/_templates/unisphere-project/README.md +1 -0
  14. package/_templates/unisphere-project/jest.config.ts +5 -0
  15. package/_templates/unisphere-project/jest.preset.js +3 -0
  16. package/_templates/unisphere-project/nx.json +76 -0
  17. package/_templates/unisphere-project/package-lock.json +26338 -0
  18. package/_templates/unisphere-project/package.json +107 -0
  19. package/_templates/unisphere-project/patches/@changesets+cli+2.27.11.patch +58 -0
  20. package/_templates/unisphere-project/patches/@nx+rollup+19.2.2.patch +29 -0
  21. package/_templates/unisphere-project/tsconfig.base.json +22 -0
  22. package/_templates/unisphere-project/unisphere/applications/.gitkeep +0 -0
  23. package/_templates/unisphere-project/unisphere/packages/.gitkeep +0 -0
  24. package/_templates/unisphere-project/unisphere/runtimes/.gitkeep +0 -0
  25. package/_templates/unisphere-project/vitest.workspace.ts +1 -0
  26. package/package.json +44 -0
  27. package/src/index.d.ts +1 -0
  28. package/src/index.js +8 -0
  29. package/src/index.js.map +1 -0
  30. package/src/lib/create-unisphere-repo-command.d.ts +2 -0
  31. package/src/lib/create-unisphere-repo-command.js +242 -0
  32. package/src/lib/create-unisphere-repo-command.js.map +1 -0
  33. package/src/lib/overwrite-placeholders.d.ts +4 -0
  34. package/src/lib/overwrite-placeholders.js +119 -0
  35. package/src/lib/overwrite-placeholders.js.map +1 -0
  36. package/src/lib/utils.d.ts +6 -0
  37. package/src/lib/utils.js +31 -0
  38. package/src/lib/utils.js.map +1 -0
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.overwritePlaceholders = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fs_extra_1 = require("fs-extra");
6
+ const path_1 = require("path");
7
+ const debug_1 = require("debug");
8
+ const debug = (0, debug_1.default)('unisphere:utils:overwrite-placeholders');
9
+ // Transformation functions
10
+ const transformations = {
11
+ 'lower-dash-case': (str) => str.toLowerCase().replace(/[^a-z0-9]/g, '-'),
12
+ 'lower-kebab-case': (str) => str.toLowerCase().replace(/[^a-z0-9]/g, '-'),
13
+ 'camelCase': (str) => str.replace(/[-_\s]+(.)?/g, (_, c) => c ? c.toUpperCase() : ''),
14
+ 'PascalCase': (str) => {
15
+ const camelCase = str.replace(/[-_\s]+(.)?/g, (_, c) => c ? c.toUpperCase() : '');
16
+ return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
17
+ },
18
+ 'UPPER_SNAKE_CASE': (str) => str.toUpperCase().replace(/[^A-Z0-9]/g, '_'),
19
+ 'lowercase': (str) => str.toLowerCase(),
20
+ 'uppercase': (str) => str.toUpperCase(),
21
+ 'human-readable': (str) => {
22
+ // Convert camelCase, PascalCase, snake_case, kebab-case to human readable
23
+ return str
24
+ .replace(/([a-z])([A-Z])/g, '$1 $2') // camelCase/PascalCase
25
+ .replace(/[-_]/g, ' ') // kebab-case and snake_case
26
+ .replace(/\s+/g, ' ') // multiple spaces
27
+ .trim()
28
+ .toLowerCase()
29
+ .replace(/\b\w/g, l => l.toUpperCase()); // Title case
30
+ },
31
+ };
32
+ // Apply transformation to a value
33
+ const applyTransformation = (value, transformation) => {
34
+ if (!transformation || !transformations[transformation]) {
35
+ return value;
36
+ }
37
+ return transformations[transformation](value);
38
+ };
39
+ // Replace placeholders in text
40
+ const replacePlaceholders = (content, replacements) => {
41
+ let result = content;
42
+ // Match patterns like {{variable|transformation}} or {{variable}}
43
+ const placeholderRegex = /\{\{([^}|]+)(\|([^}]+))?\}\}/g;
44
+ result = result.replace(placeholderRegex, (match, variable, _, transformation) => {
45
+ const value = replacements[variable];
46
+ if (value === undefined) {
47
+ debug(`Warning: No replacement found for placeholder: ${match}`);
48
+ return match; // Keep original if no replacement found
49
+ }
50
+ return applyTransformation(value, transformation);
51
+ });
52
+ return result;
53
+ };
54
+ // Process a single file
55
+ const processFile = (filePath, replacements) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
56
+ try {
57
+ const content = yield (0, fs_extra_1.readFile)(filePath, 'utf-8');
58
+ const newContent = replacePlaceholders(content, replacements);
59
+ if (newContent !== content) {
60
+ yield (0, fs_extra_1.writeFile)(filePath, newContent, 'utf-8');
61
+ debug(`Processed placeholders in: ${filePath}`);
62
+ }
63
+ }
64
+ catch (error) {
65
+ // Skip binary files or files that can't be read as text
66
+ debug(`Skipping file (likely binary): ${filePath}`);
67
+ }
68
+ });
69
+ // Rename file or directory if it contains placeholders
70
+ const renameIfNeeded = (itemPath, replacements) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
71
+ const itemName = (0, path_1.basename)(itemPath);
72
+ const newItemName = replacePlaceholders(itemName, replacements);
73
+ if (newItemName !== itemName) {
74
+ const newItemPath = (0, path_1.join)((0, path_1.dirname)(itemPath), newItemName);
75
+ yield (0, fs_extra_1.rename)(itemPath, newItemPath);
76
+ debug(`Renamed: ${itemName} → ${newItemName}`);
77
+ return newItemPath;
78
+ }
79
+ return itemPath;
80
+ });
81
+ // Recursively process directory
82
+ const processDirectory = (dirPath, replacements) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
83
+ const items = yield (0, fs_extra_1.readdir)(dirPath);
84
+ for (const item of items) {
85
+ const itemPath = (0, path_1.join)(dirPath, item);
86
+ const itemStat = yield (0, fs_extra_1.stat)(itemPath);
87
+ if (itemStat.isDirectory()) {
88
+ // Recursively process subdirectories first
89
+ yield processDirectory(itemPath, replacements);
90
+ // Then rename directory if needed
91
+ yield renameIfNeeded(itemPath, replacements);
92
+ }
93
+ else {
94
+ // Process file content
95
+ yield processFile(itemPath, replacements);
96
+ // Rename file if needed
97
+ yield renameIfNeeded(itemPath, replacements);
98
+ }
99
+ }
100
+ });
101
+ const overwritePlaceholders = (folderPath_1, _a) => tslib_1.__awaiter(void 0, [folderPath_1, _a], void 0, function* (folderPath, { companyName, experienceName, }) {
102
+ debug(`Processing placeholders in: ${folderPath}`);
103
+ // Create replacement map
104
+ const replacements = {
105
+ 'company-name': companyName,
106
+ 'project-name': experienceName,
107
+ };
108
+ debug(`Placeholder replacements:`, replacements);
109
+ try {
110
+ yield processDirectory(folderPath, replacements);
111
+ debug(`Successfully processed all placeholders in: ${folderPath}`);
112
+ }
113
+ catch (error) {
114
+ debug(`Error processing placeholders: ${error.message}`);
115
+ throw new Error(`Failed to process placeholders: ${error.message}`);
116
+ }
117
+ });
118
+ exports.overwritePlaceholders = overwritePlaceholders;
119
+ //# sourceMappingURL=overwrite-placeholders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overwrite-placeholders.js","sourceRoot":"","sources":["../../../../../packages/create-unisphere-project/src/lib/overwrite-placeholders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Command } from 'commander';
2
+ import { ListrBaseClassOptions } from 'listr2';
3
+ export declare const printVerboseHook: (thisCommand: Command) => void;
4
+ export declare const getDefaultListrOptions: ({ collapseSubtasks, }?: {
5
+ collapseSubtasks?: boolean;
6
+ }) => ListrBaseClassOptions<any, any, any>;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDefaultListrOptions = exports.printVerboseHook = void 0;
4
+ const debug_1 = require("debug");
5
+ const debug = (0, debug_1.default)('create-unisphere-project');
6
+ const printVerboseHook = (thisCommand) => {
7
+ const options = thisCommand.opts();
8
+ if (options.verbose) {
9
+ debug.enable('create-unisphere-project*');
10
+ debug('CLI arguments');
11
+ debug(options);
12
+ }
13
+ };
14
+ exports.printVerboseHook = printVerboseHook;
15
+ const getDefaultListrOptions = ({ collapseSubtasks = false, } = {}) => {
16
+ return {
17
+ exitOnError: true,
18
+ concurrent: false,
19
+ rendererOptions: {
20
+ outputBar: Infinity,
21
+ persistentOutput: true,
22
+ showSubtasks: true,
23
+ collapseErrors: false,
24
+ collapseSubtasks,
25
+ showErrorMessage: false,
26
+ },
27
+ };
28
+ // }
29
+ };
30
+ exports.getDefaultListrOptions = getDefaultListrOptions;
31
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../packages/create-unisphere-project/src/lib/utils.ts"],"names":[],"mappings":";;;AACA,iCAA0B;AAG1B,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,0BAA0B,CAAC,CAAC;AACzC,MAAM,gBAAgB,GAAG,CAAC,WAAoB,EAAQ,EAAE;IAC7D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IAEnC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,KAAK,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;QAC1C,KAAK,CAAC,eAAe,CAAC,CAAC;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;AACH,CAAC,CAAC;AARW,QAAA,gBAAgB,oBAQ3B;AAEK,MAAM,sBAAsB,GAAG,CAAC,EACrC,gBAAgB,GAAG,KAAK,MAGtB,EAAE,EAAwC,EAAE;IAC9C,OAAO;QACL,WAAW,EAAE,IAAI;QACjB,UAAU,EAAE,KAAK;QACjB,eAAe,EAAE;YACf,SAAS,EAAE,QAAQ;YACnB,gBAAgB,EAAE,IAAI;YACtB,YAAY,EAAE,IAAI;YAElB,cAAc,EAAE,KAAK;YACrB,gBAAgB;YAChB,gBAAgB,EAAE,KAAK;SACxB;KACF,CAAC;IACF,IAAI;AACN,CAAC,CAAC;AAnBW,QAAA,sBAAsB,0BAmBjC"}