@_linked/cli 1.2.11

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 (181) hide show
  1. package/.prettierignore +4 -0
  2. package/.prettierrc.json +24 -0
  3. package/CHANGELOG.md +34 -0
  4. package/LICENSE +373 -0
  5. package/README.md +24 -0
  6. package/babel.config.js +11 -0
  7. package/defaults/app-static/.env-cmdrc.json +17 -0
  8. package/defaults/app-static/capacitor.config.ts +40 -0
  9. package/defaults/app-static/package.json +8 -0
  10. package/defaults/app-static/web/apple-touch-icon-144x144.png +0 -0
  11. package/defaults/app-static/web/apple-touch-icon-57x57.png +0 -0
  12. package/defaults/app-static/web/apple-touch-icon-72x72.png +0 -0
  13. package/defaults/app-static/web/index.html +21 -0
  14. package/defaults/app-with-backend/.env-cmdrc.json +17 -0
  15. package/defaults/app-with-backend/.eslintignore +5 -0
  16. package/defaults/app-with-backend/.eslintrc.json +40 -0
  17. package/defaults/app-with-backend/.husky/post-merge +4 -0
  18. package/defaults/app-with-backend/.husky/pre-commit +4 -0
  19. package/defaults/app-with-backend/.prettierignore +4 -0
  20. package/defaults/app-with-backend/.prettierrc.json +27 -0
  21. package/defaults/app-with-backend/.vscode/launch.json +12 -0
  22. package/defaults/app-with-backend/.yarn/plugins/@yarnpkg/plugin-version.cjs +550 -0
  23. package/defaults/app-with-backend/.yarn/releases/yarn-3.6.1.cjs +874 -0
  24. package/defaults/app-with-backend/gitignore.template +24 -0
  25. package/defaults/app-with-backend/lincd.config.js +5 -0
  26. package/defaults/app-with-backend/mrgit-template.json +3 -0
  27. package/defaults/app-with-backend/package.json +86 -0
  28. package/defaults/app-with-backend/pm2-staging.config.js +12 -0
  29. package/defaults/app-with-backend/pm2.config.js +12 -0
  30. package/defaults/app-with-backend/public/favicon-144x144.png +0 -0
  31. package/defaults/app-with-backend/public/favicon-57x57.png +0 -0
  32. package/defaults/app-with-backend/public/favicon-72x72.png +0 -0
  33. package/defaults/app-with-backend/public/favicon.ico +0 -0
  34. package/defaults/app-with-backend/readme.md +19 -0
  35. package/defaults/app-with-backend/scripts/storage-config.js +12 -0
  36. package/defaults/app-with-backend/yarnrc.yml.template +8 -0
  37. package/defaults/component.scss +3 -0
  38. package/defaults/component.tsx +10 -0
  39. package/defaults/package/package.json +66 -0
  40. package/defaults/package/tsconfig-cjs.json +8 -0
  41. package/defaults/package/tsconfig-esm.json +9 -0
  42. package/defaults/set-component.tsx +13 -0
  43. package/defaults/shape.ts +8 -0
  44. package/lib/cjs/cli-deprecated.d.ts.map +1 -0
  45. package/lib/cjs/cli-deprecated.js +30 -0
  46. package/lib/cjs/cli-deprecated.js.map +1 -0
  47. package/lib/cjs/cli-methods.d.ts.map +1 -0
  48. package/lib/cjs/cli-methods.js +2555 -0
  49. package/lib/cjs/cli-methods.js.map +1 -0
  50. package/lib/cjs/cli.d.ts.map +1 -0
  51. package/lib/cjs/cli.js +289 -0
  52. package/lib/cjs/cli.js.map +1 -0
  53. package/lib/cjs/commands/build-package.d.ts.map +1 -0
  54. package/lib/cjs/commands/build-package.js +56 -0
  55. package/lib/cjs/commands/build-package.js.map +1 -0
  56. package/lib/cjs/commands/safe-yarn.d.ts.map +1 -0
  57. package/lib/cjs/commands/safe-yarn.js +67 -0
  58. package/lib/cjs/commands/safe-yarn.js.map +1 -0
  59. package/lib/cjs/config-webpack-app.d.ts.map +1 -0
  60. package/lib/cjs/config-webpack-app.js +397 -0
  61. package/lib/cjs/config-webpack-app.js.map +1 -0
  62. package/lib/cjs/config-webpack.d.ts.map +1 -0
  63. package/lib/cjs/config-webpack.js +408 -0
  64. package/lib/cjs/config-webpack.js.map +1 -0
  65. package/lib/cjs/defineConfig.d.ts.map +1 -0
  66. package/lib/cjs/defineConfig.js +13 -0
  67. package/lib/cjs/defineConfig.js.map +1 -0
  68. package/lib/cjs/index.d.ts.map +1 -0
  69. package/lib/cjs/index.js +39 -0
  70. package/lib/cjs/index.js.map +1 -0
  71. package/lib/cjs/interfaces.d.ts.map +1 -0
  72. package/lib/cjs/interfaces.js +3 -0
  73. package/lib/cjs/interfaces.js.map +1 -0
  74. package/lib/cjs/loaders/css-loader.d.mts +2 -0
  75. package/lib/cjs/loaders/css-loader.d.mts.map +1 -0
  76. package/lib/cjs/loaders/css-loader.mjs +93 -0
  77. package/lib/cjs/loaders/css-loader.mjs.map +1 -0
  78. package/lib/cjs/loaders/register-css-only.d.ts.map +1 -0
  79. package/lib/cjs/loaders/register-css-only.js +11 -0
  80. package/lib/cjs/loaders/register-css-only.js.map +1 -0
  81. package/lib/cjs/loaders/register.d.ts.map +1 -0
  82. package/lib/cjs/loaders/register.js +11 -0
  83. package/lib/cjs/loaders/register.js.map +1 -0
  84. package/lib/cjs/metadata.d.ts.map +1 -0
  85. package/lib/cjs/metadata.js +155 -0
  86. package/lib/cjs/metadata.js.map +1 -0
  87. package/lib/cjs/package.json +134 -0
  88. package/lib/cjs/plugins/check-imports.d.ts.map +1 -0
  89. package/lib/cjs/plugins/check-imports.js +68 -0
  90. package/lib/cjs/plugins/check-imports.js.map +1 -0
  91. package/lib/cjs/plugins/declaration-plugin.d.ts.map +1 -0
  92. package/lib/cjs/plugins/declaration-plugin.js +275 -0
  93. package/lib/cjs/plugins/declaration-plugin.js.map +1 -0
  94. package/lib/cjs/plugins/externalise-modules.d.ts.map +1 -0
  95. package/lib/cjs/plugins/externalise-modules.js +190 -0
  96. package/lib/cjs/plugins/externalise-modules.js.map +1 -0
  97. package/lib/cjs/plugins/lincd-tailwind-sources.d.ts.map +1 -0
  98. package/lib/cjs/plugins/lincd-tailwind-sources.js +32 -0
  99. package/lib/cjs/plugins/lincd-tailwind-sources.js.map +1 -0
  100. package/lib/cjs/plugins/watch-run.d.ts.map +1 -0
  101. package/lib/cjs/plugins/watch-run.js +45 -0
  102. package/lib/cjs/plugins/watch-run.js.map +1 -0
  103. package/lib/cjs/preflight.css +137 -0
  104. package/lib/cjs/tailwind.config.d.ts.map +1 -0
  105. package/lib/cjs/tailwind.config.js +17 -0
  106. package/lib/cjs/tailwind.config.js.map +1 -0
  107. package/lib/cjs/utils.d.ts.map +1 -0
  108. package/lib/cjs/utils.js +575 -0
  109. package/lib/cjs/utils.js.map +1 -0
  110. package/lib/esm/cli-deprecated.d.ts.map +1 -0
  111. package/lib/esm/cli-deprecated.js +7 -0
  112. package/lib/esm/cli-deprecated.js.map +1 -0
  113. package/lib/esm/cli-methods.d.ts.map +1 -0
  114. package/lib/esm/cli-methods.js +2511 -0
  115. package/lib/esm/cli-methods.js.map +1 -0
  116. package/lib/esm/cli.d.ts.map +1 -0
  117. package/lib/esm/cli.js +270 -0
  118. package/lib/esm/cli.js.map +1 -0
  119. package/lib/esm/commands/build-package.d.ts.map +1 -0
  120. package/lib/esm/commands/build-package.js +60 -0
  121. package/lib/esm/commands/build-package.js.map +1 -0
  122. package/lib/esm/commands/safe-yarn.d.ts.map +1 -0
  123. package/lib/esm/commands/safe-yarn.js +71 -0
  124. package/lib/esm/commands/safe-yarn.js.map +1 -0
  125. package/lib/esm/config-webpack-app.d.ts.map +1 -0
  126. package/lib/esm/config-webpack-app.js +372 -0
  127. package/lib/esm/config-webpack-app.js.map +1 -0
  128. package/lib/esm/config-webpack.d.ts.map +1 -0
  129. package/lib/esm/config-webpack.js +374 -0
  130. package/lib/esm/config-webpack.js.map +1 -0
  131. package/lib/esm/defineConfig.d.ts.map +1 -0
  132. package/lib/esm/defineConfig.js +9 -0
  133. package/lib/esm/defineConfig.js.map +1 -0
  134. package/lib/esm/index.d.ts.map +1 -0
  135. package/lib/esm/index.js +12 -0
  136. package/lib/esm/index.js.map +1 -0
  137. package/lib/esm/interfaces.d.ts.map +1 -0
  138. package/lib/esm/interfaces.js +2 -0
  139. package/lib/esm/interfaces.js.map +1 -0
  140. package/lib/esm/loaders/css-loader.d.mts +2 -0
  141. package/lib/esm/loaders/css-loader.d.mts.map +1 -0
  142. package/lib/esm/loaders/css-loader.mjs +86 -0
  143. package/lib/esm/loaders/css-loader.mjs.map +1 -0
  144. package/lib/esm/loaders/register-css-only.d.ts.map +1 -0
  145. package/lib/esm/loaders/register-css-only.js +9 -0
  146. package/lib/esm/loaders/register-css-only.js.map +1 -0
  147. package/lib/esm/loaders/register.d.ts.map +1 -0
  148. package/lib/esm/loaders/register.js +9 -0
  149. package/lib/esm/loaders/register.js.map +1 -0
  150. package/lib/esm/metadata.d.ts.map +1 -0
  151. package/lib/esm/metadata.js +155 -0
  152. package/lib/esm/metadata.js.map +1 -0
  153. package/lib/esm/package.json +134 -0
  154. package/lib/esm/plugins/check-imports.d.ts.map +1 -0
  155. package/lib/esm/plugins/check-imports.js +65 -0
  156. package/lib/esm/plugins/check-imports.js.map +1 -0
  157. package/lib/esm/plugins/declaration-plugin.d.ts.map +1 -0
  158. package/lib/esm/plugins/declaration-plugin.js +246 -0
  159. package/lib/esm/plugins/declaration-plugin.js.map +1 -0
  160. package/lib/esm/plugins/externalise-modules.d.ts.map +1 -0
  161. package/lib/esm/plugins/externalise-modules.js +185 -0
  162. package/lib/esm/plugins/externalise-modules.js.map +1 -0
  163. package/lib/esm/plugins/lincd-tailwind-sources.d.ts.map +1 -0
  164. package/lib/esm/plugins/lincd-tailwind-sources.js +27 -0
  165. package/lib/esm/plugins/lincd-tailwind-sources.js.map +1 -0
  166. package/lib/esm/plugins/watch-run.d.ts.map +1 -0
  167. package/lib/esm/plugins/watch-run.js +44 -0
  168. package/lib/esm/plugins/watch-run.js.map +1 -0
  169. package/lib/esm/preflight.css +137 -0
  170. package/lib/esm/tailwind.config.d.ts.map +1 -0
  171. package/lib/esm/tailwind.config.js +12 -0
  172. package/lib/esm/tailwind.config.js.map +1 -0
  173. package/lib/esm/utils.d.ts.map +1 -0
  174. package/lib/esm/utils.js +530 -0
  175. package/lib/esm/utils.js.map +1 -0
  176. package/lib-template/cjs/package.json +3 -0
  177. package/lib-template/esm/package.json +3 -0
  178. package/package.json +155 -0
  179. package/preflight.css +137 -0
  180. package/tsconfig-cjs.json +9 -0
  181. package/tsconfig-esm.json +10 -0
