@rockcarver/frodo-lib 0.16.0 → 0.16.2-0
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/CHANGELOG.md +12 -2
- package/cjs/ops/JourneyOps.js +43 -436
- package/cjs/ops/JourneyOps.js.map +1 -1
- package/cjs/ops/LogOps.js +5 -1
- package/cjs/ops/LogOps.js.map +1 -1
- package/cjs/ops/OpsTypes.js.map +1 -1
- package/cjs/storage/SessionStorage.js +2 -0
- package/cjs/storage/SessionStorage.js.map +1 -1
- package/esm/ops/JourneyOps.mjs +12 -321
- package/esm/ops/LogOps.mjs +5 -1
- package/esm/storage/SessionStorage.mjs +2 -0
- package/package.json +1 -1
- package/types/ops/JourneyOps.d.ts +14 -47
- package/types/ops/JourneyOps.d.ts.map +1 -1
- package/types/ops/LogOps.d.ts.map +1 -1
- package/types/ops/OpsTypes.d.ts +0 -8
- package/types/ops/OpsTypes.d.ts.map +1 -1
- package/types/storage/SessionStorage.d.ts +2 -0
- package/types/storage/SessionStorage.d.ts.map +1 -1
package/cjs/ops/LogOps.js
CHANGED
|
@@ -130,7 +130,11 @@ function _tailLogs() {
|
|
|
130
130
|
var noiseFilter = nf == null ? noise : nf;
|
|
131
131
|
|
|
132
132
|
if (Array.isArray(logsObject.result)) {
|
|
133
|
-
filteredLogs = logsObject.result.filter(el =>
|
|
133
|
+
filteredLogs = logsObject.result.filter(el => {
|
|
134
|
+
var _el$payload$transacti;
|
|
135
|
+
|
|
136
|
+
return !noiseFilter.includes(el.payload.logger) && !noiseFilter.includes(el.type) && (levels[0] === 'ALL' || levels.includes(resolvePayloadLevel(el))) && (typeof txid === 'undefined' || txid === null || ((_el$payload$transacti = el.payload.transactionId) === null || _el$payload$transacti === void 0 ? void 0 : _el$payload$transacti.includes(txid)));
|
|
137
|
+
});
|
|
134
138
|
}
|
|
135
139
|
|
|
136
140
|
filteredLogs.forEach(e => {
|
package/cjs/ops/LogOps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogOps.js","names":["unfilterableNoise","miscNoise","journeysNoise","journeys","samlNoise","saml","noise","concat","numLogLevelMap","logLevelMap","SEVERE","ERROR","FATAL","WARN","WARNING","CONFIG","INFO","INFORMATION","DEBUG","FINE","FINER","FINEST","ALL","defaultNoiseFilter","resolveLevel","level","Number","isNaN","parseInt","resolvePayloadLevel","log","type","payload","match","e","getLogSources","sources","getSources","then","response","data","result","forEach","item","push","catch","error","printMessage","tailLogs","source","levels","txid","cookie","nf","LogApi","tail","status","logsObject","filteredLogs","noiseFilter","Array","isArray","filter","el","includes","logger","transactionId","JSON","stringify","setTimeout","pagedResultsCookie","provisionCreds","keyName","storage","session","getUsername","getAPIKeys","k","name","getCurrentTimestamp","createAPIKeyAndSecret","resp","getTenant","fetchLogs","startTs","endTs","ffString","fetch"],"sources":["ops/LogOps.ts"],"sourcesContent":["import { printMessage } from './utils/Console';\nimport { getCurrentTimestamp } from './utils/ExportImportUtils';\nimport { createAPIKeyAndSecret, getAPIKeys, getSources } from '../api/LogApi';\n\nimport storage from '../storage/SessionStorage';\n\nimport * as LogApi from '../api/LogApi';\n\n// eslint-disable-next-line no-unused-vars\nconst unfilterableNoise = [\n 'text/plain', // Unfortunately, it is impossible to filter out those without excluding IDM script logging as well\n];\n\nconst miscNoise = [\n 'com.iplanet.dpro.session.operations.ServerSessionOperationStrategy',\n 'com.iplanet.dpro.session.SessionIDFactory',\n 'com.iplanet.dpro.session.share.SessionEncodeURL',\n 'com.iplanet.services.naming.WebtopNaming',\n 'com.iplanet.sso.providers.dpro.SSOProviderImpl',\n 'com.sun.identity.authentication.AuthContext',\n 'com.sun.identity.authentication.client.AuthClientUtils',\n 'com.sun.identity.authentication.config.AMAuthConfigType',\n 'com.sun.identity.authentication.config.AMAuthenticationManager',\n 'com.sun.identity.authentication.config.AMAuthLevelManager',\n 'com.sun.identity.authentication.config.AMConfiguration',\n 'com.sun.identity.authentication.jaas.LoginContext',\n 'com.sun.identity.authentication.modules.application.Application',\n 'com.sun.identity.authentication.server.AuthContextLocal',\n 'com.sun.identity.authentication.service.AMLoginContext',\n 'com.sun.identity.authentication.service.AuthContextLookup',\n 'com.sun.identity.authentication.service.AuthD',\n 'com.sun.identity.authentication.service.AuthUtils',\n 'com.sun.identity.authentication.service.DSAMECallbackHandler',\n 'com.sun.identity.authentication.service.LoginState',\n 'com.sun.identity.authentication.spi.AMLoginModule',\n 'com.sun.identity.delegation.DelegationEvaluatorImpl',\n 'com.sun.identity.idm.plugins.internal.AgentsRepo',\n 'com.sun.identity.idm.server.IdCachedServicesImpl',\n 'com.sun.identity.idm.server.IdRepoPluginsCache',\n 'com.sun.identity.idm.server.IdServicesImpl',\n 'com.sun.identity.log.spi.ISDebug',\n 'com.sun.identity.shared.encode.CookieUtils',\n 'com.sun.identity.sm.ldap.SMSLdapObject',\n 'com.sun.identity.sm.CachedSMSEntry',\n 'com.sun.identity.sm.CachedSubEntries',\n 'com.sun.identity.sm.DNMapper',\n 'com.sun.identity.sm.ServiceConfigImpl',\n 'com.sun.identity.sm.ServiceConfigManagerImpl',\n 'com.sun.identity.sm.SMSEntry',\n 'com.sun.identity.sm.SMSUtils',\n 'com.sun.identity.sm.SmsWrapperObject',\n 'oauth2',\n 'org.apache.http.client.protocol.RequestAuthCache',\n 'org.apache.http.impl.conn.PoolingHttpClientConnectionManager',\n 'org.apache.http.impl.nio.client.InternalHttpAsyncClient',\n 'org.apache.http.impl.nio.client.InternalIODispatch',\n 'org.apache.http.impl.nio.client.MainClientExec',\n 'org.apache.http.impl.nio.conn.ManagedNHttpClientConnectionImpl',\n 'org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager',\n 'org.forgerock.audit.AuditServiceImpl',\n 'org.forgerock.oauth2.core.RealmOAuth2ProviderSettings',\n 'org.forgerock.openam.authentication.service.JAASModuleDetector',\n 'org.forgerock.openam.authentication.service.LoginContextFactory',\n 'org.forgerock.openam.blacklist.BloomFilterBlacklist',\n 'org.forgerock.openam.blacklist.CTSBlacklist',\n 'org.forgerock.openam.core.realms.impl.CachingRealmLookup',\n 'org.forgerock.openam.core.rest.authn.RestAuthCallbackHandlerManager',\n 'org.forgerock.openam.core.rest.authn.trees.AuthTrees',\n 'org.forgerock.openam.cors.CorsFilter',\n 'org.forgerock.openam.cts.CTSPersistentStoreImpl',\n 'org.forgerock.openam.cts.impl.CoreTokenAdapter',\n 'org.forgerock.openam.cts.impl.queue.AsyncResultHandler',\n 'org.forgerock.openam.cts.reaper.ReaperDeleteOnQueryResultHandler',\n 'org.forgerock.openam.headers.DisableSameSiteCookiesFilter',\n 'org.forgerock.openam.idrepo.ldap.DJLDAPv3Repo',\n 'org.forgerock.openam.rest.CsrfFilter',\n 'org.forgerock.openam.rest.restAuthenticationFilter',\n 'org.forgerock.openam.rest.fluent.CrestLoggingFilter',\n 'org.forgerock.openam.session.cts.CtsOperations',\n 'org.forgerock.openam.session.stateless.StatelessSessionManager',\n 'org.forgerock.openam.sm.datalayer.impl.ldap.ExternalLdapConfig',\n 'org.forgerock.openam.sm.datalayer.impl.ldap.LdapQueryBuilder',\n 'org.forgerock.openam.sm.datalayer.impl.SeriesTaskExecutor',\n 'org.forgerock.openam.sm.datalayer.impl.SeriesTaskExecutorThread',\n 'org.forgerock.openam.sm.datalayer.providers.LdapConnectionFactoryProvider',\n 'org.forgerock.openam.sm.file.ConfigFileSystemHandler',\n 'org.forgerock.openam.social.idp.SocialIdentityProviders',\n 'org.forgerock.openam.utils.ClientUtils',\n 'org.forgerock.opendj.ldap.CachedConnectionPool',\n 'org.forgerock.opendj.ldap.LoadBalancer',\n 'org.forgerock.secrets.keystore.KeyStoreSecretStore',\n 'org.forgerock.secrets.propertyresolver.PropertyResolverSecretStore',\n 'org.forgerock.secrets.SecretsProvider',\n];\n\nconst journeysNoise = [\n 'org.forgerock.openam.auth.trees.engine.AuthTreeExecutor',\n];\n\n// eslint-disable-next-line no-unused-vars\nconst journeys = [\n 'org.forgerock.openam.auth.nodes.SelectIdPNode',\n 'org.forgerock.openam.auth.nodes.ValidatedPasswordNode',\n 'org.forgerock.openam.auth.nodes.ValidatedUsernameNode',\n 'org.forgerock.openam.auth.trees.engine.AuthTreeExecutor',\n];\n\nconst samlNoise = [\n 'com.sun.identity.cot.COTCache',\n 'com.sun.identity.plugin.configuration.impl.ConfigurationInstanceImpl',\n 'com.sun.identity.saml2.meta.SAML2MetaCache',\n 'com.sun.identity.saml2.profile.CacheCleanUpRunnable',\n 'org.apache.xml.security.keys.KeyInfo',\n 'org.apache.xml.security.signature.XMLSignature',\n 'org.apache.xml.security.utils.SignerOutputStream',\n 'org.apache.xml.security.utils.resolver.ResourceResolver',\n 'org.apache.xml.security.utils.resolver.implementations.ResolverFragment',\n 'org.apache.xml.security.algorithms.JCEMapper',\n 'org.apache.xml.security.algorithms.implementations.SignatureBaseRSA',\n 'org.apache.xml.security.algorithms.SignatureAlgorithm',\n 'org.apache.xml.security.utils.ElementProxy',\n 'org.apache.xml.security.transforms.Transforms',\n 'org.apache.xml.security.utils.DigesterOutputStream',\n 'org.apache.xml.security.signature.Reference',\n 'org.apache.xml.security.signature.Manifest',\n];\n\n// eslint-disable-next-line no-unused-vars\nconst saml = [\n 'jsp.saml2.spAssertionConsumer',\n 'com.sun.identity.saml.common.SAMLUtils',\n 'com.sun.identity.saml2.common.SAML2Utils',\n 'com.sun.identity.saml2.meta.SAML2MetaManager',\n 'com.sun.identity.saml2.xmlsig.FMSigProvider',\n];\n\nconst noise = miscNoise.concat(samlNoise).concat(journeysNoise);\n\nconst numLogLevelMap = {\n 0: ['SEVERE', 'ERROR', 'FATAL'],\n 1: ['WARNING', 'WARN', 'CONFIG'],\n 2: ['INFO', 'INFORMATION'],\n 3: ['DEBUG', 'FINE', 'FINER', 'FINEST'],\n 4: ['ALL'],\n};\n\nconst logLevelMap = {\n SEVERE: ['SEVERE', 'ERROR', 'FATAL'],\n ERROR: ['SEVERE', 'ERROR', 'FATAL'],\n FATAL: ['SEVERE', 'ERROR', 'FATAL'],\n WARN: ['SEVERE', 'ERROR', 'FATAL', 'WARNING', 'WARN', 'CONFIG'],\n WARNING: ['SEVERE', 'ERROR', 'FATAL', 'WARNING', 'WARN', 'CONFIG'],\n CONFIG: ['SEVERE', 'ERROR', 'FATAL', 'WARNING', 'WARN', 'CONFIG'],\n INFO: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n ],\n INFORMATION: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n ],\n DEBUG: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n FINE: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n FINER: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n FINEST: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n ALL: ['ALL'],\n};\n\nexport function defaultNoiseFilter() {\n return noise;\n}\n\nexport function resolveLevel(level) {\n // const levels = ['FATAL', 'ERROR', 'WARN', 'INFO', 'DEBUG', 'TRACE', 'ALL'];\n // levels.splice(levels.indexOf(levelName) + 1, levels.length);\n if (Number.isNaN(parseInt(level, 10))) {\n return logLevelMap[level];\n }\n return logLevelMap[numLogLevelMap[level][0]];\n}\n\n// It seems that the undesirable 'text/plain' logs start with a date, not a LEVEL\n// Therefore, for those, this function returns null, and thus filters out the undesirable\nexport function resolvePayloadLevel(log) {\n try {\n return log.type !== 'text/plain'\n ? log.payload.level\n : log.payload.match(/^([^:]*):/)[1];\n } catch (e) {\n // Fail-safe for no group match\n return null;\n }\n}\n\nexport async function getLogSources() {\n const sources = [];\n await getSources()\n .then((response) => {\n response.data.result.forEach((item) => {\n sources.push(item);\n });\n })\n .catch((error) => {\n printMessage(\n `getSources ERROR: get log sources call returned ${error}}`,\n 'error'\n );\n return [];\n });\n return sources;\n}\n\nexport async function tailLogs(source, levels, txid, cookie, nf) {\n try {\n const response = await LogApi.tail(source, cookie);\n if (response.status < 200 || response.status > 399) {\n printMessage(\n `tail ERROR: tail call returned ${response.status}`,\n 'error'\n );\n return null;\n }\n // if (!cookie) {\n // await saveConnection();\n // }\n const logsObject = response.data;\n let filteredLogs = [];\n const noiseFilter = nf == null ? noise : nf;\n if (Array.isArray(logsObject.result)) {\n filteredLogs = logsObject.result.filter(\n (el) =>\n !noiseFilter.includes(el.payload.logger) &&\n !noiseFilter.includes(el.type) &&\n (levels[0] === 'ALL' || levels.includes(resolvePayloadLevel(el))) &&\n (typeof txid === 'undefined' ||\n txid === null ||\n el.payload.transactionId.includes(txid))\n );\n }\n\n filteredLogs.forEach((e) => {\n printMessage(JSON.stringify(e.payload), 'data');\n });\n\n setTimeout(() => {\n tailLogs(source, levels, txid, logsObject.result.pagedResultsCookie, nf);\n }, 5000);\n return null;\n } catch (e) {\n printMessage(`tail ERROR: tail data error - ${e}`, 'error');\n return `tail ERROR: tail data error - ${e}`;\n }\n}\n\nexport async function provisionCreds() {\n try {\n let keyName = `frodo-${storage.session.getUsername()}`;\n return getAPIKeys()\n .then((response) => {\n response.data.result.forEach((k) => {\n if (k.name === keyName) {\n // append current timestamp to name if the named key already exists\n keyName = `${keyName}-${getCurrentTimestamp()}`;\n }\n });\n return createAPIKeyAndSecret(keyName)\n .then((resp) => {\n if (resp.data.name !== keyName) {\n printMessage(\n `create keys ERROR: could not create log API key ${keyName}`,\n 'error'\n );\n return null;\n }\n printMessage(\n `Created a new log API key [${keyName}] in ${storage.session.getTenant()}`\n );\n return resp.data;\n })\n .catch((error) => {\n printMessage(\n `create keys ERROR: create keys call returned ${error}`,\n 'error'\n );\n return null;\n });\n })\n .catch((error) => {\n printMessage(\n `get keys ERROR: get keys call returned ${error}`,\n 'error'\n );\n });\n } catch (e) {\n printMessage(`create keys ERROR: create keys data error - ${e}`, 'error');\n return null;\n }\n}\n\nexport async function fetchLogs(\n source,\n startTs,\n endTs,\n levels,\n txid,\n ffString,\n cookie,\n nf\n) {\n try {\n // console.log(`startTs: ${startTs} endTs : ${endTs}`);\n const response = await LogApi.fetch(source, startTs, endTs, cookie);\n if (response.status < 200 || response.status > 399) {\n printMessage(\n `fetch ERROR: fetch call returned ${response.status}`,\n 'error'\n );\n return null;\n }\n const logsObject = response.data;\n let filteredLogs = [];\n const noiseFilter = nf == null ? noise : nf;\n if (Array.isArray(logsObject.result)) {\n filteredLogs = logsObject.result.filter(\n (el) =>\n !noiseFilter.includes(el.payload.logger) &&\n !noiseFilter.includes(el.type) &&\n (levels[0] === 'ALL' || levels.includes(resolvePayloadLevel(el))) &&\n (typeof txid === 'undefined' ||\n txid === null ||\n el.payload.transactionId.includes(txid))\n );\n }\n\n filteredLogs.forEach((e) => {\n const log = JSON.stringify(e, null, 2);\n if (ffString) {\n if (log.includes(ffString)) {\n printMessage(log, 'data');\n }\n } else {\n printMessage(log, 'data');\n }\n });\n if (logsObject.pagedResultsCookie != null) {\n await fetchLogs(\n source,\n startTs,\n endTs,\n levels,\n txid,\n ffString,\n logsObject.pagedResultsCookie,\n nf\n );\n }\n return null;\n } catch (e) {\n printMessage(`fetch ERROR: fetch data error - ${e}`, 'error');\n return `fetch ERROR: fetch data error - ${e}`;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LogOps.js","names":["unfilterableNoise","miscNoise","journeysNoise","journeys","samlNoise","saml","noise","concat","numLogLevelMap","logLevelMap","SEVERE","ERROR","FATAL","WARN","WARNING","CONFIG","INFO","INFORMATION","DEBUG","FINE","FINER","FINEST","ALL","defaultNoiseFilter","resolveLevel","level","Number","isNaN","parseInt","resolvePayloadLevel","log","type","payload","match","e","getLogSources","sources","getSources","then","response","data","result","forEach","item","push","catch","error","printMessage","tailLogs","source","levels","txid","cookie","nf","LogApi","tail","status","logsObject","filteredLogs","noiseFilter","Array","isArray","filter","el","includes","logger","transactionId","JSON","stringify","setTimeout","pagedResultsCookie","provisionCreds","keyName","storage","session","getUsername","getAPIKeys","k","name","getCurrentTimestamp","createAPIKeyAndSecret","resp","getTenant","fetchLogs","startTs","endTs","ffString","fetch"],"sources":["ops/LogOps.ts"],"sourcesContent":["import { printMessage } from './utils/Console';\nimport { getCurrentTimestamp } from './utils/ExportImportUtils';\nimport { createAPIKeyAndSecret, getAPIKeys, getSources } from '../api/LogApi';\n\nimport storage from '../storage/SessionStorage';\n\nimport * as LogApi from '../api/LogApi';\n\n// eslint-disable-next-line no-unused-vars\nconst unfilterableNoise = [\n 'text/plain', // Unfortunately, it is impossible to filter out those without excluding IDM script logging as well\n];\n\nconst miscNoise = [\n 'com.iplanet.dpro.session.operations.ServerSessionOperationStrategy',\n 'com.iplanet.dpro.session.SessionIDFactory',\n 'com.iplanet.dpro.session.share.SessionEncodeURL',\n 'com.iplanet.services.naming.WebtopNaming',\n 'com.iplanet.sso.providers.dpro.SSOProviderImpl',\n 'com.sun.identity.authentication.AuthContext',\n 'com.sun.identity.authentication.client.AuthClientUtils',\n 'com.sun.identity.authentication.config.AMAuthConfigType',\n 'com.sun.identity.authentication.config.AMAuthenticationManager',\n 'com.sun.identity.authentication.config.AMAuthLevelManager',\n 'com.sun.identity.authentication.config.AMConfiguration',\n 'com.sun.identity.authentication.jaas.LoginContext',\n 'com.sun.identity.authentication.modules.application.Application',\n 'com.sun.identity.authentication.server.AuthContextLocal',\n 'com.sun.identity.authentication.service.AMLoginContext',\n 'com.sun.identity.authentication.service.AuthContextLookup',\n 'com.sun.identity.authentication.service.AuthD',\n 'com.sun.identity.authentication.service.AuthUtils',\n 'com.sun.identity.authentication.service.DSAMECallbackHandler',\n 'com.sun.identity.authentication.service.LoginState',\n 'com.sun.identity.authentication.spi.AMLoginModule',\n 'com.sun.identity.delegation.DelegationEvaluatorImpl',\n 'com.sun.identity.idm.plugins.internal.AgentsRepo',\n 'com.sun.identity.idm.server.IdCachedServicesImpl',\n 'com.sun.identity.idm.server.IdRepoPluginsCache',\n 'com.sun.identity.idm.server.IdServicesImpl',\n 'com.sun.identity.log.spi.ISDebug',\n 'com.sun.identity.shared.encode.CookieUtils',\n 'com.sun.identity.sm.ldap.SMSLdapObject',\n 'com.sun.identity.sm.CachedSMSEntry',\n 'com.sun.identity.sm.CachedSubEntries',\n 'com.sun.identity.sm.DNMapper',\n 'com.sun.identity.sm.ServiceConfigImpl',\n 'com.sun.identity.sm.ServiceConfigManagerImpl',\n 'com.sun.identity.sm.SMSEntry',\n 'com.sun.identity.sm.SMSUtils',\n 'com.sun.identity.sm.SmsWrapperObject',\n 'oauth2',\n 'org.apache.http.client.protocol.RequestAuthCache',\n 'org.apache.http.impl.conn.PoolingHttpClientConnectionManager',\n 'org.apache.http.impl.nio.client.InternalHttpAsyncClient',\n 'org.apache.http.impl.nio.client.InternalIODispatch',\n 'org.apache.http.impl.nio.client.MainClientExec',\n 'org.apache.http.impl.nio.conn.ManagedNHttpClientConnectionImpl',\n 'org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager',\n 'org.forgerock.audit.AuditServiceImpl',\n 'org.forgerock.oauth2.core.RealmOAuth2ProviderSettings',\n 'org.forgerock.openam.authentication.service.JAASModuleDetector',\n 'org.forgerock.openam.authentication.service.LoginContextFactory',\n 'org.forgerock.openam.blacklist.BloomFilterBlacklist',\n 'org.forgerock.openam.blacklist.CTSBlacklist',\n 'org.forgerock.openam.core.realms.impl.CachingRealmLookup',\n 'org.forgerock.openam.core.rest.authn.RestAuthCallbackHandlerManager',\n 'org.forgerock.openam.core.rest.authn.trees.AuthTrees',\n 'org.forgerock.openam.cors.CorsFilter',\n 'org.forgerock.openam.cts.CTSPersistentStoreImpl',\n 'org.forgerock.openam.cts.impl.CoreTokenAdapter',\n 'org.forgerock.openam.cts.impl.queue.AsyncResultHandler',\n 'org.forgerock.openam.cts.reaper.ReaperDeleteOnQueryResultHandler',\n 'org.forgerock.openam.headers.DisableSameSiteCookiesFilter',\n 'org.forgerock.openam.idrepo.ldap.DJLDAPv3Repo',\n 'org.forgerock.openam.rest.CsrfFilter',\n 'org.forgerock.openam.rest.restAuthenticationFilter',\n 'org.forgerock.openam.rest.fluent.CrestLoggingFilter',\n 'org.forgerock.openam.session.cts.CtsOperations',\n 'org.forgerock.openam.session.stateless.StatelessSessionManager',\n 'org.forgerock.openam.sm.datalayer.impl.ldap.ExternalLdapConfig',\n 'org.forgerock.openam.sm.datalayer.impl.ldap.LdapQueryBuilder',\n 'org.forgerock.openam.sm.datalayer.impl.SeriesTaskExecutor',\n 'org.forgerock.openam.sm.datalayer.impl.SeriesTaskExecutorThread',\n 'org.forgerock.openam.sm.datalayer.providers.LdapConnectionFactoryProvider',\n 'org.forgerock.openam.sm.file.ConfigFileSystemHandler',\n 'org.forgerock.openam.social.idp.SocialIdentityProviders',\n 'org.forgerock.openam.utils.ClientUtils',\n 'org.forgerock.opendj.ldap.CachedConnectionPool',\n 'org.forgerock.opendj.ldap.LoadBalancer',\n 'org.forgerock.secrets.keystore.KeyStoreSecretStore',\n 'org.forgerock.secrets.propertyresolver.PropertyResolverSecretStore',\n 'org.forgerock.secrets.SecretsProvider',\n];\n\nconst journeysNoise = [\n 'org.forgerock.openam.auth.trees.engine.AuthTreeExecutor',\n];\n\n// eslint-disable-next-line no-unused-vars\nconst journeys = [\n 'org.forgerock.openam.auth.nodes.SelectIdPNode',\n 'org.forgerock.openam.auth.nodes.ValidatedPasswordNode',\n 'org.forgerock.openam.auth.nodes.ValidatedUsernameNode',\n 'org.forgerock.openam.auth.trees.engine.AuthTreeExecutor',\n];\n\nconst samlNoise = [\n 'com.sun.identity.cot.COTCache',\n 'com.sun.identity.plugin.configuration.impl.ConfigurationInstanceImpl',\n 'com.sun.identity.saml2.meta.SAML2MetaCache',\n 'com.sun.identity.saml2.profile.CacheCleanUpRunnable',\n 'org.apache.xml.security.keys.KeyInfo',\n 'org.apache.xml.security.signature.XMLSignature',\n 'org.apache.xml.security.utils.SignerOutputStream',\n 'org.apache.xml.security.utils.resolver.ResourceResolver',\n 'org.apache.xml.security.utils.resolver.implementations.ResolverFragment',\n 'org.apache.xml.security.algorithms.JCEMapper',\n 'org.apache.xml.security.algorithms.implementations.SignatureBaseRSA',\n 'org.apache.xml.security.algorithms.SignatureAlgorithm',\n 'org.apache.xml.security.utils.ElementProxy',\n 'org.apache.xml.security.transforms.Transforms',\n 'org.apache.xml.security.utils.DigesterOutputStream',\n 'org.apache.xml.security.signature.Reference',\n 'org.apache.xml.security.signature.Manifest',\n];\n\n// eslint-disable-next-line no-unused-vars\nconst saml = [\n 'jsp.saml2.spAssertionConsumer',\n 'com.sun.identity.saml.common.SAMLUtils',\n 'com.sun.identity.saml2.common.SAML2Utils',\n 'com.sun.identity.saml2.meta.SAML2MetaManager',\n 'com.sun.identity.saml2.xmlsig.FMSigProvider',\n];\n\nconst noise = miscNoise.concat(samlNoise).concat(journeysNoise);\n\nconst numLogLevelMap = {\n 0: ['SEVERE', 'ERROR', 'FATAL'],\n 1: ['WARNING', 'WARN', 'CONFIG'],\n 2: ['INFO', 'INFORMATION'],\n 3: ['DEBUG', 'FINE', 'FINER', 'FINEST'],\n 4: ['ALL'],\n};\n\nconst logLevelMap = {\n SEVERE: ['SEVERE', 'ERROR', 'FATAL'],\n ERROR: ['SEVERE', 'ERROR', 'FATAL'],\n FATAL: ['SEVERE', 'ERROR', 'FATAL'],\n WARN: ['SEVERE', 'ERROR', 'FATAL', 'WARNING', 'WARN', 'CONFIG'],\n WARNING: ['SEVERE', 'ERROR', 'FATAL', 'WARNING', 'WARN', 'CONFIG'],\n CONFIG: ['SEVERE', 'ERROR', 'FATAL', 'WARNING', 'WARN', 'CONFIG'],\n INFO: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n ],\n INFORMATION: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n ],\n DEBUG: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n FINE: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n FINER: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n FINEST: [\n 'SEVERE',\n 'ERROR',\n 'FATAL',\n 'WARNING',\n 'WARN',\n 'CONFIG',\n 'INFO',\n 'INFORMATION',\n 'DEBUG',\n 'FINE',\n 'FINER',\n 'FINEST',\n ],\n ALL: ['ALL'],\n};\n\nexport function defaultNoiseFilter() {\n return noise;\n}\n\nexport function resolveLevel(level) {\n // const levels = ['FATAL', 'ERROR', 'WARN', 'INFO', 'DEBUG', 'TRACE', 'ALL'];\n // levels.splice(levels.indexOf(levelName) + 1, levels.length);\n if (Number.isNaN(parseInt(level, 10))) {\n return logLevelMap[level];\n }\n return logLevelMap[numLogLevelMap[level][0]];\n}\n\n// It seems that the undesirable 'text/plain' logs start with a date, not a LEVEL\n// Therefore, for those, this function returns null, and thus filters out the undesirable\nexport function resolvePayloadLevel(log) {\n try {\n return log.type !== 'text/plain'\n ? log.payload.level\n : log.payload.match(/^([^:]*):/)[1];\n } catch (e) {\n // Fail-safe for no group match\n return null;\n }\n}\n\nexport async function getLogSources() {\n const sources = [];\n await getSources()\n .then((response) => {\n response.data.result.forEach((item) => {\n sources.push(item);\n });\n })\n .catch((error) => {\n printMessage(\n `getSources ERROR: get log sources call returned ${error}}`,\n 'error'\n );\n return [];\n });\n return sources;\n}\n\nexport async function tailLogs(source, levels, txid, cookie, nf) {\n try {\n const response = await LogApi.tail(source, cookie);\n if (response.status < 200 || response.status > 399) {\n printMessage(\n `tail ERROR: tail call returned ${response.status}`,\n 'error'\n );\n return null;\n }\n // if (!cookie) {\n // await saveConnection();\n // }\n const logsObject = response.data;\n let filteredLogs = [];\n const noiseFilter = nf == null ? noise : nf;\n if (Array.isArray(logsObject.result)) {\n filteredLogs = logsObject.result.filter(\n (el) =>\n !noiseFilter.includes(el.payload.logger) &&\n !noiseFilter.includes(el.type) &&\n (levels[0] === 'ALL' || levels.includes(resolvePayloadLevel(el))) &&\n (typeof txid === 'undefined' ||\n txid === null ||\n el.payload.transactionId?.includes(txid))\n );\n }\n\n filteredLogs.forEach((e) => {\n printMessage(JSON.stringify(e.payload), 'data');\n });\n\n setTimeout(() => {\n tailLogs(source, levels, txid, logsObject.result.pagedResultsCookie, nf);\n }, 5000);\n return null;\n } catch (e) {\n printMessage(`tail ERROR: tail data error - ${e}`, 'error');\n return `tail ERROR: tail data error - ${e}`;\n }\n}\n\nexport async function provisionCreds() {\n try {\n let keyName = `frodo-${storage.session.getUsername()}`;\n return getAPIKeys()\n .then((response) => {\n response.data.result.forEach((k) => {\n if (k.name === keyName) {\n // append current timestamp to name if the named key already exists\n keyName = `${keyName}-${getCurrentTimestamp()}`;\n }\n });\n return createAPIKeyAndSecret(keyName)\n .then((resp) => {\n if (resp.data.name !== keyName) {\n printMessage(\n `create keys ERROR: could not create log API key ${keyName}`,\n 'error'\n );\n return null;\n }\n printMessage(\n `Created a new log API key [${keyName}] in ${storage.session.getTenant()}`\n );\n return resp.data;\n })\n .catch((error) => {\n printMessage(\n `create keys ERROR: create keys call returned ${error}`,\n 'error'\n );\n return null;\n });\n })\n .catch((error) => {\n printMessage(\n `get keys ERROR: get keys call returned ${error}`,\n 'error'\n );\n });\n } catch (e) {\n printMessage(`create keys ERROR: create keys data error - ${e}`, 'error');\n return null;\n }\n}\n\nexport async function fetchLogs(\n source,\n startTs,\n endTs,\n levels,\n txid,\n ffString,\n cookie,\n nf\n) {\n try {\n // console.log(`startTs: ${startTs} endTs : ${endTs}`);\n const response = await LogApi.fetch(source, startTs, endTs, cookie);\n if (response.status < 200 || response.status > 399) {\n printMessage(\n `fetch ERROR: fetch call returned ${response.status}`,\n 'error'\n );\n return null;\n }\n const logsObject = response.data;\n let filteredLogs = [];\n const noiseFilter = nf == null ? noise : nf;\n if (Array.isArray(logsObject.result)) {\n filteredLogs = logsObject.result.filter(\n (el) =>\n !noiseFilter.includes(el.payload.logger) &&\n !noiseFilter.includes(el.type) &&\n (levels[0] === 'ALL' || levels.includes(resolvePayloadLevel(el))) &&\n (typeof txid === 'undefined' ||\n txid === null ||\n el.payload.transactionId.includes(txid))\n );\n }\n\n filteredLogs.forEach((e) => {\n const log = JSON.stringify(e, null, 2);\n if (ffString) {\n if (log.includes(ffString)) {\n printMessage(log, 'data');\n }\n } else {\n printMessage(log, 'data');\n }\n });\n if (logsObject.pagedResultsCookie != null) {\n await fetchLogs(\n source,\n startTs,\n endTs,\n levels,\n txid,\n ffString,\n logsObject.pagedResultsCookie,\n nf\n );\n }\n return null;\n } catch (e) {\n printMessage(`fetch ERROR: fetch data error - ${e}`, 'error');\n return `fetch ERROR: fetch data error - ${e}`;\n }\n}\n"],"mappings":"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"}
|
package/cjs/ops/OpsTypes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpsTypes.js","names":["NodeClassification","JourneyClassification"],"sources":["ops/OpsTypes.ts"],"sourcesContent":["import {\n CircleOfTrustSkeleton,\n EmailTemplateSkeleton,\n NodeSkeleton,\n Saml2ProviderSkeleton,\n ScriptSkeleton,\n SocialIdpSkeleton,\n ThemeSkeleton,\n TreeSkeleton,\n} from '../api/ApiTypes';\n\n/**\n * Tree export options\n */\nexport interface TreeExportOptions {\n /**\n * Where applicable, use string arrays to store multi-line text (e.g. scripts).\n */\n useStringArrays: boolean;\n /**\n * Include any dependencies (scripts, email templates, SAML entity providers and circles of trust, social identity providers, themes).\n */\n deps: boolean;\n
|
|
1
|
+
{"version":3,"file":"OpsTypes.js","names":["NodeClassification","JourneyClassification"],"sources":["ops/OpsTypes.ts"],"sourcesContent":["import {\n CircleOfTrustSkeleton,\n EmailTemplateSkeleton,\n NodeSkeleton,\n Saml2ProviderSkeleton,\n ScriptSkeleton,\n SocialIdpSkeleton,\n ThemeSkeleton,\n TreeSkeleton,\n} from '../api/ApiTypes';\n\n/**\n * Tree export options\n */\nexport interface TreeExportOptions {\n /**\n * Where applicable, use string arrays to store multi-line text (e.g. scripts).\n */\n useStringArrays: boolean;\n /**\n * Include any dependencies (scripts, email templates, SAML entity providers and circles of trust, social identity providers, themes).\n */\n deps: boolean;\n}\n\n/**\n * Tree import options\n */\nexport interface TreeImportOptions {\n /**\n * Generate new UUIDs for all nodes during import.\n */\n reUuid: boolean;\n /**\n * Include any dependencies (scripts, email templates, SAML entity providers and circles of trust, social identity providers, themes).\n */\n deps: boolean;\n}\n\nexport interface ExportMetaData {\n origin: string;\n originAmVersion: string;\n exportedBy: string;\n exportDate: string;\n exportTool: string;\n exportToolVersion: string;\n}\n\nexport interface SingleTreeExportInterface {\n meta?: Record<string, ExportMetaData>;\n innerNodes?: Record<string, NodeSkeleton>;\n innernodes?: Record<string, NodeSkeleton>;\n nodes: Record<string, NodeSkeleton>;\n scripts: Record<string, ScriptSkeleton>;\n emailTemplates: Record<string, EmailTemplateSkeleton>;\n socialIdentityProviders: Record<string, SocialIdpSkeleton>;\n themes: ThemeSkeleton[];\n saml2Entities: Record<string, Saml2ProviderSkeleton>;\n circlesOfTrust: Record<string, CircleOfTrustSkeleton>;\n tree: TreeSkeleton;\n}\n\nexport interface MultiTreeExportInterface {\n meta?: Record<string, ExportMetaData>;\n trees: Record<string, SingleTreeExportInterface>;\n}\n\nexport interface TreeDependencyMapInterface {\n [k: string]: TreeDependencyMapInterface[];\n}\n\nexport interface TreeExportResolverInterface {\n (treeId: string): Promise<SingleTreeExportInterface>;\n}\n\nexport enum NodeClassification {\n STANDARD = 'standard',\n CUSTOM = 'custom',\n CLOUD = 'cloud',\n PREMIUM = 'premium',\n}\n\nexport enum JourneyClassification {\n STANDARD = 'standard',\n CUSTOM = 'custom',\n CLOUD = 'cloud',\n PREMIUM = 'premium',\n}\n"],"mappings":";;;;;;;AAWA;AACA;AACA;;AAYA;AACA;AACA;IAgDYA,kB;;;WAAAA,kB;EAAAA,kB;EAAAA,kB;EAAAA,kB;EAAAA,kB;GAAAA,kB,kCAAAA,kB;;IAOAC,qB;;;WAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;GAAAA,qB,qCAAAA,qB"}
|
|
@@ -61,6 +61,8 @@ var _default = {
|
|
|
61
61
|
getMasterKeyPath: () => _sessionStorage['masterKeyPath'],
|
|
62
62
|
setOutputFile: value => _sessionStorage['outputFile'] = value,
|
|
63
63
|
getOutputFile: () => _sessionStorage['outputFile'],
|
|
64
|
+
setDirectory: value => _sessionStorage['directory'] = value,
|
|
65
|
+
getDirectory: () => _sessionStorage['directory'],
|
|
64
66
|
setPrintHandler: printHandler => _sessionStorage['printHandler'] = printHandler,
|
|
65
67
|
getPrintHandler: () => _sessionStorage['printHandler'],
|
|
66
68
|
setErrorHandler: errorHandler => _sessionStorage['errorHandler'] = errorHandler,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionStorage.js","names":["__dirname","path","dirname","fileURLToPath","pkg","JSON","parse","fs","readFileSync","resolve","_sessionStorage","authenticationHeaderOverrides","session","setItem","key","value","getItem","removeItem","raw","setUsername","getUsername","setPassword","getPassword","setTenant","getTenant","setDeploymentType","getDeploymentType","setRealm","getRealm","setCookieName","getCookieName","setCookieValue","getCookieValue","setAuthenticationService","getAuthenticationService","setAuthenticationHeaderOverrides","getAuthenticationHeaderOverrides","setBearerToken","getBearerToken","setLogApiKey","getLogApiKey","setLogApiSecret","getLogApiSecret","setAmVersion","getAmVersion","setFrodoVersion","getFrodoVersion","version","process","setAllowInsecureConnection","getAllowInsecureConnection","setConnectionProfilesPath","getConnectionProfilesPath","setMasterKeyPath","getMasterKeyPath","setOutputFile","getOutputFile","setPrintHandler","printHandler","getPrintHandler","setErrorHandler","errorHandler","getErrorHandler","setVerboseHandler","verboseHandler","getVerboseHandler","setVerbose","verbose","getVerbose","setDebugHandler","debugHandler","getDebugHandler","setDebug","debug","getDebug","setCreateProgressHandler","handler","getCreateProgressHandler","setUpdateProgressHandler","getUpdateProgressHandler","setStopProgressHandler","getStopProgressHandler"],"sources":["storage/SessionStorage.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nconst pkg = JSON.parse(\n fs.readFileSync(path.resolve(__dirname, '../../package.json'), 'utf8')\n);\n\nconst _sessionStorage = {\n authenticationHeaderOverrides: {},\n};\n\nexport default {\n session: {\n setItem: (key, value) => (_sessionStorage[key] = value),\n getItem: (key) => _sessionStorage[key],\n removeItem: (key) => delete _sessionStorage[key],\n raw: _sessionStorage,\n setUsername: (value) => (_sessionStorage['username'] = value),\n getUsername: () => _sessionStorage['username'],\n setPassword: (value) => (_sessionStorage['password'] = value),\n getPassword: () => _sessionStorage['password'],\n setTenant: (value) => (_sessionStorage['tenant'] = value),\n getTenant: () => _sessionStorage['tenant'],\n setDeploymentType: (value) => (_sessionStorage['deploymentType'] = value),\n getDeploymentType: () => _sessionStorage['deploymentType'],\n setRealm: (value) => (_sessionStorage['realm'] = value),\n getRealm: () => _sessionStorage['realm'],\n setCookieName: (value) => (_sessionStorage['cookieName'] = value),\n getCookieName: () => _sessionStorage['cookieName'],\n setCookieValue: (value) => (_sessionStorage['cookieValue'] = value),\n getCookieValue: () => _sessionStorage['cookieValue'],\n setAuthenticationService: (value) =>\n (_sessionStorage['authenticationService'] = value),\n getAuthenticationService: () => _sessionStorage['authenticationService'],\n setAuthenticationHeaderOverrides: (value) =>\n (_sessionStorage['authenticationHeaderOverrides'] = value),\n getAuthenticationHeaderOverrides: () =>\n _sessionStorage['authenticationHeaderOverrides'],\n setBearerToken: (value) => (_sessionStorage['bearerToken'] = value),\n getBearerToken: () => _sessionStorage['bearerToken'],\n setLogApiKey: (value) => (_sessionStorage['logApiKey'] = value),\n getLogApiKey: () => _sessionStorage['logApiKey'],\n setLogApiSecret: (value) => (_sessionStorage['logApiSecret'] = value),\n getLogApiSecret: () => _sessionStorage['logApiSecret'],\n setAmVersion: (value) => (_sessionStorage['amVersion'] = value),\n getAmVersion: () => _sessionStorage['amVersion'],\n setFrodoVersion: (value) => (_sessionStorage['frodoVersion'] = value),\n getFrodoVersion: () =>\n _sessionStorage['frodoVersion'] || `v${pkg.version} [${process.version}]`,\n setAllowInsecureConnection: (value) =>\n (_sessionStorage['insecure'] = value),\n getAllowInsecureConnection: () => _sessionStorage['insecure'],\n setConnectionProfilesPath: (value) =>\n (_sessionStorage['connectionProfilesPath'] = value),\n getConnectionProfilesPath: () => _sessionStorage['connectionProfilesPath'],\n setMasterKeyPath: (value) => (_sessionStorage['masterKeyPath'] = value),\n getMasterKeyPath: () => _sessionStorage['masterKeyPath'],\n setOutputFile: (value) => (_sessionStorage['outputFile'] = value),\n getOutputFile: () => _sessionStorage['outputFile'],\n setPrintHandler: (printHandler) =>\n (_sessionStorage['printHandler'] = printHandler),\n getPrintHandler: () => _sessionStorage['printHandler'],\n setErrorHandler: (errorHandler) =>\n (_sessionStorage['errorHandler'] = errorHandler),\n getErrorHandler: () => _sessionStorage['errorHandler'],\n setVerboseHandler: (verboseHandler) =>\n (_sessionStorage['verboseHandler'] = verboseHandler),\n getVerboseHandler: () => _sessionStorage['verboseHandler'],\n setVerbose: (verbose: boolean) => (_sessionStorage['verbose'] = verbose),\n getVerbose: (): boolean => _sessionStorage['verbose'],\n setDebugHandler: (debugHandler) =>\n (_sessionStorage['debugHandler'] = debugHandler),\n getDebugHandler: () => _sessionStorage['debugHandler'],\n setDebug: (debug: boolean) => (_sessionStorage['debug'] = debug),\n getDebug: (): boolean => _sessionStorage['debug'],\n setCreateProgressHandler: (handler) =>\n (_sessionStorage['createProgressHandler'] = handler),\n getCreateProgressHandler: () => _sessionStorage['createProgressHandler'],\n setUpdateProgressHandler: (handler) =>\n (_sessionStorage['updateProgressHandler'] = handler),\n getUpdateProgressHandler: () => _sessionStorage['updateProgressHandler'],\n setStopProgressHandler: (handler) =>\n (_sessionStorage['stopProgressHandler'] = handler),\n getStopProgressHandler: () => _sessionStorage['stopProgressHandler'],\n },\n};\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SessionStorage.js","names":["__dirname","path","dirname","fileURLToPath","pkg","JSON","parse","fs","readFileSync","resolve","_sessionStorage","authenticationHeaderOverrides","session","setItem","key","value","getItem","removeItem","raw","setUsername","getUsername","setPassword","getPassword","setTenant","getTenant","setDeploymentType","getDeploymentType","setRealm","getRealm","setCookieName","getCookieName","setCookieValue","getCookieValue","setAuthenticationService","getAuthenticationService","setAuthenticationHeaderOverrides","getAuthenticationHeaderOverrides","setBearerToken","getBearerToken","setLogApiKey","getLogApiKey","setLogApiSecret","getLogApiSecret","setAmVersion","getAmVersion","setFrodoVersion","getFrodoVersion","version","process","setAllowInsecureConnection","getAllowInsecureConnection","setConnectionProfilesPath","getConnectionProfilesPath","setMasterKeyPath","getMasterKeyPath","setOutputFile","getOutputFile","setDirectory","getDirectory","setPrintHandler","printHandler","getPrintHandler","setErrorHandler","errorHandler","getErrorHandler","setVerboseHandler","verboseHandler","getVerboseHandler","setVerbose","verbose","getVerbose","setDebugHandler","debugHandler","getDebugHandler","setDebug","debug","getDebug","setCreateProgressHandler","handler","getCreateProgressHandler","setUpdateProgressHandler","getUpdateProgressHandler","setStopProgressHandler","getStopProgressHandler"],"sources":["storage/SessionStorage.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nconst pkg = JSON.parse(\n fs.readFileSync(path.resolve(__dirname, '../../package.json'), 'utf8')\n);\n\nconst _sessionStorage = {\n authenticationHeaderOverrides: {},\n};\n\nexport default {\n session: {\n setItem: (key, value) => (_sessionStorage[key] = value),\n getItem: (key) => _sessionStorage[key],\n removeItem: (key) => delete _sessionStorage[key],\n raw: _sessionStorage,\n setUsername: (value) => (_sessionStorage['username'] = value),\n getUsername: () => _sessionStorage['username'],\n setPassword: (value) => (_sessionStorage['password'] = value),\n getPassword: () => _sessionStorage['password'],\n setTenant: (value) => (_sessionStorage['tenant'] = value),\n getTenant: () => _sessionStorage['tenant'],\n setDeploymentType: (value) => (_sessionStorage['deploymentType'] = value),\n getDeploymentType: () => _sessionStorage['deploymentType'],\n setRealm: (value) => (_sessionStorage['realm'] = value),\n getRealm: () => _sessionStorage['realm'],\n setCookieName: (value) => (_sessionStorage['cookieName'] = value),\n getCookieName: () => _sessionStorage['cookieName'],\n setCookieValue: (value) => (_sessionStorage['cookieValue'] = value),\n getCookieValue: () => _sessionStorage['cookieValue'],\n setAuthenticationService: (value) =>\n (_sessionStorage['authenticationService'] = value),\n getAuthenticationService: () => _sessionStorage['authenticationService'],\n setAuthenticationHeaderOverrides: (value) =>\n (_sessionStorage['authenticationHeaderOverrides'] = value),\n getAuthenticationHeaderOverrides: () =>\n _sessionStorage['authenticationHeaderOverrides'],\n setBearerToken: (value) => (_sessionStorage['bearerToken'] = value),\n getBearerToken: () => _sessionStorage['bearerToken'],\n setLogApiKey: (value) => (_sessionStorage['logApiKey'] = value),\n getLogApiKey: () => _sessionStorage['logApiKey'],\n setLogApiSecret: (value) => (_sessionStorage['logApiSecret'] = value),\n getLogApiSecret: () => _sessionStorage['logApiSecret'],\n setAmVersion: (value) => (_sessionStorage['amVersion'] = value),\n getAmVersion: () => _sessionStorage['amVersion'],\n setFrodoVersion: (value) => (_sessionStorage['frodoVersion'] = value),\n getFrodoVersion: () =>\n _sessionStorage['frodoVersion'] || `v${pkg.version} [${process.version}]`,\n setAllowInsecureConnection: (value) =>\n (_sessionStorage['insecure'] = value),\n getAllowInsecureConnection: () => _sessionStorage['insecure'],\n setConnectionProfilesPath: (value) =>\n (_sessionStorage['connectionProfilesPath'] = value),\n getConnectionProfilesPath: () => _sessionStorage['connectionProfilesPath'],\n setMasterKeyPath: (value) => (_sessionStorage['masterKeyPath'] = value),\n getMasterKeyPath: () => _sessionStorage['masterKeyPath'],\n setOutputFile: (value) => (_sessionStorage['outputFile'] = value),\n getOutputFile: () => _sessionStorage['outputFile'],\n setDirectory: (value) => (_sessionStorage['directory'] = value),\n getDirectory: () => _sessionStorage['directory'],\n setPrintHandler: (printHandler) =>\n (_sessionStorage['printHandler'] = printHandler),\n getPrintHandler: () => _sessionStorage['printHandler'],\n setErrorHandler: (errorHandler) =>\n (_sessionStorage['errorHandler'] = errorHandler),\n getErrorHandler: () => _sessionStorage['errorHandler'],\n setVerboseHandler: (verboseHandler) =>\n (_sessionStorage['verboseHandler'] = verboseHandler),\n getVerboseHandler: () => _sessionStorage['verboseHandler'],\n setVerbose: (verbose: boolean) => (_sessionStorage['verbose'] = verbose),\n getVerbose: (): boolean => _sessionStorage['verbose'],\n setDebugHandler: (debugHandler) =>\n (_sessionStorage['debugHandler'] = debugHandler),\n getDebugHandler: () => _sessionStorage['debugHandler'],\n setDebug: (debug: boolean) => (_sessionStorage['debug'] = debug),\n getDebug: (): boolean => _sessionStorage['debug'],\n setCreateProgressHandler: (handler) =>\n (_sessionStorage['createProgressHandler'] = handler),\n getCreateProgressHandler: () => _sessionStorage['createProgressHandler'],\n setUpdateProgressHandler: (handler) =>\n (_sessionStorage['updateProgressHandler'] = handler),\n getUpdateProgressHandler: () => _sessionStorage['updateProgressHandler'],\n setStopProgressHandler: (handler) =>\n (_sessionStorage['stopProgressHandler'] = handler),\n getStopProgressHandler: () => _sessionStorage['stopProgressHandler'],\n },\n};\n"],"mappings":"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"}
|
package/esm/ops/JourneyOps.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
2
|
import { v4 as uuidv4 } from 'uuid';
|
|
3
3
|
import _ from 'lodash';
|
|
4
|
-
import { convertBase64TextToArray, getTypedFilename,
|
|
4
|
+
import { convertBase64TextToArray, getTypedFilename, convertTextArrayToBase64, convertTextArrayToBase64Url, findFilesByName } from './utils/ExportImportUtils';
|
|
5
5
|
import { getRealmManagedUser, replaceAll } from './utils/OpsUtils';
|
|
6
6
|
import storage from '../storage/SessionStorage';
|
|
7
7
|
import { getNode, putNode, deleteNode, getNodeTypes, getNodesByType } from '../api/NodeApi';
|
|
@@ -10,8 +10,7 @@ import { getTrees, getTree, putTree, deleteTree } from '../api/TreeApi';
|
|
|
10
10
|
import { getEmailTemplate, putEmailTemplate } from '../api/EmailTemplateApi';
|
|
11
11
|
import { getScript } from '../api/ScriptApi';
|
|
12
12
|
import * as global from '../storage/StaticStorage';
|
|
13
|
-
import { printMessage, createProgressIndicator, updateProgressIndicator, stopProgressIndicator,
|
|
14
|
-
import wordwrap from './utils/Wordwrap';
|
|
13
|
+
import { printMessage, createProgressIndicator, updateProgressIndicator, stopProgressIndicator, debug } from './utils/Console';
|
|
15
14
|
import { getProviderByLocationAndId, getProviders, getProviderMetadata, createProvider, findProviders, updateProvider } from '../api/Saml2Api';
|
|
16
15
|
import { createCircleOfTrust, getCirclesOfTrust, updateCircleOfTrust } from '../api/CirclesOfTrustApi';
|
|
17
16
|
import { decode, encode, encodeBase64Url, isBase64Encoded } from '../api/utils/Base64';
|
|
@@ -146,8 +145,7 @@ async function getSaml2NodeDependencies(nodeObject, allProviders, allCirclesOfTr
|
|
|
146
145
|
|
|
147
146
|
export async function exportJourney(treeId, options = {
|
|
148
147
|
useStringArrays: true,
|
|
149
|
-
deps: true
|
|
150
|
-
verbose: false
|
|
148
|
+
deps: true
|
|
151
149
|
}) {
|
|
152
150
|
const exportData = createSingleTreeExportTemplate();
|
|
153
151
|
|
|
@@ -155,9 +153,9 @@ export async function exportJourney(treeId, options = {
|
|
|
155
153
|
const treeObject = await getTree(treeId);
|
|
156
154
|
const {
|
|
157
155
|
useStringArrays,
|
|
158
|
-
deps
|
|
159
|
-
verbose
|
|
156
|
+
deps
|
|
160
157
|
} = options;
|
|
158
|
+
const verbose = storage.session.getDebug();
|
|
161
159
|
if (verbose) printMessage(`\n- ${treeObject._id}\n`, 'info', false); // Process tree
|
|
162
160
|
|
|
163
161
|
if (verbose) printMessage(' - Flow');
|
|
@@ -441,7 +439,7 @@ export async function exportJourney(treeId, options = {
|
|
|
441
439
|
}
|
|
442
440
|
/**
|
|
443
441
|
* Get all the journeys/trees without all their nodes and dependencies.
|
|
444
|
-
* @returns {Promise<
|
|
442
|
+
* @returns {Promise<TreeSkeleton[]>} a promise that resolves to an array of journey objects
|
|
445
443
|
*/
|
|
446
444
|
|
|
447
445
|
export async function getJourneys() {
|
|
@@ -458,94 +456,7 @@ export async function getJourneys() {
|
|
|
458
456
|
return journeys;
|
|
459
457
|
}
|
|
460
458
|
/**
|
|
461
|
-
*
|
|
462
|
-
* @param {string} journeyId journey id/name
|
|
463
|
-
* @param {string} file optional export file name
|
|
464
|
-
* @param {TreeExportOptions} options export options
|
|
465
|
-
*/
|
|
466
|
-
|
|
467
|
-
export async function exportJourneyToFile(journeyId, file, options) {
|
|
468
|
-
const {
|
|
469
|
-
verbose
|
|
470
|
-
} = options;
|
|
471
|
-
let fileName = file;
|
|
472
|
-
|
|
473
|
-
if (!fileName) {
|
|
474
|
-
fileName = getTypedFilename(journeyId, 'journey');
|
|
475
|
-
}
|
|
476
|
-
|
|
477
|
-
if (!verbose) createProgressIndicator(undefined, `${journeyId}`, 'indeterminate');
|
|
478
|
-
|
|
479
|
-
try {
|
|
480
|
-
const fileData = await exportJourney(journeyId, options);
|
|
481
|
-
if (verbose) createProgressIndicator(undefined, `${journeyId}`, 'indeterminate');
|
|
482
|
-
saveJsonToFile(fileData, fileName);
|
|
483
|
-
stopProgressIndicator(`Exported ${journeyId['brightCyan']} to ${fileName['brightCyan']}.`, 'success');
|
|
484
|
-
} catch (error) {
|
|
485
|
-
if (verbose) createProgressIndicator(undefined, `${journeyId}`, 'indeterminate');
|
|
486
|
-
stopProgressIndicator(`Error exporting journey ${journeyId}: ${error}`, 'fail');
|
|
487
|
-
}
|
|
488
|
-
}
|
|
489
|
-
/**
|
|
490
|
-
* Export all journeys to file
|
|
491
|
-
* @param {string} file optional export file name
|
|
492
|
-
* @param {TreeExportOptions} options export options
|
|
493
|
-
*/
|
|
494
|
-
|
|
495
|
-
export async function exportJourneysToFile(file, options = {
|
|
496
|
-
deps: false,
|
|
497
|
-
useStringArrays: false,
|
|
498
|
-
verbose: false
|
|
499
|
-
}) {
|
|
500
|
-
let fileName = file;
|
|
501
|
-
|
|
502
|
-
if (!fileName) {
|
|
503
|
-
fileName = getTypedFilename(`all${getRealmString()}Journeys`, 'journeys');
|
|
504
|
-
}
|
|
505
|
-
|
|
506
|
-
const trees = (await getTrees()).result;
|
|
507
|
-
const fileData = createMultiTreeExportTemplate();
|
|
508
|
-
createProgressIndicator(trees.length, 'Exporting journeys...');
|
|
509
|
-
|
|
510
|
-
for (const tree of trees) {
|
|
511
|
-
updateProgressIndicator(`${tree._id}`);
|
|
512
|
-
|
|
513
|
-
try {
|
|
514
|
-
const exportData = await exportJourney(tree._id, options);
|
|
515
|
-
delete exportData.meta;
|
|
516
|
-
fileData.trees[tree._id] = exportData;
|
|
517
|
-
} catch (error) {
|
|
518
|
-
printMessage(`Error exporting journey ${tree._id}: ${error}`, 'error');
|
|
519
|
-
}
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
saveJsonToFile(fileData, fileName);
|
|
523
|
-
stopProgressIndicator(`Exported to ${fileName}`);
|
|
524
|
-
}
|
|
525
|
-
/**
|
|
526
|
-
* Export all journeys to separate files
|
|
527
|
-
* @param {TreeExportOptions} options export options
|
|
528
|
-
*/
|
|
529
|
-
|
|
530
|
-
export async function exportJourneysToFiles(options) {
|
|
531
|
-
const trees = (await getTrees()).result;
|
|
532
|
-
createProgressIndicator(trees.length, 'Exporting journeys...');
|
|
533
|
-
|
|
534
|
-
for (const tree of trees) {
|
|
535
|
-
updateProgressIndicator(`${tree._id}`);
|
|
536
|
-
const fileName = getTypedFilename(`${tree._id}`, 'journey');
|
|
537
|
-
|
|
538
|
-
try {
|
|
539
|
-
const exportData = await exportJourney(tree._id, options);
|
|
540
|
-
saveJsonToFile(exportData, fileName);
|
|
541
|
-
} catch (error) {// do we need to report status here?
|
|
542
|
-
}
|
|
543
|
-
}
|
|
544
|
-
|
|
545
|
-
stopProgressIndicator('Done');
|
|
546
|
-
}
|
|
547
|
-
/**
|
|
548
|
-
* Helper to import a tree with all dependencies from an import data object (typically read from a file)
|
|
459
|
+
* Helper to import a tree with all dependencies from a `SingleTreeExportInterface` object (typically read from a file)
|
|
549
460
|
* @param {SingleTreeExportInterface} treeObject tree object containing tree and all its dependencies
|
|
550
461
|
* @param {TreeImportOptions} options import options
|
|
551
462
|
*/
|
|
@@ -553,9 +464,9 @@ export async function exportJourneysToFiles(options) {
|
|
|
553
464
|
export async function importJourney(treeObject, options) {
|
|
554
465
|
const {
|
|
555
466
|
reUuid,
|
|
556
|
-
deps
|
|
557
|
-
verbose
|
|
467
|
+
deps
|
|
558
468
|
} = options;
|
|
469
|
+
const verbose = storage.session.getDebug();
|
|
559
470
|
if (verbose) printMessage(`\n- ${treeObject.tree._id}\n`, 'info', false);
|
|
560
471
|
let newUuid = '';
|
|
561
472
|
const uuidMap = {};
|
|
@@ -930,7 +841,7 @@ export async function importJourney(treeObject, options) {
|
|
|
930
841
|
* @param {int} index Depth of recursion
|
|
931
842
|
*/
|
|
932
843
|
|
|
933
|
-
async function resolveDependencies(installedJorneys, journeyMap, unresolvedJourneys, resolvedJourneys, index = -1) {
|
|
844
|
+
export async function resolveDependencies(installedJorneys, journeyMap, unresolvedJourneys, resolvedJourneys, index = -1) {
|
|
934
845
|
let before = -1;
|
|
935
846
|
let after = index;
|
|
936
847
|
|
|
@@ -984,135 +895,13 @@ async function resolveDependencies(installedJorneys, journeyMap, unresolvedJourn
|
|
|
984
895
|
resolveDependencies(installedJorneys, journeyMap, unresolvedJourneys, resolvedJourneys, after);
|
|
985
896
|
}
|
|
986
897
|
}
|
|
987
|
-
/**
|
|
988
|
-
* Import a journey from file
|
|
989
|
-
* @param {string} journeyId journey id/name
|
|
990
|
-
* @param {string} file import file name
|
|
991
|
-
* @param {TreeImportOptions} options import options
|
|
992
|
-
*/
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
export async function importJourneyFromFile(journeyId, file, options) {
|
|
996
|
-
const {
|
|
997
|
-
verbose
|
|
998
|
-
} = options;
|
|
999
|
-
fs.readFile(file, 'utf8', async (err, data) => {
|
|
1000
|
-
if (err) throw err;
|
|
1001
|
-
let journeyData = JSON.parse(data); // check if this is a file with multiple trees and get journey by id
|
|
1002
|
-
|
|
1003
|
-
if (journeyData.trees && journeyData.trees[journeyId]) {
|
|
1004
|
-
journeyData = journeyData.trees[journeyId];
|
|
1005
|
-
} else if (journeyData.trees) {
|
|
1006
|
-
journeyData = null;
|
|
1007
|
-
} // if a journeyId was specified, only import the matching journey
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
if (journeyData && journeyId === journeyData.tree._id) {
|
|
1011
|
-
// attempt dependency resolution for single tree import
|
|
1012
|
-
const installedJourneys = (await getTrees()).result.map(x => x._id);
|
|
1013
|
-
const unresolvedJourneys = {};
|
|
1014
|
-
const resolvedJourneys = [];
|
|
1015
|
-
createProgressIndicator(undefined, 'Resolving dependencies', 'indeterminate');
|
|
1016
|
-
await resolveDependencies(installedJourneys, {
|
|
1017
|
-
[journeyId]: journeyData
|
|
1018
|
-
}, unresolvedJourneys, resolvedJourneys);
|
|
1019
|
-
|
|
1020
|
-
if (Object.keys(unresolvedJourneys).length === 0) {
|
|
1021
|
-
stopProgressIndicator(`Resolved all dependencies.`, 'success');
|
|
1022
|
-
if (!verbose) createProgressIndicator(undefined, `Importing ${journeyId}...`, 'indeterminate');
|
|
1023
|
-
importJourney(journeyData, options).then(() => {
|
|
1024
|
-
if (verbose) createProgressIndicator(undefined, `Importing ${journeyId}...`, 'indeterminate');
|
|
1025
|
-
stopProgressIndicator(`Imported ${journeyId}.`, 'success');
|
|
1026
|
-
}).catch(importError => {
|
|
1027
|
-
if (verbose) createProgressIndicator(undefined, `Importing ${journeyId}...`, 'indeterminate');
|
|
1028
|
-
stopProgressIndicator(`${importError}`, 'fail');
|
|
1029
|
-
});
|
|
1030
|
-
} else {
|
|
1031
|
-
stopProgressIndicator(`Unresolved dependencies:`, 'fail');
|
|
1032
|
-
|
|
1033
|
-
for (const journey of Object.keys(unresolvedJourneys)) {
|
|
1034
|
-
printMessage(` ${journey} requires ${unresolvedJourneys[journey]}`, 'error');
|
|
1035
|
-
}
|
|
1036
|
-
} // end dependency resolution for single tree import
|
|
1037
|
-
|
|
1038
|
-
} else {
|
|
1039
|
-
createProgressIndicator(undefined, `Importing ${journeyId}...`, 'indeterminate');
|
|
1040
|
-
stopProgressIndicator(`${journeyId} not found!`, 'fail');
|
|
1041
|
-
}
|
|
1042
|
-
});
|
|
1043
|
-
}
|
|
1044
|
-
/**
|
|
1045
|
-
* Import first journey from file
|
|
1046
|
-
* @param {string} file import file name
|
|
1047
|
-
* @param {TreeImportOptions} options import options
|
|
1048
|
-
*/
|
|
1049
|
-
|
|
1050
|
-
export async function importFirstJourneyFromFile(file, options) {
|
|
1051
|
-
const {
|
|
1052
|
-
verbose
|
|
1053
|
-
} = options;
|
|
1054
|
-
fs.readFile(file, 'utf8', async (err, data) => {
|
|
1055
|
-
if (err) throw err;
|
|
1056
|
-
|
|
1057
|
-
let journeyData = _.cloneDeep(JSON.parse(data));
|
|
1058
|
-
|
|
1059
|
-
let journeyId = null; // single tree
|
|
1060
|
-
|
|
1061
|
-
if (journeyData.tree) {
|
|
1062
|
-
journeyId = _.cloneDeep(journeyData.tree._id);
|
|
1063
|
-
} // multiple trees, so get the first tree
|
|
1064
|
-
else if (journeyData.trees) {
|
|
1065
|
-
for (const treeId in journeyData.trees) {
|
|
1066
|
-
if (Object.hasOwnProperty.call(journeyData.trees, treeId)) {
|
|
1067
|
-
journeyId = treeId;
|
|
1068
|
-
journeyData = journeyData.trees[treeId];
|
|
1069
|
-
break;
|
|
1070
|
-
}
|
|
1071
|
-
}
|
|
1072
|
-
} // if a journeyId was specified, only import the matching journey
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
if (journeyData && journeyId) {
|
|
1076
|
-
// attempt dependency resolution for single tree import
|
|
1077
|
-
const installedJourneys = (await getTrees()).result.map(x => x._id);
|
|
1078
|
-
const unresolvedJourneys = {};
|
|
1079
|
-
const resolvedJourneys = [];
|
|
1080
|
-
createProgressIndicator(undefined, 'Resolving dependencies', 'indeterminate');
|
|
1081
|
-
await resolveDependencies(installedJourneys, {
|
|
1082
|
-
[journeyId]: journeyData
|
|
1083
|
-
}, unresolvedJourneys, resolvedJourneys);
|
|
1084
|
-
|
|
1085
|
-
if (Object.keys(unresolvedJourneys).length === 0) {
|
|
1086
|
-
stopProgressIndicator(`Resolved all dependencies.`, 'success');
|
|
1087
|
-
if (!verbose) createProgressIndicator(undefined, `Importing ${journeyId}...`, 'indeterminate');
|
|
1088
|
-
importJourney(journeyData, options).then(() => {
|
|
1089
|
-
if (verbose) createProgressIndicator(undefined, `Importing ${journeyId}...`, 'indeterminate');
|
|
1090
|
-
stopProgressIndicator(`Imported ${journeyId}.`, 'success');
|
|
1091
|
-
}).catch(importError => {
|
|
1092
|
-
if (verbose) createProgressIndicator(undefined, `Importing ${journeyId}...`, 'indeterminate');
|
|
1093
|
-
stopProgressIndicator(`${importError}`, 'fail');
|
|
1094
|
-
});
|
|
1095
|
-
} else {
|
|
1096
|
-
stopProgressIndicator(`Unresolved dependencies:`, 'fail');
|
|
1097
|
-
|
|
1098
|
-
for (const journey of Object.keys(unresolvedJourneys)) {
|
|
1099
|
-
printMessage(` ${journey} requires ${unresolvedJourneys[journey]}`, 'error');
|
|
1100
|
-
}
|
|
1101
|
-
}
|
|
1102
|
-
} else {
|
|
1103
|
-
createProgressIndicator(undefined, `Importing...`, 'indeterminate');
|
|
1104
|
-
stopProgressIndicator(`No journeys found!`, 'fail');
|
|
1105
|
-
} // end dependency resolution for single tree import
|
|
1106
|
-
|
|
1107
|
-
});
|
|
1108
|
-
}
|
|
1109
898
|
/**
|
|
1110
899
|
* Helper to import multiple trees from a tree map
|
|
1111
900
|
* @param {Object} treesMap map of trees object
|
|
1112
901
|
* @param {TreeImportOptions} options import options
|
|
1113
902
|
*/
|
|
1114
903
|
|
|
1115
|
-
async function importAllJourneys(treesMap, options) {
|
|
904
|
+
export async function importAllJourneys(treesMap, options) {
|
|
1116
905
|
const installedJourneys = (await getTrees()).result.map(x => x._id);
|
|
1117
906
|
const unresolvedJourneys = {};
|
|
1118
907
|
const resolvedJourneys = [];
|
|
@@ -1143,39 +932,6 @@ async function importAllJourneys(treesMap, options) {
|
|
|
1143
932
|
|
|
1144
933
|
stopProgressIndicator('Done');
|
|
1145
934
|
}
|
|
1146
|
-
/**
|
|
1147
|
-
* Import all journeys from file
|
|
1148
|
-
* @param {string} file import file name
|
|
1149
|
-
* @param {TreeImportOptions} options import options
|
|
1150
|
-
*/
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
export async function importJourneysFromFile(file, options) {
|
|
1154
|
-
fs.readFile(file, 'utf8', (err, data) => {
|
|
1155
|
-
if (err) throw err;
|
|
1156
|
-
const fileData = JSON.parse(data);
|
|
1157
|
-
importAllJourneys(fileData.trees, options);
|
|
1158
|
-
});
|
|
1159
|
-
}
|
|
1160
|
-
/**
|
|
1161
|
-
* Import all journeys from separate files
|
|
1162
|
-
* @param {TreeImportOptions} options import options
|
|
1163
|
-
*/
|
|
1164
|
-
|
|
1165
|
-
export async function importJourneysFromFiles(options) {
|
|
1166
|
-
const names = fs.readdirSync('.');
|
|
1167
|
-
const jsonFiles = names.filter(name => name.toLowerCase().endsWith('.journey.json'));
|
|
1168
|
-
const allJourneysData = {
|
|
1169
|
-
trees: {}
|
|
1170
|
-
};
|
|
1171
|
-
|
|
1172
|
-
for (const file of jsonFiles) {
|
|
1173
|
-
const journeyData = JSON.parse(fs.readFileSync(file, 'utf8'));
|
|
1174
|
-
allJourneysData.trees[journeyData.tree._id] = journeyData;
|
|
1175
|
-
}
|
|
1176
|
-
|
|
1177
|
-
importAllJourneys(allJourneysData.trees, options);
|
|
1178
|
-
}
|
|
1179
935
|
/**
|
|
1180
936
|
* Get the node reference obbject for a node object. Node reference objects
|
|
1181
937
|
* are used in a tree flow definition and within page nodes to reference
|
|
@@ -1217,8 +973,7 @@ export const onlineTreeExportResolver = async function (treeId) {
|
|
|
1217
973
|
debug(`onlineTreeExportResolver(${treeId})`);
|
|
1218
974
|
return await exportJourney(treeId, {
|
|
1219
975
|
deps: false,
|
|
1220
|
-
useStringArrays: false
|
|
1221
|
-
verbose: false
|
|
976
|
+
useStringArrays: false
|
|
1222
977
|
});
|
|
1223
978
|
};
|
|
1224
979
|
/**
|
|
@@ -1501,70 +1256,6 @@ export function getJourneyClassification(journey) {
|
|
|
1501
1256
|
if (premium) classifications.push(JourneyClassification.PREMIUM);
|
|
1502
1257
|
return classifications;
|
|
1503
1258
|
}
|
|
1504
|
-
/**
|
|
1505
|
-
* List all the journeys/trees
|
|
1506
|
-
* @param {boolean} long Long version, all the fields
|
|
1507
|
-
* @param {boolean} analyze Analyze journeys/trees for custom nodes (expensive)
|
|
1508
|
-
* @returns {Promise<unknown[]>} a promise that resolves to an array journey objects
|
|
1509
|
-
*/
|
|
1510
|
-
|
|
1511
|
-
export async function listJourneys(long = false, analyze = false) {
|
|
1512
|
-
let journeys = [];
|
|
1513
|
-
|
|
1514
|
-
try {
|
|
1515
|
-
journeys = await getJourneys();
|
|
1516
|
-
|
|
1517
|
-
if (!long && !analyze) {
|
|
1518
|
-
for (const journeyStub of journeys) {
|
|
1519
|
-
printMessage(`${journeyStub['_id']}`, 'data');
|
|
1520
|
-
}
|
|
1521
|
-
} else {
|
|
1522
|
-
if (!analyze) {
|
|
1523
|
-
const table = createTable(['Name', 'Status', 'Tags']);
|
|
1524
|
-
|
|
1525
|
-
for (const journeyStub of journeys) {
|
|
1526
|
-
var _journeyStub$uiConfig;
|
|
1527
|
-
|
|
1528
|
-
table.push([`${journeyStub._id}`, journeyStub.enabled === false ? 'disabled'['brightRed'] : 'enabled'['brightGreen'], (_journeyStub$uiConfig = journeyStub.uiConfig) !== null && _journeyStub$uiConfig !== void 0 && _journeyStub$uiConfig.categories ? wordwrap(JSON.parse(journeyStub.uiConfig.categories).join(', '), 60) : '']);
|
|
1529
|
-
}
|
|
1530
|
-
|
|
1531
|
-
printMessage(table.toString(), 'data');
|
|
1532
|
-
} else {
|
|
1533
|
-
createProgressIndicator(0, 'Retrieving details of all journeys...', 'indeterminate');
|
|
1534
|
-
const exportPromises = [];
|
|
1535
|
-
|
|
1536
|
-
try {
|
|
1537
|
-
for (const journeyStub of journeys) {
|
|
1538
|
-
exportPromises.push(exportJourney(journeyStub['_id'], {
|
|
1539
|
-
useStringArrays: false,
|
|
1540
|
-
deps: false,
|
|
1541
|
-
verbose: false
|
|
1542
|
-
}));
|
|
1543
|
-
}
|
|
1544
|
-
|
|
1545
|
-
const journeyExports = await Promise.all(exportPromises);
|
|
1546
|
-
stopProgressIndicator('Retrieved details of all journeys.', 'success');
|
|
1547
|
-
const table = createTable(['Name', 'Status', 'Classification', 'Tags']);
|
|
1548
|
-
|
|
1549
|
-
for (const journeyExport of journeyExports) {
|
|
1550
|
-
var _journeyExport$tree$u;
|
|
1551
|
-
|
|
1552
|
-
table.push([`${journeyExport.tree._id}`, journeyExport.tree.enabled === false ? 'disabled'['brightRed'] : 'enabled'['brightGreen'], getJourneyClassification(journeyExport).join(', '), (_journeyExport$tree$u = journeyExport.tree.uiConfig) !== null && _journeyExport$tree$u !== void 0 && _journeyExport$tree$u.categories ? wordwrap(JSON.parse(journeyExport.tree.uiConfig.categories).join(', '), 60) : '']);
|
|
1553
|
-
}
|
|
1554
|
-
|
|
1555
|
-
printMessage(table.toString(), 'data');
|
|
1556
|
-
} catch (error) {
|
|
1557
|
-
stopProgressIndicator('Error retrieving details of all journeys.', 'fail');
|
|
1558
|
-
printMessage(error.response.data, 'error');
|
|
1559
|
-
}
|
|
1560
|
-
}
|
|
1561
|
-
}
|
|
1562
|
-
} catch (error) {
|
|
1563
|
-
printMessage(error.response.data, 'error');
|
|
1564
|
-
}
|
|
1565
|
-
|
|
1566
|
-
return journeys;
|
|
1567
|
-
}
|
|
1568
1259
|
/**
|
|
1569
1260
|
* Delete a journey
|
|
1570
1261
|
* @param {string} journeyId journey id/name
|