lincd-cli 0.2.34 → 0.2.37
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.
- package/defaults/app-static/capacitor.config.ts +89 -1
- package/defaults/app-with-backend/.prettierignore +2 -1
- package/defaults/app-with-backend/src/layout/Header.tsx +4 -2
- package/defaults/app-with-backend/src/routes.tsx +2 -0
- package/lib/cli-methods.js +37 -1
- package/lib/cli.js +3 -0
- package/lib/config-grunt.js +2 -1
- package/lib/utils.js +57 -20
- package/package.json +2 -2
|
@@ -4,7 +4,95 @@ const config: CapacitorConfig = {
|
|
|
4
4
|
appId: 'com.mydomain.FILL_IN_YOUR_OWN',
|
|
5
5
|
appName: 'FILL_IN_YOUR_OWN',
|
|
6
6
|
webDir: 'frontend/web',
|
|
7
|
-
|
|
7
|
+
server: {
|
|
8
|
+
allowNavigation: ['DOMAIN', 'APP_DOMAIN'],
|
|
9
|
+
},
|
|
10
|
+
bundledWebRuntime: false,
|
|
11
|
+
//Add or remove plugins that you need. Here is a starter list
|
|
12
|
+
plugins: {
|
|
13
|
+
CapacitorHttp: {
|
|
14
|
+
enabled: true,
|
|
15
|
+
},
|
|
16
|
+
FirebaseMessaging: {
|
|
17
|
+
presentationOptions: ['badge', 'sound', 'alert'],
|
|
18
|
+
},
|
|
19
|
+
GoogleAuth: {
|
|
20
|
+
scopes: ['profile', 'email'],
|
|
21
|
+
//self created production web client
|
|
22
|
+
clientId: '734627482469-37q563qta2jt6bmhksemmvco8si0pmai.apps.googleusercontent.com',
|
|
23
|
+
//For these lines use the auto generated web client "Web client (auto created by Google Service)"
|
|
24
|
+
serverClientId: '580968717451-68kpj51ulab8q7drbd3sr7imodai81lp.apps.googleusercontent.com',
|
|
25
|
+
androidClientId: '580968717451-68kpj51ulab8q7drbd3sr7imodai81lp.apps.googleusercontent.com',
|
|
26
|
+
iosClientId: '580968717451-aoj80o3e8qfjlmbrgabf916mfk4t3ntr.apps.googleusercontent.com',
|
|
27
|
+
forceCodeForRefreshToken: true,
|
|
28
|
+
},
|
|
29
|
+
SplashScreen: {
|
|
30
|
+
launchShowDuration: 400,
|
|
31
|
+
launchAutoHide: true,
|
|
32
|
+
// launchFadeOutDuration: 500,
|
|
33
|
+
backgroundColor: '#F7E5FF',
|
|
34
|
+
androidSplashResourceName: 'splash',
|
|
35
|
+
// androidScaleType: 'CENTER',
|
|
36
|
+
showSpinner: false,
|
|
37
|
+
// androidSpinnerStyle: 'large',
|
|
38
|
+
// iosSpinnerStyle: 'small',
|
|
39
|
+
// spinnerColor: '#999999',
|
|
40
|
+
splashFullScreen: true,
|
|
41
|
+
splashImmersive: true,
|
|
42
|
+
// layoutName: 'launch_screen',
|
|
43
|
+
// useDialog: true,
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export default config;
|
|
49
|
+
|
|
50
|
+
import {CapacitorConfig} from '@capacitor/cli';
|
|
51
|
+
|
|
52
|
+
const config: CapacitorConfig = {
|
|
53
|
+
appId: 'com.spiritualplaymates.app',
|
|
54
|
+
appName: 'Spiritual Playmates',
|
|
55
|
+
webDir: 'frontend/web',
|
|
56
|
+
server: {
|
|
57
|
+
allowNavigation: ['spiritualplaymates.com', 'app.spiritualplaymates.com', 'http://reborn-pro.local:4000'],
|
|
58
|
+
},
|
|
59
|
+
cordova: {},
|
|
60
|
+
plugins: {
|
|
61
|
+
FirebaseMessaging: {
|
|
62
|
+
presentationOptions: ['badge', 'sound', 'alert'],
|
|
63
|
+
},
|
|
64
|
+
GoogleAuth: {
|
|
65
|
+
scopes: ['profile', 'email'],
|
|
66
|
+
//self created production web client
|
|
67
|
+
clientId: '734627482469-37q563qta2jt6bmhksemmvco8si0pmai.apps.googleusercontent.com',
|
|
68
|
+
serverClientId: '580968717451-68kpj51ulab8q7drbd3sr7imodai81lp.apps.googleusercontent.com',
|
|
69
|
+
//auto generated web client
|
|
70
|
+
//clientId: '580968717451-68kpj51ulab8q7drbd3sr7imodai81lp.apps.googleusercontent.com ',
|
|
71
|
+
androidClientId: '580968717451-68kpj51ulab8q7drbd3sr7imodai81lp.apps.googleusercontent.com',
|
|
72
|
+
|
|
73
|
+
iosClientId: '580968717451-aoj80o3e8qfjlmbrgabf916mfk4t3ntr.apps.googleusercontent.com',
|
|
74
|
+
forceCodeForRefreshToken: true,
|
|
75
|
+
},
|
|
76
|
+
CapacitorHttp: {
|
|
77
|
+
enabled: true,
|
|
78
|
+
},
|
|
79
|
+
SplashScreen: {
|
|
80
|
+
launchShowDuration: 400,
|
|
81
|
+
launchAutoHide: true,
|
|
82
|
+
// launchFadeOutDuration: 500,
|
|
83
|
+
backgroundColor: '#F7E5FF',
|
|
84
|
+
androidSplashResourceName: 'splash',
|
|
85
|
+
// androidScaleType: 'CENTER',
|
|
86
|
+
showSpinner: false,
|
|
87
|
+
// androidSpinnerStyle: 'large',
|
|
88
|
+
// iosSpinnerStyle: 'small',
|
|
89
|
+
// spinnerColor: '#999999',
|
|
90
|
+
splashFullScreen: true,
|
|
91
|
+
splashImmersive: true,
|
|
92
|
+
// layoutName: 'launch_screen',
|
|
93
|
+
// useDialog: true,
|
|
94
|
+
},
|
|
95
|
+
},
|
|
8
96
|
};
|
|
9
97
|
|
|
10
98
|
export default config;
|
|
@@ -2,14 +2,16 @@ import {Link} from 'react-router-dom';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import style from './Header.scss.json';
|
|
4
4
|
import './Header.scss';
|
|
5
|
+
import {ROUTES} from '../routes';
|
|
5
6
|
|
|
6
7
|
export function Header() {
|
|
7
8
|
return (
|
|
8
9
|
<header className={style.header}>
|
|
9
10
|
<h1>${name}</h1>
|
|
10
11
|
<nav className={style.menu}>
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
{Object.keys(ROUTES).map(key => {
|
|
13
|
+
return <Link key={key} to={ROUTES[key].path}>{ROUTES[key].label || key}</Link>
|
|
14
|
+
})}
|
|
13
15
|
</nav>
|
|
14
16
|
</header>
|
|
15
17
|
);
|
|
@@ -10,10 +10,12 @@ export const ROUTES = {
|
|
|
10
10
|
path: '/',
|
|
11
11
|
component: lazy(() => import('./pages/Home' /* webpackPrefetch: true */)),
|
|
12
12
|
requireAuth: true,
|
|
13
|
+
label:"Home",
|
|
13
14
|
},
|
|
14
15
|
page1: {
|
|
15
16
|
path: '/page1',
|
|
16
17
|
component: lazy(() => import('./pages/Page1' /* webpackPrefetch: true */)),
|
|
18
|
+
label:"Page 1",
|
|
17
19
|
},
|
|
18
20
|
};
|
|
19
21
|
|
package/lib/cli-methods.js
CHANGED
|
@@ -35,7 +35,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
35
35
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
36
|
};
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.executeCommandForPackage = exports.addCapacitor = exports.executeCommandForEachPackage = exports.buildUpdated = exports.publishPackage = exports.publishUpdated = exports.buildPackage = exports.buildMetadata = exports.register = exports.createPackage = exports.createComponent = exports.createSetComponent = exports.createShape = exports.createOntology = exports.getLincdPackages = exports.buildAll = exports.developPackage = exports.createApp = void 0;
|
|
38
|
+
exports.executeCommandForPackage = exports.addCapacitor = exports.executeCommandForEachPackage = exports.buildUpdated = exports.publishPackage = exports.publishUpdated = exports.buildPackage = exports.buildMetadata = exports.register = exports.createPackage = exports.depCheck = exports.createComponent = exports.createSetComponent = exports.createShape = exports.createOntology = exports.getLincdPackages = exports.buildAll = exports.developPackage = exports.createApp = void 0;
|
|
39
39
|
const path_1 = __importDefault(require("path"));
|
|
40
40
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
41
41
|
const utils_1 = require("./utils");
|
|
@@ -47,6 +47,7 @@ const JSONLDWriter_1 = require("lincd-jsonld/lib/utils/JSONLDWriter");
|
|
|
47
47
|
const NameSpace_1 = require("lincd/lib/utils/NameSpace");
|
|
48
48
|
const Prefix_1 = require("lincd/lib/utils/Prefix");
|
|
49
49
|
const get_env_vars_1 = require("env-cmd/dist/get-env-vars");
|
|
50
|
+
const depcheck_1 = __importDefault(require("depcheck"));
|
|
50
51
|
var glob = require('glob');
|
|
51
52
|
var variables = {};
|
|
52
53
|
var open = require('open');
|
|
@@ -706,6 +707,28 @@ const createComponent = (name, basePath = process.cwd()) => __awaiter(void 0, vo
|
|
|
706
707
|
}
|
|
707
708
|
});
|
|
708
709
|
exports.createComponent = createComponent;
|
|
710
|
+
const depCheck = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
711
|
+
(0, depcheck_1.default)(process.cwd(), {}, (results) => {
|
|
712
|
+
if (results.missing) {
|
|
713
|
+
let missing = Object.keys(results.missing);
|
|
714
|
+
//currently react is not an explicit dependency, but we should add it as a peer dependency
|
|
715
|
+
missing.splice(missing.indexOf("react"));
|
|
716
|
+
if (missing.length > 0) {
|
|
717
|
+
console.warn(chalk_1.default.red("Missing dependencies:\n\t" + missing.join(",\n\t")));
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
// if(Object.keys(results.invalidFiles).length > 0) {
|
|
721
|
+
// console.warn(chalk.red("Invalid files:\n")+Object.keys(results.invalidFiles).join(",\n"));
|
|
722
|
+
// }
|
|
723
|
+
// if(Object.keys(results.invalidDirs).length > 0) {
|
|
724
|
+
// console.warn(chalk.red("Invalid dirs:\n")+results.invalidDirs.toString());
|
|
725
|
+
// }
|
|
726
|
+
// if(results.unused) {
|
|
727
|
+
// console.warn("Unused dependencies: "+results.missing.join(", "));
|
|
728
|
+
// }
|
|
729
|
+
});
|
|
730
|
+
});
|
|
731
|
+
exports.depCheck = depCheck;
|
|
709
732
|
const createPackage = (name, uriBase, basePath = process.cwd()) => __awaiter(void 0, void 0, void 0, function* () {
|
|
710
733
|
//if ran with npx, basePath will be the root directory of the repository, even if we're executing from a sub folder (the root directory is where node_modules lives and package.json with workspaces)
|
|
711
734
|
//so we manually find a packages folder, if it exists we go into that.
|
|
@@ -1440,6 +1463,18 @@ var executeCommandForEachPackage = function (packages, command, filterMethod, fi
|
|
|
1440
1463
|
return p;
|
|
1441
1464
|
};
|
|
1442
1465
|
exports.executeCommandForEachPackage = executeCommandForEachPackage;
|
|
1466
|
+
var gitIgnore = function (...entries) {
|
|
1467
|
+
//add each entry to the .gitignore file
|
|
1468
|
+
let gitIgnorePath = path_1.default.resolve(process.cwd(), '.gitignore');
|
|
1469
|
+
addLinesToFile(gitIgnorePath, entries);
|
|
1470
|
+
};
|
|
1471
|
+
var addLinesToFile = function (filePath, entries) {
|
|
1472
|
+
let fileContents = fs_extra_1.default.readFileSync(filePath, { encoding: 'utf8' });
|
|
1473
|
+
entries.forEach(entry => {
|
|
1474
|
+
fileContents += '\n' + entry;
|
|
1475
|
+
});
|
|
1476
|
+
fs_extra_1.default.writeFileSync(filePath, fileContents);
|
|
1477
|
+
};
|
|
1443
1478
|
var addCapacitor = function (basePath = process.cwd()) {
|
|
1444
1479
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1445
1480
|
let targetFolder = ensureFolderExists(basePath);
|
|
@@ -1458,6 +1493,7 @@ var addCapacitor = function (basePath = process.cwd()) {
|
|
|
1458
1493
|
};
|
|
1459
1494
|
fs_extra_1.default.writeFile(envCmdPath, JSON.stringify(envCmd, null, 2));
|
|
1460
1495
|
log('Edited .env-cmdrc.json');
|
|
1496
|
+
gitIgnore('android/app/build', 'android/**/capacitor.build.gradle', 'ios/App/App/public', 'ios/App/Podfile');
|
|
1461
1497
|
//update package.json scripts
|
|
1462
1498
|
let pack = (0, utils_1.getPackageJSON)(basePath);
|
|
1463
1499
|
pack.scripts['build-static'] = 'env-cmd -e static-dev node frontend/scripts/build.js';
|
package/lib/cli.js
CHANGED
|
@@ -110,6 +110,9 @@ program.command('all [action] [filter] [filter-value]').action((command, filter,
|
|
|
110
110
|
program.command('dev [target] [mode]').action((target, mode) => {
|
|
111
111
|
(0, cli_methods_1.developPackage)(target, mode);
|
|
112
112
|
});
|
|
113
|
+
program.command('depcheck').action((target, mode) => {
|
|
114
|
+
(0, cli_methods_1.depCheck)();
|
|
115
|
+
});
|
|
113
116
|
program
|
|
114
117
|
.command('package')
|
|
115
118
|
.action((name, command, args) => {
|
package/lib/config-grunt.js
CHANGED
|
@@ -75,7 +75,7 @@ function setupGrunt(grunt, moduleName, config) {
|
|
|
75
75
|
grunt.registerTask('build-es6', (0, utils_1.flatten)([
|
|
76
76
|
'prepare-build',
|
|
77
77
|
buildFrontend ? 'webpack:build-es6' : null,
|
|
78
|
-
buildServer ? ['clean:lib', 'exec:build-lib', 'copy:lib'] : null,
|
|
78
|
+
buildServer ? ['clean:lib', 'exec:build-lib', 'copy:lib', 'exec:depcheck'] : null,
|
|
79
79
|
// 'exec:shapes',
|
|
80
80
|
]));
|
|
81
81
|
grunt.registerTask('build-lib', ['prepare-build', 'exec:build-lib', 'copy:lib']);
|
|
@@ -96,6 +96,7 @@ function setupGrunt(grunt, moduleName, config) {
|
|
|
96
96
|
'build-lib-es5': 'yarn exec tsc --pretty -p tsconfig-es5.json',
|
|
97
97
|
beforeBuildCommand: config.beforeBuildCommand,
|
|
98
98
|
'server-dev': 'tsc -w',
|
|
99
|
+
depcheck: 'yarn lincd depcheck',
|
|
99
100
|
test: 'tsc -w',
|
|
100
101
|
// shapes: 'lincd shapes',
|
|
101
102
|
'css-declarations': 'tcm -p **/*.scss',
|
package/lib/utils.js
CHANGED
|
@@ -53,7 +53,6 @@ exports.getPackageJSON = getPackageJSON;
|
|
|
53
53
|
* @param packageJson
|
|
54
54
|
*/
|
|
55
55
|
var getLINCDDependencies = function (packageJson, checkedPackages = new Set()) {
|
|
56
|
-
var _a;
|
|
57
56
|
if (!packageJson) {
|
|
58
57
|
packageJson = (0, exports.getPackageJSON)();
|
|
59
58
|
}
|
|
@@ -81,33 +80,71 @@ var getLINCDDependencies = function (packageJson, checkedPackages = new Set()) {
|
|
|
81
80
|
}
|
|
82
81
|
}
|
|
83
82
|
if (firstTime) {
|
|
84
|
-
let dependencyMap = new Map();
|
|
83
|
+
// let dependencyMap:Map<string,Set<string>> = new Map();
|
|
85
84
|
let lincdPackageNames = new Set(lincdPackagePaths.map(([packageName, modulePath, pkgDependencies]) => packageName));
|
|
86
85
|
//remove lincd-cli from the list of lincd packages
|
|
87
86
|
lincdPackageNames.delete('lincd-cli');
|
|
88
|
-
lincdPackagePaths.forEach(([packageName, modulePath, pkgDependencies]) => {
|
|
89
|
-
|
|
87
|
+
lincdPackagePaths.forEach(([packageName, modulePath, pkgDependencies], key) => {
|
|
88
|
+
let lincdDependencies = pkgDependencies.filter(dependency => lincdPackageNames.has(dependency));
|
|
89
|
+
if (packageName === 'lincd-cli') {
|
|
90
|
+
//remove lincd-modules from the dependencies of lincd-cli (it's not a hard dependency, and it messes things up)
|
|
91
|
+
lincdDependencies.splice(lincdDependencies.indexOf('lincd-modules'), 1);
|
|
92
|
+
}
|
|
93
|
+
// dependencyMap.set(packageName, new Set(lincdDependencies));
|
|
94
|
+
//update dependencies to be the actual lincd package objects
|
|
95
|
+
lincdPackagePaths[key][2] = lincdDependencies;
|
|
90
96
|
});
|
|
91
|
-
//
|
|
92
|
-
|
|
93
|
-
//
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
97
|
+
// //add the nested dependencies for each lincd package
|
|
98
|
+
// for (let [packageName,pkgDependencies] of dependencyMap) {
|
|
99
|
+
// pkgDependencies.forEach((dependency) => {
|
|
100
|
+
// if (dependencyMap.has(dependency)) {
|
|
101
|
+
// dependencyMap.get(dependency).forEach((nestedDependency) => {
|
|
102
|
+
// pkgDependencies.add(nestedDependency);
|
|
103
|
+
// });
|
|
104
|
+
// }
|
|
105
|
+
// });
|
|
106
|
+
// }
|
|
107
|
+
//
|
|
108
|
+
// dependencyMap.forEach((dependencies,packageName) => {
|
|
109
|
+
// //check for circular dependencies
|
|
110
|
+
// if([...dependencies].some(dependency => {
|
|
111
|
+
// return dependencyMap.get(dependency).has(packageName);
|
|
112
|
+
// }))
|
|
113
|
+
// {
|
|
114
|
+
// console.warn(`Circular dependency detected between ${packageName} and ${dependency}`);
|
|
115
|
+
// }
|
|
116
|
+
//
|
|
117
|
+
// });
|
|
118
|
+
// 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
|
|
119
|
+
let sortedPackagePaths = [];
|
|
120
|
+
let addedPackages = new Set(['lincd']);
|
|
121
|
+
sortedPackagePaths.push(lincdPackagePaths.find(([packageName]) => {
|
|
122
|
+
return packageName === 'lincd';
|
|
123
|
+
}));
|
|
124
|
+
while (addedPackages.size !== lincdPackagePaths.length) {
|
|
125
|
+
let startSize = addedPackages.size;
|
|
126
|
+
lincdPackagePaths.forEach(([packageName, modulePath, pkgDependencies]) => {
|
|
127
|
+
if (!addedPackages.has(packageName) && pkgDependencies.every(dependency => addedPackages.has(dependency))) {
|
|
128
|
+
sortedPackagePaths.push([packageName, modulePath, pkgDependencies]);
|
|
129
|
+
addedPackages.add(packageName);
|
|
100
130
|
}
|
|
101
131
|
});
|
|
132
|
+
if (startSize === addedPackages.size) {
|
|
133
|
+
console.warn('Could not sort lincd packages, circular dependencies?');
|
|
134
|
+
break;
|
|
135
|
+
}
|
|
102
136
|
}
|
|
103
137
|
//sort the lincd packages by least dependent first
|
|
104
|
-
lincdPackagePaths.sort(([packageNameA
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
138
|
+
// lincdPackagePaths = lincdPackagePaths.sort(([packageNameA],[packageNameB]) => {
|
|
139
|
+
// //if package A depends on package B, then package B should come first
|
|
140
|
+
// if (dependencyMap.get(packageNameA).has(packageNameB)) {
|
|
141
|
+
// console.log(packageNameA+' depends on '+packageNameB+ ' (below)')
|
|
142
|
+
// return 1;
|
|
143
|
+
// }
|
|
144
|
+
// console.log(packageNameA+' above '+packageNameB)
|
|
145
|
+
// return -1;
|
|
146
|
+
// });
|
|
147
|
+
return sortedPackagePaths;
|
|
111
148
|
}
|
|
112
149
|
return lincdPackagePaths;
|
|
113
150
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lincd-cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.37",
|
|
4
4
|
"description": "Command line tools for the lincd.js library",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
"build": "npm exec tsc",
|
|
9
9
|
"dev": "npm exec tsc -w"
|
|
10
10
|
},
|
|
11
|
-
"lincd": true,
|
|
12
11
|
"keywords": [
|
|
13
12
|
"lincd",
|
|
14
13
|
"cli",
|
|
@@ -45,6 +44,7 @@
|
|
|
45
44
|
"commander": "^9.4.0",
|
|
46
45
|
"copy-webpack-plugin": "^11.0.0",
|
|
47
46
|
"css-loader": "^6.7.1",
|
|
47
|
+
"depcheck": "^1.4.3",
|
|
48
48
|
"env-cmd": "^10.1.0",
|
|
49
49
|
"find-nearest-package-json": "^2.0.1",
|
|
50
50
|
"fs-extra": "^10.1.0",
|