@@ -0,0 +1,530 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import chalk from 'chalk';
11
+ import { exec } from 'child_process';
12
+ import * as fs from 'fs';
13
+ import { builtinModules } from 'module';
14
+ import * as path from 'path';
15
+ import ts from 'typescript';
16
+ import * as crypto from 'crypto';
17
+ import { findNearestPackageJsonSync } from 'find-nearest-package-json';
18
+ import * as glob from 'glob';
19
+ var gruntConfig;
20
+ // Credit: https://gist.github.com/tinovyatkin/727ddbf7e7e10831a1eca9e4ff2fc32e
21
+ const tsHost = ts.createCompilerHost({
22
+ allowJs: true,
23
+ noEmit: true,
24
+ isolatedModules: true,
25
+ resolveJsonModule: false,
26
+ moduleResolution: ts.ModuleResolutionKind.Classic, // we don't want node_modules
27
+ incremental: true,
28
+ noLib: true,
29
+ noResolve: true,
30
+ }, true);
31
+ export var getFileImports = function (filePath) {
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ try {
34
+ const importing = [];
35
+ const delintNode = (node) => {
36
+ if (ts.isImportDeclaration(node)) {
37
+ const moduleName = node.moduleSpecifier.getText().replace(/['"]/g, '');
38
+ if (!moduleName.startsWith('node:') &&
39
+ !builtinModules.includes(moduleName))
40
+ importing.push(moduleName);
41
+ }
42
+ else
43
+ ts.forEachChild(node, delintNode);
44
+ };
45
+ const sourceFile = tsHost.getSourceFile(filePath, ts.ScriptTarget.Latest, (msg) => {
46
+ throw new Error(`Failed to parse ${filePath}: ${msg}`);
47
+ });
48
+ //check if its a directory, then we wanr that we can't parse it
49
+ let stat = fs.lstatSync(filePath);
50
+ if (stat.isDirectory()) {
51
+ return importing;
52
+ }
53
+ if (!sourceFile) {
54
+ console.warn(`Failed to find file ${filePath}`);
55
+ return importing;
56
+ }
57
+ delintNode(sourceFile);
58
+ return importing;
59
+ }
60
+ catch (err) {
61
+ console.warn(`Error parsing file ${filePath}: ${err}`);
62
+ return [];
63
+ }
64
+ });
65
+ };
66
+ /**
67
+ *
68
+ * @param importPath The import path to check
69
+ * @param curFileDepth How many folders deep the current file is (0 = src, 1 = src/foo, etc.)
70
+ * @returns
71
+ */
72
+ export var isInvalidLINCDImport = function (importPath, curFileDepth) {
73
+ return (importPath.includes('lincd') &&
74
+ (importPath.includes('/src/') || importPath.includes('/lib/')));
75
+ };
76
+ export var isImportOutsideOfPackage = function (importPath, curFileDepth) {
77
+ if (importPath.includes('..')) {
78
+ //the number of '..' in the import path should be less than or equal to the current file depth
79
+ //if its bigger then the import is outside of the package
80
+ return importPath.split('..').length - 1 > curFileDepth;
81
+ }
82
+ return false;
83
+ };
84
+ /**
85
+ *
86
+ * @param importPath The import path to check
87
+ * @param curFileDepth How many folders deep the current file is (0 = src, 1 = src/foo, etc.)
88
+ * @returns
89
+ */
90
+ export var isValidLINCDImport = function (importPath, curFileDepth) {
91
+ const validLincdPath = importPath.includes('lincd') && !importPath.includes('/src/');
92
+ let validRelativePath = false;
93
+ if (importPath.includes('..')) {
94
+ // '../bad/path' from 'src/file.ts' should be invalid:
95
+ // ^ should get split into ['', '/bad/path'], and the file depth is 0
96
+ // meaning that it'll be invalid.
97
+ // And this should be true for all relative imports containing '..'
98
+ validRelativePath = importPath.split('..').length - 1 <= curFileDepth;
99
+ }
100
+ return validLincdPath || validRelativePath;
101
+ };
102
+ export var isImportWithMissingExtension = function (importPath) {
103
+ //if a relative import then it needs an extension
104
+ if (importPath.startsWith('../') || importPath.startsWith('./')) {
105
+ //check if the last part of the import after the last slash has a file extension
106
+ if (importPath.split('/').pop().split('.').length < 2) {
107
+ //if it doesn't have an extension, then it's missing, so return true
108
+ return true;
109
+ }
110
+ }
111
+ return false;
112
+ };
113
+ export var getPackageJSON = function (root = process.cwd(), error = true) {
114
+ // console.log('Getting package.json from ' + chalk.cyan(root));
115
+ //log stack trace
116
+ let packagePath = path.join(root, 'package.json');
117
+ if (fs.existsSync(packagePath)) {
118
+ return JSON.parse(fs.readFileSync(packagePath, 'utf8'));
119
+ }
120
+ else if (root === process.cwd()) {
121
+ if (error) {
122
+ console.warn('Could not find package.json. Make sure you run this command from the root of a lincd module or a lincd yarn workspace');
123
+ process.exit();
124
+ }
125
+ }
126
+ };
127
+ /**
128
+ * Scans package.json for dependencies that are LINCD packages
129
+ * Also looks into dependencies of dependencies
130
+ * If no packageJson is given, it will attempt to obtain it from the current working directory
131
+ * Returns an array of lincd packages, with each entry containing an array with the package name and the local path to the package
132
+ * @param packageJson
133
+ */
134
+ export var getLINCDDependencies = function (packageJson, checkedPackages = new Set()) {
135
+ if (!packageJson) {
136
+ packageJson = getPackageJSON();
137
+ }
138
+ let dependencies = Object.assign(Object.assign({}, packageJson.dependencies), packageJson.devDependencies);
139
+ let lincdPackagePaths = [];
140
+ let firstTime = checkedPackages.size === 0;
141
+ for (var dependency of Object.keys(dependencies)) {
142
+ try {
143
+ if (!checkedPackages.has(dependency)) {
144
+ let [modulePackageJson, modulePath] = getModulePackageJSON(dependency);
145
+ checkedPackages.add(dependency);
146
+ if (modulePackageJson === null || modulePackageJson === void 0 ? void 0 : modulePackageJson.lincd) {
147
+ lincdPackagePaths.push([
148
+ modulePackageJson.name,
149
+ modulePath,
150
+ [
151
+ ...Object.keys(Object.assign(Object.assign({}, modulePackageJson.dependencies), modulePackageJson.devDependencies)),
152
+ ],
153
+ ]);
154
+ //also check if this package has any dependencies that are lincd packages
155
+ lincdPackagePaths = lincdPackagePaths.concat(getLINCDDependencies(modulePackageJson, checkedPackages));
156
+ }
157
+ if (!modulePackageJson) {
158
+ //this seems to only happen with yarn workspaces for some grunt related dependencies of lincd-cli
159
+ // console.log(`could not find package.json of ${dependency}`);
160
+ }
161
+ }
162
+ }
163
+ catch (err) {
164
+ console.log(`could not check if ${dependency} is a lincd package: ${err}`);
165
+ }
166
+ }
167
+ if (firstTime) {
168
+ // let dependencyMap:Map<string,Set<string>> = new Map();
169
+ let lincdPackageNames = new Set(lincdPackagePaths.map(([packageName, modulePath, pkgDependencies]) => packageName));
170
+ //remove lincd-cli from the list of lincd packages
171
+ lincdPackageNames.delete('lincd-cli');
172
+ lincdPackagePaths.forEach(([packageName, modulePath, pkgDependencies], key) => {
173
+ let lincdDependencies = pkgDependencies.filter((dependency) => lincdPackageNames.has(dependency));
174
+ if (packageName === 'lincd-cli') {
175
+ //remove lincd-modules from the dependencies of lincd-cli (it's not a hard dependency, and it messes things up)
176
+ lincdDependencies.splice(lincdDependencies.indexOf('lincd-modules'), 1);
177
+ }
178
+ // dependencyMap.set(packageName, new Set(lincdDependencies));
179
+ //update dependencies to be the actual lincd package objects
180
+ lincdPackagePaths[key][2] = lincdDependencies;
181
+ });
182
+ // //add the nested dependencies for each lincd package
183
+ // for (let [packageName,pkgDependencies] of dependencyMap) {
184
+ // pkgDependencies.forEach((dependency) => {
185
+ // if (dependencyMap.has(dependency)) {
186
+ // dependencyMap.get(dependency).forEach((nestedDependency) => {
187
+ // pkgDependencies.add(nestedDependency);
188
+ // });
189
+ // }
190
+ // });
191
+ // }
192
+ //
193
+ // dependencyMap.forEach((dependencies,packageName) => {
194
+ // //check for circular dependencies
195
+ // if([...dependencies].some(dependency => {
196
+ // return dependencyMap.get(dependency).has(packageName);
197
+ // }))
198
+ // {
199
+ // console.warn(`Circular dependency detected between ${packageName} and ${dependency}`);
200
+ // }
201
+ //
202
+ // });
203
+ // a simple sort with dependencyMap doesn't seem to work,so we start with LINCD (least dependencies) and from there add packages that have all their dependencies already added
204
+ let sortedPackagePaths = [];
205
+ let addedPackages = new Set();
206
+ let lincdItself = lincdPackagePaths.find(([packageName]) => {
207
+ return packageName === 'lincd';
208
+ });
209
+ if (lincdItself) {
210
+ sortedPackagePaths.push(lincdItself);
211
+ addedPackages = new Set(['lincd']);
212
+ }
213
+ while (addedPackages.size !== lincdPackagePaths.length) {
214
+ let startSize = addedPackages.size;
215
+ lincdPackagePaths.forEach(([packageName, modulePath, pkgDependencies]) => {
216
+ if (!addedPackages.has(packageName) &&
217
+ pkgDependencies.every((dependency) => addedPackages.has(dependency))) {
218
+ sortedPackagePaths.push([packageName, modulePath, pkgDependencies]);
219
+ addedPackages.add(packageName);
220
+ }
221
+ });
222
+ if (startSize === addedPackages.size) {
223
+ console.warn('Could not sort lincd packages, circular dependencies?');
224
+ break;
225
+ }
226
+ }
227
+ //sort the lincd packages by least dependent first
228
+ // lincdPackagePaths = lincdPackagePaths.sort(([packageNameA],[packageNameB]) => {
229
+ // //if package A depends on package B, then package B should come first
230
+ // if (dependencyMap.get(packageNameA).has(packageNameB)) {
231
+ // console.log(packageNameA+' depends on '+packageNameB+ ' (below)')
232
+ // return 1;
233
+ // }
234
+ // console.log(packageNameA+' above '+packageNameB)
235
+ // return -1;
236
+ // });
237
+ return sortedPackagePaths;
238
+ }
239
+ return lincdPackagePaths;
240
+ };
241
+ export const getLastBuildTime = (packagePath) => {
242
+ return getLastModifiedFile(packagePath + '/@(builds|lib|dist)/**/*.js');
243
+ };
244
+ export const getLastModifiedSourceTime = (packagePath) => {
245
+ return getLastModifiedFile(packagePath + '/@(src|data|css|modules)/**/*', {
246
+ ignore: [
247
+ packagePath + '/**/*.css.json',
248
+ packagePath + '/**/*.d.ts',
249
+ packagePath + '/**/node_modules/**/*',
250
+ packagePath + '/**/lib/**/*',
251
+ packagePath + '/**/dist/**/*',
252
+ ],
253
+ });
254
+ };
255
+ export const getLastCommitTime = (packagePath) => {
256
+ // console.log(`git log -1 --format=%ci -- ${packagePath}`);
257
+ // process.exit();
258
+ return execPromise(`cd ${packagePath} && git log -1 --format="%h %ci" -- .`)
259
+ .then((result) => __awaiter(void 0, void 0, void 0, function* () {
260
+ let commitId = result.substring(0, result.indexOf(' '));
261
+ let date = result.substring(commitId.length + 1);
262
+ let lastCommitDate = new Date(date);
263
+ let changes = yield execPromise(`cd ${packagePath} && git show --stat --oneline ${commitId} -- .`);
264
+ // log(packagePath, result, lastCommitDate);
265
+ // log(changes);
266
+ return { date: lastCommitDate, changes, commitId };
267
+ }))
268
+ .catch(({ error, stdout, stderr }) => {
269
+ debugInfo(chalk.red('Git error: ') + error.message.toString());
270
+ return null;
271
+ });
272
+ };
273
+ export const getLastModifiedFile = (filePath, config = {}) => {
274
+ var files = glob.sync(filePath, config);
275
+ // console.log(files.join(" - "));
276
+ var lastModifiedName;
277
+ var lastModified;
278
+ var lastModifiedTime = 0;
279
+ files.forEach((fileName) => {
280
+ if (fs.lstatSync(fileName).isDirectory()) {
281
+ // console.log("skipping directory "+fileName);
282
+ return;
283
+ }
284
+ let mtime = fs.statSync(path.join(fileName)).mtime;
285
+ let modifiedTime = mtime.getTime();
286
+ if (modifiedTime > lastModifiedTime) {
287
+ // console.log(fileName,mtime);
288
+ lastModifiedName = fileName;
289
+ lastModified = mtime;
290
+ lastModifiedTime = modifiedTime;
291
+ }
292
+ });
293
+ return { lastModified, lastModifiedName, lastModifiedTime };
294
+ };
295
+ //from https://github.com/haalcala/node-packagejson/blob/master/index.js
296
+ export var getModulePackageJSON = function (module_name, work_dir) {
297
+ if (!work_dir) {
298
+ work_dir = process.cwd();
299
+ }
300
+ else {
301
+ work_dir = path.resolve(work_dir);
302
+ }
303
+ var package_json;
304
+ if (fs.existsSync(path.resolve(work_dir, './node_modules'))) {
305
+ var module_dir = path.resolve(work_dir, './node_modules/' + module_name);
306
+ if (fs.existsSync(module_dir) &&
307
+ fs.existsSync(module_dir + '/package.json')) {
308
+ package_json = JSON.parse(fs.readFileSync(module_dir + '/package.json', 'utf-8'));
309
+ }
310
+ }
311
+ if (!package_json && work_dir != '/') {
312
+ return getModulePackageJSON(module_name, path.resolve(work_dir, '..'));
313
+ }
314
+ return [package_json, module_dir];
315
+ };
316
+ export function execp(cmd, log = false, allowError = false, options = {}) {
317
+ // opts || (opts = {});
318
+ if (log)
319
+ console.log(chalk.cyan(cmd));
320
+ return new Promise((resolve, reject) => {
321
+ var child = exec(cmd, options);
322
+ child.stdout.pipe(process.stdout);
323
+ child.stderr.pipe(process.stderr);
324
+ // process.stdin.pipe(child.stdin);
325
+ child.on('close', function (code) {
326
+ if (code === 0) {
327
+ resolve(null);
328
+ }
329
+ else {
330
+ reject();
331
+ }
332
+ // console.log('killing child');
333
+ // child.kill('SIGHUP');
334
+ // resolve(code);
335
+ });
336
+ // child.on('data', function (result) {
337
+ // // if (log)
338
+ // // {
339
+ // // console.log(result);
340
+ // // }
341
+ // resolve(result);
342
+ // console.log('resolve data');
343
+ //
344
+ // });
345
+ child.on('error', function (err) {
346
+ if (!allowError) {
347
+ // console.log('reject err');
348
+ reject(err);
349
+ return;
350
+ }
351
+ else if (log) {
352
+ console.warn(err);
353
+ }
354
+ // console.log('resolve err');
355
+ resolve(null);
356
+ });
357
+ child.on('exit', function (code, signal) {
358
+ if (code !== 0) {
359
+ reject('Child process exited with error code ' + code);
360
+ return;
361
+ }
362
+ // console.log('resolve exit');
363
+ resolve(null);
364
+ });
365
+ });
366
+ }
367
+ export function execPromise(command, log = false, allowError = false, options, pipeOutput = false) {
368
+ return new Promise(function (resolve, reject) {
369
+ if (log)
370
+ console.log(chalk.cyan(command));
371
+ let child = exec(command, options, (error, stdout, stderr) => {
372
+ if (error) {
373
+ if (!allowError) {
374
+ reject({ error, stdout, stderr });
375
+ return;
376
+ }
377
+ else if (log) {
378
+ console.warn(error);
379
+ }
380
+ }
381
+ //TODO: getting a typescript error for 'trim()', this worked before, is it still used? do we log anywhere?
382
+ let result = stdout['trim']();
383
+ if (log) {
384
+ // console.log(chalk"RESOLVING "+command);
385
+ console.log(result);
386
+ // console.log('ERRORS:'+(result.indexOf('Aborted due to warnings') !== -1));
387
+ // console.log('stderr:'+stderr);
388
+ }
389
+ resolve(result);
390
+ });
391
+ if (pipeOutput) {
392
+ child.stdout.pipe(process.stdout);
393
+ child.stderr.pipe(process.stderr);
394
+ }
395
+ });
396
+ }
397
+ export function generateScopedNameProduction(cssClassName, filepath, css) {
398
+ //for app development we can use short unique hashes
399
+ //but for webpack bundles of lincd modules, we need to ensure unique class names across bundles of many packages
400
+ //generate a short unique hash based on cssClassName and filepath
401
+ let hash = crypto
402
+ .createHash('md5')
403
+ .update(cssClassName + filepath)
404
+ .digest('hex')
405
+ .substring(0, 6);
406
+ return hash;
407
+ }
408
+ export function generateScopedName(cssClassName, filepath, css) {
409
+ // return cssClassName;
410
+ var filename = path
411
+ .basename(filepath)
412
+ .replace(/\.module\.css$/, '')
413
+ .replace(/\.css$/, '');
414
+ let resolved = path.resolve(filepath).replace(/[\w\-_\/]+\/file\:/, '');
415
+ let nearestPackageJson = findNearestPackageJsonSync(resolved);
416
+ let packageName = nearestPackageJson
417
+ ? nearestPackageJson.data.name
418
+ : 'unknown';
419
+ return (packageName.replace(/[^a-zA-Z0-9_]+/g, '_') +
420
+ '_' +
421
+ filename +
422
+ '_' +
423
+ cssClassName);
424
+ }
425
+ export const needsRebuilding = function (pkg_1, useGitForLastModified_1) {
426
+ return __awaiter(this, arguments, void 0, function* (pkg, useGitForLastModified, log = false) {
427
+ let lastModifiedSourceDate;
428
+ let lastModifiedSourceName;
429
+ if (useGitForLastModified) {
430
+ const { changes, commitId, date } = yield getLastCommitTime(pkg.path);
431
+ lastModifiedSourceDate = date;
432
+ lastModifiedSourceName = commitId;
433
+ }
434
+ else {
435
+ const { lastModified, lastModifiedName, lastModifiedTime } = getLastModifiedSourceTime(pkg.path);
436
+ lastModifiedSourceName = lastModifiedName;
437
+ lastModifiedSourceDate = lastModified;
438
+ }
439
+ let lastModifiedBundle = getLastBuildTime(pkg.path);
440
+ let result = lastModifiedSourceDate &&
441
+ lastModifiedSourceDate.getTime() > lastModifiedBundle.lastModifiedTime;
442
+ if (log) {
443
+ console.log(chalk.cyan('Last modified source: ' +
444
+ lastModifiedSourceName +
445
+ ' on ' +
446
+ lastModifiedSourceDate.toString()));
447
+ console.log(chalk.cyan('Last build: ' +
448
+ (lastModifiedBundle &&
449
+ typeof lastModifiedBundle.lastModified !== 'undefined'
450
+ ? lastModifiedBundle.lastModified.toString()
451
+ : 'never')));
452
+ }
453
+ return result;
454
+ });
455
+ };
456
+ export function log(...messages) {
457
+ messages.forEach((message) => {
458
+ console.log(chalk.cyan(message));
459
+ });
460
+ }
461
+ export function debug(config, ...messages) {
462
+ if (config.debug) {
463
+ log(...messages);
464
+ }
465
+ }
466
+ export function debugInfo(...messages) {
467
+ // messages.forEach((message) => {
468
+ // console.log(chalk.cyan('Info: ') + message);
469
+ // });
470
+ //@TODO: let packages also use lincd.config.json? instead of gruntfile...
471
+ // that way we can read "analyse" here and see if we need to log debug info
472
+ // if(!gruntConfig)
473
+ // {
474
+ // gruntConfig = getGruntConfig();
475
+ // console.log(gruntConfig);
476
+ // process.exit();
477
+ // }
478
+ if (gruntConfig && gruntConfig.analyse === true) {
479
+ messages.forEach((message) => {
480
+ console.log(chalk.cyan('Info: ') + message);
481
+ });
482
+ }
483
+ }
484
+ export function warn(...messages) {
485
+ messages.forEach((message) => {
486
+ console.log(chalk.red(message));
487
+ });
488
+ }
489
+ export function flatten(arr) {
490
+ return arr.reduce(function (a, b) {
491
+ return b ? a.concat(b) : a;
492
+ }, []);
493
+ }
494
+ export function getLinkedTailwindColors() {
495
+ return {
496
+ 'primary-color': 'var(--primary-color)',
497
+ 'font-color': 'var(--font-color)',
498
+ };
499
+ }
500
+ /**
501
+ * Recursively get all files in a directory
502
+ * https://stackoverflow.com/a/45130990/831465
503
+ * @param dir The directory to get files from
504
+ * @returns A promise that resolves to an array of file paths
505
+ */
506
+ export function getFiles(dir, filenameFilter) {
507
+ return __awaiter(this, void 0, void 0, function* () {
508
+ const entries = yield fs.promises.readdir(dir, { withFileTypes: true });
509
+ let files = yield Promise.all(entries.map((entry) => {
510
+ const res = path.resolve(dir, entry.name);
511
+ return entry.isDirectory() ? getFiles(res, filenameFilter) : res;
512
+ }));
513
+ //flatten the array of arrays into a single array
514
+ let flatFiles = flatten(files);
515
+ if (filenameFilter) {
516
+ //filter the files to only include those that match the filenameFilter
517
+ flatFiles = flatFiles.filter((file) => file.includes(filenameFilter));
518
+ }
519
+ return flatFiles;
520
+ });
521
+ }
522
+ /**
523
+ * Strip ANSI escape codes from a string
524
+ * @param str The string to strip ANSI codes from
525
+ * @returns The string with ANSI codes removed
526
+ */
527
+ export function stripAnsi(str) {
528
+ return str.replace(/\x1b\[[0-9;]*m/g, '');
529
+ }
530
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,IAAI,EAAc,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAC,cAAc,EAAC,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAC,0BAA0B,EAAC,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,IAAI,WAAW,CAAC;AAEhB,+EAA+E;AAC/E,MAAM,MAAM,GAAG,EAAE,CAAC,kBAAkB,CAClC;IACE,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,IAAI;IACZ,eAAe,EAAE,IAAI;IACrB,iBAAiB,EAAE,KAAK;IACxB,gBAAgB,EAAE,EAAE,CAAC,oBAAoB,CAAC,OAAO,EAAE,6BAA6B;IAChF,WAAW,EAAE,IAAI;IACjB,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,IAAI;CAChB,EACD,IAAI,CACL,CAAC;AAEF,MAAM,CAAC,IAAI,cAAc,GAAG,UAAgB,QAAQ;;QAClD,IAAI,CAAC;YACH,MAAM,SAAS,GAAa,EAAE,CAAC;YAE/B,MAAM,UAAU,GAAG,CAAC,IAAa,EAAE,EAAE;gBACnC,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBACvE,IACE,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC;wBAC/B,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC;wBAEpC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC/B,CAAC;;oBAAM,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC3C,CAAC,CAAC;YACF,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CACrC,QAAQ,EACR,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,CAAC,GAAG,EAAE,EAAE;gBACN,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAC;YACzD,CAAC,CACF,CAAC;YACF,+DAA+D;YAC/D,IAAI,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;gBAChD,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,UAAU,CAAC,UAAU,CAAC,CAAC;YACvB,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,sBAAsB,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAC;YACvD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CAAA,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,IAAI,oBAAoB,GAAG,UAChC,UAAkB,EAClB,YAAoB;IAEpB,OAAO,CACL,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC5B,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAC/D,CAAC;AACJ,CAAC,CAAC;AACF,MAAM,CAAC,IAAI,wBAAwB,GAAG,UACpC,UAAkB,EAClB,YAAoB;IAEpB,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,8FAA8F;QAC9F,yDAAyD;QACzD,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,CAAC;IAC1D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,IAAI,kBAAkB,GAAG,UAC9B,UAAkB,EAClB,YAAoB;IAEpB,MAAM,cAAc,GAClB,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChE,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,sDAAsD;QACtD,wEAAwE;QACxE,oCAAoC;QACpC,mEAAmE;QACnE,iBAAiB,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC;IACxE,CAAC;IAED,OAAO,cAAc,IAAI,iBAAiB,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,CAAC,IAAI,4BAA4B,GAAG,UAAU,UAAkB;IACpE,kDAAkD;IAClD,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAChE,gFAAgF;QAChF,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,oEAAoE;YACpE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,IAAI,cAAc,GAAG,UAAU,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,GAAG,IAAI;IACtE,gEAAgE;IAChE,iBAAiB;IACjB,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAClD,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1D,CAAC;SAAM,IAAI,IAAI,KAAK,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QAClC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,CACV,uHAAuH,CACxH,CAAC;YACF,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,IAAI,oBAAoB,GAAG,UAChC,WAAY,EACZ,kBAA+B,IAAI,GAAG,EAAE;IAExC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,cAAc,EAAE,CAAC;IACjC,CAAC;IACD,IAAI,YAAY,mCACX,WAAW,CAAC,YAAY,GACxB,WAAW,CAAC,eAAe,CAC/B,CAAC;IACF,IAAI,iBAAiB,GAAiC,EAAE,CAAC;IACzD,IAAI,SAAS,GAAG,eAAe,CAAC,IAAI,KAAK,CAAC,CAAC;IAE3C,KAAK,IAAI,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC;YACH,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;gBACvE,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAEhC,IAAI,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,KAAK,EAAE,CAAC;oBAC7B,iBAAiB,CAAC,IAAI,CAAC;wBACrB,iBAAiB,CAAC,IAAI;wBACtB,UAAU;wBACV;4BACE,GAAG,MAAM,CAAC,IAAI,iCACT,iBAAiB,CAAC,YAAY,GAC9B,iBAAiB,CAAC,eAAe,EACpC;yBACH;qBACF,CAAC,CAAC;oBACH,yEAAyE;oBACzE,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAC1C,oBAAoB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CACzD,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACvB,iGAAiG;oBACjG,+DAA+D;gBACjE,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CACT,sBAAsB,UAAU,wBAAwB,GAAG,EAAE,CAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,yDAAyD;QACzD,IAAI,iBAAiB,GAAG,IAAI,GAAG,CAC7B,iBAAiB,CAAC,GAAG,CACnB,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,EAAE,CAAC,WAAW,CAC5D,CACF,CAAC;QACF,kDAAkD;QAClD,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAEtC,iBAAiB,CAAC,OAAO,CACvB,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,GAAG,EAAE,EAAE;YAClD,IAAI,iBAAiB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAC5D,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAClC,CAAC;YACF,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;gBAChC,+GAA+G;gBAC/G,iBAAiB,CAAC,MAAM,CACtB,iBAAiB,CAAC,OAAO,CAAC,eAAe,CAAC,EAC1C,CAAC,CACF,CAAC;YACJ,CAAC;YACD,8DAA8D;YAC9D,4DAA4D;YAC5D,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC;QAChD,CAAC,CACF,CAAC;QAEF,uDAAuD;QACvD,6DAA6D;QAC7D,8CAA8C;QAC9C,2CAA2C;QAC3C,sEAAsE;QACtE,iDAAiD;QACjD,YAAY;QACZ,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,EAAE;QACF,wDAAwD;QACxD,sCAAsC;QACtC,8CAA8C;QAC9C,6DAA6D;QAC7D,QAAQ;QACR,MAAM;QACN,6FAA6F;QAC7F,MAAM;QACN,EAAE;QACF,MAAM;QAEN,+KAA+K;QAC/K,IAAI,kBAAkB,GAAG,EAAE,CAAC;QAC5B,IAAI,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;QAC9B,IAAI,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE;YACzD,OAAO,WAAW,KAAK,OAAO,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,IAAI,WAAW,EAAE,CAAC;YAChB,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACrC,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,aAAa,CAAC,IAAI,KAAK,iBAAiB,CAAC,MAAM,EAAE,CAAC;YACvD,IAAI,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC;YACnC,iBAAiB,CAAC,OAAO,CACvB,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,EAAE;gBAC7C,IACE,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC;oBAC/B,eAAe,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EACpE,CAAC;oBACD,kBAAkB,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;oBACpE,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC,CACF,CAAC;YACF,IAAI,SAAS,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;gBACrC,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;gBACtE,MAAM;YACR,CAAC;QACH,CAAC;QAED,kDAAkD;QAClD,kFAAkF;QAClF,0EAA0E;QAC1E,6DAA6D;QAC7D,wEAAwE;QACxE,kBAAkB;QAClB,MAAM;QACN,qDAAqD;QACrD,eAAe;QACf,MAAM;QACN,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,WAAW,EAAE,EAAE;IAC9C,OAAO,mBAAmB,CAAC,WAAW,GAAG,6BAA6B,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,WAAW,EAAE,EAAE;IACvD,OAAO,mBAAmB,CAAC,WAAW,GAAG,+BAA+B,EAAE;QACxE,MAAM,EAAE;YACN,WAAW,GAAG,gBAAgB;YAC9B,WAAW,GAAG,YAAY;YAC1B,WAAW,GAAG,uBAAuB;YACrC,WAAW,GAAG,cAAc;YAC5B,WAAW,GAAG,eAAe;SAC9B;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,WAAW,EAC+C,EAAE;IAC5D,4DAA4D;IAC5D,kBAAkB;IAClB,OAAO,WAAW,CAAC,MAAM,WAAW,uCAAuC,CAAC;SACzE,IAAI,CAAC,CAAO,MAAM,EAAE,EAAE;QACrB,IAAI,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,IAAI,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjD,IAAI,cAAc,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpC,IAAI,OAAO,GAAG,MAAM,WAAW,CAC7B,MAAM,WAAW,iCAAiC,QAAQ,OAAO,CAClE,CAAC;QACF,4CAA4C;QAC5C,gBAAgB;QAChB,OAAO,EAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAC,CAAC;IACnD,CAAC,CAAA,CAAC;SACD,KAAK,CAAC,CAAC,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,EAAE,EAAE;QACjC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE;IAC3D,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAExC,kCAAkC;IAClC,IAAI,gBAAgB,CAAC;IACrB,IAAI,YAAkB,CAAC;IACvB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QACzB,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACzC,+CAA+C;YAC/C,OAAO;QACT,CAAC;QACD,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;QACnD,IAAI,YAAY,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,YAAY,GAAG,gBAAgB,EAAE,CAAC;YACpC,+BAA+B;YAC/B,gBAAgB,GAAG,QAAQ,CAAC;YAC5B,YAAY,GAAG,KAAK,CAAC;YACrB,gBAAgB,GAAG,YAAY,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,wEAAwE;AACxE,MAAM,CAAC,IAAI,oBAAoB,GAAG,UAAU,WAAW,EAAE,QAAS;IAChE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,YAAY,CAAC;IAEjB,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;QAC5D,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,iBAAiB,GAAG,WAAW,CAAC,CAAC;QAEzE,IACE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YACzB,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,eAAe,CAAC,EAC3C,CAAC;YACD,YAAY,GAAG,IAAI,CAAC,KAAK,CACvB,EAAE,CAAC,YAAY,CAAC,UAAU,GAAG,eAAe,EAAE,OAAO,CAAC,CACvD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,CAAC,YAAY,IAAI,QAAQ,IAAI,GAAG,EAAE,CAAC;QACrC,OAAO,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AACpC,CAAC,CAAC;AACF,MAAM,UAAU,KAAK,CACnB,GAAG,EACH,MAAe,KAAK,EACpB,aAAsB,KAAK,EAC3B,UAAe,EAAE;IAEjB,uBAAuB;IACvB,IAAI,GAAG;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAEtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAE/B,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClC,mCAAmC;QAEnC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,IAAI;YAC9B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,CAAC;YACX,CAAC;YACD,gCAAgC;YAChC,wBAAwB;YACxB,iBAAiB;QACnB,CAAC,CAAC,CAAC;QACH,uCAAuC;QACvC,eAAe;QACf,QAAQ;QACR,4BAA4B;QAC5B,QAAQ;QACR,oBAAoB;QACpB,gCAAgC;QAChC,EAAE;QACF,MAAM;QAEN,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,GAAG;YAC7B,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,6BAA6B;gBAC7B,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,OAAO;YACT,CAAC;iBAAM,IAAI,GAAG,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;YACD,8BAA8B;YAC9B,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,IAAI,EAAE,MAAM;YACrC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,MAAM,CAAC,uCAAuC,GAAG,IAAI,CAAC,CAAC;gBACvD,OAAO;YACT,CAAC;YACD,+BAA+B;YAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,OAAO,EACP,GAAG,GAAG,KAAK,EACX,aAAsB,KAAK,EAC3B,OAAqB,EACrB,aAAsB,KAAK;IAE3B,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM;QAC1C,IAAI,GAAG;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1C,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YAC3D,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,MAAM,CAAC,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,CAAC;oBAChC,OAAO;gBACT,CAAC;qBAAM,IAAI,GAAG,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;YACD,0GAA0G;YAC1G,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,IAAI,GAAG,EAAE,CAAC;gBACR,0CAA0C;gBAC1C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACpB,6EAA6E;gBAC7E,iCAAiC;YACnC,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAClC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,YAAY,EAAE,QAAQ,EAAE,GAAI;IACvE,oDAAoD;IACpD,gHAAgH;IAChH,iEAAiE;IACjE,IAAI,IAAI,GAAG,MAAM;SACd,UAAU,CAAC,KAAK,CAAC;SACjB,MAAM,CAAC,YAAY,GAAG,QAAQ,CAAC;SAC/B,MAAM,CAAC,KAAK,CAAC;SACb,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC;AACD,MAAM,UAAU,kBAAkB,CAAC,YAAY,EAAE,QAAQ,EAAE,GAAI;IAC7D,uBAAuB;IACvB,IAAI,QAAQ,GAAG,IAAI;SAChB,QAAQ,CAAC,QAAQ,CAAC;SAClB,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;SAC7B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACzB,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IACxE,IAAI,kBAAkB,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC9D,IAAI,WAAW,GAAG,kBAAkB;QAClC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI;QAC9B,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,CACL,WAAW,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC;QAC3C,GAAG;QACH,QAAQ;QACR,GAAG;QACH,YAAY,CACb,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;yDAC7B,GAAmB,EACnB,qBAA8B,EAC9B,MAAe,KAAK;QAEpB,IAAI,sBAA4B,CAAC;QACjC,IAAI,sBAA8B,CAAC;QAEnC,IAAI,qBAAqB,EAAE,CAAC;YAC1B,MAAM,EAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAC,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEpE,sBAAsB,GAAG,IAAI,CAAC;YAC9B,sBAAsB,GAAG,QAAQ,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,MAAM,EAAC,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAC,GACtD,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtC,sBAAsB,GAAG,gBAAgB,CAAC;YAC1C,sBAAsB,GAAG,YAAY,CAAC;QACxC,CAAC;QAED,IAAI,kBAAkB,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,MAAM,GACR,sBAAsB;YACtB,sBAAsB,CAAC,OAAO,EAAE,GAAG,kBAAkB,CAAC,gBAAgB,CAAC;QACzE,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,wBAAwB;gBACtB,sBAAsB;gBACtB,MAAM;gBACN,sBAAsB,CAAC,QAAQ,EAAE,CACpC,CACF,CAAC;YACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,cAAc;gBACZ,CAAC,kBAAkB;oBACnB,OAAO,kBAAkB,CAAC,YAAY,KAAK,WAAW;oBACpD,CAAC,CAAC,kBAAkB,CAAC,YAAY,CAAC,QAAQ,EAAE;oBAC5C,CAAC,CAAC,OAAO,CAAC,CACf,CACF,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CAAA,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,GAAG,QAAQ;IAC7B,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,MAAM,EAAE,GAAG,QAAQ;IACvC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAG,QAAQ;IACnC,kCAAkC;IAClC,iDAAiD;IACjD,MAAM;IACN,yEAAyE;IACzE,2EAA2E;IAC3E,mBAAmB;IACnB,IAAI;IACJ,oCAAoC;IACpC,8BAA8B;IAC9B,oBAAoB;IACpB,IAAI;IACJ,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAChD,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,GAAG,QAAQ;IAC9B,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAG;IACzB,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,eAAe,EAAE,sBAAsB;QACvC,YAAY,EAAE,mBAAmB;KAClC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAgB,QAAQ,CAC5B,GAAW,EACX,cAAuB;;QAEvB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC;QACtE,IAAI,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC3B,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACpB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1C,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACnE,CAAC,CAAC,CACH,CAAC;QACF,iDAAiD;QACjD,IAAI,SAAS,GAAG,OAAO,CAAC,KAAK,CAAa,CAAC;QAC3C,IAAI,cAAc,EAAE,CAAC;YACnB,sEAAsE;YACtE,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CAAA;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }