lincd-cli 1.1.11 → 1.2.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 (143) hide show
  1. package/defaults/app-static/.env-cmdrc.json +17 -0
  2. package/defaults/app-static/package.json +8 -0
  3. package/defaults/app-static/src/index-static.tsx +3 -3
  4. package/defaults/app-with-backend/.env-cmdrc.json +1 -4
  5. package/defaults/app-with-backend/.eslintignore +3 -1
  6. package/defaults/app-with-backend/lincd.config.js +1 -3
  7. package/defaults/app-with-backend/package.json +11 -21
  8. package/defaults/app-with-backend/scripts/storage-config.js +6 -6
  9. package/defaults/app-with-backend/src/App.module.css +17 -0
  10. package/defaults/app-with-backend/src/App.tsx +11 -15
  11. package/defaults/app-with-backend/src/backend.ts +8 -0
  12. package/defaults/app-with-backend/src/components/Error.tsx +2 -5
  13. package/defaults/app-with-backend/src/components/Spinner.tsx +3 -3
  14. package/defaults/app-with-backend/src/config-frontend.ts +6 -6
  15. package/defaults/app-with-backend/src/index.tsx +1 -0
  16. package/defaults/app-with-backend/src/layout/DefaultLayout.module.css +12 -0
  17. package/defaults/app-with-backend/src/layout/DefaultLayout.tsx +3 -4
  18. package/defaults/app-with-backend/src/layout/Header.module.css +25 -0
  19. package/defaults/app-with-backend/src/layout/Header.tsx +10 -6
  20. package/defaults/app-with-backend/src/package.ts +1 -3
  21. package/defaults/app-with-backend/src/pages/Home.tsx +2 -3
  22. package/defaults/app-with-backend/src/routes.tsx +8 -7
  23. package/defaults/app-with-backend/src/theme.css +100 -0
  24. package/defaults/app-with-backend/tsconfig.json +8 -5
  25. package/defaults/component.tsx +1 -3
  26. package/defaults/package/package.json +2 -2
  27. package/defaults/package/src/index.ts +1 -0
  28. package/defaults/package/src/ontologies/example-ontology.ts +10 -3
  29. package/defaults/package/src/package.ts +11 -3
  30. package/defaults/package/src/types.d.ts +9 -0
  31. package/defaults/package/tsconfig-cjs.json +8 -0
  32. package/defaults/package/tsconfig-esm.json +9 -0
  33. package/defaults/set-component.tsx +2 -5
  34. package/defaults/shape.ts +2 -2
  35. package/lib/{cli-methods.js → cjs/cli-methods.js} +779 -322
  36. package/lib/cjs/cli-methods.js.map +1 -0
  37. package/lib/cjs/cli.js +208 -0
  38. package/lib/cjs/cli.js.map +1 -0
  39. package/lib/cjs/config-grunt.cjs +276 -0
  40. package/lib/cjs/config-grunt.cjs.map +1 -0
  41. package/lib/cjs/config-webpack-app.js +495 -0
  42. package/lib/cjs/config-webpack-app.js.map +1 -0
  43. package/lib/cjs/config-webpack.js +444 -0
  44. package/lib/cjs/config-webpack.js.map +1 -0
  45. package/lib/{index.js → cjs/index.js} +5 -5
  46. package/lib/cjs/index.js.map +1 -0
  47. package/lib/{interfaces.js.map → cjs/interfaces.js.map} +1 -1
  48. package/lib/cjs/loaders/css-loader.mjs +86 -0
  49. package/lib/cjs/loaders/css-loader.mjs.map +1 -0
  50. package/lib/cjs/loaders/register.js +11 -0
  51. package/lib/cjs/loaders/register.js.map +1 -0
  52. package/lib/cjs/metadata.js +155 -0
  53. package/lib/cjs/metadata.js.map +1 -0
  54. package/lib/cjs/package.json +141 -0
  55. package/lib/{plugins → cjs/plugins}/check-imports.js +1 -1
  56. package/lib/cjs/plugins/check-imports.js.map +1 -0
  57. package/lib/cjs/plugins/declaration-plugin.js +285 -0
  58. package/lib/cjs/plugins/declaration-plugin.js.map +1 -0
  59. package/lib/cjs/plugins/externalise-modules.js +190 -0
  60. package/lib/cjs/plugins/externalise-modules.js.map +1 -0
  61. package/lib/cjs/plugins/lincd-tailwind-sources.js +32 -0
  62. package/lib/cjs/plugins/lincd-tailwind-sources.js.map +1 -0
  63. package/lib/cjs/plugins/watch-run.js.map +1 -0
  64. package/lib/cjs/tailwind.config.js +18 -0
  65. package/lib/cjs/tailwind.config.js.map +1 -0
  66. package/lib/{utils.js → cjs/utils.js} +112 -52
  67. package/lib/cjs/utils.js.map +1 -0
  68. package/lib/esm/cli-methods.js +2045 -0
  69. package/lib/esm/cli-methods.js.map +1 -0
  70. package/lib/{cli.js → esm/cli.js} +65 -44
  71. package/lib/esm/cli.js.map +1 -0
  72. package/lib/{config-grunt.js → esm/config-grunt.cjs} +15 -16
  73. package/lib/esm/config-grunt.cjs.map +1 -0
  74. package/lib/esm/config-webpack-app.js +460 -0
  75. package/lib/esm/config-webpack-app.js.map +1 -0
  76. package/lib/{config-webpack.js → esm/config-webpack.js} +37 -50
  77. package/lib/esm/config-webpack.js.map +1 -0
  78. package/lib/esm/index.js +10 -0
  79. package/lib/esm/index.js.map +1 -0
  80. package/lib/esm/interfaces.js +2 -0
  81. package/lib/esm/interfaces.js.map +1 -0
  82. package/lib/esm/loaders/css-loader.mjs +86 -0
  83. package/lib/esm/loaders/css-loader.mjs.map +1 -0
  84. package/lib/esm/loaders/register.js +9 -0
  85. package/lib/esm/loaders/register.js.map +1 -0
  86. package/lib/esm/metadata.js +155 -0
  87. package/lib/esm/metadata.js.map +1 -0
  88. package/lib/esm/package.json +141 -0
  89. package/lib/esm/plugins/check-imports.js +65 -0
  90. package/lib/esm/plugins/check-imports.js.map +1 -0
  91. package/lib/{plugins → esm/plugins}/declaration-plugin.js +9 -8
  92. package/lib/esm/plugins/declaration-plugin.js.map +1 -0
  93. package/lib/{plugins → esm/plugins}/externalise-modules.js +5 -6
  94. package/lib/esm/plugins/externalise-modules.js.map +1 -0
  95. package/lib/esm/plugins/lincd-tailwind-sources.js +27 -0
  96. package/lib/esm/plugins/lincd-tailwind-sources.js.map +1 -0
  97. package/lib/esm/plugins/watch-run.js +44 -0
  98. package/lib/esm/plugins/watch-run.js.map +1 -0
  99. package/lib/esm/tailwind.config.js +13 -0
  100. package/lib/esm/tailwind.config.js.map +1 -0
  101. package/lib/esm/utils.js +521 -0
  102. package/lib/esm/utils.js.map +1 -0
  103. package/lib-template/cjs/package.json +3 -0
  104. package/lib-template/esm/package.json +3 -0
  105. package/package.json +64 -24
  106. package/tsconfig-cjs.json +9 -0
  107. package/tsconfig-esm.json +10 -0
  108. package/defaults/app-with-backend/babel.config.js +0 -4
  109. package/defaults/app-with-backend/src/App.scss +0 -6
  110. package/defaults/app-with-backend/src/App.scss.json +0 -1
  111. package/defaults/app-with-backend/src/components/Error.scss.json +0 -1
  112. package/defaults/app-with-backend/src/components/Spinner.scss.json +0 -1
  113. package/defaults/app-with-backend/src/layout/DefaultLayout.scss +0 -6
  114. package/defaults/app-with-backend/src/layout/DefaultLayout.scss.json +0 -1
  115. package/defaults/app-with-backend/src/layout/Header.scss +0 -10
  116. package/defaults/app-with-backend/src/layout/Header.scss.json +0 -1
  117. package/defaults/app-with-backend/src/pages/Home.scss.json +0 -1
  118. package/defaults/app-with-backend/src/scss/global-overwrites.scss +0 -11
  119. package/defaults/app-with-backend/src/scss/variables.scss +0 -23
  120. package/lib/cli-methods.js.map +0 -1
  121. package/lib/cli.js.map +0 -1
  122. package/lib/config-grunt.js.map +0 -1
  123. package/lib/config-webpack-app.js +0 -367
  124. package/lib/config-webpack-app.js.map +0 -1
  125. package/lib/config-webpack.js.map +0 -1
  126. package/lib/index.js.map +0 -1
  127. package/lib/metadata.js +0 -149
  128. package/lib/metadata.js.map +0 -1
  129. package/lib/plugins/check-imports.js.map +0 -1
  130. package/lib/plugins/declaration-plugin.js.map +0 -1
  131. package/lib/plugins/externalise-modules.js.map +0 -1
  132. package/lib/plugins/watch-run.js.map +0 -1
  133. package/lib/utils.js.map +0 -1
  134. /package/defaults/app-with-backend/{web → public}/favicon-144x144.png +0 -0
  135. /package/defaults/app-with-backend/{web → public}/favicon-57x57.png +0 -0
  136. /package/defaults/app-with-backend/{web → public}/favicon-72x72.png +0 -0
  137. /package/defaults/app-with-backend/{web → public}/favicon.ico +0 -0
  138. /package/defaults/app-with-backend/src/components/{Error.scss → Error.module.css} +0 -0
  139. /package/defaults/app-with-backend/src/components/{Spinner.scss → Spinner.module.css} +0 -0
  140. /package/defaults/app-with-backend/src/pages/{Home.scss → Home.module.css} +0 -0
  141. /package/{expose-grunt.js → expose-grunt.cjs} +0 -0
  142. /package/lib/{interfaces.js → cjs/interfaces.js} +0 -0
  143. /package/lib/{plugins → cjs/plugins}/watch-run.js +0 -0
@@ -0,0 +1,521 @@
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 * as fs from 'fs';
11
+ import * as path from 'path';
12
+ import chalk from 'chalk';
13
+ import { exec } from 'child_process';
14
+ import ts from 'typescript';
15
+ import { builtinModules } from 'module';
16
+ import { findNearestPackageJsonSync } from 'find-nearest-package-json';
17
+ import * as glob from 'glob';
18
+ import * as crypto from 'crypto';
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') && (importPath.includes('/src/') || importPath.includes('/lib/'));
74
+ };
75
+ export var isImportOutsideOfPackage = function (importPath, curFileDepth) {
76
+ if (importPath.includes('..')) {
77
+ //the number of '..' in the import path should be less than or equal to the current file depth
78
+ //if its bigger then the import is outside of the package
79
+ return importPath.split('..').length - 1 > curFileDepth;
80
+ }
81
+ return false;
82
+ };
83
+ /**
84
+ *
85
+ * @param importPath The import path to check
86
+ * @param curFileDepth How many folders deep the current file is (0 = src, 1 = src/foo, etc.)
87
+ * @returns
88
+ */
89
+ export var isValidLINCDImport = function (importPath, curFileDepth) {
90
+ const validLincdPath = importPath.includes('lincd') && !importPath.includes('/src/');
91
+ let validRelativePath = false;
92
+ if (importPath.includes('..')) {
93
+ // '../bad/path' from 'src/file.ts' should be invalid:
94
+ // ^ should get split into ['', '/bad/path'], and the file depth is 0
95
+ // meaning that it'll be invalid.
96
+ // And this should be true for all relative imports containing '..'
97
+ validRelativePath = importPath.split('..').length - 1 <= curFileDepth;
98
+ }
99
+ return validLincdPath || validRelativePath;
100
+ };
101
+ export var isImportWithMissingExtension = function (importPath) {
102
+ //if a relative import then it needs an extension
103
+ if (importPath.startsWith('../') || importPath.startsWith('./')) {
104
+ //check if the last part of the import after the last slash has a file extension
105
+ if (importPath.split('/').pop().split('.').length < 2) {
106
+ //if it doesn't have an extension, then it's missing, so return true
107
+ return true;
108
+ }
109
+ }
110
+ return false;
111
+ };
112
+ export var getPackageJSON = function (root = process.cwd(), error = true) {
113
+ let packagePath = path.join(root, 'package.json');
114
+ if (fs.existsSync(packagePath)) {
115
+ return JSON.parse(fs.readFileSync(packagePath, 'utf8'));
116
+ }
117
+ else if (root === process.cwd()) {
118
+ if (error) {
119
+ 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');
120
+ process.exit();
121
+ }
122
+ }
123
+ };
124
+ /**
125
+ * Scans package.json for dependencies that are LINCD packages
126
+ * Also looks into dependencies of dependencies
127
+ * If no packageJson is given, it will attempt to obtain it from the current working directory
128
+ * Returns an array of lincd packages, with each entry containing an array with the package name and the local path to the package
129
+ * @param packageJson
130
+ */
131
+ export var getLINCDDependencies = function (packageJson, checkedPackages = new Set()) {
132
+ if (!packageJson) {
133
+ packageJson = getPackageJSON();
134
+ }
135
+ let dependencies = Object.assign(Object.assign({}, packageJson.dependencies), packageJson.devDependencies);
136
+ let lincdPackagePaths = [];
137
+ let firstTime = checkedPackages.size === 0;
138
+ for (var dependency of Object.keys(dependencies)) {
139
+ try {
140
+ if (!checkedPackages.has(dependency)) {
141
+ let [modulePackageJson, modulePath] = getModulePackageJSON(dependency);
142
+ checkedPackages.add(dependency);
143
+ if (modulePackageJson === null || modulePackageJson === void 0 ? void 0 : modulePackageJson.lincd) {
144
+ lincdPackagePaths.push([
145
+ modulePackageJson.name,
146
+ modulePath,
147
+ [
148
+ ...Object.keys(Object.assign(Object.assign({}, modulePackageJson.dependencies), modulePackageJson.devDependencies)),
149
+ ],
150
+ ]);
151
+ //also check if this package has any dependencies that are lincd packages
152
+ lincdPackagePaths = lincdPackagePaths.concat(getLINCDDependencies(modulePackageJson, checkedPackages));
153
+ }
154
+ if (!modulePackageJson) {
155
+ //this seems to only happen with yarn workspaces for some grunt related dependencies of lincd-cli
156
+ // console.log(`could not find package.json of ${dependency}`);
157
+ }
158
+ }
159
+ }
160
+ catch (err) {
161
+ console.log(`could not check if ${dependency} is a lincd package: ${err}`);
162
+ }
163
+ }
164
+ if (firstTime) {
165
+ // let dependencyMap:Map<string,Set<string>> = new Map();
166
+ let lincdPackageNames = new Set(lincdPackagePaths.map(([packageName, modulePath, pkgDependencies]) => packageName));
167
+ //remove lincd-cli from the list of lincd packages
168
+ lincdPackageNames.delete('lincd-cli');
169
+ lincdPackagePaths.forEach(([packageName, modulePath, pkgDependencies], key) => {
170
+ let lincdDependencies = pkgDependencies.filter((dependency) => lincdPackageNames.has(dependency));
171
+ if (packageName === 'lincd-cli') {
172
+ //remove lincd-modules from the dependencies of lincd-cli (it's not a hard dependency, and it messes things up)
173
+ lincdDependencies.splice(lincdDependencies.indexOf('lincd-modules'), 1);
174
+ }
175
+ // dependencyMap.set(packageName, new Set(lincdDependencies));
176
+ //update dependencies to be the actual lincd package objects
177
+ lincdPackagePaths[key][2] = lincdDependencies;
178
+ });
179
+ // //add the nested dependencies for each lincd package
180
+ // for (let [packageName,pkgDependencies] of dependencyMap) {
181
+ // pkgDependencies.forEach((dependency) => {
182
+ // if (dependencyMap.has(dependency)) {
183
+ // dependencyMap.get(dependency).forEach((nestedDependency) => {
184
+ // pkgDependencies.add(nestedDependency);
185
+ // });
186
+ // }
187
+ // });
188
+ // }
189
+ //
190
+ // dependencyMap.forEach((dependencies,packageName) => {
191
+ // //check for circular dependencies
192
+ // if([...dependencies].some(dependency => {
193
+ // return dependencyMap.get(dependency).has(packageName);
194
+ // }))
195
+ // {
196
+ // console.warn(`Circular dependency detected between ${packageName} and ${dependency}`);
197
+ // }
198
+ //
199
+ // });
200
+ // 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
201
+ let sortedPackagePaths = [];
202
+ let addedPackages = new Set(['lincd']);
203
+ let lincdItself = lincdPackagePaths.find(([packageName]) => {
204
+ return packageName === 'lincd';
205
+ });
206
+ if (lincdItself) {
207
+ sortedPackagePaths.push(lincdItself);
208
+ }
209
+ while (addedPackages.size !== lincdPackagePaths.length) {
210
+ let startSize = addedPackages.size;
211
+ lincdPackagePaths.forEach(([packageName, modulePath, pkgDependencies]) => {
212
+ if (!addedPackages.has(packageName) &&
213
+ pkgDependencies.every((dependency) => addedPackages.has(dependency))) {
214
+ sortedPackagePaths.push([packageName, modulePath, pkgDependencies]);
215
+ addedPackages.add(packageName);
216
+ }
217
+ });
218
+ if (startSize === addedPackages.size) {
219
+ console.warn('Could not sort lincd packages, circular dependencies?');
220
+ break;
221
+ }
222
+ }
223
+ //sort the lincd packages by least dependent first
224
+ // lincdPackagePaths = lincdPackagePaths.sort(([packageNameA],[packageNameB]) => {
225
+ // //if package A depends on package B, then package B should come first
226
+ // if (dependencyMap.get(packageNameA).has(packageNameB)) {
227
+ // console.log(packageNameA+' depends on '+packageNameB+ ' (below)')
228
+ // return 1;
229
+ // }
230
+ // console.log(packageNameA+' above '+packageNameB)
231
+ // return -1;
232
+ // });
233
+ return sortedPackagePaths;
234
+ }
235
+ return lincdPackagePaths;
236
+ };
237
+ export const getLastBuildTime = (packagePath) => {
238
+ return getLastModifiedFile(packagePath + '/@(builds|lib|dist)/**/*.js');
239
+ };
240
+ export const getLastModifiedSourceTime = (packagePath) => {
241
+ return getLastModifiedFile(packagePath + '/@(src|data|scss|modules)/**/*', {
242
+ ignore: [
243
+ packagePath + '/**/*.scss.json',
244
+ packagePath + '/**/*.d.ts',
245
+ packagePath + '/**/node_modules/**/*',
246
+ packagePath + '/**/lib/**/*',
247
+ packagePath + '/**/dist/**/*',
248
+ ],
249
+ });
250
+ };
251
+ export const getLastCommitTime = (packagePath) => {
252
+ // console.log(`git log -1 --format=%ci -- ${packagePath}`);
253
+ // process.exit();
254
+ return execPromise(`cd ${packagePath} && git log -1 --format="%h %ci" -- .`)
255
+ .then((result) => __awaiter(void 0, void 0, void 0, function* () {
256
+ let commitId = result.substring(0, result.indexOf(' '));
257
+ let date = result.substring(commitId.length + 1);
258
+ let lastCommitDate = new Date(date);
259
+ let changes = yield execPromise(`cd ${packagePath} && git show --stat --oneline ${commitId} -- .`);
260
+ // log(packagePath, result, lastCommitDate);
261
+ // log(changes);
262
+ return { date: lastCommitDate, changes, commitId };
263
+ }))
264
+ .catch(({ error, stdout, stderr }) => {
265
+ debugInfo(chalk.red('Git error: ') + error.message.toString());
266
+ return null;
267
+ });
268
+ };
269
+ export const getLastModifiedFile = (filePath, config = {}) => {
270
+ var files = glob.sync(filePath, config);
271
+ // console.log(files.join(" - "));
272
+ var lastModifiedName;
273
+ var lastModified;
274
+ var lastModifiedTime = 0;
275
+ files.forEach((fileName) => {
276
+ if (fs.lstatSync(fileName).isDirectory()) {
277
+ // console.log("skipping directory "+fileName);
278
+ return;
279
+ }
280
+ let mtime = fs.statSync(path.join(fileName)).mtime;
281
+ let modifiedTime = mtime.getTime();
282
+ if (modifiedTime > lastModifiedTime) {
283
+ // console.log(fileName,mtime);
284
+ lastModifiedName = fileName;
285
+ lastModified = mtime;
286
+ lastModifiedTime = modifiedTime;
287
+ }
288
+ });
289
+ return { lastModified, lastModifiedName, lastModifiedTime };
290
+ };
291
+ //from https://github.com/haalcala/node-packagejson/blob/master/index.js
292
+ export var getModulePackageJSON = function (module_name, work_dir) {
293
+ if (!work_dir) {
294
+ work_dir = process.cwd();
295
+ }
296
+ else {
297
+ work_dir = path.resolve(work_dir);
298
+ }
299
+ var package_json;
300
+ if (fs.existsSync(path.resolve(work_dir, './node_modules'))) {
301
+ var module_dir = path.resolve(work_dir, './node_modules/' + module_name);
302
+ if (fs.existsSync(module_dir) &&
303
+ fs.existsSync(module_dir + '/package.json')) {
304
+ package_json = JSON.parse(fs.readFileSync(module_dir + '/package.json', 'utf-8'));
305
+ }
306
+ }
307
+ if (!package_json && work_dir != '/') {
308
+ return getModulePackageJSON(module_name, path.resolve(work_dir, '..'));
309
+ }
310
+ return [package_json, module_dir];
311
+ };
312
+ export var getGruntConfig = function (root = process.cwd(), error = true) {
313
+ let gruntFile = path.join(root, 'Gruntfile.js');
314
+ if (fs.existsSync(gruntFile)) {
315
+ return require(gruntFile)();
316
+ }
317
+ else if (root === process.cwd()) {
318
+ if (error) {
319
+ console.warn('Could not find Gruntfile.js. Make sure you run this command from the root of a lincd module or a lincd yarn workspace');
320
+ process.exit();
321
+ }
322
+ }
323
+ };
324
+ export function execp(cmd, log = false, allowError = false, options = {}) {
325
+ // opts || (opts = {});
326
+ if (log)
327
+ console.log(chalk.cyan(cmd));
328
+ return new Promise((resolve, reject) => {
329
+ var child = exec(cmd, options);
330
+ child.stdout.pipe(process.stdout);
331
+ child.stderr.pipe(process.stderr);
332
+ // process.stdin.pipe(child.stdin);
333
+ child.on('close', function (code) {
334
+ if (code === 0) {
335
+ resolve(null);
336
+ }
337
+ else {
338
+ reject();
339
+ }
340
+ // console.log('killing child');
341
+ // child.kill('SIGHUP');
342
+ // resolve(code);
343
+ });
344
+ // child.on('data', function (result) {
345
+ // // if (log)
346
+ // // {
347
+ // // console.log(result);
348
+ // // }
349
+ // resolve(result);
350
+ // console.log('resolve data');
351
+ //
352
+ // });
353
+ child.on('error', function (err) {
354
+ if (!allowError) {
355
+ // console.log('reject err');
356
+ reject(err);
357
+ return;
358
+ }
359
+ else if (log) {
360
+ console.warn(err);
361
+ }
362
+ // console.log('resolve err');
363
+ resolve(null);
364
+ });
365
+ child.on('exit', function (code, signal) {
366
+ if (code !== 0) {
367
+ reject('Child process exited with error code ' + code);
368
+ return;
369
+ }
370
+ // console.log('resolve exit');
371
+ resolve(null);
372
+ });
373
+ });
374
+ }
375
+ export function execPromise(command, log = false, allowError = false, options, pipeOutput = false) {
376
+ return new Promise(function (resolve, reject) {
377
+ if (log)
378
+ console.log(chalk.cyan(command));
379
+ let child = exec(command, options, (error, stdout, stderr) => {
380
+ if (error) {
381
+ if (!allowError) {
382
+ reject({ error, stdout, stderr });
383
+ return;
384
+ }
385
+ else if (log) {
386
+ console.warn(error);
387
+ }
388
+ }
389
+ //TODO: getting a typescript error for 'trim()', this worked before, is it still used? do we log anywhere?
390
+ let result = stdout['trim']();
391
+ if (log) {
392
+ // console.log(chalk"RESOLVING "+command);
393
+ console.log(result);
394
+ // console.log('ERRORS:'+(result.indexOf('Aborted due to warnings') !== -1));
395
+ // console.log('stderr:'+stderr);
396
+ }
397
+ resolve(result);
398
+ });
399
+ if (pipeOutput) {
400
+ child.stdout.pipe(process.stdout);
401
+ child.stderr.pipe(process.stderr);
402
+ }
403
+ });
404
+ }
405
+ export function generateScopedNameProduction(cssClassName, filepath, css) {
406
+ //for app development we can use short unique hashes
407
+ //but for webpack bundles of lincd modules, we need to ensure unique class names across bundles of many packages
408
+ //generate a short unique hash based on cssClassName and filepath
409
+ let hash = crypto
410
+ .createHash('md5')
411
+ .update(cssClassName + filepath)
412
+ .digest('hex')
413
+ .substring(0, 6);
414
+ return hash;
415
+ }
416
+ export function generateScopedName(cssClassName, filepath, css) {
417
+ // return cssClassName;
418
+ var filename = path.basename(filepath).replace(/\.(module\.)?(css|scss)/, '');
419
+ let resolved = path.resolve(filepath).replace(/[\w\-_\/]+\/file\:/, '');
420
+ let nearestPackageJson = findNearestPackageJsonSync(resolved);
421
+ let packageName = nearestPackageJson
422
+ ? nearestPackageJson.data.name
423
+ : 'unknown';
424
+ return (packageName.replace(/[^a-zA-Z0-9_]+/g, '_') +
425
+ '_' +
426
+ filename +
427
+ '_' +
428
+ cssClassName);
429
+ }
430
+ export const needsRebuilding = function (pkg_1, useGitForLastModified_1) {
431
+ return __awaiter(this, arguments, void 0, function* (pkg, useGitForLastModified, log = false) {
432
+ let lastModifiedSourceDate;
433
+ let lastModifiedSourceName;
434
+ if (useGitForLastModified) {
435
+ const { changes, commitId, date } = yield getLastCommitTime(pkg.path);
436
+ lastModifiedSourceDate = date;
437
+ lastModifiedSourceName = commitId;
438
+ }
439
+ else {
440
+ const { lastModified, lastModifiedName, lastModifiedTime } = getLastModifiedSourceTime(pkg.path);
441
+ lastModifiedSourceName = lastModifiedName;
442
+ lastModifiedSourceDate = lastModified;
443
+ }
444
+ let lastModifiedBundle = getLastBuildTime(pkg.path);
445
+ let result = lastModifiedSourceDate &&
446
+ lastModifiedSourceDate.getTime() > lastModifiedBundle.lastModifiedTime;
447
+ if (log) {
448
+ console.log(chalk.cyan('Last modified source: ' +
449
+ lastModifiedSourceName +
450
+ ' on ' +
451
+ lastModifiedSourceDate.toString()));
452
+ console.log(chalk.cyan('Last build: ' +
453
+ (lastModifiedBundle &&
454
+ typeof lastModifiedBundle.lastModified !== 'undefined'
455
+ ? lastModifiedBundle.lastModified.toString()
456
+ : 'never')));
457
+ }
458
+ return result;
459
+ });
460
+ };
461
+ export function log(...messages) {
462
+ messages.forEach((message) => {
463
+ console.log(chalk.cyan(message));
464
+ });
465
+ }
466
+ export function debug(config, ...messages) {
467
+ if (config.debug) {
468
+ log(...messages);
469
+ }
470
+ }
471
+ export function debugInfo(...messages) {
472
+ // messages.forEach((message) => {
473
+ // console.log(chalk.cyan('Info: ') + message);
474
+ // });
475
+ //@TODO: let packages also use lincd.config.json? instead of gruntfile...
476
+ // that way we can read "analyse" here and see if we need to log debug info
477
+ // if(!gruntConfig)
478
+ // {
479
+ // gruntConfig = getGruntConfig();
480
+ // console.log(gruntConfig);
481
+ // process.exit();
482
+ // }
483
+ if (gruntConfig && gruntConfig.analyse === true) {
484
+ messages.forEach((message) => {
485
+ console.log(chalk.cyan('Info: ') + message);
486
+ });
487
+ }
488
+ }
489
+ export function warn(...messages) {
490
+ messages.forEach((message) => {
491
+ console.log(chalk.red(message));
492
+ });
493
+ }
494
+ export function flatten(arr) {
495
+ return arr.reduce(function (a, b) {
496
+ return b ? a.concat(b) : a;
497
+ }, []);
498
+ }
499
+ export function getLinkedTailwindColors() {
500
+ return {
501
+ 'primary-color': 'var(--primary-color)',
502
+ 'font-color': 'var(--font-color)',
503
+ };
504
+ }
505
+ /**
506
+ * Recursively get all files in a directory
507
+ * https://stackoverflow.com/a/45130990/831465
508
+ * @param dir The directory to get files from
509
+ * @returns A promise that resolves to an array of file paths
510
+ */
511
+ export function getFiles(dir) {
512
+ return __awaiter(this, void 0, void 0, function* () {
513
+ const entries = yield fs.promises.readdir(dir, { withFileTypes: true });
514
+ const files = yield Promise.all(entries.map((entry) => {
515
+ const res = path.resolve(dir, entry.name);
516
+ return entry.isDirectory() ? getFiles(res) : res;
517
+ }));
518
+ return Array.prototype.concat(...files);
519
+ });
520
+ }
521
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }