@unisphere/cli 1.51.2 → 1.51.4

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 (55) hide show
  1. package/package.json +1 -2
  2. package/src/lib/commands/check/command.js +1 -1
  3. package/src/lib/commands/check/command.js.map +1 -1
  4. package/src/lib/commands/info/command.js +1 -1
  5. package/src/lib/commands/info/command.js.map +1 -1
  6. package/src/lib/unisphere.js +0 -2
  7. package/src/lib/unisphere.js.map +1 -1
  8. package/src/lib/utils/get-cli-version.d.ts +1 -1
  9. package/src/lib/utils/get-cli-version.js +9 -3
  10. package/src/lib/utils/get-cli-version.js.map +1 -1
  11. package/_templates/unisphere-package/.babelrc +0 -12
  12. package/_templates/unisphere-package/.eslintrc.json +0 -18
  13. package/_templates/unisphere-package/README.md +0 -1
  14. package/_templates/unisphere-package/package.json +0 -15
  15. package/_templates/unisphere-package/project.json +0 -20
  16. package/_templates/unisphere-package/rollup.config.js +0 -6
  17. package/_templates/unisphere-package/src/index.ts +0 -0
  18. package/_templates/unisphere-package/tsconfig.json +0 -20
  19. package/_templates/unisphere-package/tsconfig.lib.json +0 -23
  20. package/_templates/unisphere-package/tsconfig.spec.json +0 -26
  21. package/_templates/unisphere-package/vite.config.ts +0 -30
  22. package/_templates/unisphere-repo/.editorconfig +0 -13
  23. package/_templates/unisphere-repo/.eslintignore +0 -1
  24. package/_templates/unisphere-repo/.eslintrc.json +0 -46
  25. package/_templates/unisphere-repo/.nvmrc +0 -1
  26. package/_templates/unisphere-repo/.prettierignore +0 -5
  27. package/_templates/unisphere-repo/.prettierrc +0 -3
  28. package/_templates/unisphere-repo/.unisphere +0 -11
  29. package/_templates/unisphere-repo/README.md +0 -1
  30. package/_templates/unisphere-repo/jest.config.ts +0 -5
  31. package/_templates/unisphere-repo/jest.preset.js +0 -3
  32. package/_templates/unisphere-repo/nx.json +0 -85
  33. package/_templates/unisphere-repo/package-lock.json +0 -26338
  34. package/_templates/unisphere-repo/package.json +0 -105
  35. package/_templates/unisphere-repo/patches/@changesets+cli+2.27.11.patch +0 -58
  36. package/_templates/unisphere-repo/patches/@nx+rollup+19.2.2.patch +0 -29
  37. package/_templates/unisphere-repo/tsconfig.base.json +0 -22
  38. package/_templates/unisphere-repo/unisphere/applications/.gitkeep +0 -0
  39. package/_templates/unisphere-repo/unisphere/packages/.gitkeep +0 -0
  40. package/_templates/unisphere-repo/vitest.workspace.ts +0 -1
  41. package/src/lib/commands/create/command.d.ts +0 -0
  42. package/src/lib/commands/create/command.js +0 -135
  43. package/src/lib/commands/create/command.js.map +0 -1
  44. package/src/lib/commands/generate/add-package-command.d.ts +0 -2
  45. package/src/lib/commands/generate/add-package-command.js +0 -209
  46. package/src/lib/commands/generate/add-package-command.js.map +0 -1
  47. package/src/lib/commands/generate/create-unisphere-repo-command.d.ts +0 -2
  48. package/src/lib/commands/generate/create-unisphere-repo-command.js +0 -183
  49. package/src/lib/commands/generate/create-unisphere-repo-command.js.map +0 -1
  50. package/src/lib/commands/generate/generate-commands.d.ts +0 -2
  51. package/src/lib/commands/generate/generate-commands.js +0 -13
  52. package/src/lib/commands/generate/generate-commands.js.map +0 -1
  53. package/src/lib/commands/generate/overwrite-placeholders.d.ts +0 -4
  54. package/src/lib/commands/generate/overwrite-placeholders.js +0 -119
  55. package/src/lib/commands/generate/overwrite-placeholders.js.map +0 -1
