runlify 0.0.601 → 0.0.603
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/build/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocsConfiguration.js +2 -2
- package/build/projectsGeneration/generators/fileTemplates/ui/environment/docs/adminAppDocsConfiguration.js +2 -2
- package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/App.js +3 -3
- package/package.json +7 -6
|
@@ -21,7 +21,7 @@ var backDocsConfiguration = function (_a) {
|
|
|
21
21
|
var backVars = system.configVars.filter(function (v) { return v.scopes.includes('back'); });
|
|
22
22
|
return "\n# Configuration\n\nProject takes configurations from two places: from config files in `projectRoot/config` folder and from environment variables.\n\nEnvironment variables takes precedence.\n\n## Loading from files\n\nThere is two files, configuration will be loaded from: `default.json` and `${ENV}.json` where `${ENV}` is `ENV` environment variable or `dev` if `ENV` environment variable is not set.\n\nIf both files exists they will be merged. `${ENV}.json` takes precedence.\n\n> **_WARNING:_** `default.json` stored in git so do not put secret information in there (database credentials, passwords, etc.)\n\n## Configuration variables\n\n".concat((0, markdown_table_1.default)(__spreadArray([
|
|
23
23
|
['Key in file', 'Environment', 'Type', 'Required', 'Default value', 'Need for']
|
|
24
|
-
], backVars.map(function (v) { return [v.name, (0, change_case_1.constantCase)(v.name), v.type, v.required, v.default, v.needFor]; }), true)), "\n");
|
|
24
|
+
], backVars.map(function (v) { return [v.name, (0, change_case_1.constantCase)(v.name), v.type, String(v.required), v.default, v.needFor]; }), true)), "\n");
|
|
25
25
|
};
|
|
26
26
|
exports.backDocsConfiguration = backDocsConfiguration;
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja0RvY3NDb25maWd1cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0b3JzL2ZpbGVUZW1wbGF0ZXMvYmFjay9lbnZpcm9ubWVudC9kb2NzL2JhY2tEb2NzQ29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0QkFBNEI7QUFDNUIsMkNBQTBDO0FBQzFDLGtFQUEwQztBQUduQyxJQUFNLHFCQUFxQixHQUFHLFVBQUMsRUFFVjtRQUQxQixNQUFNLFlBQUE7SUFFTixJQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUF6QixDQUF5QixDQUFDLENBQUE7SUFFM0UsT0FBTywrb0JBaUJQLElBQUEsd0JBQWE7UUFDYixDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDO09BQzVFLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBQSwwQkFBWSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQWhGLENBQWdGLENBQUMsUUFDeEcsT0FDRCxDQUFBO0FBQ0QsQ0FBQyxDQUFBO0FBM0JZLFFBQUEscUJBQXFCLHlCQTJCakMifQ==
|
|
@@ -23,7 +23,7 @@ var adminAppDocsConfiguration = function (_a) {
|
|
|
23
23
|
});
|
|
24
24
|
return "\n# Configuration\n\nProject takes configurations from two places: from config files in `projectRoot/config` folder and from environment variables.\n\nEnvironment variables takes precedence.\n\n## Loading from files\n\nThere is two files, configuration will be loaded from: `default.json` and `${ENV}.json` where `${ENV}` is `ENV` environment variable or `dev` if `ENV` environment variable is not set.\n\nIf both files exists they will be merged. `${ENV}.json` takes precedence.\n\n> **_WARNING:_** `default.json` stored in git so do not put secret information in there (database credentials, passwords, etc.)\n\n## Configuration variables\n\n".concat((0, markdown_table_1.default)(__spreadArray([
|
|
25
25
|
['Key in file', 'Environment', 'Type', 'Required', 'Default value', 'Need for']
|
|
26
|
-
], adminVars.map(function (v) { return [v.name, (0, change_case_1.constantCase)(v.name), v.type, v.required, v.default, v.needFor]; }), true)), "\n");
|
|
26
|
+
], adminVars.map(function (v) { return [v.name, (0, change_case_1.constantCase)(v.name), v.type, String(v.required), v.default, v.needFor]; }), true)), "\n");
|
|
27
27
|
};
|
|
28
28
|
exports.adminAppDocsConfiguration = adminAppDocsConfiguration;
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW5BcHBEb2NzQ29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9wcm9qZWN0c0dlbmVyYXRpb24vZ2VuZXJhdG9ycy9maWxlVGVtcGxhdGVzL3VpL2Vudmlyb25tZW50L2RvY3MvYWRtaW5BcHBEb2NzQ29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0QkFBNEI7QUFDNUIsMkNBQTBDO0FBQzFDLGtFQUEwQztBQUduQyxJQUFNLHlCQUF5QixHQUFHLFVBQUMsRUFFZDtRQUQxQixNQUFNLFlBQUE7SUFFTixJQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFDLENBQUM7UUFDM0MsT0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7SUFBOUIsQ0FBOEIsQ0FDL0IsQ0FBQTtJQUVELE9BQU8sK29CQWlCUCxJQUFBLHdCQUFhO1FBQ2IsQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLFVBQVUsQ0FBQztPQUM1RSxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUEsMEJBQVksRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFoRixDQUFnRixDQUFDLFFBQ3pHLE9BQ0QsQ0FBQTtBQUNELENBQUMsQ0FBQTtBQTdCWSxRQUFBLHlCQUF5Qiw2QkE2QnJDIn0=
|
|
@@ -6,9 +6,9 @@ var utils_1 = require("../../../../../utils");
|
|
|
6
6
|
var uiAppTmpl = function (_a, options) {
|
|
7
7
|
var defaultLanguage = _a.system.defaultLanguage;
|
|
8
8
|
if (options === void 0) { options = types_1.defaultBootstrapEntityOptions; }
|
|
9
|
-
return "import * as React from 'react';\nimport {useState, useEffect, useRef} from 'react';\nimport {\n Admin,\n AuthProvider,\n useTranslate,\n CustomRoutes,\n localStorageStore,\n DataProvider,\n} from 'react-admin';\nimport {\n ApolloClient,\n ApolloProvider,\n NormalizedCacheObject,\n} from '@apollo/client';\nimport Keycloak, {\n KeycloakConfig,\n KeycloakTokenParsed,\n KeycloakInitOptions,\n KeycloakError,\n} from 'keycloak-js';\nimport './App.css';\nimport Layout from './layout/Layout';\nimport Login from './layout/Login';\nimport dataProviderFactory from './dataProvider';\nimport getConfig from './config/config';\nimport {getResources} from './adm/resources';\nimport Dashboard from './adm/Dashboard';\nimport {DebugProvider} from './contexts/DebugContext';\nimport getAuthProvider from './authProvider/getAuthProvider';\nimport {onStart} from './systemHooks';\nimport getApollo, {updateApolloLinks} from './apollo/getApollo';\nimport Loader from './shared/Loader';\nimport {darkTheme,
|
|
9
|
+
return "import * as React from 'react';\nimport {useState, useEffect, useRef} from 'react';\nimport {\n Admin,\n AuthProvider,\n useTranslate,\n CustomRoutes,\n localStorageStore,\n DataProvider,\n} from 'react-admin';\nimport {\n ApolloClient,\n ApolloProvider,\n NormalizedCacheObject,\n} from '@apollo/client';\nimport Keycloak, {\n KeycloakConfig,\n KeycloakTokenParsed,\n KeycloakInitOptions,\n KeycloakError,\n} from 'keycloak-js';\nimport './App.css';\nimport Layout from './layout/Layout';\nimport Login from './layout/Login';\nimport dataProviderFactory from './dataProvider';\nimport getConfig from './config/config';\nimport {getResources} from './adm/resources';\nimport Dashboard from './adm/Dashboard';\nimport {DebugProvider} from './contexts/DebugContext';\nimport getAuthProvider from './authProvider/getAuthProvider';\nimport {onStart} from './systemHooks';\nimport getApollo, {updateApolloLinks} from './apollo/getApollo';\nimport Loader from './shared/Loader';\nimport {lightTheme".concat(options.themesEnabled ? ', darkTheme' : '', "} from './layout/themes';\nimport {routes} from './adm/routes';\nimport i18nProvider from './i18nProvider';\nimport log from './utils/log';\nimport {BrowserRouter} from 'react-router-dom';\n").concat(options.skipWarningThisIsGenerated
|
|
10
10
|
? ''
|
|
11
|
-
: "\n// ".concat(utils_1.generatedWarning, "\n"), "\nonStart();\n\nconst keycloakInitOptions: KeycloakInitOptions = {onLoad: 'login-required'};\n\nconst getPermissions = (decoded: KeycloakTokenParsed) => {\n const roles = decoded?.realm_access?.roles;\n if (!roles) {\n return false;\n }\n\n if (roles.includes('admin')) {\n return 'admin';\n }\n\n if (roles.includes('user')) {\n return 'user';\n }\n\n return false;\n};\n\nconst App = () => {\n const dataProvider = useRef<DataProvider | undefined>(undefined);\n const authProvider = useRef<AuthProvider | undefined>(undefined);\n // const client = useRef<ApolloClient<NormalizedCacheObject> | undefined>(undefined);\n const [client, setClient] = useState<ApolloClient<NormalizedCacheObject> | null>(null);\n const [keycloak, setKeycloak] = useState<Keycloak | undefined>(undefined);\n const translate = useTranslate();\n\n useEffect(() => {\n const fetchDataProvider = async () => {\n const config = await getConfig();\n\n const keycloakConfig: KeycloakConfig = {\n url: config.oidcAdmUrl,\n realm: config.oidcAdmRealm,\n clientId: config.oidcAdmClientId,\n };\n\n const keycloakClient = new Keycloak(keycloakConfig);\n\n keycloakClient.onAuthError =\n (errorData: KeycloakError) => log.info(`onAuthError. error: ${errorData?.error}, description: ${errorData?.error_description}`);\n\n keycloakClient.onAuthRefreshError = () => log.info('onAuthRefreshError');\n keycloakClient.onActionUpdate = (status: string) => log.info(`onActionUpdate. status: ${status}`);\n keycloakClient.onAuthLogout = () => log.info('onAuthLogout');\n keycloakClient.onAuthRefreshSuccess = () => log.info('onAuthRefreshSuccess');\n keycloakClient.onAuthSuccess = () => log.info('onAuthSuccess');\n keycloakClient.onReady = (authenticated?: boolean) => log.info(`onReady. authenticated: ${authenticated}`);\n keycloakClient.onTokenExpired = () => log.info('onTokenExpired');\n keycloakClient.onAuthRefreshError = () => log.info('onAuthRefreshError');\n\n await keycloakClient.init(keycloakInitOptions);\n\n log.info(`token: ${keycloakClient.token}`);\n\n authProvider.current = getAuthProvider(\n config.endpoint,\n keycloakClient,\n {\n onPermissions: getPermissions,\n },\n );\n\n const client = getApollo(config.endpoint, keycloakClient);\n setClient(client);\n\n dataProvider.current = await dataProviderFactory(client);\n\n updateApolloLinks(config.endpoint, keycloakClient);\n\n setKeycloak(keycloakClient);\n };\n\n if (!keycloak) {\n fetchDataProvider();\n }\n }, [keycloak]);\n\n if (!dataProvider.current || !client || !authProvider.current) {\n return (\n <Loader />\n );\n }\n\n return (\n <React.StrictMode>\n <BrowserRouter>\n <ApolloProvider client={client}>\n <DebugProvider>\n <Admin\n dashboard={Dashboard}\n dataProvider={dataProvider.current}\n i18nProvider={i18nProvider}\n layout={Layout}\n loading={Loader}\n loginPage={Login}\n authProvider={authProvider.current}\n title=''\n theme={lightTheme}\n store={localStorageStore('3')}\n lightTheme={lightTheme}").concat(options.themesEnabled ? "\n darkTheme={darkTheme}" : '', "\n >\n {permissions => [\n (\n <CustomRoutes key='customRoutes'>\n {routes}\n </CustomRoutes>\n ),\n ...getResources(translate, permissions),\n ]}\n </Admin>\n </DebugProvider>\n </ApolloProvider>\n </BrowserRouter>\n </React.StrictMode>\n );\n};\n\nexport default App;\n");
|
|
11
|
+
: "\n// ".concat(utils_1.generatedWarning, "\n"), "\nonStart();\n\nconst keycloakInitOptions: KeycloakInitOptions = {onLoad: 'login-required'};\n\nconst getPermissions = (decoded: KeycloakTokenParsed) => {\n const roles = decoded?.realm_access?.roles;\n if (!roles) {\n return false;\n }\n\n if (roles.includes('admin')) {\n return 'admin';\n }\n\n if (roles.includes('user')) {\n return 'user';\n }\n\n return false;\n};\n\nconst App = () => {\n const dataProvider = useRef<DataProvider | undefined>(undefined);\n const authProvider = useRef<AuthProvider | undefined>(undefined);\n // const client = useRef<ApolloClient<NormalizedCacheObject> | undefined>(undefined);\n const [client, setClient] = useState<ApolloClient<NormalizedCacheObject> | null>(null);\n const [keycloak, setKeycloak] = useState<Keycloak | undefined>(undefined);\n const translate = useTranslate();\n\n useEffect(() => {\n const fetchDataProvider = async () => {\n const config = await getConfig();\n\n const keycloakConfig: KeycloakConfig = {\n url: config.oidcAdmUrl,\n realm: config.oidcAdmRealm,\n clientId: config.oidcAdmClientId,\n };\n\n const keycloakClient = new Keycloak(keycloakConfig);\n\n keycloakClient.onAuthError =\n (errorData: KeycloakError) => log.info(`onAuthError. error: ${errorData?.error}, description: ${errorData?.error_description}`);\n\n keycloakClient.onAuthRefreshError = () => log.info('onAuthRefreshError');\n keycloakClient.onActionUpdate = (status: string) => log.info(`onActionUpdate. status: ${status}`);\n keycloakClient.onAuthLogout = () => log.info('onAuthLogout');\n keycloakClient.onAuthRefreshSuccess = () => log.info('onAuthRefreshSuccess');\n keycloakClient.onAuthSuccess = () => log.info('onAuthSuccess');\n keycloakClient.onReady = (authenticated?: boolean) => log.info(`onReady. authenticated: ${authenticated}`);\n\n const refresh = async () => {\n const ok = await keycloakClient.updateToken(3000);\n if (ok) {\n const {endpoint} = await getConfig();\n updateApolloLinks(endpoint, keycloakClient);\n }\n };\n\n // eslint-disable-next-line require-atomic-updates\n keycloakClient.onTokenExpired = () => {\n refresh().catch(log.warn);\n log.info('onTokenExpired');\n };\n\n keycloakClient.onAuthRefreshError = () => log.info('onAuthRefreshError');\n\n await keycloakClient.init(keycloakInitOptions);\n\n log.info(`token: ${keycloakClient.token}`);\n\n authProvider.current = getAuthProvider(\n config.endpoint,\n keycloakClient,\n {\n onPermissions: getPermissions,\n },\n );\n\n const client = getApollo(config.endpoint, keycloakClient);\n setClient(client);\n\n dataProvider.current = await dataProviderFactory(client);\n\n updateApolloLinks(config.endpoint, keycloakClient);\n\n setKeycloak(keycloakClient);\n };\n\n if (!keycloak) {\n fetchDataProvider();\n }\n }, [keycloak]);\n\n if (!dataProvider.current || !client || !authProvider.current) {\n return (\n <Loader />\n );\n }\n\n return (\n <React.StrictMode>\n <BrowserRouter>\n <ApolloProvider client={client}>\n <DebugProvider>\n <Admin\n dashboard={Dashboard}\n dataProvider={dataProvider.current}\n i18nProvider={i18nProvider}\n layout={Layout}\n loading={Loader}\n loginPage={Login}\n authProvider={authProvider.current}\n title=''\n theme={lightTheme}\n store={localStorageStore('3')}\n lightTheme={lightTheme}").concat(options.themesEnabled ? "\n darkTheme={darkTheme}" : '', "\n >\n {permissions => [\n (\n <CustomRoutes key='customRoutes'>\n {routes}\n </CustomRoutes>\n ),\n ...getResources(translate, permissions),\n ]}\n </Admin>\n </DebugProvider>\n </ApolloProvider>\n </BrowserRouter>\n </React.StrictMode>\n );\n};\n\nexport default App;\n");
|
|
12
12
|
};
|
|
13
13
|
exports.uiAppTmpl = uiAppTmpl;
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Byb2plY3RzR2VuZXJhdGlvbi9nZW5lcmF0b3JzL2ZpbGVUZW1wbGF0ZXMvdWkvZW52aXJvbm1lbnQvc3JjL0FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSw4Q0FHNkI7QUFDN0IsOENBQXVEO0FBRWhELElBQU0sU0FBUyxHQUFHLFVBQ3ZCLEVBQTBELEVBQzFELE9BQStEO1FBRG5ELGVBQWUsNEJBQUE7SUFDM0Isd0JBQUEsRUFBQSxVQUFrQyxxQ0FBNkI7SUFDNUQsT0FBQSx1L0JBaUNlLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQSxDQUFDLENBQUMsRUFBRSwyTUFNM0QsT0FBTyxDQUFDLDBCQUEwQjtRQUNoQyxDQUFDLENBQUMsRUFBRTtRQUNKLENBQUMsQ0FBQyxlQUNELHdCQUFnQixPQUNwQiwycEhBc0hzQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyx1Q0FDM0IsQ0FBQSxDQUFDLENBQUMsRUFBRSwrYkFtQnZDO0FBckxJLENBcUxKLENBQUE7QUF4TFksUUFBQSxTQUFTLGFBd0xyQiJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "runlify",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.603",
|
|
4
4
|
"description": "runlify CLI",
|
|
5
5
|
"private": false,
|
|
6
6
|
"main": "build/index.js",
|
|
@@ -44,18 +44,19 @@
|
|
|
44
44
|
"winston": "^3.10.0"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
+
"@types/markdown-table": "^2.0.0",
|
|
47
48
|
"@types/cross-spawn": "^6.0.2",
|
|
48
49
|
"@types/jest": "^29.5.4",
|
|
49
50
|
"@types/nconf": "^0.10.3",
|
|
50
51
|
"@types/node": "^12.7.11",
|
|
51
52
|
"@types/ramda": "^0.29.3",
|
|
52
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
53
|
-
"@typescript-eslint/parser": "^
|
|
53
|
+
"@typescript-eslint/eslint-plugin": "^6.8.0",
|
|
54
|
+
"@typescript-eslint/parser": "^6.8.0",
|
|
54
55
|
"copyfiles": "^2.4.1",
|
|
55
|
-
"eslint": "^
|
|
56
|
-
"eslint-config-canonical": "^
|
|
56
|
+
"eslint": "^8.52.0",
|
|
57
|
+
"eslint-config-canonical": "^42.0.1",
|
|
57
58
|
"eslint-config-prettier": "^8.1.0",
|
|
58
|
-
"eslint-plugin-jest": "^27.
|
|
59
|
+
"eslint-plugin-jest": "^27.4.3",
|
|
59
60
|
"eslint-plugin-prettier": "^3.3.1",
|
|
60
61
|
"husky": "^5.1.3",
|
|
61
62
|
"jest": "^26.6.3",
|