@rockcarver/frodo-lib 2.0.0-1 → 2.0.0-2
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 +5 -1
- package/cjs/api/ApiTypes.js.map +1 -1
- package/cjs/index.js +1 -105
- package/cjs/index.js.map +1 -1
- package/cjs/lib/FrodoLib.js +20 -20
- package/cjs/lib/FrodoLib.js.map +1 -1
- package/cjs/ops/AgentOps.js +8 -0
- package/cjs/ops/AgentOps.js.map +1 -1
- package/cjs/ops/AuthenticateOps.js +33 -6
- package/cjs/ops/AuthenticateOps.js.map +1 -1
- package/cjs/ops/CirclesOfTrustOps.js +36 -10
- package/cjs/ops/CirclesOfTrustOps.js.map +1 -1
- package/cjs/ops/ConnectionProfileOps.js +13 -126
- package/cjs/ops/ConnectionProfileOps.js.map +1 -1
- package/cjs/ops/IdmOps.js.map +1 -1
- package/cjs/ops/JourneyOps.js.map +1 -1
- package/cjs/ops/OAuth2OidcOps.js +84 -0
- package/cjs/ops/OAuth2OidcOps.js.map +1 -0
- package/cjs/ops/ResourceTypeOps.js +65 -49
- package/cjs/ops/ResourceTypeOps.js.map +1 -1
- package/cjs/ops/ServiceOps.js +3 -0
- package/cjs/ops/ServiceOps.js.map +1 -1
- package/cjs/ops/ThemeOps.js +28 -14
- package/cjs/ops/ThemeOps.js.map +1 -1
- package/cjs/ops/cloud/LogOps.js +3 -13
- package/cjs/ops/cloud/LogOps.js.map +1 -1
- package/cjs/ops/utils/Console.js +7 -7
- package/cjs/ops/utils/Console.js.map +1 -1
- package/cjs/ops/utils/ExportImportUtils.js +109 -0
- package/cjs/ops/utils/ExportImportUtils.js.map +1 -1
- package/cjs/ops/utils/ExportImportUtils.test.js.map +1 -1
- package/cjs/ops/utils/Version.js +29 -6
- package/cjs/ops/utils/Version.js.map +1 -1
- package/cjs/ops/utils/Version.test.js.map +1 -1
- package/cjs/shared/State.js +0 -2
- package/cjs/shared/State.js.map +1 -1
- package/esm/index.mjs +1 -59
- package/esm/lib/FrodoLib.mjs +19 -18
- package/esm/ops/AgentOps.mjs +8 -0
- package/esm/ops/AuthenticateOps.mjs +24 -4
- package/esm/ops/CirclesOfTrustOps.mjs +18 -2
- package/esm/ops/ConnectionProfileOps.mjs +1 -105
- package/esm/ops/OAuth2OidcOps.mjs +40 -0
- package/esm/ops/ResourceTypeOps.mjs +14 -4
- package/esm/ops/ServiceOps.mjs +3 -0
- package/esm/ops/ThemeOps.mjs +7 -7
- package/esm/ops/cloud/LogOps.mjs +3 -13
- package/esm/ops/utils/Console.mjs +8 -8
- package/esm/ops/utils/ExportImportUtils.mjs +101 -0
- package/esm/ops/utils/ExportImportUtils.test.mjs +15 -2
- package/esm/ops/utils/Version.mjs +21 -4
- package/esm/ops/utils/Version.test.mjs +4 -1
- package/esm/shared/State.mjs +0 -2
- package/package.json +1 -1
- package/types/api/ApiTypes.d.ts +11 -11
- package/types/api/ApiTypes.d.ts.map +1 -1
- package/types/index.d.ts +1 -48
- package/types/index.d.ts.map +1 -1
- package/types/lib/FrodoLib.d.ts +13 -9
- package/types/lib/FrodoLib.d.ts.map +1 -1
- package/types/ops/AgentOps.d.ts +5 -0
- package/types/ops/AgentOps.d.ts.map +1 -1
- package/types/ops/AuthenticateOps.d.ts +11 -1
- package/types/ops/AuthenticateOps.d.ts.map +1 -1
- package/types/ops/CirclesOfTrustOps.d.ts +16 -2
- package/types/ops/CirclesOfTrustOps.d.ts.map +1 -1
- package/types/ops/ConnectionProfileOps.d.ts +0 -19
- package/types/ops/ConnectionProfileOps.d.ts.map +1 -1
- package/types/ops/IdmOps.d.ts +1 -1
- package/types/ops/IdmOps.d.ts.map +1 -1
- package/types/ops/JourneyOps.d.ts +2 -2
- package/types/ops/JourneyOps.d.ts.map +1 -1
- package/types/ops/OAuth2OidcOps.d.ts +11 -0
- package/types/ops/OAuth2OidcOps.d.ts.map +1 -0
- package/types/ops/ResourceTypeOps.d.ts +3 -3
- package/types/ops/ResourceTypeOps.d.ts.map +1 -1
- package/types/ops/ServiceOps.d.ts +1 -0
- package/types/ops/ServiceOps.d.ts.map +1 -1
- package/types/ops/ThemeOps.d.ts +14 -14
- package/types/ops/ThemeOps.d.ts.map +1 -1
- package/types/ops/cloud/LogOps.d.ts +1 -1
- package/types/ops/cloud/LogOps.d.ts.map +1 -1
- package/types/ops/utils/Console.d.ts.map +1 -1
- package/types/ops/utils/ExportImportUtils.d.ts +43 -0
- package/types/ops/utils/ExportImportUtils.d.ts.map +1 -1
- package/types/ops/utils/Version.d.ts +16 -2
- package/types/ops/utils/Version.d.ts.map +1 -1
- package/types/shared/State.d.ts.map +1 -1
package/cjs/ops/utils/Console.js
CHANGED
|
@@ -31,7 +31,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
31
31
|
function printMessage(message) {
|
|
32
32
|
var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'text';
|
|
33
33
|
var newline = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
34
|
-
var handler = _FrodoLib.
|
|
34
|
+
var handler = _FrodoLib.state.getPrintHandler();
|
|
35
35
|
if (handler) {
|
|
36
36
|
handler(message, type, newline);
|
|
37
37
|
}
|
|
@@ -45,7 +45,7 @@ function printMessage(message) {
|
|
|
45
45
|
* @param {string | unknown} message The verbose output message
|
|
46
46
|
*/
|
|
47
47
|
function verboseMessage(message) {
|
|
48
|
-
var handler = _FrodoLib.
|
|
48
|
+
var handler = _FrodoLib.state.getVerboseHandler();
|
|
49
49
|
if (handler) {
|
|
50
50
|
handler(message);
|
|
51
51
|
}
|
|
@@ -59,7 +59,7 @@ function verboseMessage(message) {
|
|
|
59
59
|
* @param {string | object} message The debug output message
|
|
60
60
|
*/
|
|
61
61
|
function debugMessage(message) {
|
|
62
|
-
var handler = _FrodoLib.
|
|
62
|
+
var handler = _FrodoLib.state.getDebugHandler();
|
|
63
63
|
if (handler) {
|
|
64
64
|
handler(message);
|
|
65
65
|
}
|
|
@@ -86,7 +86,7 @@ function maskPasswordHeader(curlCommand) {
|
|
|
86
86
|
* @param {string} message The curlirize output message
|
|
87
87
|
*/
|
|
88
88
|
function curlirizeMessage(message) {
|
|
89
|
-
var handler = _FrodoLib.
|
|
89
|
+
var handler = _FrodoLib.state.getCurlirizeHandler();
|
|
90
90
|
if (handler) {
|
|
91
91
|
handler(maskPasswordHeader(message));
|
|
92
92
|
}
|
|
@@ -113,7 +113,7 @@ function curlirizeMessage(message) {
|
|
|
113
113
|
function createProgressIndicator(total) {
|
|
114
114
|
var message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
115
115
|
var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'determinate';
|
|
116
|
-
var handler = _FrodoLib.
|
|
116
|
+
var handler = _FrodoLib.state.getCreateProgressHandler();
|
|
117
117
|
if (handler) {
|
|
118
118
|
handler(type, total, message);
|
|
119
119
|
}
|
|
@@ -126,7 +126,7 @@ function createProgressIndicator(total) {
|
|
|
126
126
|
*/
|
|
127
127
|
function updateProgressIndicator() {
|
|
128
128
|
var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
129
|
-
var handler = _FrodoLib.
|
|
129
|
+
var handler = _FrodoLib.state.getUpdateProgressHandler();
|
|
130
130
|
if (handler) {
|
|
131
131
|
handler(message);
|
|
132
132
|
}
|
|
@@ -140,7 +140,7 @@ function updateProgressIndicator() {
|
|
|
140
140
|
function stopProgressIndicator() {
|
|
141
141
|
var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
142
142
|
var status = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';
|
|
143
|
-
var handler = _FrodoLib.
|
|
143
|
+
var handler = _FrodoLib.state.getStopProgressHandler();
|
|
144
144
|
if (handler) {
|
|
145
145
|
handler(message, status);
|
|
146
146
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Console.js","names":["_cliTable","_interopRequireDefault","require","_FrodoLib","obj","__esModule","default","printMessage","message","type","arguments","length","undefined","newline","handler","globalState","getPrintHandler","verboseMessage","getVerboseHandler","debugMessage","getDebugHandler","maskPasswordHeader","curlCommand","header","mask","regex","RegExp","replace","curlirizeMessage","getCurlirizeHandler","createProgressIndicator","total","getCreateProgressHandler","updateProgressIndicator","getUpdateProgressHandler","stopProgressIndicator","status","getStopProgressHandler","createTable","head","Table","chars","top","bottom","left","mid","right","style","createKeyValueTable","wordWrap","getObjectDepth","object","Object","Math","max","values","map","hasValues","has","keys","key","addRows","depth","level","table","keyMap","space","push","hAlign","content","indention","Array","fill","join","concat","createObjectTable"],"sources":["ops/utils/Console.ts"],"sourcesContent":["import Table from 'cli-table3';\nimport { globalState } from '../../lib/FrodoLib';\n\n/**\n * Handles data / messages output. The caller decides and implements how\n * the data and messages are handled, by implementing the handler function\n * on its side. `handler` is optional, and if not included by the caller,\n * the data and messages will be lost.\n *\n * @param {string | unknown} message The string message to return\n * @param {string} [type=text] \"text\", \"info\", \"warn\", \"error\" or \"data\". All but\n * type=\"data\" will be written to stderr.\n * @param {boolean} [newline=true] Whether to add a newline at the end of message\n * messages returned\n */\nexport function printMessage(\n message: string | object,\n type = 'text',\n newline = true\n) {\n const handler = globalState.getPrintHandler();\n if (handler) {\n handler(message, type, newline);\n }\n}\n\n/**\n * Handles verbose output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string | unknown} message The verbose output message\n */\nexport function verboseMessage(message: string | object) {\n const handler = globalState.getVerboseHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Handles debug output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string | object} message The debug output message\n */\nexport function debugMessage(message: string | object) {\n const handler = globalState.getDebugHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Helper function to mask password header in curl command\n * @param curlCommand curl command to mask\n * @param {State} state library state\n * @returns masked curl command\n */\nfunction maskPasswordHeader(curlCommand: string) {\n const header = 'X-OpenAM-Password:';\n const mask = '<suppressed>';\n const regex = new RegExp('\"' + header + '.+?\"', 'g');\n return curlCommand.replace(regex, '\"' + header + mask + '\"');\n}\n\n/**\n * Handles curlirize output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string} message The curlirize output message\n */\nexport function curlirizeMessage(message: string) {\n const handler = globalState.getCurlirizeHandler();\n if (handler) {\n handler(maskPasswordHeader(message));\n }\n}\n\n/**\n * Calls a callback on client to create a progress indicator.\n * The actual implementation of the indicator is left to the client\n * Two types of indicators are supported:\n * - determinate: should be used when the process completion rate\n * can be detected (example: progress bar showing percentage or count)\n * - indeterminate: used when progress isn’t detectable, or if\n * it’s not necessary to indicate how long an activity will take.\n * (example: spinner showing progress, but not quantifying the progress)\n *\n * Example:\n * [========================================] 100% | 49/49 | Analyzing journey - transactional_auth\n *\n * @param {Number} total The total number of entries to track progress for\n * @param {String} message optional progress bar message\n * @param {String} type optional type of progress indicator. default is 'determinate'\n *\n */\nexport function createProgressIndicator(\n total,\n message: string = null,\n type = 'determinate'\n) {\n const handler = globalState.getCreateProgressHandler();\n if (handler) {\n handler(type, total, message);\n }\n}\n\n/**\n * Updates the progress indicator with new data/updated status.\n * @param {string} message optional message to show with the indicator\n *\n */\nexport function updateProgressIndicator(message: string = null) {\n const handler = globalState.getUpdateProgressHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Stop and hide the progress indicator\n * @param {string} message optional message to show with the indicator\n * @param {string} status one of 'none', 'success', 'warn', 'fail'\n */\nexport function stopProgressIndicator(message: string = null, status = 'none') {\n const handler = globalState.getStopProgressHandler();\n if (handler) {\n handler(message, status);\n }\n}\n\n/**\n * Create an empty table\n * @param {[String]} head header row as an array of strings\n * @returns {CliTable3} an empty table\n */\nexport function createTable(head) {\n return new Table({\n head,\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n}\n\n/**\n * Create a new key/value table\n * @returns {CliTable3} an empty key/value table\n */\nexport function createKeyValueTable() {\n return new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0 },\n wordWrap: true,\n });\n}\n\n/**\n * Helper function to determine the total depth of an object\n * @param {Object} object input object\n * @returns {Number} total depth of the input object\n */\nfunction getObjectDepth(object) {\n return Object(object) === object\n ? 1 + Math.max(-1, ...Object.values(object).map(getObjectDepth))\n : 0;\n}\n\n/**\n * Helper function to determine if an object has values\n * @param {Object} object input object\n * @returns {boolean} true of the object or any of its sub-objects contain values, false otherwise\n */\nfunction hasValues(object) {\n let has = false;\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n return true;\n }\n has = has || hasValues(object[key]);\n }\n return has;\n}\n\n/**\n * Helper function (recursive) to add rows to an object table\n * @param {Object} object object to render\n * @param {Number} depth total depth of initial object\n * @param {Number} level current level\n * @param {CliTable3} table the object table to add the rows to\n * @returns the updated object table\n */\nfunction addRows(object, depth, level, table, keyMap) {\n const space = ' ';\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n if (level === 1) {\n table.push([\n keyMap[key] ? keyMap[key]['brightCyan'] : key['brightCyan'],\n object[key],\n ]);\n } else {\n table.push([\n {\n hAlign: 'right',\n content: keyMap[key] ? keyMap[key]['gray'] : key['gray'],\n },\n object[key],\n ]);\n }\n }\n }\n for (const key of keys) {\n if (Object(object[key]) === object[key]) {\n // only print header if there are any values below\n if (hasValues(object[key])) {\n let indention = new Array(level).fill(space).join('');\n if (level < 3) indention = `\\n${indention}`;\n table.push([\n indention.concat(\n keyMap[key] ? keyMap[key]['brightCyan'] : key['brightCyan']\n ),\n '',\n ]);\n }\n // eslint-disable-next-line no-param-reassign\n table = addRows(object[key], depth, level + 1, table, keyMap);\n }\n }\n return table;\n}\n\n/**\n * Create and populate an object table from any JSON object. Use for describe commands.\n * @param {Object} object JSON object to create\n * @returns {CliTable3} a table that can be printed to the console\n */\nexport function createObjectTable(object, keyMap = {}) {\n // eslint-disable-next-line no-param-reassign\n const depth = getObjectDepth(object);\n // eslint-disable-next-line no-param-reassign\n const level = 0;\n // eslint-disable-next-line no-param-reassign\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n addRows(object, depth, level + 1, table, keyMap);\n return table;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Console.js","names":["_cliTable","_interopRequireDefault","require","_FrodoLib","obj","__esModule","default","printMessage","message","type","arguments","length","undefined","newline","handler","state","getPrintHandler","verboseMessage","getVerboseHandler","debugMessage","getDebugHandler","maskPasswordHeader","curlCommand","header","mask","regex","RegExp","replace","curlirizeMessage","getCurlirizeHandler","createProgressIndicator","total","getCreateProgressHandler","updateProgressIndicator","getUpdateProgressHandler","stopProgressIndicator","status","getStopProgressHandler","createTable","head","Table","chars","top","bottom","left","mid","right","style","createKeyValueTable","wordWrap","getObjectDepth","object","Object","Math","max","values","map","hasValues","has","keys","key","addRows","depth","level","table","keyMap","space","push","hAlign","content","indention","Array","fill","join","concat","createObjectTable"],"sources":["ops/utils/Console.ts"],"sourcesContent":["import Table from 'cli-table3';\nimport { state } from '../../lib/FrodoLib';\n\n/**\n * Handles data / messages output. The caller decides and implements how\n * the data and messages are handled, by implementing the handler function\n * on its side. `handler` is optional, and if not included by the caller,\n * the data and messages will be lost.\n *\n * @param {string | unknown} message The string message to return\n * @param {string} [type=text] \"text\", \"info\", \"warn\", \"error\" or \"data\". All but\n * type=\"data\" will be written to stderr.\n * @param {boolean} [newline=true] Whether to add a newline at the end of message\n * messages returned\n */\nexport function printMessage(\n message: string | object,\n type = 'text',\n newline = true\n) {\n const handler = state.getPrintHandler();\n if (handler) {\n handler(message, type, newline);\n }\n}\n\n/**\n * Handles verbose output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string | unknown} message The verbose output message\n */\nexport function verboseMessage(message: string | object) {\n const handler = state.getVerboseHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Handles debug output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string | object} message The debug output message\n */\nexport function debugMessage(message: string | object) {\n const handler = state.getDebugHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Helper function to mask password header in curl command\n * @param curlCommand curl command to mask\n * @param {State} state library state\n * @returns masked curl command\n */\nfunction maskPasswordHeader(curlCommand: string) {\n const header = 'X-OpenAM-Password:';\n const mask = '<suppressed>';\n const regex = new RegExp('\"' + header + '.+?\"', 'g');\n return curlCommand.replace(regex, '\"' + header + mask + '\"');\n}\n\n/**\n * Handles curlirize output. The caller decides and implements how\n * the messages are handled, by implementing the handler function\n * on its side. Implementing and registering a `handler` is optional.\n *\n * @param {string} message The curlirize output message\n */\nexport function curlirizeMessage(message: string) {\n const handler = state.getCurlirizeHandler();\n if (handler) {\n handler(maskPasswordHeader(message));\n }\n}\n\n/**\n * Calls a callback on client to create a progress indicator.\n * The actual implementation of the indicator is left to the client\n * Two types of indicators are supported:\n * - determinate: should be used when the process completion rate\n * can be detected (example: progress bar showing percentage or count)\n * - indeterminate: used when progress isn’t detectable, or if\n * it’s not necessary to indicate how long an activity will take.\n * (example: spinner showing progress, but not quantifying the progress)\n *\n * Example:\n * [========================================] 100% | 49/49 | Analyzing journey - transactional_auth\n *\n * @param {Number} total The total number of entries to track progress for\n * @param {String} message optional progress bar message\n * @param {String} type optional type of progress indicator. default is 'determinate'\n *\n */\nexport function createProgressIndicator(\n total,\n message: string = null,\n type = 'determinate'\n) {\n const handler = state.getCreateProgressHandler();\n if (handler) {\n handler(type, total, message);\n }\n}\n\n/**\n * Updates the progress indicator with new data/updated status.\n * @param {string} message optional message to show with the indicator\n *\n */\nexport function updateProgressIndicator(message: string = null) {\n const handler = state.getUpdateProgressHandler();\n if (handler) {\n handler(message);\n }\n}\n\n/**\n * Stop and hide the progress indicator\n * @param {string} message optional message to show with the indicator\n * @param {string} status one of 'none', 'success', 'warn', 'fail'\n */\nexport function stopProgressIndicator(message: string = null, status = 'none') {\n const handler = state.getStopProgressHandler();\n if (handler) {\n handler(message, status);\n }\n}\n\n/**\n * Create an empty table\n * @param {[String]} head header row as an array of strings\n * @returns {CliTable3} an empty table\n */\nexport function createTable(head) {\n return new Table({\n head,\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n}\n\n/**\n * Create a new key/value table\n * @returns {CliTable3} an empty key/value table\n */\nexport function createKeyValueTable() {\n return new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0 },\n wordWrap: true,\n });\n}\n\n/**\n * Helper function to determine the total depth of an object\n * @param {Object} object input object\n * @returns {Number} total depth of the input object\n */\nfunction getObjectDepth(object) {\n return Object(object) === object\n ? 1 + Math.max(-1, ...Object.values(object).map(getObjectDepth))\n : 0;\n}\n\n/**\n * Helper function to determine if an object has values\n * @param {Object} object input object\n * @returns {boolean} true of the object or any of its sub-objects contain values, false otherwise\n */\nfunction hasValues(object) {\n let has = false;\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n return true;\n }\n has = has || hasValues(object[key]);\n }\n return has;\n}\n\n/**\n * Helper function (recursive) to add rows to an object table\n * @param {Object} object object to render\n * @param {Number} depth total depth of initial object\n * @param {Number} level current level\n * @param {CliTable3} table the object table to add the rows to\n * @returns the updated object table\n */\nfunction addRows(object, depth, level, table, keyMap) {\n const space = ' ';\n const keys = Object.keys(object);\n for (const key of keys) {\n if (Object(object[key]) !== object[key]) {\n if (level === 1) {\n table.push([\n keyMap[key] ? keyMap[key]['brightCyan'] : key['brightCyan'],\n object[key],\n ]);\n } else {\n table.push([\n {\n hAlign: 'right',\n content: keyMap[key] ? keyMap[key]['gray'] : key['gray'],\n },\n object[key],\n ]);\n }\n }\n }\n for (const key of keys) {\n if (Object(object[key]) === object[key]) {\n // only print header if there are any values below\n if (hasValues(object[key])) {\n let indention = new Array(level).fill(space).join('');\n if (level < 3) indention = `\\n${indention}`;\n table.push([\n indention.concat(\n keyMap[key] ? keyMap[key]['brightCyan'] : key['brightCyan']\n ),\n '',\n ]);\n }\n // eslint-disable-next-line no-param-reassign\n table = addRows(object[key], depth, level + 1, table, keyMap);\n }\n }\n return table;\n}\n\n/**\n * Create and populate an object table from any JSON object. Use for describe commands.\n * @param {Object} object JSON object to create\n * @returns {CliTable3} a table that can be printed to the console\n */\nexport function createObjectTable(object, keyMap = {}) {\n // eslint-disable-next-line no-param-reassign\n const depth = getObjectDepth(object);\n // eslint-disable-next-line no-param-reassign\n const level = 0;\n // eslint-disable-next-line no-param-reassign\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0, head: ['brightCyan'] },\n });\n addRows(object, depth, level + 1, table, keyMap);\n return table;\n}\n"],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ exports.convertBase64TextToArray = convertBase64TextToArray;
|
|
|
8
8
|
exports.convertBase64UrlTextToArray = convertBase64UrlTextToArray;
|
|
9
9
|
exports.convertTextArrayToBase64 = convertTextArrayToBase64;
|
|
10
10
|
exports.convertTextArrayToBase64Url = convertTextArrayToBase64Url;
|
|
11
|
+
exports.default = void 0;
|
|
11
12
|
exports.findFilesByName = findFilesByName;
|
|
12
13
|
exports.getMetadata = getMetadata;
|
|
13
14
|
exports.getRealmString = getRealmString;
|
|
@@ -28,6 +29,114 @@ var _Console = require("./Console");
|
|
|
28
29
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
30
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
30
31
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
32
|
+
class ExportImportUtils {
|
|
33
|
+
constructor(state) {
|
|
34
|
+
this.state = state;
|
|
35
|
+
}
|
|
36
|
+
getMetadata() {
|
|
37
|
+
return getMetadata({
|
|
38
|
+
state: this.state
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/*
|
|
43
|
+
* Output str in title case
|
|
44
|
+
*
|
|
45
|
+
* e.g.: 'ALL UPPERCASE AND all lowercase' = 'All Uppercase And All Lowercase'
|
|
46
|
+
*/
|
|
47
|
+
titleCase(input) {
|
|
48
|
+
return titleCase(input);
|
|
49
|
+
}
|
|
50
|
+
getRealmString() {
|
|
51
|
+
return getRealmString({
|
|
52
|
+
state: this.state
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
convertBase64TextToArray(b64text) {
|
|
56
|
+
return convertBase64TextToArray(b64text);
|
|
57
|
+
}
|
|
58
|
+
convertBase64UrlTextToArray(b64UTF8Text) {
|
|
59
|
+
return convertBase64UrlTextToArray(b64UTF8Text);
|
|
60
|
+
}
|
|
61
|
+
convertTextArrayToBase64(textArray) {
|
|
62
|
+
return convertTextArrayToBase64(textArray);
|
|
63
|
+
}
|
|
64
|
+
convertTextArrayToBase64Url(textArray) {
|
|
65
|
+
return convertTextArrayToBase64Url(textArray);
|
|
66
|
+
}
|
|
67
|
+
validateImport(metadata) {
|
|
68
|
+
return validateImport(metadata);
|
|
69
|
+
}
|
|
70
|
+
getTypedFilename(name, type) {
|
|
71
|
+
var suffix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'json';
|
|
72
|
+
return getTypedFilename(name, type, suffix);
|
|
73
|
+
}
|
|
74
|
+
getWorkingDirectory() {
|
|
75
|
+
return getWorkingDirectory({
|
|
76
|
+
state: this.state
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
saveToFile(type, data, identifier, filename) {
|
|
80
|
+
return saveToFile({
|
|
81
|
+
type,
|
|
82
|
+
data,
|
|
83
|
+
identifier,
|
|
84
|
+
filename,
|
|
85
|
+
state: this.state
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Save JSON object to file
|
|
91
|
+
* @param {Object} data data object
|
|
92
|
+
* @param {String} filename file name
|
|
93
|
+
* @return {boolean} true if successful, false otherwise
|
|
94
|
+
*/
|
|
95
|
+
saveJsonToFile(data, filename) {
|
|
96
|
+
var includeMeta = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
97
|
+
return saveJsonToFile({
|
|
98
|
+
data,
|
|
99
|
+
filename,
|
|
100
|
+
includeMeta,
|
|
101
|
+
state: this.state
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Append text data to file
|
|
107
|
+
* @param {String} data text data
|
|
108
|
+
* @param {String} filename file name
|
|
109
|
+
*/
|
|
110
|
+
appendTextToFile(data, filename) {
|
|
111
|
+
return appendTextToFile(data, filename);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Find files by name
|
|
116
|
+
* @param {string} fileName file name to search for
|
|
117
|
+
* @param {boolean} fast return first result and stop search
|
|
118
|
+
* @param {string} path path to directory where to start the search
|
|
119
|
+
* @returns {string[]} array of found file paths relative to starting directory
|
|
120
|
+
*/
|
|
121
|
+
findFilesByName(fileName) {
|
|
122
|
+
var fast = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
123
|
+
var path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : './';
|
|
124
|
+
return findFilesByName(fileName, fast, path);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* find all (nested) files in a directory
|
|
129
|
+
*
|
|
130
|
+
* @param directory directory to search
|
|
131
|
+
* @returns list of files
|
|
132
|
+
*/
|
|
133
|
+
readFilesRecursive(directory) {
|
|
134
|
+
return _asyncToGenerator(function* () {
|
|
135
|
+
return readFilesRecursive(directory);
|
|
136
|
+
})();
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
exports.default = ExportImportUtils;
|
|
31
140
|
function getMetadata(_ref) {
|
|
32
141
|
var {
|
|
33
142
|
state
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExportImportUtils.js","names":["_fs","_interopRequireDefault","require","_promises","_path","_slugify","_Base","_StaticStorage","_Console","obj","__esModule","default","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","getMetadata","_ref","state","metadata","origin","getHost","originAmVersion","getAmVersion","exportedBy","getUsername","exportDate","Date","toISOString","exportTool","FRODO_METADATA_ID","exportToolVersion","getFrodoVersion","titleCase","input","str","toString","splitStr","toLowerCase","split","i","length","charAt","toUpperCase","slice","join","getRealmString","_ref2","realm","getRealm","reduce","result","item","concat","convertBase64TextToArray","b64text","arrayOut","plainText","decode","replace","convertBase64UrlTextToArray","b64UTF8Text","decodeBase64Url","convertTextArrayToBase64","textArray","joinedText","b64encodedScript","encode","convertTextArrayToBase64Url","encodeBase64Url","validateImport","getTypedFilename","name","type","suffix","slug","slugify","getWorkingDirectory","_ref3","wd","getDirectory","fs","existsSync","debugMessage","mkdirSync","recursive","saveToFile","_ref4","data","identifier","filename","exportData","Array","isArray","forEach","element","writeFile","JSON","stringify","printMessage","saveJsonToFile","_ref5","includeMeta","writeFileSync","appendTextToFile","appendFileSync","message","findFilesByName","fileName","fast","path","entries","readdirSync","encoding","withFileTypes","files","filter","entry","isDirectory","file","map","folders","folder","push","readFilesRecursive","_x","_readFilesRecursive","directory","items","readdir","filePathsNested","all","_ref6","entity","lstat","_x2","flat"],"sources":["ops/utils/ExportImportUtils.ts"],"sourcesContent":["import fs from 'fs';\nimport { lstat, readdir } from 'fs/promises';\nimport { join } from 'path';\nimport slugify from 'slugify';\nimport {\n decode,\n decodeBase64Url,\n encode,\n encodeBase64Url,\n} from '../../api/utils/Base64';\nimport State from '../../shared/State';\nimport { FRODO_METADATA_ID } from '../../storage/StaticStorage';\nimport { ExportMetaData } from '../OpsTypes';\nimport { debugMessage, printMessage } from './Console';\n\nexport function getMetadata({ state }: { state: State }): ExportMetaData {\n const metadata: ExportMetaData = {\n origin: state.getHost(),\n originAmVersion: state.getAmVersion(),\n exportedBy: state.getUsername(),\n exportDate: new Date().toISOString(),\n exportTool: FRODO_METADATA_ID,\n exportToolVersion: state.getFrodoVersion(),\n };\n return metadata;\n}\n\n/*\n * Output str in title case\n *\n * e.g.: 'ALL UPPERCASE AND all lowercase' = 'All Uppercase And All Lowercase'\n */\nexport function titleCase(input: string) {\n const str = input.toString();\n const splitStr = str.toLowerCase().split(' ');\n for (let i = 0; i < splitStr.length; i += 1) {\n splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].slice(1);\n }\n return splitStr.join(' ');\n}\n\nexport function getRealmString({ state }: { state: State }) {\n const realm = state.getRealm();\n return realm\n .split('/')\n .reduce((result, item) => `${result}${titleCase(item)}`, '');\n}\n\nexport function convertBase64TextToArray(b64text: string) {\n let arrayOut = [];\n let plainText = decode(b64text);\n plainText = plainText.replace(/\\t/g, ' ');\n arrayOut = plainText.split('\\n');\n return arrayOut;\n}\n\nexport function convertBase64UrlTextToArray(b64UTF8Text: string) {\n let arrayOut = [];\n let plainText = decodeBase64Url(b64UTF8Text);\n plainText = plainText.replace(/\\t/g, ' ');\n arrayOut = plainText.split('\\n');\n return arrayOut;\n}\n\nexport function convertTextArrayToBase64(textArray: string[]) {\n const joinedText = textArray.join('\\n');\n const b64encodedScript = encode(joinedText);\n return b64encodedScript;\n}\n\nexport function convertTextArrayToBase64Url(textArray: string[]) {\n const joinedText = textArray.join('\\n');\n const b64encodedScript = encodeBase64Url(joinedText);\n return b64encodedScript;\n}\n\n// eslint-disable-next-line no-unused-vars\nexport function validateImport(metadata): boolean {\n return metadata || true;\n}\n\nexport function getTypedFilename(name: string, type: string, suffix = 'json') {\n const slug = slugify(name.replace(/^http(s?):\\/\\//, ''));\n return `${slug}.${type}.${suffix}`;\n}\n\nexport function getWorkingDirectory({ state }: { state: State }) {\n let wd = '.';\n if (state.getDirectory()) {\n wd = state.getDirectory().replace(/\\/$/, '');\n // create directory if it doesn't exist\n if (!fs.existsSync(wd)) {\n debugMessage(\n `ExportImportUtils.getWorkingDirectory: creating directory '${wd}'`\n );\n fs.mkdirSync(wd, { recursive: true });\n }\n }\n return wd;\n}\n\nexport function saveToFile({\n type,\n data,\n identifier,\n filename,\n state,\n}: {\n type: string;\n data: object;\n identifier: string;\n filename: string;\n state: State;\n}) {\n const exportData = {};\n exportData['meta'] = getMetadata({ state });\n exportData[type] = {};\n\n if (Array.isArray(data)) {\n data.forEach((element) => {\n exportData[type][element[identifier]] = element;\n });\n } else {\n exportData[type][data[identifier]] = data;\n }\n fs.writeFile(filename, JSON.stringify(exportData, null, 2), (err) => {\n if (err) {\n return printMessage(`ERROR - can't save ${type} to file`, 'error');\n }\n return '';\n });\n}\n\n/**\n * Save JSON object to file\n * @param {Object} data data object\n * @param {String} filename file name\n * @return {boolean} true if successful, false otherwise\n */\nexport function saveJsonToFile({\n data,\n filename,\n includeMeta = true,\n state,\n}: {\n data: object;\n filename: string;\n includeMeta?: boolean;\n state: State;\n}): boolean {\n const exportData = data;\n if (includeMeta) exportData['meta'] = getMetadata({ state });\n try {\n fs.writeFileSync(filename, JSON.stringify(exportData, null, 2));\n return true;\n } catch (err) {\n printMessage(`ERROR - can't save ${filename}`, 'error');\n return false;\n }\n}\n\n/**\n * Append text data to file\n * @param {String} data text data\n * @param {String} filename file name\n */\nexport function appendTextToFile(data: string, filename: string) {\n try {\n fs.appendFileSync(filename, data);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n }\n}\n\n/**\n * Find files by name\n * @param {string} fileName file name to search for\n * @param {boolean} fast return first result and stop search\n * @param {string} path path to directory where to start the search\n * @returns {string[]} array of found file paths relative to starting directory\n */\nexport function findFilesByName(\n fileName: string,\n fast = true,\n path = './'\n): string[] {\n const entries = fs.readdirSync(path, {\n encoding: 'utf8',\n withFileTypes: true,\n });\n\n // Get files within the current directory and add a path key to the file objects\n const files: string[] = entries\n .filter((entry) => !entry.isDirectory())\n .filter((file) => file.name === fileName)\n // .map((file) => ({ ...file, path: path + file.name }));\n .map((file) => path + file.name);\n\n if (fast && files.length > 0) return files;\n\n // search sub-folders\n const folders = entries.filter((entry) => entry.isDirectory());\n for (const folder of folders)\n files.push(...findFilesByName(fileName, fast, `${path}${folder.name}/`));\n\n return files;\n}\n\n/**\n * find all (nested) files in a directory\n *\n * @param directory directory to search\n * @returns list of files\n */\nexport async function readFilesRecursive(directory: string): Promise<string[]> {\n const items = await readdir(directory);\n\n const filePathsNested = await Promise.all(\n items.map(async (entity) => {\n const path = join(directory, entity);\n const isDirectory = (await lstat(path)).isDirectory();\n\n if (isDirectory) {\n return readFilesRecursive(path);\n }\n return path;\n })\n );\n\n return filePathsNested.flat();\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ExportImportUtils.js","names":["_fs","_interopRequireDefault","require","_promises","_path","_slugify","_Base","_StaticStorage","_Console","obj","__esModule","default","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ExportImportUtils","constructor","state","getMetadata","titleCase","input","getRealmString","convertBase64TextToArray","b64text","convertBase64UrlTextToArray","b64UTF8Text","convertTextArrayToBase64","textArray","convertTextArrayToBase64Url","validateImport","metadata","getTypedFilename","name","type","suffix","length","getWorkingDirectory","saveToFile","data","identifier","filename","saveJsonToFile","includeMeta","appendTextToFile","findFilesByName","fileName","fast","path","readFilesRecursive","directory","exports","_ref","origin","getHost","originAmVersion","getAmVersion","exportedBy","getUsername","exportDate","Date","toISOString","exportTool","FRODO_METADATA_ID","exportToolVersion","getFrodoVersion","str","toString","splitStr","toLowerCase","split","i","charAt","toUpperCase","slice","join","_ref2","realm","getRealm","reduce","result","item","concat","arrayOut","plainText","decode","replace","decodeBase64Url","joinedText","b64encodedScript","encode","encodeBase64Url","slug","slugify","_ref3","wd","getDirectory","fs","existsSync","debugMessage","mkdirSync","recursive","_ref4","exportData","Array","isArray","forEach","element","writeFile","JSON","stringify","printMessage","_ref5","writeFileSync","appendFileSync","message","entries","readdirSync","encoding","withFileTypes","files","filter","entry","isDirectory","file","map","folders","folder","push","_x","_readFilesRecursive","items","readdir","filePathsNested","all","_ref6","entity","lstat","_x2","flat"],"sources":["ops/utils/ExportImportUtils.ts"],"sourcesContent":["import fs from 'fs';\nimport { lstat, readdir } from 'fs/promises';\nimport { join } from 'path';\nimport slugify from 'slugify';\nimport {\n decode,\n decodeBase64Url,\n encode,\n encodeBase64Url,\n} from '../../api/utils/Base64';\nimport State from '../../shared/State';\nimport { FRODO_METADATA_ID } from '../../storage/StaticStorage';\nimport { ExportMetaData } from '../OpsTypes';\nimport { debugMessage, printMessage } from './Console';\n\nexport default class ExportImportUtils {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n getMetadata(): ExportMetaData {\n return getMetadata({ state: this.state });\n }\n\n /*\n * Output str in title case\n *\n * e.g.: 'ALL UPPERCASE AND all lowercase' = 'All Uppercase And All Lowercase'\n */\n titleCase(input: string) {\n return titleCase(input);\n }\n\n getRealmString() {\n return getRealmString({ state: this.state });\n }\n\n convertBase64TextToArray(b64text: string) {\n return convertBase64TextToArray(b64text);\n }\n\n convertBase64UrlTextToArray(b64UTF8Text: string) {\n return convertBase64UrlTextToArray(b64UTF8Text);\n }\n\n convertTextArrayToBase64(textArray: string[]) {\n return convertTextArrayToBase64(textArray);\n }\n\n convertTextArrayToBase64Url(textArray: string[]) {\n return convertTextArrayToBase64Url(textArray);\n }\n\n validateImport(metadata): boolean {\n return validateImport(metadata);\n }\n\n getTypedFilename(name: string, type: string, suffix = 'json') {\n return getTypedFilename(name, type, suffix);\n }\n\n getWorkingDirectory() {\n return getWorkingDirectory({ state: this.state });\n }\n\n saveToFile(type: string, data: object, identifier: string, filename: string) {\n return saveToFile({ type, data, identifier, filename, state: this.state });\n }\n\n /**\n * Save JSON object to file\n * @param {Object} data data object\n * @param {String} filename file name\n * @return {boolean} true if successful, false otherwise\n */\n saveJsonToFile(data: object, filename: string, includeMeta = true): boolean {\n return saveJsonToFile({ data, filename, includeMeta, state: this.state });\n }\n\n /**\n * Append text data to file\n * @param {String} data text data\n * @param {String} filename file name\n */\n appendTextToFile(data: string, filename: string) {\n return appendTextToFile(data, filename);\n }\n\n /**\n * Find files by name\n * @param {string} fileName file name to search for\n * @param {boolean} fast return first result and stop search\n * @param {string} path path to directory where to start the search\n * @returns {string[]} array of found file paths relative to starting directory\n */\n findFilesByName(fileName: string, fast = true, path = './'): string[] {\n return findFilesByName(fileName, fast, path);\n }\n\n /**\n * find all (nested) files in a directory\n *\n * @param directory directory to search\n * @returns list of files\n */\n async readFilesRecursive(directory: string): Promise<string[]> {\n return readFilesRecursive(directory);\n }\n}\n\nexport function getMetadata({ state }: { state: State }): ExportMetaData {\n const metadata: ExportMetaData = {\n origin: state.getHost(),\n originAmVersion: state.getAmVersion(),\n exportedBy: state.getUsername(),\n exportDate: new Date().toISOString(),\n exportTool: FRODO_METADATA_ID,\n exportToolVersion: state.getFrodoVersion(),\n };\n return metadata;\n}\n\n/*\n * Output str in title case\n *\n * e.g.: 'ALL UPPERCASE AND all lowercase' = 'All Uppercase And All Lowercase'\n */\nexport function titleCase(input: string) {\n const str = input.toString();\n const splitStr = str.toLowerCase().split(' ');\n for (let i = 0; i < splitStr.length; i += 1) {\n splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].slice(1);\n }\n return splitStr.join(' ');\n}\n\nexport function getRealmString({ state }: { state: State }) {\n const realm = state.getRealm();\n return realm\n .split('/')\n .reduce((result, item) => `${result}${titleCase(item)}`, '');\n}\n\nexport function convertBase64TextToArray(b64text: string) {\n let arrayOut = [];\n let plainText = decode(b64text);\n plainText = plainText.replace(/\\t/g, ' ');\n arrayOut = plainText.split('\\n');\n return arrayOut;\n}\n\nexport function convertBase64UrlTextToArray(b64UTF8Text: string) {\n let arrayOut = [];\n let plainText = decodeBase64Url(b64UTF8Text);\n plainText = plainText.replace(/\\t/g, ' ');\n arrayOut = plainText.split('\\n');\n return arrayOut;\n}\n\nexport function convertTextArrayToBase64(textArray: string[]) {\n const joinedText = textArray.join('\\n');\n const b64encodedScript = encode(joinedText);\n return b64encodedScript;\n}\n\nexport function convertTextArrayToBase64Url(textArray: string[]) {\n const joinedText = textArray.join('\\n');\n const b64encodedScript = encodeBase64Url(joinedText);\n return b64encodedScript;\n}\n\n// eslint-disable-next-line no-unused-vars\nexport function validateImport(metadata): boolean {\n return metadata || true;\n}\n\nexport function getTypedFilename(name: string, type: string, suffix = 'json') {\n const slug = slugify(name.replace(/^http(s?):\\/\\//, ''));\n return `${slug}.${type}.${suffix}`;\n}\n\nexport function getWorkingDirectory({ state }: { state: State }) {\n let wd = '.';\n if (state.getDirectory()) {\n wd = state.getDirectory().replace(/\\/$/, '');\n // create directory if it doesn't exist\n if (!fs.existsSync(wd)) {\n debugMessage(\n `ExportImportUtils.getWorkingDirectory: creating directory '${wd}'`\n );\n fs.mkdirSync(wd, { recursive: true });\n }\n }\n return wd;\n}\n\nexport function saveToFile({\n type,\n data,\n identifier,\n filename,\n state,\n}: {\n type: string;\n data: object;\n identifier: string;\n filename: string;\n state: State;\n}) {\n const exportData = {};\n exportData['meta'] = getMetadata({ state });\n exportData[type] = {};\n\n if (Array.isArray(data)) {\n data.forEach((element) => {\n exportData[type][element[identifier]] = element;\n });\n } else {\n exportData[type][data[identifier]] = data;\n }\n fs.writeFile(filename, JSON.stringify(exportData, null, 2), (err) => {\n if (err) {\n return printMessage(`ERROR - can't save ${type} to file`, 'error');\n }\n return '';\n });\n}\n\n/**\n * Save JSON object to file\n * @param {Object} data data object\n * @param {String} filename file name\n * @return {boolean} true if successful, false otherwise\n */\nexport function saveJsonToFile({\n data,\n filename,\n includeMeta = true,\n state,\n}: {\n data: object;\n filename: string;\n includeMeta?: boolean;\n state: State;\n}): boolean {\n const exportData = data;\n if (includeMeta) exportData['meta'] = getMetadata({ state });\n try {\n fs.writeFileSync(filename, JSON.stringify(exportData, null, 2));\n return true;\n } catch (err) {\n printMessage(`ERROR - can't save ${filename}`, 'error');\n return false;\n }\n}\n\n/**\n * Append text data to file\n * @param {String} data text data\n * @param {String} filename file name\n */\nexport function appendTextToFile(data: string, filename: string) {\n try {\n fs.appendFileSync(filename, data);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n }\n}\n\n/**\n * Find files by name\n * @param {string} fileName file name to search for\n * @param {boolean} fast return first result and stop search\n * @param {string} path path to directory where to start the search\n * @returns {string[]} array of found file paths relative to starting directory\n */\nexport function findFilesByName(\n fileName: string,\n fast = true,\n path = './'\n): string[] {\n const entries = fs.readdirSync(path, {\n encoding: 'utf8',\n withFileTypes: true,\n });\n\n // Get files within the current directory and add a path key to the file objects\n const files: string[] = entries\n .filter((entry) => !entry.isDirectory())\n .filter((file) => file.name === fileName)\n // .map((file) => ({ ...file, path: path + file.name }));\n .map((file) => path + file.name);\n\n if (fast && files.length > 0) return files;\n\n // search sub-folders\n const folders = entries.filter((entry) => entry.isDirectory());\n for (const folder of folders)\n files.push(...findFilesByName(fileName, fast, `${path}${folder.name}/`));\n\n return files;\n}\n\n/**\n * find all (nested) files in a directory\n *\n * @param directory directory to search\n * @returns list of files\n */\nexport async function readFilesRecursive(directory: string): Promise<string[]> {\n const items = await readdir(directory);\n\n const filePathsNested = await Promise.all(\n items.map(async (entity) => {\n const path = join(directory, entity);\n const isDirectory = (await lstat(path)).isDirectory();\n\n if (isDirectory) {\n return readFilesRecursive(path);\n }\n return path;\n })\n );\n\n return filePathsNested.flat();\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExportImportUtils.test.js","names":["
|
|
1
|
+
{"version":3,"file":"ExportImportUtils.test.js","names":["_index","require","_path","_fs","_ExportImportUtils","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","FS_TMP_DIR","PATH_TO_ARTIFACT","test","originalScript","base64Script","Buffer","from","toString","result","convertBase64TextToArray","expect","toEqual","split","originalArrayOfScriptLines","expected","convertTextArrayToBase64","validateImport","not","toBe","describe","skip","afterAll","existsSync","rmSync","id","data","location","character","words","lotr","saveToFile","type","identifier","filename","state","resultingJSON","JSON","parse","readFileSync","Object","keys","meta"],"sources":["ops/utils/ExportImportUtils.test.ts"],"sourcesContent":["import { state } from '../../index';\nimport { resolve } from 'path';\nimport { rmSync, existsSync, readFileSync } from 'fs';\nimport {\n convertTextArrayToBase64,\n convertBase64TextToArray,\n saveToFile,\n validateImport,\n} from './ExportImportUtils';\n// Warning! implimentation file contains non determinisitc functions which are either; not reasonable to test or imposible\n// Cause: date based non overidable functions\n// Not tested: getCurrentTimestamp\n\nconst FS_TMP_DIR = resolve('.', 'test', 'fs_tmp');\nconst PATH_TO_ARTIFACT = resolve(FS_TMP_DIR, 'export.json');\n\ntest('convertBase64TextToArray returns an array of text lines in base64 encoding', () => {\n // Arrange\n const originalScript = `\n function frodo() {\n return 'ring to mt doom';\n }\n `;\n const base64Script = Buffer.from(originalScript).toString('base64');\n // Act\n const result = convertBase64TextToArray(base64Script);\n // Assert\n expect(result).toEqual(originalScript.split('\\n'));\n});\n\ntest('convertTextArrayToBase64', () => {\n // Arrange\n const originalArrayOfScriptLines = `\n function frodo() {\n return 'ring to mt doom';\n }\n `;\n const expected = Buffer.from(originalArrayOfScriptLines).toString('base64');\n // Act\n const result = convertTextArrayToBase64(\n originalArrayOfScriptLines.split('\\n')\n );\n // Assert\n expect(result).toEqual(expected);\n});\n\ntest('validateImport should always return true', () => {\n expect(validateImport(null)).not.toBe(false);\n});\n\n// This function has no way to determine when its asnyc task is complete, suggest using callback or promises to allow for testing\ndescribe.skip('file system based tests', () => {\n afterAll(() => {\n if (existsSync(PATH_TO_ARTIFACT)) {\n rmSync(PATH_TO_ARTIFACT);\n }\n });\n\n test('saveToFile should save a file to specified tmp directory with expected data format', async () => {\n // Arrange\n const id = `id-3021`;\n const data = [\n {\n id,\n location: 'The Shire',\n character: 'Gandalf',\n words: 1064,\n },\n ];\n\n const expected = {\n lotr: {\n 'id-3021': {\n id: 'id-3021',\n location: 'The Shire',\n character: 'Gandalf',\n words: 1064,\n },\n },\n };\n // Act\n saveToFile({\n type: 'lotr',\n data,\n identifier: 'id',\n filename: PATH_TO_ARTIFACT,\n state,\n });\n const resultingJSON = JSON.parse(readFileSync(PATH_TO_ARTIFACT, 'utf8'));\n // Assert\n expect(resultingJSON.lotr).toEqual(expected.lotr);\n });\n\n test('saveToFile should save a file with metadata', async () => {\n // Arrange\n const id = `id-3021`;\n const data = [\n {\n id,\n location: 'The Shire',\n character: 'Gandalf',\n words: 1064,\n },\n ];\n // Act\n saveToFile({\n type: 'lotr',\n data,\n identifier: 'id',\n filename: PATH_TO_ARTIFACT,\n state,\n });\n const resultingJSON = JSON.parse(readFileSync(PATH_TO_ARTIFACT, 'utf8'));\n // Assert\n expect(Object.keys(resultingJSON.meta)).toEqual([\n 'origin',\n 'exportedBy',\n 'exportDate',\n 'exportTool',\n 'exportToolVersion',\n ]);\n });\n});\n"],"mappings":"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"}
|
package/cjs/ops/utils/Version.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.default = void 0;
|
|
6
7
|
exports.getAllVersions = getAllVersions;
|
|
7
8
|
exports.getVersion = getVersion;
|
|
8
9
|
var _fs = _interopRequireDefault(require("fs"));
|
|
@@ -12,22 +13,44 @@ var _url = require("url");
|
|
|
12
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
14
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
14
15
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
16
|
+
class Version {
|
|
17
|
+
constructor(state) {
|
|
18
|
+
this.state = state;
|
|
19
|
+
}
|
|
20
|
+
getVersion() {
|
|
21
|
+
return getVersion({
|
|
22
|
+
state: this.state
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
getAllVersions(endpoints) {
|
|
26
|
+
var _this = this;
|
|
27
|
+
return _asyncToGenerator(function* () {
|
|
28
|
+
return getAllVersions({
|
|
29
|
+
endpoints,
|
|
30
|
+
state: _this.state
|
|
31
|
+
});
|
|
32
|
+
})();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.default = Version;
|
|
15
36
|
var _dirname = _path.default.dirname((0, _url.fileURLToPath)(require('url').pathToFileURL(__filename).toString()));
|
|
16
37
|
var pkg = JSON.parse(_fs.default.readFileSync(_path.default.resolve(_dirname, '../../../package.json'), 'utf8'));
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
38
|
+
function getVersion(_ref) {
|
|
39
|
+
var {
|
|
40
|
+
state
|
|
41
|
+
} = _ref;
|
|
42
|
+
// must initialize state to avoid library initialization issues
|
|
43
|
+
if (state) return "".concat(pkg.version);
|
|
21
44
|
}
|
|
22
45
|
function getAllVersions(_x) {
|
|
23
46
|
return _getAllVersions.apply(this, arguments);
|
|
24
47
|
}
|
|
25
48
|
function _getAllVersions() {
|
|
26
|
-
_getAllVersions = _asyncToGenerator(function* (
|
|
49
|
+
_getAllVersions = _asyncToGenerator(function* (_ref2) {
|
|
27
50
|
var {
|
|
28
51
|
endpoints,
|
|
29
52
|
state
|
|
30
|
-
} =
|
|
53
|
+
} = _ref2;
|
|
31
54
|
var reqPromises = [];
|
|
32
55
|
endpoints.forEach(item => {
|
|
33
56
|
reqPromises.push((0, _BaseApi.generateReleaseApi)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Version.js","names":["_fs","_interopRequireDefault","require","_path","_BaseApi","_url","obj","__esModule","default","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","__dirname","path","dirname","fileURLToPath","pathToFileURL","__filename","toString","pkg","JSON","parse","fs","readFileSync","
|
|
1
|
+
{"version":3,"file":"Version.js","names":["_fs","_interopRequireDefault","require","_path","_BaseApi","_url","obj","__esModule","default","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","Version","constructor","state","getVersion","getAllVersions","endpoints","_this","exports","__dirname","path","dirname","fileURLToPath","pathToFileURL","__filename","toString","pkg","JSON","parse","fs","readFileSync","_ref","concat","version","_x","_getAllVersions","_ref2","reqPromises","forEach","item","push","generateReleaseApi","baseUrl","base","get","result","allSettled"],"sources":["ops/utils/Version.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { generateReleaseApi } from '../../api/BaseApi';\n\nimport { fileURLToPath } from 'url';\nimport State from '../../shared/State';\n\nexport default class Version {\n state: State;\n constructor(state: State) {\n this.state = state;\n }\n\n getVersion() {\n return getVersion({ state: this.state });\n }\n\n async getAllVersions(endpoints: { base: string; path: string }[]) {\n return getAllVersions({ endpoints, state: this.state });\n }\n}\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\nexport function getVersion({ state }: { state: State }) {\n // must initialize state to avoid library initialization issues\n if (state) return `${pkg.version}`;\n}\n\nexport async function getAllVersions({\n endpoints,\n state,\n}: {\n endpoints: { base: string; path: string }[];\n state: State;\n}) {\n const reqPromises = [];\n endpoints.forEach((item) => {\n reqPromises.push(\n generateReleaseApi({ baseUrl: item.base, state }).get(item.path)\n );\n });\n const result = await Promise.allSettled(reqPromises);\n return result;\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Version.test.js","names":["
|
|
1
|
+
{"version":3,"file":"Version.test.js","names":["_index","require","_fs","_interopRequireDefault","_path","_Version","_url","obj","__esModule","default","__dirname","path","dirname","fileURLToPath","pathToFileURL","__filename","toString","pkg","JSON","parse","fs","readFileSync","resolve","describe","test","result","getVersion","state","expect","toEqual","concat","version"],"sources":["ops/utils/Version.test.ts"],"sourcesContent":["import { state } from '../../index';\nimport fs from 'fs';\nimport path from 'path';\nimport { getVersion } from './Version';\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\ndescribe('index', () => {\n test('get library version', () => {\n const result = getVersion({ state });\n expect(result).toEqual(`${pkg.version}`);\n });\n});\n"],"mappings":";;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,GAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,KAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,IAAA,GAAAL,OAAA;AAAoC,SAAAE,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEpC,IAAMG,QAAS,GAAGC,aAAI,CAACC,OAAO,CAAC,IAAAC,kBAAa,EAAAZ,OAAA,QAAAa,aAAA,CAAAC,UAAA,EAAAC,QAAA,EAAgB,CAAC,CAAC;AAE9D,IAAMC,GAAG,GAAGC,IAAI,CAACC,KAAK,CACpBC,WAAE,CAACC,YAAY,CAACV,aAAI,CAACW,OAAO,CAACZ,QAAS,EAAE,uBAAuB,CAAC,EAAE,MAAM,CAC1E,CAAC;AAEDa,QAAQ,CAAC,OAAO,EAAE,MAAM;EACtBC,IAAI,CAAC,qBAAqB,EAAE,MAAM;IAChC,IAAMC,MAAM,GAAG,IAAAC,mBAAU,EAAC;MAAEC,KAAK,EAALA;IAAM,CAAC,CAAC;IACpCC,MAAM,CAACH,MAAM,CAAC,CAACI,OAAO,IAAAC,MAAA,CAAIb,GAAG,CAACc,OAAO,CAAE,CAAC;EAC1C,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
package/cjs/shared/State.js
CHANGED
|
@@ -62,8 +62,6 @@ class State {
|
|
|
62
62
|
constructor(initialState) {
|
|
63
63
|
_defineProperty(this, "state", _objectSpread({}, globalState));
|
|
64
64
|
this.state = _objectSpread(_objectSpread({}, this.state), initialState);
|
|
65
|
-
console.log("state:");
|
|
66
|
-
console.dir(this.state);
|
|
67
65
|
}
|
|
68
66
|
setHost(host) {
|
|
69
67
|
this.state.host = host;
|