@@ -1,105 +0,0 @@
1
- {
2
- "name": "@kaltura/unisphere-{{project-name|lower-dash-case}}",
3
- "version": "1.0.0",
4
- "license": "MIT",
5
- "scripts": {
6
- "postinstall": "patch-package && npm run reset",
7
- "start": "unisphere how-to",
8
- "info": "unisphere info",
9
- "check": "unisphere check",
10
- "reset": "unisphere reset",
11
- "changeset": "changeset"
12
- },
13
- "private": true,
14
- "devDependencies": {
15
- "@babel/core": "^7.14.5",
16
- "@babel/preset-react": "^7.14.5",
17
- "@changesets/cli": "^2.27.11",
18
- "@nx/eslint": "19.2.2",
19
- "@nx/eslint-plugin": "19.2.2",
20
- "@nx/jest": "19.2.2",
21
- "@nx/js": "19.2.2",
22
- "@nx/react": "^19.2.2",
23
- "@nx/rollup": "19.2.2",
24
- "@nx/vite": "19.2.2",
25
- "@nx/web": "19.2.2",
26
- "@nx/webpack": "19.2.2",
27
- "@nx/workspace": "19.2.2",
28
- "@rollup/plugin-alias": "^5.1.0",
29
- "@rollup/plugin-replace": "^5.0.7",
30
- "@rollup/plugin-terser": "^0.4.4",
31
- "@rollup/plugin-url": "^8.0.2",
32
- "@svgr/rollup": "^8.1.0",
33
- "@svgr/webpack": "^8.0.1",
34
- "@swc-node/register": "~1.9.1",
35
- "@swc/cli": "~0.3.12",
36
- "@swc/core": "~1.5.7",
37
- "@swc/helpers": "~0.5.11",
38
- "@testing-library/react": "15.0.6",
39
- "@types/jest": "^29.4.0",
40
- "@types/node": "18.16.9",
41
- "@types/react": "18.3.1",
42
- "@types/react-dom": "18.3.0",
43
- "@typescript-eslint/eslint-plugin": "^7.3.0",
44
- "@typescript-eslint/parser": "^7.3.0",
45
- "@vitejs/plugin-react": "^4.2.0",
46
- "@vitest/coverage-v8": "^1.0.4",
47
- "@vitest/ui": "^1.3.1",
48
- "babel-jest": "^29.4.1",
49
- "concurrently": "^8.2.2",
50
- "core-js": "^3.36.1",
51
- "eslint": "~8.57.0",
52
- "eslint-config-prettier": "^9.0.0",
53
- "eslint-plugin-import": "2.27.5",
54
- "eslint-plugin-jsx-a11y": "6.7.1",
55
- "eslint-plugin-react": "7.32.2",
56
- "eslint-plugin-react-hooks": "4.6.0",
57
- "jest": "^29.4.1",
58
- "jest-environment-jsdom": "^29.4.1",
59
- "jsdom": "~22.1.0",
60
- "local-web-server": "^5.3.3",
61
- "nx": "19.2.2",
62
- "patch-package": "^8.0.0",
63
- "prettier": "^2.6.2",
64
- "rollup": "^4.14.0",
65
- "rollup-plugin-analyzer": "^4.0.0",
66
- "ts-jest": "^29.1.0",
67
- "ts-node": "10.9.1",
68
- "tslib": "^2.3.0",
69
- "typescript": "~5.4.2",
70
- "vite": "^5.0.0",
71
- "vitest": "^1.3.1",
72
- "webpack-cli": "^5.1.4"
73
- },
74
- "overrides": {
75
- "@mui/styles@5": {
76
- "react": "18.x"
77
- }
78
- },
79
- "dependencies": {
80
- "@emotion/react": "^11.13.0",
81
- "@emotion/styled": "^11.13.0",
82
- "@kaltura/ds-react-bits": "^10.11.5",
83
- "@kaltura/ds-react-components": "^10.11.5",
84
- "@kaltura/ds-react-icons": "^10.11.5",
85
- "@kaltura/ds-react-theme": "^10.11.5",
86
- "@kaltura/ds-react-utils": "^10.11.5",
87
- "@mui/icons-material": "^5.15.21",
88
- "@mui/material": "^5.16.6",
89
- "@unisphere/cli": "^1.45.3",
90
- "@unisphere/notifications-core": "^1.13.0",
91
- "@unisphere/notifications-runtime-react": "^1.13.0",
92
- "@unisphere/runtime": "^1.74.0",
93
- "@unisphere/runtime-js": "^1.72.1",
94
- "@unisphere/runtime-react": "^1.69.1",
95
- "react": "18.3.1",
96
- "react-dom": "18.3.1"
97
- },
98
- "optionalDependencies": {
99
- "@nx/nx-linux-x64-gnu": "19.2.2",
100
- "@rollup/rollup-linux-x64-gnu": "4.22.4"
101
- },
102
- "workspaces": [
103
- "unisphere/**"
104
- ]
105
- }
@@ -1,58 +0,0 @@
1
- diff --git a/node_modules/@changesets/cli/dist/changesets-cli.cjs.js b/node_modules/@changesets/cli/dist/changesets-cli.cjs.js
2
- index eaba708..aa36b0e 100644
3
- --- a/node_modules/@changesets/cli/dist/changesets-cli.cjs.js
4
- +++ b/node_modules/@changesets/cli/dist/changesets-cli.cjs.js
5
- @@ -336,23 +336,7 @@ async function createChangeset(changedPackages, allPackages) {
6
- const packagesToRelease = await getPackagesToRelease(changedPackages, allPackages);
7
- let pkgJsonsByName = getPkgJsonsByName(allPackages);
8
- let pkgsLeftToGetBumpTypeFor = new Set(packagesToRelease);
9
- - let pkgsThatShouldBeMajorBumped = (await askCheckboxPlus(bold(`Which packages should have a ${red("major")} bump?`), [{
10
- - name: "all packages",
11
- - choices: packagesToRelease.map(pkgName => {
12
- - return {
13
- - name: pkgName,
14
- - message: formatPkgNameAndVersion(pkgName, pkgJsonsByName.get(pkgName).version)
15
- - };
16
- - })
17
- - }], x => {
18
- - // this removes changed packages and unchanged packages from the list
19
- - // of packages shown after selection
20
- - if (Array.isArray(x)) {
21
- - return x.filter(x => x !== "all packages").map(x => cyan(x)).join(", ");
22
- - }
23
- -
24
- - return x;
25
- - })).filter(x => x !== "all packages");
26
- + let pkgsThatShouldBeMajorBumped = []
27
-
28
- for (const pkgName of pkgsThatShouldBeMajorBumped) {
29
- // for packages that are under v1, we want to make sure major releases are intended,
30
- diff --git a/node_modules/@changesets/cli/dist/changesets-cli.esm.js b/node_modules/@changesets/cli/dist/changesets-cli.esm.js
31
- index 817d3ce..f2fd456 100644
32
- --- a/node_modules/@changesets/cli/dist/changesets-cli.esm.js
33
- +++ b/node_modules/@changesets/cli/dist/changesets-cli.esm.js
34
- @@ -298,23 +298,7 @@ async function createChangeset(changedPackages, allPackages) {
35
- const packagesToRelease = await getPackagesToRelease(changedPackages, allPackages);
36
- let pkgJsonsByName = getPkgJsonsByName(allPackages);
37
- let pkgsLeftToGetBumpTypeFor = new Set(packagesToRelease);
38
- - let pkgsThatShouldBeMajorBumped = (await askCheckboxPlus(bold(`Which packages should have a ${red("major")} bump?`), [{
39
- - name: "all packages",
40
- - choices: packagesToRelease.map(pkgName => {
41
- - return {
42
- - name: pkgName,
43
- - message: formatPkgNameAndVersion(pkgName, pkgJsonsByName.get(pkgName).version)
44
- - };
45
- - })
46
- - }], x => {
47
- - // this removes changed packages and unchanged packages from the list
48
- - // of packages shown after selection
49
- - if (Array.isArray(x)) {
50
- - return x.filter(x => x !== "all packages").map(x => cyan(x)).join(", ");
51
- - }
52
- -
53
- - return x;
54
- - })).filter(x => x !== "all packages");
55
- + let pkgsThatShouldBeMajorBumped = []
56
-
57
- for (const pkgName of pkgsThatShouldBeMajorBumped) {
58
- // for packages that are under v1, we want to make sure major releases are intended,
@@ -1,29 +0,0 @@
1
- diff --git a/node_modules/@nx/rollup/src/plugins/with-nx/with-nx.js b/node_modules/@nx/rollup/src/plugins/with-nx/with-nx.js
2
- index bffa207..6f73d4b 100644
3
- --- a/node_modules/@nx/rollup/src/plugins/with-nx/with-nx.js
4
- +++ b/node_modules/@nx/rollup/src/plugins/with-nx/with-nx.js
5
- @@ -118,6 +118,13 @@ dependencies) {
6
- };
7
- }
8
- if (!global.NX_GRAPH_CREATION) {
9
- + let compilerOptionsInterceptor = ((config) => config)
10
- + if (rollupConfig.unisphere?.interceptors?.compilerOptions) {
11
- + console.log(`[unisphere.nx.rollup] using monkey patched interceptor for TS compiler options`);
12
- + compilerOptionsInterceptor = rollupConfig.unisphere?.interceptors?.compilerOptions ;
13
- + }
14
- +
15
- +
16
- finalConfig.plugins = [
17
- copy({
18
- targets: convertCopyAssetsToRollupOptions(options.outputPath, options.assets),
19
- @@ -128,8 +135,9 @@ dependencies) {
20
- require('rollup-plugin-typescript2')({
21
- check: !options.skipTypeCheck,
22
- tsconfig: options.tsConfig,
23
- + exclude: ['**/*.stories.ts', '**/*.stories.tsx'], // Add this line
24
- tsconfigOverride: {
25
- - compilerOptions: createTsCompilerOptions(projectRoot, tsConfig, options, dependencies),
26
- + compilerOptions: compilerOptionsInterceptor(createTsCompilerOptions(projectRoot, tsConfig, options, dependencies)),
27
- },
28
- }),
29
- (0, type_definitions_1.typeDefinitions)({
@@ -1,22 +0,0 @@
1
- {
2
- "compileOnSave": false,
3
- "compilerOptions": {
4
- "rootDir": ".",
5
- "sourceMap": true,
6
- "declaration": false,
7
- "moduleResolution": "node",
8
- "emitDecoratorMetadata": true,
9
- "resolveJsonModule": true,
10
- "experimentalDecorators": true,
11
- "importHelpers": true,
12
- "target": "es2015",
13
- "module": "esnext",
14
- "lib": ["es2020", "dom"],
15
- "skipLibCheck": true,
16
- "skipDefaultLibCheck": true,
17
- "baseUrl": ".",
18
- "paths": {
19
- }
20
- },
21
- "exclude": ["node_modules", "tmp"]
22
- }
@@ -1 +0,0 @@
1
- export default ['**/*/vite.config.ts', '**/*/vitest.config.ts'];
File without changes
@@ -1,135 +0,0 @@
1
- // import { Command } from 'commander';
2
- // import Debug from 'debug';
3
- // import { Listr, ListrTask } from 'listr2';
4
- // import { printVerboseHook } from '../../utils/utils';
5
- // import { getDefaultListrOptions } from '../../utils/listr2/defaults';
6
- // import { resolve, join, basename, dirname } from 'path';
7
- // import {
8
- // existsSync,
9
- // mkdirSync,
10
- // readdirSync,
11
- // readFileSync,
12
- // writeFileSync,
13
- // } from 'fs';
14
- // import { compile } from 'handlebars';
15
- // const debug = Debug('unisphere:create');
16
- // const ignoreFiles = ['.DS_Store'];
17
- // function processTemplate(content: string, data: any): string {
18
- // const template = compile(content);
19
- // return template(data);
20
- // }
21
- // function processFileName(fileName: string, data: any): string {
22
- // if (fileName.includes('{{')) {
23
- // return processTemplate(fileName, data);
24
- // }
25
- // return fileName;
26
- // }
27
- // function copyTemplateDirectory(
28
- // sourcePath: string,
29
- // targetPath: string,
30
- // data: any
31
- // ) {
32
- // if (!existsSync(sourcePath)) {
33
- // throw new Error(`Template directory "${sourcePath}" does not exist.`);
34
- // }
35
- // if (!existsSync(targetPath)) {
36
- // debug(`Creating target directory: ${targetPath}`);
37
- // mkdirSync(targetPath, { recursive: true });
38
- // }
39
- // const files = readdirSync(sourcePath, { withFileTypes: true });
40
- // for (const file of files) {
41
- // if (ignoreFiles.includes(file.name)) {
42
- // debug(`Skipping file: ${file.name}`);
43
- // continue;
44
- // }
45
- // const sourceFilePath = join(sourcePath, file.name);
46
- // const processedFileName = processFileName(file.name, data);
47
- // const targetFilePath = join(targetPath, processedFileName);
48
- // if (file.isDirectory()) {
49
- // debug(`Processing directory: ${file.name}`);
50
- // copyTemplateDirectory(sourceFilePath, targetFilePath, data);
51
- // } else {
52
- // debug(`Processing file: ${file.name}`);
53
- // const content = readFileSync(sourceFilePath, 'utf-8');
54
- // const processedContent = processTemplate(content, data);
55
- // writeFileSync(targetFilePath, processedContent);
56
- // }
57
- // }
58
- // }
59
- // export const createCreateCommand = (): Command => {
60
- // const command = new Command('create');
61
- // command
62
- // .description('create a new unisphere project')
63
- // .argument('<widget-name>', 'The name of the widget project')
64
- // .option('--cwd <path>', 'The working directory', process.cwd())
65
- // .option(
66
- // '--templates-path <path>',
67
- // 'The path to the templates directory',
68
- // resolve(process.cwd(), '_templates')
69
- // )
70
- // .option('--verbose', 'Output debug logs', false)
71
- // .hook('preAction', printVerboseHook)
72
- // .action(async (widgetName, options) => {
73
- // const cwd = resolve(options.cwd || process.cwd());
74
- // const formattedWidgetName = widgetName
75
- // .replace(/[\s-_]+/g, '') // Normalize widget name
76
- // .replace(/^./, (char) => char.toLowerCase()); // Lowercase first letter
77
- // const widgetPath = resolve(cwd, formattedWidgetName);
78
- // const templatesPath = options.templatesPath;
79
- // debug(`Using templates from: ${templatesPath}`);
80
- // const tasks: ListrTask[] = [
81
- // {
82
- // title: 'Check if the working directory exists',
83
- // task: () => {
84
- // if (!existsSync(cwd)) {
85
- // throw new Error(`Working directory "${cwd}" does not exist.`);
86
- // }
87
- // },
88
- // },
89
- // {
90
- // title: 'Check if widget path exists',
91
- // task: () => {
92
- // if (existsSync(widgetPath)) {
93
- // throw new Error(`Path "${widgetPath}" already exists.`);
94
- // }
95
- // },
96
- // },
97
- // {
98
- // title: 'Create project folder',
99
- // task: () => {
100
- // mkdirSync(widgetPath, { recursive: true });
101
- // debug(`Created project folder: ${widgetPath}`);
102
- // },
103
- // },
104
- // {
105
- // title: 'Generate project from templates',
106
- // task: () => {
107
- // const templateDir = resolve(templatesPath, 'new-project');
108
- // const templateData = {
109
- // widgetName: formattedWidgetName,
110
- // WidgetName:
111
- // formattedWidgetName.charAt(0).toUpperCase() +
112
- // formattedWidgetName.slice(1),
113
- // };
114
- // debug(`Copying templates from: ${templateDir} to ${widgetPath}`);
115
- // copyTemplateDirectory(templateDir, widgetPath, templateData);
116
- // },
117
- // },
118
- // // {
119
- // // title: 'Run npm install',
120
- // // task: () => {
121
- // // try {
122
- // // execSync('npm install', { cwd: widgetPath, stdio: 'inherit' });
123
- // // debug('Dependencies installed successfully.');
124
- // // } catch (error) {
125
- // // throw new Error(`npm install failed: ${error.message}`);
126
- // // }
127
- // // },
128
- // // },
129
- // ];
130
- // const taskRunner = new Listr(tasks, getDefaultListrOptions());
131
- // await taskRunner.run();
132
- // });
133
- // return command;
134
- // };
135
- //# sourceMappingURL=command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../../../../packages/unisphere-cli/src/lib/commands/create/command.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,6BAA6B;AAC7B,6CAA6C;AAC7C,wDAAwD;AACxD,wEAAwE;AACxE,2DAA2D;AAC3D,WAAW;AACX,gBAAgB;AAChB,eAAe;AACf,iBAAiB;AACjB,kBAAkB;AAClB,mBAAmB;AACnB,eAAe;AACf,wCAAwC;AAExC,2CAA2C;AAE3C,qCAAqC;AACrC,iEAAiE;AACjE,uCAAuC;AACvC,2BAA2B;AAC3B,IAAI;AAEJ,kEAAkE;AAClE,mCAAmC;AACnC,8CAA8C;AAC9C,MAAM;AACN,qBAAqB;AACrB,IAAI;AAEJ,kCAAkC;AAClC,wBAAwB;AACxB,wBAAwB;AACxB,cAAc;AACd,MAAM;AACN,mCAAmC;AACnC,6EAA6E;AAC7E,MAAM;AAEN,mCAAmC;AACnC,yDAAyD;AACzD,kDAAkD;AAClD,MAAM;AAEN,oEAAoE;AAEpE,gCAAgC;AAChC,6CAA6C;AAC7C,8CAA8C;AAC9C,kBAAkB;AAClB,QAAQ;AAER,0DAA0D;AAC1D,kEAAkE;AAClE,kEAAkE;AAElE,gCAAgC;AAChC,qDAAqD;AACrD,qEAAqE;AACrE,eAAe;AACf,gDAAgD;AAChD,+DAA+D;AAC/D,iEAAiE;AACjE,yDAAyD;AACzD,QAAQ;AACR,MAAM;AACN,IAAI;AAEJ,sDAAsD;AACtD,2CAA2C;AAE3C,YAAY;AACZ,qDAAqD;AACrD,mEAAmE;AACnE,sEAAsE;AACtE,eAAe;AACf,mCAAmC;AACnC,+CAA+C;AAC/C,6CAA6C;AAC7C,QAAQ;AACR,uDAAuD;AACvD,2CAA2C;AAC3C,+CAA+C;AAC/C,2DAA2D;AAC3D,+CAA+C;AAC/C,4DAA4D;AAC5D,kFAAkF;AAElF,8DAA8D;AAC9D,qDAAqD;AAErD,yDAAyD;AAEzD,qCAAqC;AACrC,YAAY;AACZ,4DAA4D;AAC5D,0BAA0B;AAC1B,sCAAsC;AACtC,+EAA+E;AAC/E,gBAAgB;AAChB,eAAe;AACf,aAAa;AACb,YAAY;AACZ,kDAAkD;AAClD,0BAA0B;AAC1B,4CAA4C;AAC5C,yEAAyE;AACzE,gBAAgB;AAChB,eAAe;AACf,aAAa;AACb,YAAY;AACZ,4CAA4C;AAC5C,0BAA0B;AAC1B,0DAA0D;AAC1D,8DAA8D;AAC9D,eAAe;AACf,aAAa;AACb,YAAY;AACZ,sDAAsD;AACtD,0BAA0B;AAC1B,yEAAyE;AACzE,qCAAqC;AACrC,iDAAiD;AACjD,4BAA4B;AAC5B,gEAAgE;AAChE,gDAAgD;AAChD,iBAAiB;AAEjB,gFAAgF;AAChF,4EAA4E;AAC5E,eAAe;AACf,aAAa;AACb,eAAe;AACf,yCAAyC;AACzC,6BAA6B;AAC7B,uBAAuB;AACvB,mFAAmF;AACnF,kEAAkE;AAClE,mCAAmC;AACnC,4EAA4E;AAC5E,mBAAmB;AACnB,kBAAkB;AAClB,gBAAgB;AAChB,WAAW;AAEX,uEAAuE;AACvE,gCAAgC;AAChC,UAAU;AAEV,oBAAoB;AACpB,KAAK"}
@@ -1,2 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const createAddPackageCommand: (parentCommand: Command) => Command;
@@ -1,209 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createAddPackageCommand = void 0;
4
- const tslib_1 = require("tslib");
5
- const utils_1 = require("../../utils/utils");
6
- const debug_1 = require("debug");
7
- const listr2_1 = require("listr2");
8
- const defaults_1 = require("../../utils/listr2/defaults");
9
- const path_1 = require("path");
10
- const fs_1 = require("fs");
11
- const fs_extra_1 = require("fs-extra");
12
- const overwrite_placeholders_1 = require("./overwrite-placeholders");
13
- const inquirer = require("inquirer");
14
- const debug = (0, debug_1.default)('unisphere:template:add-package');
15
- // Path to the package templates directory
16
- const PACKAGE_TEMPLATES_PATH = (0, path_1.resolve)(__dirname, '../../../../_templates/unisphere-package');
17
- // Package name validation regex: allows letters, hyphens, and spaces
18
- const PACKAGE_NAME_REGEX = /^[a-zA-Z\s-]+$/;
19
- // Function to validate package name format
20
- const validatePackageName = (name) => {
21
- return PACKAGE_NAME_REGEX.test(name);
22
- };
23
- // Calculate packageJsonName based on scope and names
24
- const calculatePackageJsonName = (scope, experienceName, packageName) => {
25
- let packageJsonName = scope === 'public' ? '@unisphere/' : '@kaltura/unisphere-';
26
- packageJsonName += experienceName;
27
- if (experienceName !== packageName) {
28
- packageJsonName += `-${packageName}`;
29
- }
30
- return packageJsonName;
31
- };
32
- // Calculate repositoryPrivate name
33
- const calculateRepositoryPrivate = (experienceName, packageName) => {
34
- if (experienceName === packageName) {
35
- return experienceName;
36
- }
37
- const experienceCamel = experienceName.replace(/[-_\s]+(.)?/g, (_, c) => c ? c.toUpperCase() : '');
38
- const packageCamel = packageName.replace(/[-_\s]+(.)?/g, (_, c) => c ? c.toUpperCase() : '');
39
- return `${experienceCamel}-${packageCamel}`;
40
- };
41
- // Calculate distribution channel based on scope
42
- const calculateDistributionChannel = (scope) => {
43
- switch (scope) {
44
- case 'public':
45
- return 'npm';
46
- case 'none':
47
- return 'none';
48
- case 'internal':
49
- return 'github';
50
- default:
51
- return 'none';
52
- }
53
- };
54
- const createAddPackageCommand = (parentCommand) => {
55
- const command = parentCommand.command('add-package');
56
- command
57
- .description('add a package to an existing unisphere repository')
58
- .option('--cwd <path>', 'The working directory', process.cwd())
59
- .option('--package-name <name>', 'The name of the package (letters, hyphens, and spaces only)')
60
- .option('--scope <scope>', 'The package scope (public, internal, none)')
61
- .option('--verbose', 'Output debug logs', false)
62
- .hook('preAction', utils_1.printVerboseHook)
63
- .action((options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
64
- const cwd = (0, path_1.resolve)(options.cwd || process.cwd());
65
- // Get values from options or prompt
66
- let packageName = options.packageName;
67
- let scope = options.scope;
68
- debug(`Adding package to ${cwd}`);
69
- // Check if we're in a unisphere repo and read environment from .unisphere.json
70
- const unisphereConfigPath = (0, path_1.resolve)(cwd, '.unisphere');
71
- if (!(0, fs_1.existsSync)(unisphereConfigPath)) {
72
- throw new Error('No .unisphere file found. Are you in a valid unisphere repository?');
73
- }
74
- let companyName;
75
- let experienceName;
76
- try {
77
- const unisphereConfig = yield (0, fs_extra_1.readJson)(unisphereConfigPath);
78
- companyName = unisphereConfig.company;
79
- experienceName = unisphereConfig.name;
80
- if (!companyName || !experienceName) {
81
- throw new Error('Missing company or name in .unisphere file');
82
- }
83
- debug(`Loaded from .unisphere:`, { companyName, experienceName });
84
- }
85
- catch (error) {
86
- throw new Error(`Failed to read .unisphere file: ${error.message}`);
87
- }
88
- // Create prompt questions for missing values
89
- const questions = [];
90
- if (!packageName) {
91
- questions.push({
92
- type: 'input',
93
- name: 'packageName',
94
- message: 'Enter package name (letters, hyphens, and spaces only):',
95
- validate: (input) => {
96
- if (!input || !input.trim()) {
97
- return 'Package name is required';
98
- }
99
- if (!validatePackageName(input.trim())) {
100
- return 'Package name can only contain letters, hyphens, and spaces';
101
- }
102
- return true;
103
- },
104
- });
105
- }
106
- if (!scope) {
107
- questions.push({
108
- type: 'list',
109
- name: 'scope',
110
- message: 'Select package scope:',
111
- choices: [
112
- { name: 'Public (@unisphere/)', value: 'public' },
113
- { name: 'Internal (@kaltura/unisphere-)', value: 'internal' },
114
- { name: 'None (no scope)', value: 'none' }
115
- ],
116
- default: 'internal',
117
- });
118
- }
119
- // Prompt for missing values
120
- if (questions.length > 0) {
121
- const answers = yield inquirer.prompt(questions);
122
- packageName = packageName || answers.packageName;
123
- scope = scope || answers.scope;
124
- }
125
- // Validate package name if provided via options
126
- if (packageName && !validatePackageName(packageName)) {
127
- throw new Error('Package name can only contain letters, hyphens, and spaces');
128
- }
129
- // Validate scope
130
- if (!['public', 'internal', 'none'].includes(scope)) {
131
- throw new Error('Scope must be one of: public, internal, none');
132
- }
133
- // Calculate derived variables
134
- const packageJsonName = calculatePackageJsonName(scope, experienceName, packageName);
135
- const repositoryPrivate = scope === 'none' ? calculateRepositoryPrivate(experienceName, packageName) : undefined;
136
- const distributionChannel = calculateDistributionChannel(scope);
137
- debug(`Package details:`, {
138
- packageName,
139
- scope,
140
- companyName,
141
- experienceName,
142
- packageJsonName,
143
- repositoryPrivate,
144
- distributionChannel,
145
- });
146
- // Package destination is under cwd/unisphere/packages/{packageName}
147
- const packageDestPath = (0, path_1.resolve)(cwd, 'unisphere', 'packages', packageName);
148
- const tasks = [
149
- {
150
- title: 'Check if package template exists',
151
- task: () => {
152
- if (!(0, fs_1.existsSync)(PACKAGE_TEMPLATES_PATH)) {
153
- throw new Error(`Package template not found at ${PACKAGE_TEMPLATES_PATH}`);
154
- }
155
- },
156
- },
157
- {
158
- title: 'Check if package already exists',
159
- task: () => {
160
- if ((0, fs_1.existsSync)(packageDestPath)) {
161
- throw new Error(`Package "${packageName}" already exists at ${packageDestPath}`);
162
- }
163
- },
164
- },
165
- {
166
- title: 'Copy package template',
167
- task: () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
168
- debug(`Copying from ${PACKAGE_TEMPLATES_PATH} to ${packageDestPath}`);
169
- yield (0, fs_extra_1.copy)(PACKAGE_TEMPLATES_PATH, packageDestPath, {
170
- overwrite: false,
171
- recursive: true,
172
- });
173
- debug(`Successfully copied package template`);
174
- }),
175
- },
176
- {
177
- title: 'Add the package configs',
178
- task: () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
179
- // TODO: add the package configs
180
- }),
181
- },
182
- {
183
- title: 'Process package placeholders',
184
- task: () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
185
- yield (0, overwrite_placeholders_1.overwritePlaceholders)(packageDestPath, {
186
- companyName,
187
- experienceName,
188
- // packageName: packageName,
189
- // distributionChannel,
190
- // packageJsonName,
191
- // repositoryPrivate,
192
- // scope,human-readable
193
- });
194
- }),
195
- },
196
- ];
197
- const taskRunner = new listr2_1.Listr(tasks, (0, defaults_1.getDefaultListrOptions)());
198
- yield taskRunner.run();
199
- console.log(`Successfully added package: ${packageDestPath}`);
200
- console.log(`Package JSON name: ${packageJsonName}`);
201
- console.log(`Distribution channel: ${distributionChannel}`);
202
- if (repositoryPrivate) {
203
- console.log(`Repository private name: ${repositoryPrivate}`);
204
- }
205
- }));
206
- return command;
207
- };
208
- exports.createAddPackageCommand = createAddPackageCommand;
209
- //# sourceMappingURL=add-package-command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-package-command.js","sourceRoot":"","sources":["../../../../../../../packages/unisphere-cli/src/lib/commands/generate/add-package-command.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const createCreateUnisphereRepoCommand: (parentCommand: Command) => Command;