@unisphere/cli 1.13.1

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 (205) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +17 -0
  3. package/bundler/context/rollup.js +199 -0
  4. package/bundler/package/bundled-dependencies.js +15 -0
  5. package/bundler/package/fix-package-json-dependencies.js +104 -0
  6. package/bundler/package/rollup.js +116 -0
  7. package/package.json +49 -0
  8. package/src/index.d.ts +2 -0
  9. package/src/index.js +12 -0
  10. package/src/index.js.map +1 -0
  11. package/src/lib/commands/context/activate/check-availability.d.ts +7 -0
  12. package/src/lib/commands/context/activate/check-availability.js +29 -0
  13. package/src/lib/commands/context/activate/check-availability.js.map +1 -0
  14. package/src/lib/commands/context/activate/command.d.ts +2 -0
  15. package/src/lib/commands/context/activate/command.js +16 -0
  16. package/src/lib/commands/context/activate/command.js.map +1 -0
  17. package/src/lib/commands/context/activate/element/command.d.ts +2 -0
  18. package/src/lib/commands/context/activate/element/command.js +73 -0
  19. package/src/lib/commands/context/activate/element/command.js.map +1 -0
  20. package/src/lib/commands/context/activate/loader/command.d.ts +2 -0
  21. package/src/lib/commands/context/activate/loader/command.js +55 -0
  22. package/src/lib/commands/context/activate/loader/command.js.map +1 -0
  23. package/src/lib/commands/context/activate/runtime-file-utils.d.ts +20 -0
  24. package/src/lib/commands/context/activate/runtime-file-utils.js +39 -0
  25. package/src/lib/commands/context/activate/runtime-file-utils.js.map +1 -0
  26. package/src/lib/commands/context/activate/update-runtime-version.d.ts +23 -0
  27. package/src/lib/commands/context/activate/update-runtime-version.js +78 -0
  28. package/src/lib/commands/context/activate/update-runtime-version.js.map +1 -0
  29. package/src/lib/commands/context/activate/verify-env-readiness.d.ts +8 -0
  30. package/src/lib/commands/context/activate/verify-env-readiness.js +54 -0
  31. package/src/lib/commands/context/activate/verify-env-readiness.js.map +1 -0
  32. package/src/lib/commands/context/activate/workspace/command.d.ts +2 -0
  33. package/src/lib/commands/context/activate/workspace/command.js +60 -0
  34. package/src/lib/commands/context/activate/workspace/command.js.map +1 -0
  35. package/src/lib/commands/context/build-command.d.ts +2 -0
  36. package/src/lib/commands/context/build-command.js +74 -0
  37. package/src/lib/commands/context/build-command.js.map +1 -0
  38. package/src/lib/commands/context/context-command.d.ts +2 -0
  39. package/src/lib/commands/context/context-command.js +19 -0
  40. package/src/lib/commands/context/context-command.js.map +1 -0
  41. package/src/lib/commands/context/publish/command.d.ts +2 -0
  42. package/src/lib/commands/context/publish/command.js +82 -0
  43. package/src/lib/commands/context/publish/command.js.map +1 -0
  44. package/src/lib/commands/context/publish/execute/execute.d.ts +2 -0
  45. package/src/lib/commands/context/publish/execute/execute.js +118 -0
  46. package/src/lib/commands/context/publish/execute/execute.js.map +1 -0
  47. package/src/lib/commands/context/publish/execute/sync-element.d.ts +8 -0
  48. package/src/lib/commands/context/publish/execute/sync-element.js +58 -0
  49. package/src/lib/commands/context/publish/execute/sync-element.js.map +1 -0
  50. package/src/lib/commands/context/publish/prepare/build-nx-runtimes.d.ts +11 -0
  51. package/src/lib/commands/context/publish/prepare/build-nx-runtimes.js +112 -0
  52. package/src/lib/commands/context/publish/prepare/build-nx-runtimes.js.map +1 -0
  53. package/src/lib/commands/context/publish/prepare/prepare.d.ts +2 -0
  54. package/src/lib/commands/context/publish/prepare/prepare.js +122 -0
  55. package/src/lib/commands/context/publish/prepare/prepare.js.map +1 -0
  56. package/src/lib/commands/context/publish/types.d.ts +15 -0
  57. package/src/lib/commands/context/publish/types.js +3 -0
  58. package/src/lib/commands/context/publish/types.js.map +1 -0
  59. package/src/lib/commands/context/serve-command.d.ts +2 -0
  60. package/src/lib/commands/context/serve-command.js +76 -0
  61. package/src/lib/commands/context/serve-command.js.map +1 -0
  62. package/src/lib/commands/info/command.d.ts +2 -0
  63. package/src/lib/commands/info/command.js +51 -0
  64. package/src/lib/commands/info/command.js.map +1 -0
  65. package/src/lib/commands/init/command.d.ts +2 -0
  66. package/src/lib/commands/init/command.js +46 -0
  67. package/src/lib/commands/init/command.js.map +1 -0
  68. package/src/lib/commands/package/build-command.d.ts +2 -0
  69. package/src/lib/commands/package/build-command.js +70 -0
  70. package/src/lib/commands/package/build-command.js.map +1 -0
  71. package/src/lib/commands/package/link/command.d.ts +2 -0
  72. package/src/lib/commands/package/link/command.js +110 -0
  73. package/src/lib/commands/package/link/command.js.map +1 -0
  74. package/src/lib/commands/package/package-command.d.ts +2 -0
  75. package/src/lib/commands/package/package-command.js +15 -0
  76. package/src/lib/commands/package/package-command.js.map +1 -0
  77. package/src/lib/commands/package/publish/command.d.ts +2 -0
  78. package/src/lib/commands/package/publish/command.js +37 -0
  79. package/src/lib/commands/package/publish/command.js.map +1 -0
  80. package/src/lib/commands/package/publish/deploy-to-github.d.ts +13 -0
  81. package/src/lib/commands/package/publish/deploy-to-github.js +151 -0
  82. package/src/lib/commands/package/publish/deploy-to-github.js.map +1 -0
  83. package/src/lib/commands/package/publish/deploy-to-npm.d.ts +13 -0
  84. package/src/lib/commands/package/publish/deploy-to-npm.js +151 -0
  85. package/src/lib/commands/package/publish/deploy-to-npm.js.map +1 -0
  86. package/src/lib/commands/package/publish/publish.d.ts +2 -0
  87. package/src/lib/commands/package/publish/publish.js +133 -0
  88. package/src/lib/commands/package/publish/publish.js.map +1 -0
  89. package/src/lib/commands/package/publish/types.d.ts +7 -0
  90. package/src/lib/commands/package/publish/types.js +3 -0
  91. package/src/lib/commands/package/publish/types.js.map +1 -0
  92. package/src/lib/unisphere.d.ts +2 -0
  93. package/src/lib/unisphere.js +19 -0
  94. package/src/lib/unisphere.js.map +1 -0
  95. package/src/lib/utils/artifacts.d.ts +6 -0
  96. package/src/lib/utils/artifacts.js +44 -0
  97. package/src/lib/utils/artifacts.js.map +1 -0
  98. package/src/lib/utils/aws/copy-s3-folder.d.ts +7 -0
  99. package/src/lib/utils/aws/copy-s3-folder.js +43 -0
  100. package/src/lib/utils/aws/copy-s3-folder.js.map +1 -0
  101. package/src/lib/utils/aws/download-json-from-bucket.d.ts +8 -0
  102. package/src/lib/utils/aws/download-json-from-bucket.js +42 -0
  103. package/src/lib/utils/aws/download-json-from-bucket.js.map +1 -0
  104. package/src/lib/utils/aws/get-s3-client.d.ts +2 -0
  105. package/src/lib/utils/aws/get-s3-client.js +39 -0
  106. package/src/lib/utils/aws/get-s3-client.js.map +1 -0
  107. package/src/lib/utils/aws/is-s3-file-exists.d.ts +6 -0
  108. package/src/lib/utils/aws/is-s3-file-exists.js +36 -0
  109. package/src/lib/utils/aws/is-s3-file-exists.js.map +1 -0
  110. package/src/lib/utils/aws/is-s3-folder-exists.d.ts +8 -0
  111. package/src/lib/utils/aws/is-s3-folder-exists.js +33 -0
  112. package/src/lib/utils/aws/is-s3-folder-exists.js.map +1 -0
  113. package/src/lib/utils/aws/list-s3-folders.d.ts +8 -0
  114. package/src/lib/utils/aws/list-s3-folders.js +32 -0
  115. package/src/lib/utils/aws/list-s3-folders.js.map +1 -0
  116. package/src/lib/utils/aws/mime-type-mapping.d.ts +2 -0
  117. package/src/lib/utils/aws/mime-type-mapping.js +8624 -0
  118. package/src/lib/utils/aws/mime-type-mapping.js.map +1 -0
  119. package/src/lib/utils/aws/upload-json-to-bucket.d.ts +9 -0
  120. package/src/lib/utils/aws/upload-json-to-bucket.js +31 -0
  121. package/src/lib/utils/aws/upload-json-to-bucket.js.map +1 -0
  122. package/src/lib/utils/aws/upload-to-aws-bucket.d.ts +9 -0
  123. package/src/lib/utils/aws/upload-to-aws-bucket.js +60 -0
  124. package/src/lib/utils/aws/upload-to-aws-bucket.js.map +1 -0
  125. package/src/lib/utils/github/tags.d.ts +10 -0
  126. package/src/lib/utils/github/tags.js +71 -0
  127. package/src/lib/utils/github/tags.js.map +1 -0
  128. package/src/lib/utils/listr2/create-exec-task.d.ts +8 -0
  129. package/src/lib/utils/listr2/create-exec-task.js +38 -0
  130. package/src/lib/utils/listr2/create-exec-task.js.map +1 -0
  131. package/src/lib/utils/listr2/defaults.d.ts +4 -0
  132. package/src/lib/utils/listr2/defaults.js +25 -0
  133. package/src/lib/utils/listr2/defaults.js.map +1 -0
  134. package/src/lib/utils/prompts/prompts.d.ts +24 -0
  135. package/src/lib/utils/prompts/prompts.js +184 -0
  136. package/src/lib/utils/prompts/prompts.js.map +1 -0
  137. package/src/lib/utils/prompts/vendor/prompts/elements/confirm.d.ts +19 -0
  138. package/src/lib/utils/prompts/vendor/prompts/elements/confirm.js +75 -0
  139. package/src/lib/utils/prompts/vendor/prompts/elements/confirm.js.map +1 -0
  140. package/src/lib/utils/prompts/vendor/prompts/elements/index.d.ts +4 -0
  141. package/src/lib/utils/prompts/vendor/prompts/elements/index.js +12 -0
  142. package/src/lib/utils/prompts/vendor/prompts/elements/index.js.map +1 -0
  143. package/src/lib/utils/prompts/vendor/prompts/elements/prompt.d.ts +12 -0
  144. package/src/lib/utils/prompts/vendor/prompts/elements/prompt.js +55 -0
  145. package/src/lib/utils/prompts/vendor/prompts/elements/prompt.js.map +1 -0
  146. package/src/lib/utils/prompts/vendor/prompts/elements/select.d.ts +30 -0
  147. package/src/lib/utils/prompts/vendor/prompts/elements/select.js +106 -0
  148. package/src/lib/utils/prompts/vendor/prompts/elements/select.js.map +1 -0
  149. package/src/lib/utils/prompts/vendor/prompts/elements/text.d.ts +35 -0
  150. package/src/lib/utils/prompts/vendor/prompts/elements/text.js +130 -0
  151. package/src/lib/utils/prompts/vendor/prompts/elements/text.js.map +1 -0
  152. package/src/lib/utils/prompts/vendor/prompts/index.d.ts +9 -0
  153. package/src/lib/utils/prompts/vendor/prompts/index.js +66 -0
  154. package/src/lib/utils/prompts/vendor/prompts/index.js.map +1 -0
  155. package/src/lib/utils/prompts/vendor/prompts/prompts.d.ts +27 -0
  156. package/src/lib/utils/prompts/vendor/prompts/prompts.js +52 -0
  157. package/src/lib/utils/prompts/vendor/prompts/prompts.js.map +1 -0
  158. package/src/lib/utils/prompts/vendor/prompts/util/action.d.ts +1 -0
  159. package/src/lib/utils/prompts/vendor/prompts/util/action.js +39 -0
  160. package/src/lib/utils/prompts/vendor/prompts/util/action.js.map +1 -0
  161. package/src/lib/utils/prompts/vendor/prompts/util/clear.d.ts +1 -0
  162. package/src/lib/utils/prompts/vendor/prompts/util/clear.js +17 -0
  163. package/src/lib/utils/prompts/vendor/prompts/util/clear.js.map +1 -0
  164. package/src/lib/utils/prompts/vendor/prompts/util/figures.d.ts +9 -0
  165. package/src/lib/utils/prompts/vendor/prompts/util/figures.js +21 -0
  166. package/src/lib/utils/prompts/vendor/prompts/util/figures.js.map +1 -0
  167. package/src/lib/utils/prompts/vendor/prompts/util/index.d.ts +6 -0
  168. package/src/lib/utils/prompts/vendor/prompts/util/index.js +14 -0
  169. package/src/lib/utils/prompts/vendor/prompts/util/index.js.map +1 -0
  170. package/src/lib/utils/prompts/vendor/prompts/util/strip.d.ts +1 -0
  171. package/src/lib/utils/prompts/vendor/prompts/util/strip.js +12 -0
  172. package/src/lib/utils/prompts/vendor/prompts/util/strip.js.map +1 -0
  173. package/src/lib/utils/prompts/vendor/prompts/util/style.d.ts +27 -0
  174. package/src/lib/utils/prompts/vendor/prompts/util/style.js +30 -0
  175. package/src/lib/utils/prompts/vendor/prompts/util/style.js.map +1 -0
  176. package/src/lib/utils/read-json-file.d.ts +6 -0
  177. package/src/lib/utils/read-json-file.js +19 -0
  178. package/src/lib/utils/read-json-file.js.map +1 -0
  179. package/src/lib/utils/unisphere/augment-workspace-config.d.ts +2 -0
  180. package/src/lib/utils/unisphere/augment-workspace-config.js +212 -0
  181. package/src/lib/utils/unisphere/augment-workspace-config.js.map +1 -0
  182. package/src/lib/utils/unisphere/build-unisphere-elements.d.ts +16 -0
  183. package/src/lib/utils/unisphere/build-unisphere-elements.js +67 -0
  184. package/src/lib/utils/unisphere/build-unisphere-elements.js.map +1 -0
  185. package/src/lib/utils/unisphere/find-unisphere-workspace-file.d.ts +2 -0
  186. package/src/lib/utils/unisphere/find-unisphere-workspace-file.js +35 -0
  187. package/src/lib/utils/unisphere/find-unisphere-workspace-file.js.map +1 -0
  188. package/src/lib/utils/unisphere/get-global-file.d.ts +2 -0
  189. package/src/lib/utils/unisphere/get-global-file.js +27 -0
  190. package/src/lib/utils/unisphere/get-global-file.js.map +1 -0
  191. package/src/lib/utils/unisphere/types.d.ts +88 -0
  192. package/src/lib/utils/unisphere/types.js +97 -0
  193. package/src/lib/utils/unisphere/types.js.map +1 -0
  194. package/src/lib/utils/unisphere/workspace.d.ts +5 -0
  195. package/src/lib/utils/unisphere/workspace.js +50 -0
  196. package/src/lib/utils/unisphere/workspace.js.map +1 -0
  197. package/src/lib/utils/unisphere-utils.d.ts +7 -0
  198. package/src/lib/utils/unisphere-utils.js +33 -0
  199. package/src/lib/utils/unisphere-utils.js.map +1 -0
  200. package/src/lib/utils/utils.d.ts +9 -0
  201. package/src/lib/utils/utils.js +33 -0
  202. package/src/lib/utils/utils.js.map +1 -0
  203. package/src/lib/utils/validator.d.ts +33 -0
  204. package/src/lib/utils/validator.js +109 -0
  205. package/src/lib/utils/validator.js.map +1 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,13 @@
1
+ ## [1.0.1](https://github.com/kaltura/unisphere-cli/compare/unisphere-cli-v1.0.0...unisphere-cli-v1.0.1) (2024-10-05)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * force version ([6fe54bd](https://github.com/kaltura/unisphere-cli/commit/6fe54bd380a1b1f24c865a8142dbcb969a6e844d))
7
+
8
+ # 1.0.0 (2024-10-05)
9
+
10
+
11
+ ### Features
12
+
13
+ * automatic deployment of module ([#1](https://github.com/kaltura/unisphere-cli/issues/1)) ([495f745](https://github.com/kaltura/unisphere-cli/commit/495f745c6d37aa71cfd84424d10d3894acfcba9c))
package/README.md ADDED
@@ -0,0 +1,17 @@
1
+ # Kaltura UNISPHERE CLI
2
+
3
+ This library was created to support the development and deployment process of the UNISPHERE applications suites.
4
+
5
+ # Highlights
6
+
7
+ - Manage a repository with multiple Unisphere elements types.
8
+ - Fully automated development and deployment scripts for any Unispere element.
9
+ - Multiple deployment targets: NPM, GitHub, and multi-region Unisphere servers
10
+
11
+ # Setup A Unisphere project
12
+
13
+ to be updated
14
+
15
+ # CLI Commands
16
+
17
+ Please run `npx unisphere-cli --help` for further instructions.
@@ -0,0 +1,199 @@
1
+ const analyze = require('rollup-plugin-analyzer')
2
+ const replace = require('@rollup/plugin-replace')
3
+ const alias = require("@rollup/plugin-alias");
4
+ const fs = require('fs');
5
+ const path = require('path');
6
+ const terser = require("@rollup/plugin-terser");
7
+ const glob = require('glob')
8
+ const shim = require('rollup-plugin-shim');
9
+ const { withNx } = require('@nx/rollup/with-nx');
10
+ const url = require('@rollup/plugin-url');
11
+ const svg = require('@svgr/rollup');
12
+ const { findUnisphereWorkspaceFile } = require('../../src/lib/utils/unisphere/find-unisphere-workspace-file');
13
+ const isDeployingContext = process.env.UNISPHERE_MODE === 'context';
14
+
15
+ const isProduction = process.env.NODE_ENV === 'production';
16
+
17
+ const isRunningFromUnisphereEnvironment = process.env.UNISPHERE === 'true';
18
+
19
+ if (!isRunningFromUnisphereEnvironment) {
20
+ throw new Error('Bundling library must be run using the unisphere-cli');
21
+ }
22
+
23
+ function getSubfoldersWithPackageNames(cwd) {
24
+
25
+ const folderPattern = path.resolve(cwd, 'dist/unisphere/packages/*');
26
+
27
+ console.log('[unisphere] looking for packages in', folderPattern);
28
+ const folderPaths = glob.sync(folderPattern);
29
+ const result = [];
30
+
31
+ // Iterate through each subfolder
32
+ folderPaths.forEach(folderPath => {
33
+ const packageJsonPath = path.join(folderPath, 'package.json');
34
+ if (fs.existsSync(packageJsonPath)) {
35
+ // Read and parse the package.json file
36
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
37
+ const packageName = packageJson.name;
38
+
39
+ if (packageName) {
40
+ result.push({folderName: path.join(folderPath), packageName});
41
+ }
42
+ }
43
+ });
44
+
45
+ return result;
46
+ }
47
+
48
+
49
+ let withUnisphere = null;
50
+ let withUnisphereInterceptors = null;
51
+
52
+ if (!isDeployingContext) {
53
+ withUnisphere = (config) => config;
54
+ withUnisphereInterceptors = (config) => config;
55
+ }else {
56
+
57
+ withUnisphere = (unisphereConfig, rollupConfig) => {
58
+
59
+ const subfoldersWithPackageNames = getSubfoldersWithPackageNames(unisphereConfig.repositoryRootPath);
60
+
61
+
62
+ console.log('[unisphere] removing unisphere config used to monkey patch @nw/rollup');
63
+ delete rollupConfig.unisphere;
64
+
65
+ rollupConfig.onwarn = (warning, warn) => {
66
+ if (warning.code === 'THIS_IS_UNDEFINED') return;
67
+ if (warning.code === 'MODULE_LEVEL_DIRECTIVE') return;
68
+ warn(warning); // this requires Rollup 0.46
69
+ };
70
+
71
+ rollupConfig.external = [];
72
+
73
+ if (isProduction) {
74
+ rollupConfig.output[0].entryFileNames = 'index.esm.js'
75
+ } else {
76
+ rollupConfig.output[0].entryFileNames = 'index.dev.esm.js'
77
+ }
78
+
79
+ rollupConfig.plugins.push(
80
+ alias({
81
+ entries: subfoldersWithPackageNames.map(item => {
82
+ return {find: item.packageName, replacement: item.folderName}
83
+ })
84
+ }),
85
+ analyze({
86
+ summaryOnly: true, // Adjusts the output to show summary information
87
+ limit: 20 // Limits the output to the top 10 items
88
+ }), replace({
89
+ 'process.env.UNISPHERE_DEV': JSON.stringify(`${process.env.UNISPHERE_DEV}`),
90
+ 'process.env.NODE_ENV': JSON.stringify('production'),
91
+ preventAssignment: true,
92
+ }),
93
+ shim({
94
+ '@statelyai/inspect': `export const createBrowserInspector = () => { return undefined };`
95
+ }),
96
+ isProduction ? terser() : undefined
97
+ );
98
+
99
+
100
+ return rollupConfig;
101
+ };
102
+
103
+ withUnisphereInterceptors = (config) => {
104
+ console.log('patching rollup context config');
105
+
106
+ config.unisphere = {
107
+ interceptors: {
108
+ compilerOptions : (options) => {
109
+ // Monkey patch TS paths for shared libraries to be consumed by contexts from dist like other dependencies
110
+ // const sharedPackagesPath = path.resolve(__dirname, '../../../unisphere/shared-packages');
111
+ // const sharedPackages = fs.readdirSync(sharedPackagesPath)
112
+ // .filter(folder => fs.statSync(path.join(sharedPackagesPath, folder)).isDirectory())
113
+ // .reduce((acc, folder) => {
114
+ // const packageJsonPath = path.join(sharedPackagesPath, folder, 'package.json');
115
+ // if (fs.existsSync(packageJsonPath)) {
116
+ // const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
117
+ // acc[packageJson.name] = [`dist/unisphere/shared-packages/${folder}`];
118
+ // }
119
+ // return acc;
120
+ // }, {});
121
+
122
+ const sharedPackages = {};
123
+
124
+ console.log(`mapping shared packages to dist folders:`, sharedPackages)
125
+ const result = {
126
+ ...options,
127
+ paths: {
128
+ ...options.paths,
129
+ ...sharedPackages
130
+ }
131
+ };
132
+
133
+ return result;
134
+ }
135
+ }
136
+ }
137
+ return config
138
+ }
139
+ }
140
+
141
+ module.exports = (unisphereConfig) => {
142
+
143
+ console.log('[unisphere] unisphereConfig', unisphereConfig);
144
+
145
+ const repositoryRootPath = findUnisphereWorkspaceFile(unisphereConfig.cwd);
146
+
147
+ if (!repositoryRootPath) {
148
+ throw new Error('the library must be run from the root of the unisphere workspace');
149
+ }
150
+
151
+
152
+ console.log('[unisphere] repositoryRootPath', repositoryRootPath);
153
+
154
+ const projectJsonPath = path.join(unisphereConfig.cwd, 'project.json');
155
+
156
+ const projectJson = JSON.parse(fs.readFileSync(projectJsonPath, 'utf8'));
157
+ const sourcePath = projectJson.sourceRoot.replace(/\/src$/, '').split('/');
158
+
159
+
160
+ const expectedType = (unisphereConfig.allowedType || 'contexts');
161
+ const pathCheck = unisphereConfig.bypassPathHierarchyCheck ? true : (sourcePath.length === 3);
162
+ if (!pathCheck || sourcePath[0] !== 'unisphere' || sourcePath[1] !== expectedType) {
163
+ throw new Error(`sourcePath must follow pattern unisphere/${expectedType}/<context-name>, got ${sourcePath.join('/')}`)
164
+ }
165
+ const relativeSourcePath = path.relative(unisphereConfig.cwd, repositoryRootPath);
166
+
167
+ const outputPath = `${relativeSourcePath}/dist/${sourcePath.join('/')}`;
168
+
169
+ return withUnisphere(
170
+ {
171
+ ...unisphereConfig,
172
+ repositoryRootPath
173
+ },
174
+ withNx(
175
+ {
176
+ main: './src/index.ts',
177
+ outputPath,
178
+ tsConfig: './tsconfig.lib.json',
179
+ compiler: 'babel',
180
+ external: ['react', 'react-dom', 'react/jsx-runtime'],
181
+ format: ['esm'],
182
+ assets: [{ input: '.', output: '.', glob: 'README.md' }],
183
+ },
184
+ withUnisphereInterceptors({
185
+ // Provide additional rollup configuration here. See: https://rollupjs.org/configuration-options
186
+ plugins: [
187
+ svg({
188
+ svgo: false,
189
+ titleProp: true,
190
+ ref: true,
191
+ }),
192
+ url({
193
+ limit: 10000, // 10kB
194
+ }),
195
+ ],
196
+ })
197
+ )
198
+ );
199
+ }
@@ -0,0 +1,15 @@
1
+
2
+ // "kaltura-typescript-client"
3
+
4
+ module.exports = [
5
+ 'i18next',
6
+ 'react-i18next',
7
+ 'clsx',
8
+ '@xstate/inspect',
9
+ "@xstate/immer",
10
+ "@xstate/react",
11
+ "xstate",
12
+ "dayjs",
13
+ "html-react-parser",
14
+ "kaltura-typescript-client"
15
+ ]
@@ -0,0 +1,104 @@
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+ const peerDepsToRemove = require('./bundled-dependencies');
4
+ const targetPath = process.argv[2];
5
+
6
+ async function findWorkspaceLibraries(dir) {
7
+ let packageFiles = [];
8
+
9
+ const entries = await fs.promises.readdir(dir, { withFileTypes: true });
10
+ for (const entry of entries) {
11
+ if (entry.isDirectory()) {
12
+ const potentialPackageJsonPath = path.join(dir, entry.name, 'package.json');
13
+ try {
14
+ const content = await fs.promises.readFile(potentialPackageJsonPath, 'utf8');
15
+ const { name, version } = JSON.parse(content);
16
+ packageFiles.push({ name, version, path: potentialPackageJsonPath });
17
+ } catch (error) {
18
+ // If there's no package.json in this directory, we ignore the error
19
+ }
20
+ }
21
+ }
22
+
23
+ return packageFiles;
24
+ }
25
+
26
+
27
+ (async function () {
28
+
29
+ if (!targetPath) {
30
+ throw new Error('Please provide a path as an argument.');
31
+ }
32
+
33
+ console.log(`bundle library '${targetPath}'`)
34
+
35
+ const workspacePackages = await findWorkspaceLibraries(path.resolve(targetPath, '../'))
36
+
37
+
38
+ const packageJsonPath = path.join(targetPath, 'package.json');
39
+
40
+ console.log(`modifying dependencies for '${packageJsonPath}'`)
41
+ // Check if package.json exists
42
+ if (!fs.existsSync(packageJsonPath)) {
43
+ throw new Error('package.json not found in the current directory');
44
+ }
45
+
46
+ // Load package.json
47
+ let packageJson;
48
+ try {
49
+ packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
50
+ } catch (error) {
51
+ throw new Error('Error reading package.json:', error.message);
52
+ }
53
+
54
+ console.log(`remove excluded entrypoints and fix types`)
55
+ packageJson.types = "./src/index.d.ts";
56
+ delete packageJson.main;
57
+ delete packageJson.exports;
58
+
59
+ if (packageJson.dependencies || packageJson.peerDependencies) {
60
+ packageJson.peerDependencies = {
61
+ ...packageJson.peerDependencies,
62
+ ...packageJson.dependencies
63
+ };
64
+ if (packageJson.dependencies) {
65
+ packageJson.dependencies = undefined;
66
+ }
67
+ peerDepsToRemove.forEach(dep => {
68
+ delete packageJson.peerDependencies[dep];
69
+ });
70
+
71
+ if (packageJson.peerDependencies['react']) {
72
+ packageJson.peerDependencies['react'] = "^17.0.0 || ^18.0.0";
73
+ }
74
+
75
+
76
+
77
+ workspacePackages.forEach(package => {
78
+ if (packageJson.peerDependencies[package.name]) {
79
+ packageJson.peerDependencies[package.name] = package.version;
80
+ }
81
+ })
82
+
83
+ Object.entries(packageJson.peerDependencies).forEach(([key, value]) =>
84
+ {
85
+ if (!value.startsWith('^')) {
86
+ packageJson.peerDependencies[key] = `^${value}`
87
+ }
88
+ })
89
+
90
+ if (packageJson.peerDependencies['@mui/material']) {
91
+ packageJson.peerDependencies['@mui/material'] = "5.1.1";
92
+ console.warn ("overriding @mui/material to 5.1.1 due to KMS restrictions, should be removed");
93
+ }
94
+ }
95
+
96
+ // Save modified package.json
97
+ try {
98
+ fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2), 'utf8');
99
+ console.log('[unisphere] package.json has been updated.');
100
+ } catch (error) {
101
+ throw new Error('Error writing package.json:', error.message);
102
+ }
103
+
104
+ })()
@@ -0,0 +1,116 @@
1
+ const bundledPackages = require('./bundled-dependencies');
2
+ const analyze = require('rollup-plugin-analyzer')
3
+ const replace = require('@rollup/plugin-replace')
4
+ const { withNx } = require('@nx/rollup/with-nx');
5
+ const url = require('@rollup/plugin-url');
6
+ const svg = require('@svgr/rollup');
7
+ const fs = require('fs');
8
+ const path = require('path');
9
+
10
+
11
+ const isRunningFromUnisphereEnvironment = process.env.UNISPHERE === 'true';
12
+
13
+ if (!isRunningFromUnisphereEnvironment) {
14
+ throw new Error('Bundling library must be run using the unisphere-cli');
15
+ }
16
+
17
+ const isDeployingContext = process.env.UNISPHERE_MODE === 'context';
18
+ console.log(`Building the package in '${isDeployingContext ? 'context' : 'package'}' mode`);
19
+
20
+ const withUnisphere = (config) => {
21
+ console.log('[unisphere] removing unisphere config used to monkey patch @nw/rollup');
22
+ delete config.unisphere;
23
+
24
+ const onwarn = config.onwarn;
25
+
26
+ const esmOutput = config.output;
27
+
28
+ config.onwarn = function(warning) {
29
+ if ( warning.code === 'THIS_IS_UNDEFINED' ) { return; }
30
+ return onwarn?.(warning)
31
+ }
32
+
33
+ const externalFn = config.external;
34
+ if (isDeployingContext) {
35
+ config.external = (id, parent) => {
36
+ if (id.includes(`node_modules`)) {
37
+ return true;
38
+ }
39
+ return false;
40
+ };
41
+ } else {
42
+ config.external = (id, parent) => {
43
+ if (
44
+ bundledPackages.find(
45
+ (bundledPackage) =>
46
+ id === bundledPackage ||
47
+ id.startsWith(`${bundledPackage}/`) ||
48
+ id.includes(`node_modules/${bundledPackage}`)
49
+ )
50
+ ) {
51
+ return false;
52
+ }
53
+
54
+ return externalFn(id);
55
+ };
56
+ }
57
+
58
+ config.plugins.push(analyze({ summaryOnly: true, // Adjusts the output to show summary information
59
+ limit: 20 // Limits the output to the top 10 items
60
+ }), replace({
61
+ "process.env['NODE_ENV']": JSON.stringify('production'),
62
+ preventAssignment: true,
63
+ }),);
64
+ return config;
65
+ };
66
+
67
+ const withUnisphereInterceptors = (config) => {
68
+ console.log('patching rollup package config');
69
+ config.unisphere = {
70
+ interceptors: {
71
+ compilerOptions : (options) => {
72
+ return options;
73
+ }
74
+ }
75
+ }
76
+ return config
77
+ }
78
+
79
+
80
+ module.exports = (unisphereConfig) => {
81
+
82
+ const projectJsonPath = path.join(unisphereConfig.cwd, 'project.json');
83
+ const projectJson = JSON.parse(fs.readFileSync(projectJsonPath, 'utf8'));
84
+ const sourcePath = projectJson.sourceRoot.replace(/\/src$/, '').split('/');
85
+ if (sourcePath.length !== 3 || sourcePath[0] !== 'unisphere' || sourcePath[1] !== 'packages') {
86
+ throw new Error('sourcePath follow pattern unisphere/packages/<package-name>')
87
+ }
88
+ const outputPath = `../../../dist/${sourcePath.join('/')}`;
89
+
90
+
91
+ return withUnisphere(withNx(
92
+ {
93
+ main: './src/index.ts',
94
+ outputPath,
95
+ tsConfig: './tsconfig.lib.json',
96
+ compiler: 'babel',
97
+ external: ['react', 'react-dom', 'react/jsx-runtime'],
98
+ format: ['esm'],
99
+ assets: [{ input: '.', output: '.', glob: 'README.md' }],
100
+ },
101
+ withUnisphereInterceptors({
102
+ // Provide additional rollup configuration here. See: https://rollupjs.org/configuration-options
103
+ plugins: [
104
+ svg({
105
+ svgo: false,
106
+ titleProp: true,
107
+ ref: true,
108
+ }),
109
+ url({
110
+ limit: 10000, // 10kB
111
+ }),
112
+ ],
113
+ })
114
+ )
115
+ )
116
+ }
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@unisphere/cli",
3
+ "version": "1.13.1",
4
+ "bin": {
5
+ "unisphere": "./src/index.js"
6
+ },
7
+ "private": false,
8
+ "publishConfig": {
9
+ "access": "public"
10
+ },
11
+ "author": {
12
+ "name": "Kaltura",
13
+ "contributors": [
14
+ {
15
+ "name": "Eran Sakal",
16
+ "email": "eran.sakal@kaltura.com"
17
+ }
18
+ ]
19
+ },
20
+ "engines": {
21
+ "node": ">=20"
22
+ },
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "https://github.com/kaltura/unisphere-cli"
26
+ },
27
+ "main": "./src/index.js",
28
+ "types": "./src/index.d.ts",
29
+ "dependencies": {
30
+ "rollup-plugin-analyzer": "4.0.0",
31
+ "glob": "8.0.3",
32
+ "rollup-plugin-shim": "1.0.0",
33
+ "commander": "9.4.1",
34
+ "debug": "4.3.4",
35
+ "listr2": "8.2.5",
36
+ "fs-extra": "10.1.0",
37
+ "execa": "5.1.1",
38
+ "@octokit/rest": "19.0.5",
39
+ "colorette": "2.0.20",
40
+ "cli-table3": "0.6.5",
41
+ "@aws-sdk/client-s3": "3.216.0",
42
+ "@aws-sdk/client-sts": "3.216.0",
43
+ "sisteransi": "1.0.5",
44
+ "readline": "1.3.0",
45
+ "events": "3.3.0",
46
+ "tslib": "2.4.1"
47
+ },
48
+ "peerDependencies": {}
49
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ #! /usr/bin/env node
2
+ export {};
package/src/index.js ADDED
@@ -0,0 +1,12 @@
1
+ #! /usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const tslib_1 = require("tslib");
5
+ const unisphere = require("./lib/unisphere");
6
+ // 1
7
+ (function () {
8
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
9
+ yield unisphere();
10
+ });
11
+ }());
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/unisphere-cli/src/index.ts"],"names":[],"mappings":";;;;AAEA,6CAA6C;AAC7C,IAAI;AACJ,CAAE;;QACA,MAAM,SAAS,EAAE,CAAC;IACpB,CAAC;CAAA,EAAE,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { ContextElement, LoaderElement, WorkspaceElement } from './update-runtime-version';
2
+ export declare const checkAvailability: (options: {
3
+ env: string;
4
+ awsRegion: string;
5
+ awsArn: string;
6
+ element: WorkspaceElement | ContextElement | LoaderElement;
7
+ }) => Promise<void>;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkAvailability = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const unisphere_utils_1 = require("../../../utils/unisphere-utils");
6
+ const is_s3_folder_exists_1 = require("../../../utils/aws/is-s3-folder-exists");
7
+ const checkAvailability = (options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
8
+ const bucket = (0, unisphere_utils_1.getBucketName)(options.env);
9
+ const bucketPrefix = options.element.type === 'workspace'
10
+ ? (0, unisphere_utils_1.getWorkspaceBucketPrefix)(options.element.version)
11
+ : options.element.type === 'loader'
12
+ ? (0, unisphere_utils_1.getLoaderBucketPrefix)(options.element.version)
13
+ : (0, unisphere_utils_1.getElementContextBucketPrefix)(options.element.name, options.element.context, options.element.version);
14
+ const isElementDeployed = yield (0, is_s3_folder_exists_1.isS3FolderExists)({
15
+ bucket,
16
+ prefix: bucketPrefix,
17
+ awsRegion: options.awsRegion,
18
+ awsArn: options.awsArn,
19
+ });
20
+ if (!isElementDeployed) {
21
+ if (options.element.type === 'workspace' ||
22
+ options.element.type === 'loader') {
23
+ throw new Error(`Element ${options.element.type} with version ${options.element.version} is not deployed, aborting request`);
24
+ }
25
+ throw new Error(`Element type '${options.element.type}' with name '${options.element.name}' version '${options.element.version}' is not deployed, aborting request`);
26
+ }
27
+ });
28
+ exports.checkAvailability = checkAvailability;
29
+ //# sourceMappingURL=check-availability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-availability.js","sourceRoot":"","sources":["../../../../../../../../packages/unisphere-cli/src/lib/commands/context/activate/check-availability.ts"],"names":[],"mappings":";;;;AAAA,oEAKwC;AACxC,gFAA0E;AAOnE,MAAM,iBAAiB,GAAG,CAAO,OAKvC,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,IAAA,+BAAa,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAE1C,MAAM,YAAY,GAChB,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW;QAClC,CAAC,CAAC,IAAA,0CAAwB,EAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;QACnD,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ;YACnC,CAAC,CAAC,IAAA,uCAAqB,EAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;YAChD,CAAC,CAAC,IAAA,+CAA6B,EAC3B,OAAO,CAAC,OAAO,CAAC,IAAI,EACpB,OAAO,CAAC,OAAO,CAAC,OAAO,EACvB,OAAO,CAAC,OAAO,CAAC,OAAO,CACxB,CAAC;IAER,MAAM,iBAAiB,GAAG,MAAM,IAAA,sCAAgB,EAAC;QAC/C,MAAM;QACN,MAAM,EAAE,YAAY;QACpB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,IAAI,CAAC,iBAAiB,EAAE;QACtB,IACE,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW;YACpC,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EACjC;YACA,MAAM,IAAI,KAAK,CACb,WAAW,OAAO,CAAC,OAAO,CAAC,IAAI,iBAAiB,OAAO,CAAC,OAAO,CAAC,OAAO,oCAAoC,CAC5G,CAAC;SACH;QACD,MAAM,IAAI,KAAK,CACb,iBAAiB,OAAO,CAAC,OAAO,CAAC,IAAI,gBAAgB,OAAO,CAAC,OAAO,CAAC,IAAI,cAAc,OAAO,CAAC,OAAO,CAAC,OAAO,qCAAqC,CACpJ,CAAC;KACH;AACH,CAAC,CAAA,CAAC;AAvCW,QAAA,iBAAiB,qBAuC5B"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare const createActivateCommand: (parentCommand: Command) => Command;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createActivateCommand = void 0;
4
+ const command_1 = require("./element/command");
5
+ const command_2 = require("./loader/command");
6
+ const command_3 = require("./workspace/command");
7
+ const createActivateCommand = (parentCommand) => {
8
+ const activateCommand = parentCommand.command('activate');
9
+ activateCommand.description('activate a specific context version in Unisphere servers (assuming the context is already published)');
10
+ (0, command_2.createLoaderCommand)(activateCommand);
11
+ (0, command_1.createElementCommand)(activateCommand);
12
+ (0, command_3.createWorkspaceCommand)(activateCommand);
13
+ return activateCommand;
14
+ };
15
+ exports.createActivateCommand = createActivateCommand;
16
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../../../../../packages/unisphere-cli/src/lib/commands/context/activate/command.ts"],"names":[],"mappings":";;;AACA,+CAAyD;AACzD,8CAAuD;AACvD,iDAA6D;AAEtD,MAAM,qBAAqB,GAAG,CAAC,aAAsB,EAAW,EAAE;IACvE,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE1D,eAAe,CAAC,WAAW,CACzB,sGAAsG,CACvG,CAAC;IACF,IAAA,6BAAmB,EAAC,eAAe,CAAC,CAAC;IACrC,IAAA,8BAAoB,EAAC,eAAe,CAAC,CAAC;IACtC,IAAA,gCAAsB,EAAC,eAAe,CAAC,CAAC;IAExC,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AAXW,QAAA,qBAAqB,yBAWhC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare const createElementCommand: (parentCommand: Command) => Command;