@rockcarver/frodo-lib 2.0.0-21 → 2.0.0-22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build.zip CHANGED
Binary file
@@ -497,41 +497,43 @@ function _importScripts() {
497
497
  var imported = [];
498
498
  for (var existingId of Object.keys(importData.script)) {
499
499
  try {
500
- var scriptSkeleton = importData.script[existingId];
500
+ var _scriptData2 = importData.script[existingId];
501
501
  var newId = existingId;
502
502
  if (reUuid) {
503
503
  newId = (0, _uuid.v4)();
504
504
  (0, _Console.debugMessage)({
505
- message: "ScriptOps.importScripts: Re-uuid-ing script ".concat(scriptSkeleton.name, " ").concat(existingId, " => ").concat(newId, "..."),
505
+ message: "ScriptOps.importScripts: Re-uuid-ing script ".concat(_scriptData2.name, " ").concat(existingId, " => ").concat(newId, "..."),
506
506
  state
507
507
  });
508
- scriptSkeleton._id = newId;
508
+ _scriptData2._id = newId;
509
509
  }
510
510
  if (scriptName) {
511
511
  (0, _Console.debugMessage)({
512
- message: "ScriptOps.importScripts: Renaming script ".concat(scriptSkeleton.name, " => ").concat(scriptName, "..."),
512
+ message: "ScriptOps.importScripts: Renaming script ".concat(_scriptData2.name, " => ").concat(scriptName, "..."),
513
513
  state
514
514
  });
515
- scriptSkeleton.name = scriptName;
515
+ _scriptData2.name = scriptName;
516
516
  }
517
517
  if (validate) {
518
- if (!(0, _ScriptValidationUtils.validateScriptDecoded)({
519
- scriptSkeleton,
518
+ if (!(0, _ScriptValidationUtils.isScriptValid)({
519
+ scriptData: _scriptData2,
520
520
  state
521
521
  })) {
522
- var message = "Error importing script '".concat(scriptSkeleton.name, "': Script is not valid");
523
- (0, _Console.printMessage)({
524
- message,
525
- type: 'error',
526
- state
527
- });
528
- throw new Error(message);
522
+ {
523
+ var message = "Error importing script '".concat(_scriptData2.name, "': Script is not valid");
524
+ (0, _Console.printMessage)({
525
+ message,
526
+ type: 'error',
527
+ state
528
+ });
529
+ throw new Error(message);
530
+ }
529
531
  }
530
532
  }
531
533
  try {
532
534
  yield updateScript({
533
535
  scriptId: newId,
534
- scriptData: scriptSkeleton,
536
+ scriptData: _scriptData2,
535
537
  state
536
538
  });
537
539
  imported.push(newId);
@@ -543,7 +545,10 @@ function _importScripts() {
543
545
  }
544
546
  }
545
547
  if (errors.length) {
546
- var errorMessages = errors.map(error => error.message).join('\n');
548
+ var errorMessages = errors.map(error => {
549
+ var _error$response2, _error$response2$data;
550
+ return ((_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : (_error$response2$data = _error$response2.data) === null || _error$response2$data === void 0 ? void 0 : _error$response2$data.message) || error.message;
551
+ }).join('\n');
547
552
  throw new Error("Import error:\n".concat(errorMessages));
548
553
  }
549
554
  if (0 === imported.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"ScriptOps.js","names":["_uuid","require","_ScriptApi","_Console","_ExportImportUtils","_ForgeRockUtils","_ScriptValidationUtils","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_default","state","createScriptExportTemplate","readScripts","readScript","scriptId","readScriptByName","scriptName","createScript","scriptData","updateScript","deleteScript","exportScript","exportScriptByName","exportScripts","importScripts","importData","_arguments","reUuid","length","validate","getScripts","getScript","getScriptByName","putScript","exports","default","_ref","meta","getMetadata","script","_x","_readScripts","_ref2","result","_getScripts","_x2","_readScript","_ref3","_getScript","_x3","_readScriptByName","_ref4","_getScriptByName","Error","concat","_x4","_createScript","_ref5","debugMessage","message","_id","name","_x5","_updateScript","_ref6","Array","isArray","convertTextArrayToBase64","_putScript","_error$response","response","status","verboseMessage","newName","applyNameCollisionPolicy","_x6","_deleteScript2","_ref7","_deleteScript","_x7","_exportScript","_ref8","convertBase64TextToArray","exportData","_x8","_exportScriptByName","_ref9","_x9","_exportScripts","_ref10","scriptList","createProgressIndicator","total","updateProgressIndicator","stopProgressIndicator","_x10","_importScripts","_ref11","errors","imported","existingId","Object","keys","scriptSkeleton","newId","uuidv4","validateScriptDecoded","printMessage","type","push","errorMessages","map","join"],"sources":["../../src/ops/ScriptOps.ts"],"sourcesContent":["import { v4 as uuidv4 } from 'uuid';\n\nimport {\n deleteScript as _deleteScript,\n getScript as _getScript,\n getScriptByName as _getScriptByName,\n getScripts as _getScripts,\n putScript as _putScript,\n} from '../api/ScriptApi';\nimport { type ScriptSkeleton } from '../api/ScriptApi';\nimport { type ExportMetaData } from '../ops/OpsTypes';\nimport { State } from '../shared/State';\nimport {\n createProgressIndicator,\n debugMessage,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n verboseMessage,\n} from '../utils/Console';\nimport {\n convertBase64TextToArray,\n convertTextArrayToBase64,\n getMetadata,\n} from '../utils/ExportImportUtils';\nimport { applyNameCollisionPolicy } from '../utils/ForgeRockUtils';\nimport { validateScriptDecoded } from '../utils/ScriptValidationUtils';\n\nexport type Script = {\n /**\n * Create an empty script export template\n * @returns {ScriptExportInterface} an empty script export template\n */\n createScriptExportTemplate(): ScriptExportInterface;\n /**\n * Read all scripts\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n */\n readScripts(): Promise<ScriptSkeleton[]>;\n /**\n * Read script\n * @param {string} scriptId script id\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\n readScript(scriptId: string): Promise<ScriptSkeleton>;\n /**\n * Read script by name\n * @param {string} scriptName name of the script\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\n readScriptByName(scriptName: string): Promise<ScriptSkeleton>;\n /**\n * Create script\n * @param {string} scriptId script id\n * @param {string} scriptName name of the script\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<ScriptSkeleton>} a status object\n */\n createScript(\n scriptId: string,\n scriptName: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton>;\n /**\n * Create or update script\n * @param {string} scriptId script id\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<ScriptSkeleton>} a status object\n */\n updateScript(\n scriptId: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton>;\n /**\n * Delete script\n * @param {string} scriptId script id\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\n deleteScript(scriptId: string): Promise<ScriptSkeleton>;\n /**\n * Export all scripts\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n exportScripts(): Promise<ScriptExportInterface>;\n /**\n * Export script by id\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n exportScript(scriptId: string): Promise<ScriptExportInterface>;\n /**\n * Export script by name\n * @param {string} scriptName script name\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n exportScriptByName(scriptName: string): Promise<ScriptExportInterface>;\n /**\n * Import scripts\n * @param {string} scriptName Optional name of script. If supplied, only the script of that name is imported\n * @param {ScriptExportInterface} importData Script import data\n * @param {boolean} reUuid true to generate a new uuid for each script on import, false otherwise\n * @returns {Promise<ScriptSkeleton[]>} true if no errors occurred during import, false otherwise\n */\n importScripts(\n scriptName: string,\n importData: ScriptExportInterface,\n reUuid?: boolean,\n validate?: boolean\n ): Promise<ScriptSkeleton[]>;\n\n // Deprecated\n\n /**\n * Get all scripts\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n * @deprecated since v2.0.0 use {@link Script.readScripts | readScripts} instead\n * ```javascript\n * readScripts(): Promise<ScriptSkeleton[]>\n * ```\n * @group Deprecated\n */\n getScripts(): Promise<ScriptSkeleton[]>;\n /**\n * Get script\n * @param {string} scriptId script id\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n * @deprecated since v2.0.0 use {@link Script.readScript | readScript} instead\n * ```javascript\n * readScript(scriptName: string): Promise<ScriptSkeleton>\n * ```\n * @group Deprecated\n */\n getScript(scriptId: string): Promise<ScriptSkeleton>;\n /**\n * Get script by name\n * @param {string} scriptName name of the script\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n * @deprecated since v2.0.0 use {@link Script.readScriptByName | readScriptByName} instead\n * ```javascript\n * readScriptByName(scriptName: string): Promise<ScriptSkeleton>\n * ```\n * @group Deprecated\n */\n getScriptByName(scriptName: string): Promise<ScriptSkeleton>;\n /**\n * Create or update script\n * @param {string} scriptId script uuid\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<ScriptSkeleton>} a status object\n * @deprecated since v2.0.0 use {@link Script.updateScript | updateScript} or {@link Script.createScript | createScript} instead\n * ```javascript\n * updateScript(scriptId: string, scriptData: ScriptSkeleton): Promise<ScriptSkeleton>\n * createScript(scriptId: string, scriptName: string, scriptData: ScriptSkeleton): Promise<ScriptSkeleton>\n * ```\n * @group Deprecated\n */\n putScript(\n scriptId: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton>;\n};\n\nexport default (state: State): Script => {\n return {\n createScriptExportTemplate(): ScriptExportInterface {\n return createScriptExportTemplate({ state });\n },\n async readScripts(): Promise<ScriptSkeleton[]> {\n return readScripts({ state });\n },\n async readScript(scriptId: string): Promise<ScriptSkeleton> {\n return readScript({ scriptId, state });\n },\n async readScriptByName(scriptName: string): Promise<ScriptSkeleton> {\n return readScriptByName({ scriptName, state });\n },\n async createScript(\n scriptId: string,\n scriptName: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton> {\n return createScript({ scriptId, scriptName, scriptData, state });\n },\n async updateScript(\n scriptId: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton> {\n return updateScript({ scriptId, scriptData, state });\n },\n async deleteScript(scriptId: string): Promise<ScriptSkeleton> {\n return deleteScript({ scriptId, state });\n },\n async exportScript(scriptId: string): Promise<ScriptExportInterface> {\n return exportScript({ scriptId, state });\n },\n async exportScriptByName(\n scriptName: string\n ): Promise<ScriptExportInterface> {\n return exportScriptByName({ scriptName, state });\n },\n async exportScripts(): Promise<ScriptExportInterface> {\n return exportScripts({ state });\n },\n async importScripts(\n scriptName: string,\n importData: ScriptExportInterface,\n reUuid = false,\n validate = false\n ): Promise<ScriptSkeleton[]> {\n return importScripts({\n scriptName,\n importData,\n reUuid,\n validate,\n state,\n });\n },\n\n // Deprecated\n\n async getScripts(): Promise<ScriptSkeleton[]> {\n return readScripts({ state });\n },\n async getScript(scriptId: string): Promise<ScriptSkeleton> {\n return readScript({ scriptId, state });\n },\n async getScriptByName(scriptName: string): Promise<ScriptSkeleton> {\n return readScriptByName({ scriptName, state });\n },\n async putScript(\n scriptId: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton> {\n return updateScript({ scriptId, scriptData, state });\n },\n };\n};\n\nexport interface ScriptExportInterface {\n meta?: ExportMetaData;\n script: Record<string, ScriptSkeleton>;\n}\n\n/**\n * Create an empty script export template\n * @returns {ScriptExportInterface} an empty script export template\n */\nexport function createScriptExportTemplate({\n state,\n}: {\n state: State;\n}): ScriptExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n } as ScriptExportInterface;\n}\n\n/**\n * Get all scripts\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n */\nexport async function readScripts({\n state,\n}: {\n state: State;\n}): Promise<ScriptSkeleton[]> {\n const { result } = await _getScripts({ state });\n return result;\n}\n\n/**\n * Get script\n * @returns {Promise<ScriptSkeleto]>} a promise that resolves to an array of script objects\n */\nexport async function readScript({\n scriptId,\n state,\n}: {\n scriptId: string;\n state: State;\n}): Promise<ScriptSkeleton> {\n return _getScript({ scriptId, state });\n}\n\n/**\n * Get script by name\n * @param {string} scriptName name of the script\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\nexport async function readScriptByName({\n scriptName,\n state,\n}: {\n scriptName: string;\n state: State;\n}): Promise<ScriptSkeleton> {\n const { result } = await _getScriptByName({ scriptName, state });\n switch (result.length) {\n case 1:\n return result[0];\n case 0:\n throw new Error(`Script '${scriptName}' not found`);\n default:\n throw new Error(`${result.length} scripts '${scriptName}' found`);\n }\n}\n\n/**\n * Create script\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<ScriptSkeleton>} a promise resolving to a script object\n */\nexport async function createScript({\n scriptId,\n scriptName,\n scriptData,\n state,\n}: {\n scriptId: string;\n scriptName: string;\n scriptData: ScriptSkeleton;\n state: State;\n}): Promise<ScriptSkeleton> {\n debugMessage({ message: `ScriptOps.createOAuth2Client: start`, state });\n scriptData._id = scriptId;\n scriptData.name = scriptName;\n try {\n await _getScript({ scriptId, state });\n } catch (error) {\n const result = await updateScript({\n scriptId,\n scriptData,\n state,\n });\n debugMessage({ message: `ScriptOps.createOAuth2Client: end`, state });\n return result;\n }\n throw new Error(`Script ${scriptData._id} already exists!`);\n}\n\n/**\n * Create or update script\n * @param {string} scriptId script uuid\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<ScriptSkeleton>} a status object\n */\nexport async function updateScript({\n scriptId,\n scriptData,\n state,\n}: {\n scriptId: string;\n scriptData: ScriptSkeleton;\n state: State;\n}): Promise<ScriptSkeleton> {\n let result = null;\n try {\n if (Array.isArray(scriptData.script)) {\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n }\n result = await _putScript({ scriptId, scriptData, state });\n } catch (error) {\n if (error.response?.status === 409) {\n verboseMessage({\n message: `createOrUpdateScript WARNING: script with name ${scriptData.name} already exists, using renaming policy... <name> => <name - imported (n)>`,\n state,\n });\n const newName = applyNameCollisionPolicy(scriptData.name);\n scriptData.name = newName;\n result = await updateScript({ scriptId, scriptData, state });\n verboseMessage({\n message: `Saved script as ${newName}`,\n state,\n });\n } else throw error;\n }\n return result;\n}\n\n/**\n * Delete script\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptSkeleton>} a promise resolving to a script object\n */\nexport async function deleteScript({\n scriptId,\n state,\n}: {\n scriptId: string;\n state: State;\n}): Promise<ScriptSkeleton> {\n return _deleteScript({ scriptId, state });\n}\n\n/**\n * Export script by id\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScript({\n scriptId,\n state,\n}: {\n scriptId: string;\n state: State;\n}): Promise<ScriptExportInterface> {\n debugMessage({ message: `ScriptOps.exportScriptById: start`, state });\n const scriptData = await _getScript({ scriptId, state });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n const exportData = createScriptExportTemplate({ state });\n exportData.script[scriptData._id] = scriptData;\n debugMessage({ message: `ScriptOps.exportScriptById: end`, state });\n return exportData;\n}\n\n/**\n * Export script by name\n * @param {string} scriptName script name\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScriptByName({\n scriptName,\n state,\n}: {\n scriptName: string;\n state: State;\n}): Promise<ScriptExportInterface> {\n debugMessage({ message: `ScriptOps.exportScriptByName: start`, state });\n const scriptData = await readScriptByName({ scriptName, state });\n scriptData.script = convertBase64TextToArray(scriptData.script as string);\n const exportData = createScriptExportTemplate({ state });\n exportData.script[scriptData._id] = scriptData;\n debugMessage({ message: `ScriptOps.exportScriptByName: end`, state });\n return exportData;\n}\n\n/**\n * Export all scripts\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScripts({\n state,\n}: {\n state: State;\n}): Promise<ScriptExportInterface> {\n const scriptList = await readScripts({ state });\n const exportData = createScriptExportTemplate({ state });\n createProgressIndicator({\n total: scriptList.length,\n message: `Exporting ${scriptList.length} scripts...`,\n state,\n });\n for (const script of scriptList) {\n updateProgressIndicator({\n message: `Reading script ${script.name}`,\n state,\n });\n const scriptData = await readScriptByName({\n scriptName: script.name,\n state,\n });\n scriptData.script = convertBase64TextToArray(scriptData.script as string);\n exportData.script[scriptData._id] = scriptData;\n }\n stopProgressIndicator({\n message: `Exported ${scriptList.length} scripts.`,\n state,\n });\n return exportData;\n}\n\n/**\n * Import scripts\n * @param {string} scriptName Optional name of script. If supplied, only the script of that name is imported\n * @param {ScriptExportInterface} importData Script import data\n * @param {boolean} reUuid true to generate a new uuid for each script on import, false otherwise\n * @returns {Promise<boolean>} true if no errors occurred during import, false otherwise\n */\nexport async function importScripts({\n scriptName,\n importData,\n reUuid = false,\n validate = false,\n state,\n}: {\n scriptName: string;\n importData: ScriptExportInterface;\n reUuid?: boolean;\n validate?: boolean;\n state: State;\n}): Promise<ScriptSkeleton[]> {\n debugMessage({ message: `ScriptOps.importScripts: start`, state });\n const response = [];\n const errors = [];\n const imported = [];\n for (const existingId of Object.keys(importData.script)) {\n try {\n const scriptSkeleton = importData.script[existingId];\n let newId = existingId;\n if (reUuid) {\n newId = uuidv4();\n debugMessage({\n message: `ScriptOps.importScripts: Re-uuid-ing script ${scriptSkeleton.name} ${existingId} => ${newId}...`,\n state,\n });\n scriptSkeleton._id = newId;\n }\n if (scriptName) {\n debugMessage({\n message: `ScriptOps.importScripts: Renaming script ${scriptSkeleton.name} => ${scriptName}...`,\n state,\n });\n scriptSkeleton.name = scriptName;\n }\n if (validate) {\n if (!validateScriptDecoded({ scriptSkeleton, state })) {\n const message = `Error importing script '${scriptSkeleton.name}': Script is not valid`;\n printMessage({\n message,\n type: 'error',\n state,\n });\n throw new Error(message);\n }\n }\n try {\n await updateScript({\n scriptId: newId,\n scriptData: scriptSkeleton,\n state,\n });\n imported.push(newId);\n } catch (error) {\n errors.push(error);\n }\n } catch (error) {\n errors.push(error);\n }\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo scripts found in import data!`);\n }\n debugMessage({ message: `ScriptOps.importScripts: end`, state });\n return response;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ScriptOps.js","names":["_uuid","require","_ScriptApi","_Console","_ExportImportUtils","_ForgeRockUtils","_ScriptValidationUtils","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_default","state","createScriptExportTemplate","readScripts","readScript","scriptId","readScriptByName","scriptName","createScript","scriptData","updateScript","deleteScript","exportScript","exportScriptByName","exportScripts","importScripts","importData","_arguments","reUuid","length","validate","getScripts","getScript","getScriptByName","putScript","exports","default","_ref","meta","getMetadata","script","_x","_readScripts","_ref2","result","_getScripts","_x2","_readScript","_ref3","_getScript","_x3","_readScriptByName","_ref4","_getScriptByName","Error","concat","_x4","_createScript","_ref5","debugMessage","message","_id","name","_x5","_updateScript","_ref6","Array","isArray","convertTextArrayToBase64","_putScript","_error$response","response","status","verboseMessage","newName","applyNameCollisionPolicy","_x6","_deleteScript2","_ref7","_deleteScript","_x7","_exportScript","_ref8","convertBase64TextToArray","exportData","_x8","_exportScriptByName","_ref9","_x9","_exportScripts","_ref10","scriptList","createProgressIndicator","total","updateProgressIndicator","stopProgressIndicator","_x10","_importScripts","_ref11","errors","imported","existingId","Object","keys","newId","uuidv4","isScriptValid","printMessage","type","push","errorMessages","map","_error$response2","_error$response2$data","data","join"],"sources":["../../src/ops/ScriptOps.ts"],"sourcesContent":["import { v4 as uuidv4 } from 'uuid';\n\nimport {\n deleteScript as _deleteScript,\n getScript as _getScript,\n getScriptByName as _getScriptByName,\n getScripts as _getScripts,\n putScript as _putScript,\n type ScriptSkeleton,\n} from '../api/ScriptApi';\nimport { type ExportMetaData } from '../ops/OpsTypes';\nimport { State } from '../shared/State';\nimport {\n createProgressIndicator,\n debugMessage,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n verboseMessage,\n} from '../utils/Console';\nimport {\n convertBase64TextToArray,\n convertTextArrayToBase64,\n getMetadata,\n} from '../utils/ExportImportUtils';\nimport { applyNameCollisionPolicy } from '../utils/ForgeRockUtils';\nimport { isScriptValid } from '../utils/ScriptValidationUtils';\n\nexport type Script = {\n /**\n * Create an empty script export template\n * @returns {ScriptExportInterface} an empty script export template\n */\n createScriptExportTemplate(): ScriptExportInterface;\n /**\n * Read all scripts\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n */\n readScripts(): Promise<ScriptSkeleton[]>;\n /**\n * Read script\n * @param {string} scriptId script id\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\n readScript(scriptId: string): Promise<ScriptSkeleton>;\n /**\n * Read script by name\n * @param {string} scriptName name of the script\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\n readScriptByName(scriptName: string): Promise<ScriptSkeleton>;\n /**\n * Create script\n * @param {string} scriptId script id\n * @param {string} scriptName name of the script\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<ScriptSkeleton>} a status object\n */\n createScript(\n scriptId: string,\n scriptName: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton>;\n /**\n * Create or update script\n * @param {string} scriptId script id\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<ScriptSkeleton>} a status object\n */\n updateScript(\n scriptId: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton>;\n /**\n * Delete script\n * @param {string} scriptId script id\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\n deleteScript(scriptId: string): Promise<ScriptSkeleton>;\n /**\n * Export all scripts\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n exportScripts(): Promise<ScriptExportInterface>;\n /**\n * Export script by id\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n exportScript(scriptId: string): Promise<ScriptExportInterface>;\n /**\n * Export script by name\n * @param {string} scriptName script name\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n exportScriptByName(scriptName: string): Promise<ScriptExportInterface>;\n /**\n * Import scripts\n * @param {string} scriptName Optional name of script. If supplied, only the script of that name is imported\n * @param {ScriptExportInterface} importData Script import data\n * @param {boolean} reUuid true to generate a new uuid for each script on import, false otherwise\n * @returns {Promise<ScriptSkeleton[]>} true if no errors occurred during import, false otherwise\n */\n importScripts(\n scriptName: string,\n importData: ScriptExportInterface,\n reUuid?: boolean,\n validate?: boolean\n ): Promise<ScriptSkeleton[]>;\n\n // Deprecated\n\n /**\n * Get all scripts\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n * @deprecated since v2.0.0 use {@link Script.readScripts | readScripts} instead\n * ```javascript\n * readScripts(): Promise<ScriptSkeleton[]>\n * ```\n * @group Deprecated\n */\n getScripts(): Promise<ScriptSkeleton[]>;\n /**\n * Get script\n * @param {string} scriptId script id\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n * @deprecated since v2.0.0 use {@link Script.readScript | readScript} instead\n * ```javascript\n * readScript(scriptName: string): Promise<ScriptSkeleton>\n * ```\n * @group Deprecated\n */\n getScript(scriptId: string): Promise<ScriptSkeleton>;\n /**\n * Get script by name\n * @param {string} scriptName name of the script\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n * @deprecated since v2.0.0 use {@link Script.readScriptByName | readScriptByName} instead\n * ```javascript\n * readScriptByName(scriptName: string): Promise<ScriptSkeleton>\n * ```\n * @group Deprecated\n */\n getScriptByName(scriptName: string): Promise<ScriptSkeleton>;\n /**\n * Create or update script\n * @param {string} scriptId script uuid\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<ScriptSkeleton>} a status object\n * @deprecated since v2.0.0 use {@link Script.updateScript | updateScript} or {@link Script.createScript | createScript} instead\n * ```javascript\n * updateScript(scriptId: string, scriptData: ScriptSkeleton): Promise<ScriptSkeleton>\n * createScript(scriptId: string, scriptName: string, scriptData: ScriptSkeleton): Promise<ScriptSkeleton>\n * ```\n * @group Deprecated\n */\n putScript(\n scriptId: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton>;\n};\n\nexport default (state: State): Script => {\n return {\n createScriptExportTemplate(): ScriptExportInterface {\n return createScriptExportTemplate({ state });\n },\n async readScripts(): Promise<ScriptSkeleton[]> {\n return readScripts({ state });\n },\n async readScript(scriptId: string): Promise<ScriptSkeleton> {\n return readScript({ scriptId, state });\n },\n async readScriptByName(scriptName: string): Promise<ScriptSkeleton> {\n return readScriptByName({ scriptName, state });\n },\n async createScript(\n scriptId: string,\n scriptName: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton> {\n return createScript({ scriptId, scriptName, scriptData, state });\n },\n async updateScript(\n scriptId: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton> {\n return updateScript({ scriptId, scriptData, state });\n },\n async deleteScript(scriptId: string): Promise<ScriptSkeleton> {\n return deleteScript({ scriptId, state });\n },\n async exportScript(scriptId: string): Promise<ScriptExportInterface> {\n return exportScript({ scriptId, state });\n },\n async exportScriptByName(\n scriptName: string\n ): Promise<ScriptExportInterface> {\n return exportScriptByName({ scriptName, state });\n },\n async exportScripts(): Promise<ScriptExportInterface> {\n return exportScripts({ state });\n },\n async importScripts(\n scriptName: string,\n importData: ScriptExportInterface,\n reUuid = false,\n validate = false\n ): Promise<ScriptSkeleton[]> {\n return importScripts({\n scriptName,\n importData,\n reUuid,\n validate,\n state,\n });\n },\n\n // Deprecated\n\n async getScripts(): Promise<ScriptSkeleton[]> {\n return readScripts({ state });\n },\n async getScript(scriptId: string): Promise<ScriptSkeleton> {\n return readScript({ scriptId, state });\n },\n async getScriptByName(scriptName: string): Promise<ScriptSkeleton> {\n return readScriptByName({ scriptName, state });\n },\n async putScript(\n scriptId: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton> {\n return updateScript({ scriptId, scriptData, state });\n },\n };\n};\n\nexport interface ScriptExportInterface {\n meta?: ExportMetaData;\n script: Record<string, ScriptSkeleton>;\n}\n\n/**\n * Create an empty script export template\n * @returns {ScriptExportInterface} an empty script export template\n */\nexport function createScriptExportTemplate({\n state,\n}: {\n state: State;\n}): ScriptExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n } as ScriptExportInterface;\n}\n\n/**\n * Get all scripts\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n */\nexport async function readScripts({\n state,\n}: {\n state: State;\n}): Promise<ScriptSkeleton[]> {\n const { result } = await _getScripts({ state });\n return result;\n}\n\n/**\n * Get script\n * @returns {Promise<ScriptSkeleto]>} a promise that resolves to an array of script objects\n */\nexport async function readScript({\n scriptId,\n state,\n}: {\n scriptId: string;\n state: State;\n}): Promise<ScriptSkeleton> {\n return _getScript({ scriptId, state });\n}\n\n/**\n * Get script by name\n * @param {string} scriptName name of the script\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\nexport async function readScriptByName({\n scriptName,\n state,\n}: {\n scriptName: string;\n state: State;\n}): Promise<ScriptSkeleton> {\n const { result } = await _getScriptByName({ scriptName, state });\n switch (result.length) {\n case 1:\n return result[0];\n case 0:\n throw new Error(`Script '${scriptName}' not found`);\n default:\n throw new Error(`${result.length} scripts '${scriptName}' found`);\n }\n}\n\n/**\n * Create script\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<ScriptSkeleton>} a promise resolving to a script object\n */\nexport async function createScript({\n scriptId,\n scriptName,\n scriptData,\n state,\n}: {\n scriptId: string;\n scriptName: string;\n scriptData: ScriptSkeleton;\n state: State;\n}): Promise<ScriptSkeleton> {\n debugMessage({ message: `ScriptOps.createOAuth2Client: start`, state });\n scriptData._id = scriptId;\n scriptData.name = scriptName;\n try {\n await _getScript({ scriptId, state });\n } catch (error) {\n const result = await updateScript({\n scriptId,\n scriptData,\n state,\n });\n debugMessage({ message: `ScriptOps.createOAuth2Client: end`, state });\n return result;\n }\n throw new Error(`Script ${scriptData._id} already exists!`);\n}\n\n/**\n * Create or update script\n * @param {string} scriptId script uuid\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<ScriptSkeleton>} a status object\n */\nexport async function updateScript({\n scriptId,\n scriptData,\n state,\n}: {\n scriptId: string;\n scriptData: ScriptSkeleton;\n state: State;\n}): Promise<ScriptSkeleton> {\n let result = null;\n try {\n if (Array.isArray(scriptData.script)) {\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n }\n result = await _putScript({ scriptId, scriptData, state });\n } catch (error) {\n if (error.response?.status === 409) {\n verboseMessage({\n message: `createOrUpdateScript WARNING: script with name ${scriptData.name} already exists, using renaming policy... <name> => <name - imported (n)>`,\n state,\n });\n const newName = applyNameCollisionPolicy(scriptData.name);\n scriptData.name = newName;\n result = await updateScript({ scriptId, scriptData, state });\n verboseMessage({\n message: `Saved script as ${newName}`,\n state,\n });\n } else throw error;\n }\n return result;\n}\n\n/**\n * Delete script\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptSkeleton>} a promise resolving to a script object\n */\nexport async function deleteScript({\n scriptId,\n state,\n}: {\n scriptId: string;\n state: State;\n}): Promise<ScriptSkeleton> {\n return _deleteScript({ scriptId, state });\n}\n\n/**\n * Export script by id\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScript({\n scriptId,\n state,\n}: {\n scriptId: string;\n state: State;\n}): Promise<ScriptExportInterface> {\n debugMessage({ message: `ScriptOps.exportScriptById: start`, state });\n const scriptData = await _getScript({ scriptId, state });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n const exportData = createScriptExportTemplate({ state });\n exportData.script[scriptData._id] = scriptData;\n debugMessage({ message: `ScriptOps.exportScriptById: end`, state });\n return exportData;\n}\n\n/**\n * Export script by name\n * @param {string} scriptName script name\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScriptByName({\n scriptName,\n state,\n}: {\n scriptName: string;\n state: State;\n}): Promise<ScriptExportInterface> {\n debugMessage({ message: `ScriptOps.exportScriptByName: start`, state });\n const scriptData = await readScriptByName({ scriptName, state });\n scriptData.script = convertBase64TextToArray(scriptData.script as string);\n const exportData = createScriptExportTemplate({ state });\n exportData.script[scriptData._id] = scriptData;\n debugMessage({ message: `ScriptOps.exportScriptByName: end`, state });\n return exportData;\n}\n\n/**\n * Export all scripts\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScripts({\n state,\n}: {\n state: State;\n}): Promise<ScriptExportInterface> {\n const scriptList = await readScripts({ state });\n const exportData = createScriptExportTemplate({ state });\n createProgressIndicator({\n total: scriptList.length,\n message: `Exporting ${scriptList.length} scripts...`,\n state,\n });\n for (const script of scriptList) {\n updateProgressIndicator({\n message: `Reading script ${script.name}`,\n state,\n });\n const scriptData = await readScriptByName({\n scriptName: script.name,\n state,\n });\n scriptData.script = convertBase64TextToArray(scriptData.script as string);\n exportData.script[scriptData._id] = scriptData;\n }\n stopProgressIndicator({\n message: `Exported ${scriptList.length} scripts.`,\n state,\n });\n return exportData;\n}\n\n/**\n * Import scripts\n * @param {string} scriptName Optional name of script. If supplied, only the script of that name is imported\n * @param {ScriptExportInterface} importData Script import data\n * @param {boolean} reUuid true to generate a new uuid for each script on import, false otherwise\n * @returns {Promise<boolean>} true if no errors occurred during import, false otherwise\n */\nexport async function importScripts({\n scriptName,\n importData,\n reUuid = false,\n validate = false,\n state,\n}: {\n scriptName: string;\n importData: ScriptExportInterface;\n reUuid?: boolean;\n validate?: boolean;\n state: State;\n}): Promise<ScriptSkeleton[]> {\n debugMessage({ message: `ScriptOps.importScripts: start`, state });\n const response = [];\n const errors = [];\n const imported = [];\n for (const existingId of Object.keys(importData.script)) {\n try {\n const scriptData = importData.script[existingId];\n let newId = existingId;\n if (reUuid) {\n newId = uuidv4();\n debugMessage({\n message: `ScriptOps.importScripts: Re-uuid-ing script ${scriptData.name} ${existingId} => ${newId}...`,\n state,\n });\n scriptData._id = newId;\n }\n if (scriptName) {\n debugMessage({\n message: `ScriptOps.importScripts: Renaming script ${scriptData.name} => ${scriptName}...`,\n state,\n });\n scriptData.name = scriptName;\n }\n if (validate) {\n if (!isScriptValid({ scriptData, state })) {\n {\n const message = `Error importing script '${scriptData.name}': Script is not valid`;\n printMessage({\n message,\n type: 'error',\n state,\n });\n throw new Error(message);\n }\n }\n }\n try {\n await updateScript({\n scriptId: newId,\n scriptData,\n state,\n });\n imported.push(newId);\n } catch (error) {\n errors.push(error);\n }\n } catch (error) {\n errors.push(error);\n }\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo scripts found in import data!`);\n }\n debugMessage({ message: `ScriptOps.importScripts: end`, state });\n return response;\n}\n"],"mappings":"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"}
@@ -3,10 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.areScriptHooksValid = areScriptHooksValid;
6
7
  exports.default = void 0;
8
+ exports.isScriptValid = isScriptValid;
7
9
  exports.isValidJs = isValidJs;
10
+ exports.validateJs = validateJs;
8
11
  exports.validateScript = validateScript;
9
- exports.validateScriptDecoded = validateScriptDecoded;
10
12
  exports.validateScriptHooks = validateScriptHooks;
11
13
  var _esprima = require("esprima");
12
14
  var _Base64Utils = require("./Base64Utils.js");
@@ -14,21 +16,29 @@ var _Console = require("./Console.js");
14
16
  var _default = state => {
15
17
  return {
16
18
  validateScriptHooks(jsonData) {
17
- return validateScriptHooks({
18
- jsonData,
19
- state
19
+ validateScriptHooks({
20
+ jsonData
21
+ });
22
+ },
23
+ validateScript(scriptData) {
24
+ validateScript({
25
+ scriptData
20
26
  });
21
27
  },
22
- findAllScriptHooks(jsonData) {
23
- var scriptHooksArray = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
24
- return findAllScriptHooks(jsonData, scriptHooksArray);
28
+ validateJs(javascriptSource) {
29
+ validateJs({
30
+ javascriptSource
31
+ });
25
32
  },
26
- validateScript(script) {
27
- return validateScript(script, state);
33
+ areScriptHooksValid(jsonData) {
34
+ return areScriptHooksValid({
35
+ jsonData,
36
+ state
37
+ });
28
38
  },
29
- validateScriptDecoded(scriptSkeleton) {
30
- return validateScriptDecoded({
31
- scriptSkeleton,
39
+ isScriptValid(scriptData) {
40
+ return isScriptValid({
41
+ scriptData,
32
42
  state
33
43
  });
34
44
  },
@@ -41,25 +51,6 @@ var _default = state => {
41
51
  };
42
52
  };
43
53
  exports.default = _default;
44
- function validateScriptHooks(_ref) {
45
- var {
46
- jsonData,
47
- state
48
- } = _ref;
49
- var scriptHooks = findAllScriptHooks(jsonData);
50
- for (var scriptHook of scriptHooks) {
51
- if (!('source' in scriptHook)) {
52
- continue;
53
- }
54
- if (!isValidJs({
55
- javascriptSource: scriptHook.source,
56
- state
57
- })) {
58
- return false;
59
- }
60
- }
61
- return true;
62
- }
63
54
  function findAllScriptHooks(jsonData) {
64
55
  var scriptHooksArray = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
65
56
  if (typeof jsonData !== 'object' || jsonData === null) {
@@ -78,38 +69,76 @@ function findAllScriptHooks(jsonData) {
78
69
  }
79
70
  return scriptHooksArray;
80
71
  }
81
- function validateScript(script, state) {
82
- var scriptRaw = (0, _Base64Utils.decode)(script.script);
83
- if (script.language === 'JAVASCRIPT') {
84
- return isValidJs({
85
- javascriptSource: scriptRaw,
86
- state
72
+ function validateScriptHooks(_ref) {
73
+ var {
74
+ jsonData
75
+ } = _ref;
76
+ var scriptHooks = findAllScriptHooks(jsonData);
77
+ for (var scriptHook of scriptHooks) {
78
+ if (!('source' in scriptHook)) {
79
+ continue;
80
+ }
81
+ validateJs({
82
+ javascriptSource: scriptHook.source
83
+ });
84
+ }
85
+ }
86
+ function validateScript(_ref2) {
87
+ var {
88
+ scriptData
89
+ } = _ref2;
90
+ if (scriptData.language === 'JAVASCRIPT') {
91
+ var script = Array.isArray(scriptData.script) ? scriptData.script.join('\n') : (0, _Base64Utils.decode)(scriptData.script);
92
+ validateJs({
93
+ javascriptSource: script
87
94
  });
88
95
  }
96
+ }
97
+ function validateJs(_ref3) {
98
+ var {
99
+ javascriptSource
100
+ } = _ref3;
101
+ (0, _esprima.parseScript)(javascriptSource);
89
102
  return true;
90
103
  }
91
- function validateScriptDecoded(_ref2) {
104
+ function areScriptHooksValid(_ref4) {
92
105
  var {
93
- scriptSkeleton,
106
+ jsonData,
94
107
  state
95
- } = _ref2;
96
- if (!Array.isArray(scriptSkeleton.script)) {
97
- return false;
108
+ } = _ref4;
109
+ var scriptHooks = findAllScriptHooks(jsonData);
110
+ for (var scriptHook of scriptHooks) {
111
+ if (!('source' in scriptHook)) {
112
+ continue;
113
+ }
114
+ if (!isValidJs({
115
+ javascriptSource: scriptHook.source,
116
+ state
117
+ })) {
118
+ return false;
119
+ }
98
120
  }
99
- if (scriptSkeleton.language === 'JAVASCRIPT') {
100
- var _script = scriptSkeleton.script.join('\n');
121
+ return true;
122
+ }
123
+ function isScriptValid(_ref5) {
124
+ var {
125
+ scriptData,
126
+ state
127
+ } = _ref5;
128
+ if (scriptData.language === 'JAVASCRIPT') {
129
+ var script = Array.isArray(scriptData.script) ? scriptData.script.join('\n') : (0, _Base64Utils.decode)(scriptData.script);
101
130
  return isValidJs({
102
- javascriptSource: _script,
131
+ javascriptSource: script,
103
132
  state
104
133
  });
105
134
  }
106
135
  return true;
107
136
  }
108
- function isValidJs(_ref3) {
137
+ function isValidJs(_ref6) {
109
138
  var {
110
139
  javascriptSource,
111
140
  state
112
- } = _ref3;
141
+ } = _ref6;
113
142
  try {
114
143
  (0, _esprima.parseScript)(javascriptSource);
115
144
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"ScriptValidationUtils.js","names":["_esprima","require","_Base64Utils","_Console","_default","state","validateScriptHooks","jsonData","findAllScriptHooks","scriptHooksArray","arguments","length","undefined","validateScript","script","validateScriptDecoded","scriptSkeleton","isValidJs","javascriptSource","exports","default","_ref","scriptHooks","scriptHook","source","key","item","type","push","scriptRaw","decode","language","_ref2","Array","isArray","join","_ref3","parseScript","e","printMessage","message","concat"],"sources":["../../src/utils/ScriptValidationUtils.ts"],"sourcesContent":["import { parseScript } from 'esprima';\n\nimport { type ScriptSkeleton } from '../api/ScriptApi';\nimport { State } from '../shared/State';\nimport { decode } from './Base64Utils';\nimport { printMessage } from './Console';\n\nexport type ScriptValidation = {\n validateScriptHooks(jsonData: object): boolean;\n findAllScriptHooks(\n jsonData: object,\n scriptHooksArray?: ScriptHook[]\n ): ScriptHook[];\n validateScript(script: ScriptSkeleton): boolean;\n validateScriptDecoded(scriptSkeleton: ScriptSkeleton): boolean;\n isValidJs(javascriptSource: string): boolean;\n};\n\nexport default (state: State) => {\n return {\n validateScriptHooks(jsonData: object): boolean {\n return validateScriptHooks({ jsonData, state });\n },\n\n findAllScriptHooks(\n jsonData: object,\n scriptHooksArray: ScriptHook[] = []\n ): ScriptHook[] {\n return findAllScriptHooks(jsonData, scriptHooksArray);\n },\n\n validateScript(script: ScriptSkeleton): boolean {\n return validateScript(script, state);\n },\n\n validateScriptDecoded(scriptSkeleton: ScriptSkeleton): boolean {\n return validateScriptDecoded({ scriptSkeleton, state });\n },\n\n isValidJs(javascriptSource: string) {\n return isValidJs({ javascriptSource, state });\n },\n };\n};\n\nexport interface ScriptHook {\n type: 'text/javascript';\n source?: string;\n}\n\nexport function validateScriptHooks({\n jsonData,\n state,\n}: {\n jsonData: object;\n state: State;\n}): boolean {\n const scriptHooks = findAllScriptHooks(jsonData);\n\n for (const scriptHook of scriptHooks) {\n if (!('source' in scriptHook)) {\n continue;\n }\n\n if (!isValidJs({ javascriptSource: scriptHook.source, state })) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction findAllScriptHooks(\n jsonData: unknown,\n scriptHooksArray: ScriptHook[] = []\n): ScriptHook[] {\n if (typeof jsonData !== 'object' || jsonData === null) {\n return scriptHooksArray;\n }\n\n for (const key in jsonData) {\n const item = jsonData[key];\n if (typeof item !== 'object' || item === null) {\n continue;\n }\n\n if ('type' in item && item.type === 'text/javascript') {\n scriptHooksArray.push(item);\n } else {\n findAllScriptHooks(item, scriptHooksArray);\n }\n }\n\n return scriptHooksArray;\n}\n\nexport function validateScript(script: ScriptSkeleton, state: State): boolean {\n const scriptRaw = decode(script.script as string);\n\n if (script.language === 'JAVASCRIPT') {\n return isValidJs({ javascriptSource: scriptRaw, state });\n }\n return true;\n}\n\nexport function validateScriptDecoded({\n scriptSkeleton,\n state,\n}: {\n scriptSkeleton: ScriptSkeleton;\n state: State;\n}): boolean {\n if (!Array.isArray(scriptSkeleton.script)) {\n return false;\n }\n if (scriptSkeleton.language === 'JAVASCRIPT') {\n const script = scriptSkeleton.script.join('\\n');\n return isValidJs({ javascriptSource: script, state });\n }\n return true;\n}\n\nexport function isValidJs({\n javascriptSource,\n state,\n}: {\n javascriptSource: string;\n state: State;\n}) {\n try {\n parseScript(javascriptSource);\n return true;\n } catch (e) {\n printMessage({\n message: `Invalid JavaScript: ${e.message}`,\n type: 'error',\n state,\n });\n\n return false;\n }\n}\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAAsC,IAAAC,YAAA,GAAAD,OAAA;AAAA,IAAAE,QAAA,GAAAF,OAAA;AAAA,IAAAG,QAAA,GAkBtBC,KAAY,IAAK;EAC/B,OAAO;IACLC,mBAAmBA,CAACC,QAAgB,EAAW;MAC7C,OAAOD,mBAAmB,CAAC;QAAEC,QAAQ;QAAEF;MAAM,CAAC,CAAC;IACjD,CAAC;IAEDG,kBAAkBA,CAChBD,QAAgB,EAEF;MAAA,IADdE,gBAA8B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;MAEnC,OAAOF,kBAAkB,CAACD,QAAQ,EAAEE,gBAAgB,CAAC;IACvD,CAAC;IAEDI,cAAcA,CAACC,MAAsB,EAAW;MAC9C,OAAOD,cAAc,CAACC,MAAM,EAAET,KAAK,CAAC;IACtC,CAAC;IAEDU,qBAAqBA,CAACC,cAA8B,EAAW;MAC7D,OAAOD,qBAAqB,CAAC;QAAEC,cAAc;QAAEX;MAAM,CAAC,CAAC;IACzD,CAAC;IAEDY,SAASA,CAACC,gBAAwB,EAAE;MAClC,OAAOD,SAAS,CAAC;QAAEC,gBAAgB;QAAEb;MAAM,CAAC,CAAC;IAC/C;EACF,CAAC;AACH,CAAC;AAAAc,OAAA,CAAAC,OAAA,GAAAhB,QAAA;AAOM,SAASE,mBAAmBA,CAAAe,IAAA,EAMvB;EAAA,IANwB;IAClCd,QAAQ;IACRF;EAIF,CAAC,GAAAgB,IAAA;EACC,IAAMC,WAAW,GAAGd,kBAAkB,CAACD,QAAQ,CAAC;EAEhD,KAAK,IAAMgB,UAAU,IAAID,WAAW,EAAE;IACpC,IAAI,EAAE,QAAQ,IAAIC,UAAU,CAAC,EAAE;MAC7B;IACF;IAEA,IAAI,CAACN,SAAS,CAAC;MAAEC,gBAAgB,EAAEK,UAAU,CAACC,MAAM;MAAEnB;IAAM,CAAC,CAAC,EAAE;MAC9D,OAAO,KAAK;IACd;EACF;EAEA,OAAO,IAAI;AACb;AAEA,SAASG,kBAAkBA,CACzBD,QAAiB,EAEH;EAAA,IADdE,gBAA8B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAEnC,IAAI,OAAOH,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,KAAK,IAAI,EAAE;IACrD,OAAOE,gBAAgB;EACzB;EAEA,KAAK,IAAMgB,GAAG,IAAIlB,QAAQ,EAAE;IAC1B,IAAMmB,IAAI,GAAGnB,QAAQ,CAACkB,GAAG,CAAC;IAC1B,IAAI,OAAOC,IAAI,KAAK,QAAQ,IAAIA,IAAI,KAAK,IAAI,EAAE;MAC7C;IACF;IAEA,IAAI,MAAM,IAAIA,IAAI,IAAIA,IAAI,CAACC,IAAI,KAAK,iBAAiB,EAAE;MACrDlB,gBAAgB,CAACmB,IAAI,CAACF,IAAI,CAAC;IAC7B,CAAC,MAAM;MACLlB,kBAAkB,CAACkB,IAAI,EAAEjB,gBAAgB,CAAC;IAC5C;EACF;EAEA,OAAOA,gBAAgB;AACzB;AAEO,SAASI,cAAcA,CAACC,MAAsB,EAAET,KAAY,EAAW;EAC5E,IAAMwB,SAAS,GAAG,IAAAC,mBAAM,EAAChB,MAAM,CAACA,MAAgB,CAAC;EAEjD,IAAIA,MAAM,CAACiB,QAAQ,KAAK,YAAY,EAAE;IACpC,OAAOd,SAAS,CAAC;MAAEC,gBAAgB,EAAEW,SAAS;MAAExB;IAAM,CAAC,CAAC;EAC1D;EACA,OAAO,IAAI;AACb;AAEO,SAASU,qBAAqBA,CAAAiB,KAAA,EAMzB;EAAA,IAN0B;IACpChB,cAAc;IACdX;EAIF,CAAC,GAAA2B,KAAA;EACC,IAAI,CAACC,KAAK,CAACC,OAAO,CAAClB,cAAc,CAACF,MAAM,CAAC,EAAE;IACzC,OAAO,KAAK;EACd;EACA,IAAIE,cAAc,CAACe,QAAQ,KAAK,YAAY,EAAE;IAC5C,IAAMjB,OAAM,GAAGE,cAAc,CAACF,MAAM,CAACqB,IAAI,CAAC,IAAI,CAAC;IAC/C,OAAOlB,SAAS,CAAC;MAAEC,gBAAgB,EAAEJ,OAAM;MAAET;IAAM,CAAC,CAAC;EACvD;EACA,OAAO,IAAI;AACb;AAEO,SAASY,SAASA,CAAAmB,KAAA,EAMtB;EAAA,IANuB;IACxBlB,gBAAgB;IAChBb;EAIF,CAAC,GAAA+B,KAAA;EACC,IAAI;IACF,IAAAC,oBAAW,EAACnB,gBAAgB,CAAC;IAC7B,OAAO,IAAI;EACb,CAAC,CAAC,OAAOoB,CAAC,EAAE;IACV,IAAAC,qBAAY,EAAC;MACXC,OAAO,yBAAAC,MAAA,CAAyBH,CAAC,CAACE,OAAO,CAAE;MAC3Cb,IAAI,EAAE,OAAO;MACbtB;IACF,CAAC,CAAC;IAEF,OAAO,KAAK;EACd;AACF"}
1
+ {"version":3,"file":"ScriptValidationUtils.js","names":["_esprima","require","_Base64Utils","_Console","_default","state","validateScriptHooks","jsonData","validateScript","scriptData","validateJs","javascriptSource","areScriptHooksValid","isScriptValid","isValidJs","exports","default","findAllScriptHooks","scriptHooksArray","arguments","length","undefined","key","item","type","push","_ref","scriptHooks","scriptHook","source","_ref2","language","script","Array","isArray","join","decode","_ref3","parseScript","_ref4","_ref5","_ref6","e","printMessage","message","concat"],"sources":["../../src/utils/ScriptValidationUtils.ts"],"sourcesContent":["import { parseScript } from 'esprima';\n\nimport { type ScriptSkeleton } from '../api/ScriptApi';\nimport { State } from '../shared/State';\nimport { decode } from './Base64Utils';\nimport { printMessage } from './Console';\n\nexport type ScriptValidation = {\n validateScriptHooks(jsonData: object): void;\n validateScript(scriptData: ScriptSkeleton): void;\n validateJs(javascriptSource: string): void;\n areScriptHooksValid(jsonData: object): boolean;\n isScriptValid(scriptData: ScriptSkeleton): boolean;\n isValidJs(javascriptSource: string): boolean;\n};\n\nexport default (state: State): ScriptValidation => {\n return {\n validateScriptHooks(jsonData: object): void {\n validateScriptHooks({ jsonData });\n },\n validateScript(scriptData: ScriptSkeleton): void {\n validateScript({ scriptData });\n },\n validateJs(javascriptSource: string): void {\n validateJs({ javascriptSource });\n },\n areScriptHooksValid(jsonData: object): boolean {\n return areScriptHooksValid({ jsonData, state });\n },\n isScriptValid(scriptData: ScriptSkeleton): boolean {\n return isScriptValid({ scriptData, state });\n },\n isValidJs(javascriptSource: string): boolean {\n return isValidJs({ javascriptSource, state });\n },\n };\n};\n\nexport interface ScriptHook {\n type: 'text/javascript';\n source?: string;\n}\n\nfunction findAllScriptHooks(\n jsonData: any,\n scriptHooksArray: ScriptHook[] = []\n): ScriptHook[] {\n if (typeof jsonData !== 'object' || jsonData === null) {\n return scriptHooksArray;\n }\n\n for (const key in jsonData) {\n const item = jsonData[key];\n if (typeof item !== 'object' || item === null) {\n continue;\n }\n\n if ('type' in item && item.type === 'text/javascript') {\n scriptHooksArray.push(item);\n } else {\n findAllScriptHooks(item, scriptHooksArray);\n }\n }\n\n return scriptHooksArray;\n}\n\nexport function validateScriptHooks({ jsonData }: { jsonData: object }): void {\n const scriptHooks = findAllScriptHooks(jsonData);\n\n for (const scriptHook of scriptHooks) {\n if (!('source' in scriptHook)) {\n continue;\n }\n\n validateJs({ javascriptSource: scriptHook.source });\n }\n}\n\nexport function validateScript({\n scriptData,\n}: {\n scriptData: ScriptSkeleton;\n}): void {\n if (scriptData.language === 'JAVASCRIPT') {\n const script = Array.isArray(scriptData.script)\n ? scriptData.script.join('\\n')\n : decode(scriptData.script as string);\n validateJs({ javascriptSource: script });\n }\n}\n\nexport function validateJs({ javascriptSource }: { javascriptSource: string }) {\n parseScript(javascriptSource);\n return true;\n}\n\nexport function areScriptHooksValid({\n jsonData,\n state,\n}: {\n jsonData: object;\n state: State;\n}): boolean {\n const scriptHooks = findAllScriptHooks(jsonData);\n\n for (const scriptHook of scriptHooks) {\n if (!('source' in scriptHook)) {\n continue;\n }\n\n if (!isValidJs({ javascriptSource: scriptHook.source, state })) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function isScriptValid({\n scriptData,\n state,\n}: {\n scriptData: ScriptSkeleton;\n state: State;\n}): boolean {\n if (scriptData.language === 'JAVASCRIPT') {\n const script = Array.isArray(scriptData.script)\n ? scriptData.script.join('\\n')\n : decode(scriptData.script as string);\n return isValidJs({ javascriptSource: script, state });\n }\n return true;\n}\n\nexport function isValidJs({\n javascriptSource,\n state,\n}: {\n javascriptSource: string;\n state: State;\n}) {\n try {\n parseScript(javascriptSource);\n return true;\n } catch (e) {\n printMessage({\n message: `Invalid JavaScript: ${e.message}`,\n type: 'error',\n state,\n });\n\n return false;\n }\n}\n"],"mappings":"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"}
@@ -4,7 +4,7 @@ var _State = _interopRequireDefault(require("../shared/State.js"));
4
4
  var _ScriptValidationUtils = require("./ScriptValidationUtils.js");
5
5
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
6
  var state = (0, _State.default)({});
7
- describe('validateScriptHooks', () => {
7
+ describe('areScriptHooksValid', () => {
8
8
  it('should return false when there is an invalid script', () => {
9
9
  var jsonData = {
10
10
  script: {
@@ -12,7 +12,7 @@ describe('validateScriptHooks', () => {
12
12
  source: 'invalid javascript'
13
13
  }
14
14
  };
15
- expect((0, _ScriptValidationUtils.validateScriptHooks)({
15
+ expect((0, _ScriptValidationUtils.areScriptHooksValid)({
16
16
  jsonData,
17
17
  state
18
18
  })).toBe(false);
@@ -24,7 +24,7 @@ describe('validateScriptHooks', () => {
24
24
  source: 'console.log("Hello World");'
25
25
  }
26
26
  };
27
- expect((0, _ScriptValidationUtils.validateScriptHooks)({
27
+ expect((0, _ScriptValidationUtils.areScriptHooksValid)({
28
28
  jsonData,
29
29
  state
30
30
  })).toBe(true);
@@ -35,7 +35,7 @@ describe('validateScriptHooks', () => {
35
35
  type: 'text/javascript'
36
36
  }
37
37
  };
38
- expect((0, _ScriptValidationUtils.validateScriptHooks)({
38
+ expect((0, _ScriptValidationUtils.areScriptHooksValid)({
39
39
  jsonData,
40
40
  state
41
41
  })).toBe(true);
@@ -1 +1 @@
1
- {"version":3,"file":"ScriptValidationUtils.test.js","names":["state","StateImpl","describe","it","jsonData","script","type","source","expect","validateScriptHooks","toBe"],"sources":["../../src/utils/ScriptValidationUtils.test.ts"],"sourcesContent":["import StateImpl, { State } from '../shared/State';\nimport { validateScriptHooks } from './ScriptValidationUtils';\n\nconst state: State = StateImpl({});\n\ndescribe('validateScriptHooks', () => {\n it('should return false when there is an invalid script', () => {\n const jsonData = {\n script: {\n type: 'text/javascript',\n source: 'invalid javascript',\n },\n };\n expect(validateScriptHooks({ jsonData, state })).toBe(false);\n });\n\n it('should return true when there is a valid script', () => {\n const jsonData = {\n script: {\n type: 'text/javascript',\n source: 'console.log(\"Hello World\");',\n },\n };\n expect(validateScriptHooks({ jsonData, state })).toBe(true);\n });\n\n it('should return true when there is no script', () => {\n const jsonData = {\n script: {\n type: 'text/javascript',\n },\n };\n expect(validateScriptHooks({ jsonData, state })).toBe(true);\n });\n});\n"],"mappings":";;;;;AAGA,IAAMA,KAAY,GAAG,IAAAC,cAAS,EAAC,CAAC,CAAC,CAAC;AAElCC,QAAQ,CAAC,qBAAqB,EAAE,MAAM;EACpCC,EAAE,CAAC,qDAAqD,EAAE,MAAM;IAC9D,IAAMC,QAAQ,GAAG;MACfC,MAAM,EAAE;QACNC,IAAI,EAAE,iBAAiB;QACvBC,MAAM,EAAE;MACV;IACF,CAAC;IACDC,MAAM,CAAC,IAAAC,0CAAmB,EAAC;MAAEL,QAAQ;MAAEJ;IAAM,CAAC,CAAC,CAAC,CAACU,IAAI,CAAC,KAAK,CAAC;EAC9D,CAAC,CAAC;EAEFP,EAAE,CAAC,iDAAiD,EAAE,MAAM;IAC1D,IAAMC,QAAQ,GAAG;MACfC,MAAM,EAAE;QACNC,IAAI,EAAE,iBAAiB;QACvBC,MAAM,EAAE;MACV;IACF,CAAC;IACDC,MAAM,CAAC,IAAAC,0CAAmB,EAAC;MAAEL,QAAQ;MAAEJ;IAAM,CAAC,CAAC,CAAC,CAACU,IAAI,CAAC,IAAI,CAAC;EAC7D,CAAC,CAAC;EAEFP,EAAE,CAAC,4CAA4C,EAAE,MAAM;IACrD,IAAMC,QAAQ,GAAG;MACfC,MAAM,EAAE;QACNC,IAAI,EAAE;MACR;IACF,CAAC;IACDE,MAAM,CAAC,IAAAC,0CAAmB,EAAC;MAAEL,QAAQ;MAAEJ;IAAM,CAAC,CAAC,CAAC,CAACU,IAAI,CAAC,IAAI,CAAC;EAC7D,CAAC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"ScriptValidationUtils.test.js","names":["state","StateImpl","describe","it","jsonData","script","type","source","expect","areScriptHooksValid","toBe"],"sources":["../../src/utils/ScriptValidationUtils.test.ts"],"sourcesContent":["import StateImpl, { State } from '../shared/State';\nimport { areScriptHooksValid } from './ScriptValidationUtils';\n\nconst state: State = StateImpl({});\n\ndescribe('areScriptHooksValid', () => {\n it('should return false when there is an invalid script', () => {\n const jsonData = {\n script: {\n type: 'text/javascript',\n source: 'invalid javascript',\n },\n };\n expect(areScriptHooksValid({ jsonData, state })).toBe(false);\n });\n\n it('should return true when there is a valid script', () => {\n const jsonData = {\n script: {\n type: 'text/javascript',\n source: 'console.log(\"Hello World\");',\n },\n };\n expect(areScriptHooksValid({ jsonData, state })).toBe(true);\n });\n\n it('should return true when there is no script', () => {\n const jsonData = {\n script: {\n type: 'text/javascript',\n },\n };\n expect(areScriptHooksValid({ jsonData, state })).toBe(true);\n });\n});\n"],"mappings":";;;;;AAGA,IAAMA,KAAY,GAAG,IAAAC,cAAS,EAAC,CAAC,CAAC,CAAC;AAElCC,QAAQ,CAAC,qBAAqB,EAAE,MAAM;EACpCC,EAAE,CAAC,qDAAqD,EAAE,MAAM;IAC9D,IAAMC,QAAQ,GAAG;MACfC,MAAM,EAAE;QACNC,IAAI,EAAE,iBAAiB;QACvBC,MAAM,EAAE;MACV;IACF,CAAC;IACDC,MAAM,CAAC,IAAAC,0CAAmB,EAAC;MAAEL,QAAQ;MAAEJ;IAAM,CAAC,CAAC,CAAC,CAACU,IAAI,CAAC,KAAK,CAAC;EAC9D,CAAC,CAAC;EAEFP,EAAE,CAAC,iDAAiD,EAAE,MAAM;IAC1D,IAAMC,QAAQ,GAAG;MACfC,MAAM,EAAE;QACNC,IAAI,EAAE,iBAAiB;QACvBC,MAAM,EAAE;MACV;IACF,CAAC;IACDC,MAAM,CAAC,IAAAC,0CAAmB,EAAC;MAAEL,QAAQ;MAAEJ;IAAM,CAAC,CAAC,CAAC,CAACU,IAAI,CAAC,IAAI,CAAC;EAC7D,CAAC,CAAC;EAEFP,EAAE,CAAC,4CAA4C,EAAE,MAAM;IACrD,IAAMC,QAAQ,GAAG;MACfC,MAAM,EAAE;QACNC,IAAI,EAAE;MACR;IACF,CAAC;IACDE,MAAM,CAAC,IAAAC,0CAAmB,EAAC;MAAEL,QAAQ;MAAEJ;IAAM,CAAC,CAAC,CAAC,CAACU,IAAI,CAAC,IAAI,CAAC;EAC7D,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -3,7 +3,7 @@ import { deleteScript as _deleteScript, getScript as _getScript, getScriptByName
3
3
  import { createProgressIndicator, debugMessage, printMessage, stopProgressIndicator, updateProgressIndicator, verboseMessage } from "../utils/Console.js";
4
4
  import { convertBase64TextToArray, convertTextArrayToBase64, getMetadata } from "../utils/ExportImportUtils.js";
5
5
  import { applyNameCollisionPolicy } from "../utils/ForgeRockUtils.js";
6
- import { validateScriptDecoded } from "../utils/ScriptValidationUtils.js";
6
+ import { isScriptValid } from "../utils/ScriptValidationUtils.js";
7
7
  export default (state => {
8
8
  return {
9
9
  createScriptExportTemplate() {
@@ -386,41 +386,43 @@ export async function importScripts({
386
386
  const imported = [];
387
387
  for (const existingId of Object.keys(importData.script)) {
388
388
  try {
389
- const scriptSkeleton = importData.script[existingId];
389
+ const scriptData = importData.script[existingId];
390
390
  let newId = existingId;
391
391
  if (reUuid) {
392
392
  newId = uuidv4();
393
393
  debugMessage({
394
- message: `ScriptOps.importScripts: Re-uuid-ing script ${scriptSkeleton.name} ${existingId} => ${newId}...`,
394
+ message: `ScriptOps.importScripts: Re-uuid-ing script ${scriptData.name} ${existingId} => ${newId}...`,
395
395
  state
396
396
  });
397
- scriptSkeleton._id = newId;
397
+ scriptData._id = newId;
398
398
  }
399
399
  if (scriptName) {
400
400
  debugMessage({
401
- message: `ScriptOps.importScripts: Renaming script ${scriptSkeleton.name} => ${scriptName}...`,
401
+ message: `ScriptOps.importScripts: Renaming script ${scriptData.name} => ${scriptName}...`,
402
402
  state
403
403
  });
404
- scriptSkeleton.name = scriptName;
404
+ scriptData.name = scriptName;
405
405
  }
406
406
  if (validate) {
407
- if (!validateScriptDecoded({
408
- scriptSkeleton,
407
+ if (!isScriptValid({
408
+ scriptData,
409
409
  state
410
410
  })) {
411
- const message = `Error importing script '${scriptSkeleton.name}': Script is not valid`;
412
- printMessage({
413
- message,
414
- type: 'error',
415
- state
416
- });
417
- throw new Error(message);
411
+ {
412
+ const message = `Error importing script '${scriptData.name}': Script is not valid`;
413
+ printMessage({
414
+ message,
415
+ type: 'error',
416
+ state
417
+ });
418
+ throw new Error(message);
419
+ }
418
420
  }
419
421
  }
420
422
  try {
421
423
  await updateScript({
422
424
  scriptId: newId,
423
- scriptData: scriptSkeleton,
425
+ scriptData,
424
426
  state
425
427
  });
426
428
  imported.push(newId);
@@ -432,7 +434,10 @@ export async function importScripts({
432
434
  }
433
435
  }
434
436
  if (errors.length) {
435
- const errorMessages = errors.map(error => error.message).join('\n');
437
+ const errorMessages = errors.map(error => {
438
+ var _error$response2, _error$response2$data;
439
+ return ((_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : (_error$response2$data = _error$response2.data) === null || _error$response2$data === void 0 ? void 0 : _error$response2$data.message) || error.message;
440
+ }).join('\n');
436
441
  throw new Error(`Import error:\n${errorMessages}`);
437
442
  }
438
443
  if (0 === imported.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"ScriptOps.js","names":["v4","uuidv4","deleteScript","_deleteScript","getScript","_getScript","getScriptByName","_getScriptByName","getScripts","_getScripts","putScript","_putScript","createProgressIndicator","debugMessage","printMessage","stopProgressIndicator","updateProgressIndicator","verboseMessage","convertBase64TextToArray","convertTextArrayToBase64","getMetadata","applyNameCollisionPolicy","validateScriptDecoded","state","createScriptExportTemplate","readScripts","readScript","scriptId","readScriptByName","scriptName","createScript","scriptData","updateScript","exportScript","exportScriptByName","exportScripts","importScripts","importData","reUuid","validate","meta","script","result","length","Error","message","_id","name","error","Array","isArray","_error$response","response","status","newName","exportData","scriptList","total","errors","imported","existingId","Object","keys","scriptSkeleton","newId","type","push","errorMessages","map","join"],"sources":["../../src/ops/ScriptOps.ts"],"sourcesContent":["import { v4 as uuidv4 } from 'uuid';\n\nimport {\n deleteScript as _deleteScript,\n getScript as _getScript,\n getScriptByName as _getScriptByName,\n getScripts as _getScripts,\n putScript as _putScript,\n} from '../api/ScriptApi';\nimport { type ScriptSkeleton } from '../api/ScriptApi';\nimport { type ExportMetaData } from '../ops/OpsTypes';\nimport { State } from '../shared/State';\nimport {\n createProgressIndicator,\n debugMessage,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n verboseMessage,\n} from '../utils/Console';\nimport {\n convertBase64TextToArray,\n convertTextArrayToBase64,\n getMetadata,\n} from '../utils/ExportImportUtils';\nimport { applyNameCollisionPolicy } from '../utils/ForgeRockUtils';\nimport { validateScriptDecoded } from '../utils/ScriptValidationUtils';\n\nexport type Script = {\n /**\n * Create an empty script export template\n * @returns {ScriptExportInterface} an empty script export template\n */\n createScriptExportTemplate(): ScriptExportInterface;\n /**\n * Read all scripts\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n */\n readScripts(): Promise<ScriptSkeleton[]>;\n /**\n * Read script\n * @param {string} scriptId script id\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\n readScript(scriptId: string): Promise<ScriptSkeleton>;\n /**\n * Read script by name\n * @param {string} scriptName name of the script\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\n readScriptByName(scriptName: string): Promise<ScriptSkeleton>;\n /**\n * Create script\n * @param {string} scriptId script id\n * @param {string} scriptName name of the script\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<ScriptSkeleton>} a status object\n */\n createScript(\n scriptId: string,\n scriptName: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton>;\n /**\n * Create or update script\n * @param {string} scriptId script id\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<ScriptSkeleton>} a status object\n */\n updateScript(\n scriptId: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton>;\n /**\n * Delete script\n * @param {string} scriptId script id\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\n deleteScript(scriptId: string): Promise<ScriptSkeleton>;\n /**\n * Export all scripts\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n exportScripts(): Promise<ScriptExportInterface>;\n /**\n * Export script by id\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n exportScript(scriptId: string): Promise<ScriptExportInterface>;\n /**\n * Export script by name\n * @param {string} scriptName script name\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n exportScriptByName(scriptName: string): Promise<ScriptExportInterface>;\n /**\n * Import scripts\n * @param {string} scriptName Optional name of script. If supplied, only the script of that name is imported\n * @param {ScriptExportInterface} importData Script import data\n * @param {boolean} reUuid true to generate a new uuid for each script on import, false otherwise\n * @returns {Promise<ScriptSkeleton[]>} true if no errors occurred during import, false otherwise\n */\n importScripts(\n scriptName: string,\n importData: ScriptExportInterface,\n reUuid?: boolean,\n validate?: boolean\n ): Promise<ScriptSkeleton[]>;\n\n // Deprecated\n\n /**\n * Get all scripts\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n * @deprecated since v2.0.0 use {@link Script.readScripts | readScripts} instead\n * ```javascript\n * readScripts(): Promise<ScriptSkeleton[]>\n * ```\n * @group Deprecated\n */\n getScripts(): Promise<ScriptSkeleton[]>;\n /**\n * Get script\n * @param {string} scriptId script id\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n * @deprecated since v2.0.0 use {@link Script.readScript | readScript} instead\n * ```javascript\n * readScript(scriptName: string): Promise<ScriptSkeleton>\n * ```\n * @group Deprecated\n */\n getScript(scriptId: string): Promise<ScriptSkeleton>;\n /**\n * Get script by name\n * @param {string} scriptName name of the script\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n * @deprecated since v2.0.0 use {@link Script.readScriptByName | readScriptByName} instead\n * ```javascript\n * readScriptByName(scriptName: string): Promise<ScriptSkeleton>\n * ```\n * @group Deprecated\n */\n getScriptByName(scriptName: string): Promise<ScriptSkeleton>;\n /**\n * Create or update script\n * @param {string} scriptId script uuid\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<ScriptSkeleton>} a status object\n * @deprecated since v2.0.0 use {@link Script.updateScript | updateScript} or {@link Script.createScript | createScript} instead\n * ```javascript\n * updateScript(scriptId: string, scriptData: ScriptSkeleton): Promise<ScriptSkeleton>\n * createScript(scriptId: string, scriptName: string, scriptData: ScriptSkeleton): Promise<ScriptSkeleton>\n * ```\n * @group Deprecated\n */\n putScript(\n scriptId: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton>;\n};\n\nexport default (state: State): Script => {\n return {\n createScriptExportTemplate(): ScriptExportInterface {\n return createScriptExportTemplate({ state });\n },\n async readScripts(): Promise<ScriptSkeleton[]> {\n return readScripts({ state });\n },\n async readScript(scriptId: string): Promise<ScriptSkeleton> {\n return readScript({ scriptId, state });\n },\n async readScriptByName(scriptName: string): Promise<ScriptSkeleton> {\n return readScriptByName({ scriptName, state });\n },\n async createScript(\n scriptId: string,\n scriptName: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton> {\n return createScript({ scriptId, scriptName, scriptData, state });\n },\n async updateScript(\n scriptId: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton> {\n return updateScript({ scriptId, scriptData, state });\n },\n async deleteScript(scriptId: string): Promise<ScriptSkeleton> {\n return deleteScript({ scriptId, state });\n },\n async exportScript(scriptId: string): Promise<ScriptExportInterface> {\n return exportScript({ scriptId, state });\n },\n async exportScriptByName(\n scriptName: string\n ): Promise<ScriptExportInterface> {\n return exportScriptByName({ scriptName, state });\n },\n async exportScripts(): Promise<ScriptExportInterface> {\n return exportScripts({ state });\n },\n async importScripts(\n scriptName: string,\n importData: ScriptExportInterface,\n reUuid = false,\n validate = false\n ): Promise<ScriptSkeleton[]> {\n return importScripts({\n scriptName,\n importData,\n reUuid,\n validate,\n state,\n });\n },\n\n // Deprecated\n\n async getScripts(): Promise<ScriptSkeleton[]> {\n return readScripts({ state });\n },\n async getScript(scriptId: string): Promise<ScriptSkeleton> {\n return readScript({ scriptId, state });\n },\n async getScriptByName(scriptName: string): Promise<ScriptSkeleton> {\n return readScriptByName({ scriptName, state });\n },\n async putScript(\n scriptId: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton> {\n return updateScript({ scriptId, scriptData, state });\n },\n };\n};\n\nexport interface ScriptExportInterface {\n meta?: ExportMetaData;\n script: Record<string, ScriptSkeleton>;\n}\n\n/**\n * Create an empty script export template\n * @returns {ScriptExportInterface} an empty script export template\n */\nexport function createScriptExportTemplate({\n state,\n}: {\n state: State;\n}): ScriptExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n } as ScriptExportInterface;\n}\n\n/**\n * Get all scripts\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n */\nexport async function readScripts({\n state,\n}: {\n state: State;\n}): Promise<ScriptSkeleton[]> {\n const { result } = await _getScripts({ state });\n return result;\n}\n\n/**\n * Get script\n * @returns {Promise<ScriptSkeleto]>} a promise that resolves to an array of script objects\n */\nexport async function readScript({\n scriptId,\n state,\n}: {\n scriptId: string;\n state: State;\n}): Promise<ScriptSkeleton> {\n return _getScript({ scriptId, state });\n}\n\n/**\n * Get script by name\n * @param {string} scriptName name of the script\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\nexport async function readScriptByName({\n scriptName,\n state,\n}: {\n scriptName: string;\n state: State;\n}): Promise<ScriptSkeleton> {\n const { result } = await _getScriptByName({ scriptName, state });\n switch (result.length) {\n case 1:\n return result[0];\n case 0:\n throw new Error(`Script '${scriptName}' not found`);\n default:\n throw new Error(`${result.length} scripts '${scriptName}' found`);\n }\n}\n\n/**\n * Create script\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<ScriptSkeleton>} a promise resolving to a script object\n */\nexport async function createScript({\n scriptId,\n scriptName,\n scriptData,\n state,\n}: {\n scriptId: string;\n scriptName: string;\n scriptData: ScriptSkeleton;\n state: State;\n}): Promise<ScriptSkeleton> {\n debugMessage({ message: `ScriptOps.createOAuth2Client: start`, state });\n scriptData._id = scriptId;\n scriptData.name = scriptName;\n try {\n await _getScript({ scriptId, state });\n } catch (error) {\n const result = await updateScript({\n scriptId,\n scriptData,\n state,\n });\n debugMessage({ message: `ScriptOps.createOAuth2Client: end`, state });\n return result;\n }\n throw new Error(`Script ${scriptData._id} already exists!`);\n}\n\n/**\n * Create or update script\n * @param {string} scriptId script uuid\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<ScriptSkeleton>} a status object\n */\nexport async function updateScript({\n scriptId,\n scriptData,\n state,\n}: {\n scriptId: string;\n scriptData: ScriptSkeleton;\n state: State;\n}): Promise<ScriptSkeleton> {\n let result = null;\n try {\n if (Array.isArray(scriptData.script)) {\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n }\n result = await _putScript({ scriptId, scriptData, state });\n } catch (error) {\n if (error.response?.status === 409) {\n verboseMessage({\n message: `createOrUpdateScript WARNING: script with name ${scriptData.name} already exists, using renaming policy... <name> => <name - imported (n)>`,\n state,\n });\n const newName = applyNameCollisionPolicy(scriptData.name);\n scriptData.name = newName;\n result = await updateScript({ scriptId, scriptData, state });\n verboseMessage({\n message: `Saved script as ${newName}`,\n state,\n });\n } else throw error;\n }\n return result;\n}\n\n/**\n * Delete script\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptSkeleton>} a promise resolving to a script object\n */\nexport async function deleteScript({\n scriptId,\n state,\n}: {\n scriptId: string;\n state: State;\n}): Promise<ScriptSkeleton> {\n return _deleteScript({ scriptId, state });\n}\n\n/**\n * Export script by id\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScript({\n scriptId,\n state,\n}: {\n scriptId: string;\n state: State;\n}): Promise<ScriptExportInterface> {\n debugMessage({ message: `ScriptOps.exportScriptById: start`, state });\n const scriptData = await _getScript({ scriptId, state });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n const exportData = createScriptExportTemplate({ state });\n exportData.script[scriptData._id] = scriptData;\n debugMessage({ message: `ScriptOps.exportScriptById: end`, state });\n return exportData;\n}\n\n/**\n * Export script by name\n * @param {string} scriptName script name\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScriptByName({\n scriptName,\n state,\n}: {\n scriptName: string;\n state: State;\n}): Promise<ScriptExportInterface> {\n debugMessage({ message: `ScriptOps.exportScriptByName: start`, state });\n const scriptData = await readScriptByName({ scriptName, state });\n scriptData.script = convertBase64TextToArray(scriptData.script as string);\n const exportData = createScriptExportTemplate({ state });\n exportData.script[scriptData._id] = scriptData;\n debugMessage({ message: `ScriptOps.exportScriptByName: end`, state });\n return exportData;\n}\n\n/**\n * Export all scripts\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScripts({\n state,\n}: {\n state: State;\n}): Promise<ScriptExportInterface> {\n const scriptList = await readScripts({ state });\n const exportData = createScriptExportTemplate({ state });\n createProgressIndicator({\n total: scriptList.length,\n message: `Exporting ${scriptList.length} scripts...`,\n state,\n });\n for (const script of scriptList) {\n updateProgressIndicator({\n message: `Reading script ${script.name}`,\n state,\n });\n const scriptData = await readScriptByName({\n scriptName: script.name,\n state,\n });\n scriptData.script = convertBase64TextToArray(scriptData.script as string);\n exportData.script[scriptData._id] = scriptData;\n }\n stopProgressIndicator({\n message: `Exported ${scriptList.length} scripts.`,\n state,\n });\n return exportData;\n}\n\n/**\n * Import scripts\n * @param {string} scriptName Optional name of script. If supplied, only the script of that name is imported\n * @param {ScriptExportInterface} importData Script import data\n * @param {boolean} reUuid true to generate a new uuid for each script on import, false otherwise\n * @returns {Promise<boolean>} true if no errors occurred during import, false otherwise\n */\nexport async function importScripts({\n scriptName,\n importData,\n reUuid = false,\n validate = false,\n state,\n}: {\n scriptName: string;\n importData: ScriptExportInterface;\n reUuid?: boolean;\n validate?: boolean;\n state: State;\n}): Promise<ScriptSkeleton[]> {\n debugMessage({ message: `ScriptOps.importScripts: start`, state });\n const response = [];\n const errors = [];\n const imported = [];\n for (const existingId of Object.keys(importData.script)) {\n try {\n const scriptSkeleton = importData.script[existingId];\n let newId = existingId;\n if (reUuid) {\n newId = uuidv4();\n debugMessage({\n message: `ScriptOps.importScripts: Re-uuid-ing script ${scriptSkeleton.name} ${existingId} => ${newId}...`,\n state,\n });\n scriptSkeleton._id = newId;\n }\n if (scriptName) {\n debugMessage({\n message: `ScriptOps.importScripts: Renaming script ${scriptSkeleton.name} => ${scriptName}...`,\n state,\n });\n scriptSkeleton.name = scriptName;\n }\n if (validate) {\n if (!validateScriptDecoded({ scriptSkeleton, state })) {\n const message = `Error importing script '${scriptSkeleton.name}': Script is not valid`;\n printMessage({\n message,\n type: 'error',\n state,\n });\n throw new Error(message);\n }\n }\n try {\n await updateScript({\n scriptId: newId,\n scriptData: scriptSkeleton,\n state,\n });\n imported.push(newId);\n } catch (error) {\n errors.push(error);\n }\n } catch (error) {\n errors.push(error);\n }\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo scripts found in import data!`);\n }\n debugMessage({ message: `ScriptOps.importScripts: end`, state });\n return response;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ScriptOps.js","names":["v4","uuidv4","deleteScript","_deleteScript","getScript","_getScript","getScriptByName","_getScriptByName","getScripts","_getScripts","putScript","_putScript","createProgressIndicator","debugMessage","printMessage","stopProgressIndicator","updateProgressIndicator","verboseMessage","convertBase64TextToArray","convertTextArrayToBase64","getMetadata","applyNameCollisionPolicy","isScriptValid","state","createScriptExportTemplate","readScripts","readScript","scriptId","readScriptByName","scriptName","createScript","scriptData","updateScript","exportScript","exportScriptByName","exportScripts","importScripts","importData","reUuid","validate","meta","script","result","length","Error","message","_id","name","error","Array","isArray","_error$response","response","status","newName","exportData","scriptList","total","errors","imported","existingId","Object","keys","newId","type","push","errorMessages","map","_error$response2","_error$response2$data","data","join"],"sources":["../../src/ops/ScriptOps.ts"],"sourcesContent":["import { v4 as uuidv4 } from 'uuid';\n\nimport {\n deleteScript as _deleteScript,\n getScript as _getScript,\n getScriptByName as _getScriptByName,\n getScripts as _getScripts,\n putScript as _putScript,\n type ScriptSkeleton,\n} from '../api/ScriptApi';\nimport { type ExportMetaData } from '../ops/OpsTypes';\nimport { State } from '../shared/State';\nimport {\n createProgressIndicator,\n debugMessage,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n verboseMessage,\n} from '../utils/Console';\nimport {\n convertBase64TextToArray,\n convertTextArrayToBase64,\n getMetadata,\n} from '../utils/ExportImportUtils';\nimport { applyNameCollisionPolicy } from '../utils/ForgeRockUtils';\nimport { isScriptValid } from '../utils/ScriptValidationUtils';\n\nexport type Script = {\n /**\n * Create an empty script export template\n * @returns {ScriptExportInterface} an empty script export template\n */\n createScriptExportTemplate(): ScriptExportInterface;\n /**\n * Read all scripts\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n */\n readScripts(): Promise<ScriptSkeleton[]>;\n /**\n * Read script\n * @param {string} scriptId script id\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\n readScript(scriptId: string): Promise<ScriptSkeleton>;\n /**\n * Read script by name\n * @param {string} scriptName name of the script\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\n readScriptByName(scriptName: string): Promise<ScriptSkeleton>;\n /**\n * Create script\n * @param {string} scriptId script id\n * @param {string} scriptName name of the script\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<ScriptSkeleton>} a status object\n */\n createScript(\n scriptId: string,\n scriptName: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton>;\n /**\n * Create or update script\n * @param {string} scriptId script id\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<ScriptSkeleton>} a status object\n */\n updateScript(\n scriptId: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton>;\n /**\n * Delete script\n * @param {string} scriptId script id\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\n deleteScript(scriptId: string): Promise<ScriptSkeleton>;\n /**\n * Export all scripts\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n exportScripts(): Promise<ScriptExportInterface>;\n /**\n * Export script by id\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n exportScript(scriptId: string): Promise<ScriptExportInterface>;\n /**\n * Export script by name\n * @param {string} scriptName script name\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\n exportScriptByName(scriptName: string): Promise<ScriptExportInterface>;\n /**\n * Import scripts\n * @param {string} scriptName Optional name of script. If supplied, only the script of that name is imported\n * @param {ScriptExportInterface} importData Script import data\n * @param {boolean} reUuid true to generate a new uuid for each script on import, false otherwise\n * @returns {Promise<ScriptSkeleton[]>} true if no errors occurred during import, false otherwise\n */\n importScripts(\n scriptName: string,\n importData: ScriptExportInterface,\n reUuid?: boolean,\n validate?: boolean\n ): Promise<ScriptSkeleton[]>;\n\n // Deprecated\n\n /**\n * Get all scripts\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n * @deprecated since v2.0.0 use {@link Script.readScripts | readScripts} instead\n * ```javascript\n * readScripts(): Promise<ScriptSkeleton[]>\n * ```\n * @group Deprecated\n */\n getScripts(): Promise<ScriptSkeleton[]>;\n /**\n * Get script\n * @param {string} scriptId script id\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n * @deprecated since v2.0.0 use {@link Script.readScript | readScript} instead\n * ```javascript\n * readScript(scriptName: string): Promise<ScriptSkeleton>\n * ```\n * @group Deprecated\n */\n getScript(scriptId: string): Promise<ScriptSkeleton>;\n /**\n * Get script by name\n * @param {string} scriptName name of the script\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n * @deprecated since v2.0.0 use {@link Script.readScriptByName | readScriptByName} instead\n * ```javascript\n * readScriptByName(scriptName: string): Promise<ScriptSkeleton>\n * ```\n * @group Deprecated\n */\n getScriptByName(scriptName: string): Promise<ScriptSkeleton>;\n /**\n * Create or update script\n * @param {string} scriptId script uuid\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<ScriptSkeleton>} a status object\n * @deprecated since v2.0.0 use {@link Script.updateScript | updateScript} or {@link Script.createScript | createScript} instead\n * ```javascript\n * updateScript(scriptId: string, scriptData: ScriptSkeleton): Promise<ScriptSkeleton>\n * createScript(scriptId: string, scriptName: string, scriptData: ScriptSkeleton): Promise<ScriptSkeleton>\n * ```\n * @group Deprecated\n */\n putScript(\n scriptId: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton>;\n};\n\nexport default (state: State): Script => {\n return {\n createScriptExportTemplate(): ScriptExportInterface {\n return createScriptExportTemplate({ state });\n },\n async readScripts(): Promise<ScriptSkeleton[]> {\n return readScripts({ state });\n },\n async readScript(scriptId: string): Promise<ScriptSkeleton> {\n return readScript({ scriptId, state });\n },\n async readScriptByName(scriptName: string): Promise<ScriptSkeleton> {\n return readScriptByName({ scriptName, state });\n },\n async createScript(\n scriptId: string,\n scriptName: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton> {\n return createScript({ scriptId, scriptName, scriptData, state });\n },\n async updateScript(\n scriptId: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton> {\n return updateScript({ scriptId, scriptData, state });\n },\n async deleteScript(scriptId: string): Promise<ScriptSkeleton> {\n return deleteScript({ scriptId, state });\n },\n async exportScript(scriptId: string): Promise<ScriptExportInterface> {\n return exportScript({ scriptId, state });\n },\n async exportScriptByName(\n scriptName: string\n ): Promise<ScriptExportInterface> {\n return exportScriptByName({ scriptName, state });\n },\n async exportScripts(): Promise<ScriptExportInterface> {\n return exportScripts({ state });\n },\n async importScripts(\n scriptName: string,\n importData: ScriptExportInterface,\n reUuid = false,\n validate = false\n ): Promise<ScriptSkeleton[]> {\n return importScripts({\n scriptName,\n importData,\n reUuid,\n validate,\n state,\n });\n },\n\n // Deprecated\n\n async getScripts(): Promise<ScriptSkeleton[]> {\n return readScripts({ state });\n },\n async getScript(scriptId: string): Promise<ScriptSkeleton> {\n return readScript({ scriptId, state });\n },\n async getScriptByName(scriptName: string): Promise<ScriptSkeleton> {\n return readScriptByName({ scriptName, state });\n },\n async putScript(\n scriptId: string,\n scriptData: ScriptSkeleton\n ): Promise<ScriptSkeleton> {\n return updateScript({ scriptId, scriptData, state });\n },\n };\n};\n\nexport interface ScriptExportInterface {\n meta?: ExportMetaData;\n script: Record<string, ScriptSkeleton>;\n}\n\n/**\n * Create an empty script export template\n * @returns {ScriptExportInterface} an empty script export template\n */\nexport function createScriptExportTemplate({\n state,\n}: {\n state: State;\n}): ScriptExportInterface {\n return {\n meta: getMetadata({ state }),\n script: {},\n } as ScriptExportInterface;\n}\n\n/**\n * Get all scripts\n * @returns {Promise<ScriptSkeleton[]>} a promise that resolves to an array of script objects\n */\nexport async function readScripts({\n state,\n}: {\n state: State;\n}): Promise<ScriptSkeleton[]> {\n const { result } = await _getScripts({ state });\n return result;\n}\n\n/**\n * Get script\n * @returns {Promise<ScriptSkeleto]>} a promise that resolves to an array of script objects\n */\nexport async function readScript({\n scriptId,\n state,\n}: {\n scriptId: string;\n state: State;\n}): Promise<ScriptSkeleton> {\n return _getScript({ scriptId, state });\n}\n\n/**\n * Get script by name\n * @param {string} scriptName name of the script\n * @returns {Promise<ScriptSkeleton>} promise that resolves to a script object\n */\nexport async function readScriptByName({\n scriptName,\n state,\n}: {\n scriptName: string;\n state: State;\n}): Promise<ScriptSkeleton> {\n const { result } = await _getScriptByName({ scriptName, state });\n switch (result.length) {\n case 1:\n return result[0];\n case 0:\n throw new Error(`Script '${scriptName}' not found`);\n default:\n throw new Error(`${result.length} scripts '${scriptName}' found`);\n }\n}\n\n/**\n * Create script\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<ScriptSkeleton>} a promise resolving to a script object\n */\nexport async function createScript({\n scriptId,\n scriptName,\n scriptData,\n state,\n}: {\n scriptId: string;\n scriptName: string;\n scriptData: ScriptSkeleton;\n state: State;\n}): Promise<ScriptSkeleton> {\n debugMessage({ message: `ScriptOps.createOAuth2Client: start`, state });\n scriptData._id = scriptId;\n scriptData.name = scriptName;\n try {\n await _getScript({ scriptId, state });\n } catch (error) {\n const result = await updateScript({\n scriptId,\n scriptData,\n state,\n });\n debugMessage({ message: `ScriptOps.createOAuth2Client: end`, state });\n return result;\n }\n throw new Error(`Script ${scriptData._id} already exists!`);\n}\n\n/**\n * Create or update script\n * @param {string} scriptId script uuid\n * @param {ScriptSkeleton} scriptData script object\n * @returns {Promise<ScriptSkeleton>} a status object\n */\nexport async function updateScript({\n scriptId,\n scriptData,\n state,\n}: {\n scriptId: string;\n scriptData: ScriptSkeleton;\n state: State;\n}): Promise<ScriptSkeleton> {\n let result = null;\n try {\n if (Array.isArray(scriptData.script)) {\n scriptData.script = convertTextArrayToBase64(scriptData.script);\n }\n result = await _putScript({ scriptId, scriptData, state });\n } catch (error) {\n if (error.response?.status === 409) {\n verboseMessage({\n message: `createOrUpdateScript WARNING: script with name ${scriptData.name} already exists, using renaming policy... <name> => <name - imported (n)>`,\n state,\n });\n const newName = applyNameCollisionPolicy(scriptData.name);\n scriptData.name = newName;\n result = await updateScript({ scriptId, scriptData, state });\n verboseMessage({\n message: `Saved script as ${newName}`,\n state,\n });\n } else throw error;\n }\n return result;\n}\n\n/**\n * Delete script\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptSkeleton>} a promise resolving to a script object\n */\nexport async function deleteScript({\n scriptId,\n state,\n}: {\n scriptId: string;\n state: State;\n}): Promise<ScriptSkeleton> {\n return _deleteScript({ scriptId, state });\n}\n\n/**\n * Export script by id\n * @param {string} scriptId script uuid\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScript({\n scriptId,\n state,\n}: {\n scriptId: string;\n state: State;\n}): Promise<ScriptExportInterface> {\n debugMessage({ message: `ScriptOps.exportScriptById: start`, state });\n const scriptData = await _getScript({ scriptId, state });\n scriptData.script = convertBase64TextToArray(scriptData.script);\n const exportData = createScriptExportTemplate({ state });\n exportData.script[scriptData._id] = scriptData;\n debugMessage({ message: `ScriptOps.exportScriptById: end`, state });\n return exportData;\n}\n\n/**\n * Export script by name\n * @param {string} scriptName script name\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScriptByName({\n scriptName,\n state,\n}: {\n scriptName: string;\n state: State;\n}): Promise<ScriptExportInterface> {\n debugMessage({ message: `ScriptOps.exportScriptByName: start`, state });\n const scriptData = await readScriptByName({ scriptName, state });\n scriptData.script = convertBase64TextToArray(scriptData.script as string);\n const exportData = createScriptExportTemplate({ state });\n exportData.script[scriptData._id] = scriptData;\n debugMessage({ message: `ScriptOps.exportScriptByName: end`, state });\n return exportData;\n}\n\n/**\n * Export all scripts\n * @returns {Promise<ScriptExportInterface>} a promise that resolved to a ScriptExportInterface object\n */\nexport async function exportScripts({\n state,\n}: {\n state: State;\n}): Promise<ScriptExportInterface> {\n const scriptList = await readScripts({ state });\n const exportData = createScriptExportTemplate({ state });\n createProgressIndicator({\n total: scriptList.length,\n message: `Exporting ${scriptList.length} scripts...`,\n state,\n });\n for (const script of scriptList) {\n updateProgressIndicator({\n message: `Reading script ${script.name}`,\n state,\n });\n const scriptData = await readScriptByName({\n scriptName: script.name,\n state,\n });\n scriptData.script = convertBase64TextToArray(scriptData.script as string);\n exportData.script[scriptData._id] = scriptData;\n }\n stopProgressIndicator({\n message: `Exported ${scriptList.length} scripts.`,\n state,\n });\n return exportData;\n}\n\n/**\n * Import scripts\n * @param {string} scriptName Optional name of script. If supplied, only the script of that name is imported\n * @param {ScriptExportInterface} importData Script import data\n * @param {boolean} reUuid true to generate a new uuid for each script on import, false otherwise\n * @returns {Promise<boolean>} true if no errors occurred during import, false otherwise\n */\nexport async function importScripts({\n scriptName,\n importData,\n reUuid = false,\n validate = false,\n state,\n}: {\n scriptName: string;\n importData: ScriptExportInterface;\n reUuid?: boolean;\n validate?: boolean;\n state: State;\n}): Promise<ScriptSkeleton[]> {\n debugMessage({ message: `ScriptOps.importScripts: start`, state });\n const response = [];\n const errors = [];\n const imported = [];\n for (const existingId of Object.keys(importData.script)) {\n try {\n const scriptData = importData.script[existingId];\n let newId = existingId;\n if (reUuid) {\n newId = uuidv4();\n debugMessage({\n message: `ScriptOps.importScripts: Re-uuid-ing script ${scriptData.name} ${existingId} => ${newId}...`,\n state,\n });\n scriptData._id = newId;\n }\n if (scriptName) {\n debugMessage({\n message: `ScriptOps.importScripts: Renaming script ${scriptData.name} => ${scriptName}...`,\n state,\n });\n scriptData.name = scriptName;\n }\n if (validate) {\n if (!isScriptValid({ scriptData, state })) {\n {\n const message = `Error importing script '${scriptData.name}': Script is not valid`;\n printMessage({\n message,\n type: 'error',\n state,\n });\n throw new Error(message);\n }\n }\n }\n try {\n await updateScript({\n scriptId: newId,\n scriptData,\n state,\n });\n imported.push(newId);\n } catch (error) {\n errors.push(error);\n }\n } catch (error) {\n errors.push(error);\n }\n }\n if (errors.length) {\n const errorMessages = errors\n .map((error) => error.response?.data?.message || error.message)\n .join('\\n');\n throw new Error(`Import error:\\n${errorMessages}`);\n }\n if (0 === imported.length) {\n throw new Error(`Import error:\\nNo scripts found in import data!`);\n }\n debugMessage({ message: `ScriptOps.importScripts: end`, state });\n return response;\n}\n"],"mappings":"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"}
@@ -4,20 +4,29 @@ import { printMessage } from "./Console.js";
4
4
  export default (state => {
5
5
  return {
6
6
  validateScriptHooks(jsonData) {
7
- return validateScriptHooks({
8
- jsonData,
9
- state
7
+ validateScriptHooks({
8
+ jsonData
9
+ });
10
+ },
11
+ validateScript(scriptData) {
12
+ validateScript({
13
+ scriptData
10
14
  });
11
15
  },
12
- findAllScriptHooks(jsonData, scriptHooksArray = []) {
13
- return findAllScriptHooks(jsonData, scriptHooksArray);
16
+ validateJs(javascriptSource) {
17
+ validateJs({
18
+ javascriptSource
19
+ });
14
20
  },
15
- validateScript(script) {
16
- return validateScript(script, state);
21
+ areScriptHooksValid(jsonData) {
22
+ return areScriptHooksValid({
23
+ jsonData,
24
+ state
25
+ });
17
26
  },
18
- validateScriptDecoded(scriptSkeleton) {
19
- return validateScriptDecoded({
20
- scriptSkeleton,
27
+ isScriptValid(scriptData) {
28
+ return isScriptValid({
29
+ scriptData,
21
30
  state
22
31
  });
23
32
  },
@@ -29,24 +38,6 @@ export default (state => {
29
38
  }
30
39
  };
31
40
  });
32
- export function validateScriptHooks({
33
- jsonData,
34
- state
35
- }) {
36
- const scriptHooks = findAllScriptHooks(jsonData);
37
- for (const scriptHook of scriptHooks) {
38
- if (!('source' in scriptHook)) {
39
- continue;
40
- }
41
- if (!isValidJs({
42
- javascriptSource: scriptHook.source,
43
- state
44
- })) {
45
- return false;
46
- }
47
- }
48
- return true;
49
- }
50
41
  function findAllScriptHooks(jsonData, scriptHooksArray = []) {
51
42
  if (typeof jsonData !== 'object' || jsonData === null) {
52
43
  return scriptHooksArray;
@@ -64,25 +55,59 @@ function findAllScriptHooks(jsonData, scriptHooksArray = []) {
64
55
  }
65
56
  return scriptHooksArray;
66
57
  }
67
- export function validateScript(script, state) {
68
- const scriptRaw = decode(script.script);
69
- if (script.language === 'JAVASCRIPT') {
70
- return isValidJs({
71
- javascriptSource: scriptRaw,
72
- state
58
+ export function validateScriptHooks({
59
+ jsonData
60
+ }) {
61
+ const scriptHooks = findAllScriptHooks(jsonData);
62
+ for (const scriptHook of scriptHooks) {
63
+ if (!('source' in scriptHook)) {
64
+ continue;
65
+ }
66
+ validateJs({
67
+ javascriptSource: scriptHook.source
73
68
  });
74
69
  }
70
+ }
71
+ export function validateScript({
72
+ scriptData
73
+ }) {
74
+ if (scriptData.language === 'JAVASCRIPT') {
75
+ const script = Array.isArray(scriptData.script) ? scriptData.script.join('\n') : decode(scriptData.script);
76
+ validateJs({
77
+ javascriptSource: script
78
+ });
79
+ }
80
+ }
81
+ export function validateJs({
82
+ javascriptSource
83
+ }) {
84
+ parseScript(javascriptSource);
75
85
  return true;
76
86
  }
77
- export function validateScriptDecoded({
78
- scriptSkeleton,
87
+ export function areScriptHooksValid({
88
+ jsonData,
79
89
  state
80
90
  }) {
81
- if (!Array.isArray(scriptSkeleton.script)) {
82
- return false;
91
+ const scriptHooks = findAllScriptHooks(jsonData);
92
+ for (const scriptHook of scriptHooks) {
93
+ if (!('source' in scriptHook)) {
94
+ continue;
95
+ }
96
+ if (!isValidJs({
97
+ javascriptSource: scriptHook.source,
98
+ state
99
+ })) {
100
+ return false;
101
+ }
83
102
  }
84
- if (scriptSkeleton.language === 'JAVASCRIPT') {
85
- const script = scriptSkeleton.script.join('\n');
103
+ return true;
104
+ }
105
+ export function isScriptValid({
106
+ scriptData,
107
+ state
108
+ }) {
109
+ if (scriptData.language === 'JAVASCRIPT') {
110
+ const script = Array.isArray(scriptData.script) ? scriptData.script.join('\n') : decode(scriptData.script);
86
111
  return isValidJs({
87
112
  javascriptSource: script,
88
113
  state
@@ -1 +1 @@
1
- {"version":3,"file":"ScriptValidationUtils.js","names":["parseScript","decode","printMessage","state","validateScriptHooks","jsonData","findAllScriptHooks","scriptHooksArray","validateScript","script","validateScriptDecoded","scriptSkeleton","isValidJs","javascriptSource","scriptHooks","scriptHook","source","key","item","type","push","scriptRaw","language","Array","isArray","join","e","message"],"sources":["../../src/utils/ScriptValidationUtils.ts"],"sourcesContent":["import { parseScript } from 'esprima';\n\nimport { type ScriptSkeleton } from '../api/ScriptApi';\nimport { State } from '../shared/State';\nimport { decode } from './Base64Utils';\nimport { printMessage } from './Console';\n\nexport type ScriptValidation = {\n validateScriptHooks(jsonData: object): boolean;\n findAllScriptHooks(\n jsonData: object,\n scriptHooksArray?: ScriptHook[]\n ): ScriptHook[];\n validateScript(script: ScriptSkeleton): boolean;\n validateScriptDecoded(scriptSkeleton: ScriptSkeleton): boolean;\n isValidJs(javascriptSource: string): boolean;\n};\n\nexport default (state: State) => {\n return {\n validateScriptHooks(jsonData: object): boolean {\n return validateScriptHooks({ jsonData, state });\n },\n\n findAllScriptHooks(\n jsonData: object,\n scriptHooksArray: ScriptHook[] = []\n ): ScriptHook[] {\n return findAllScriptHooks(jsonData, scriptHooksArray);\n },\n\n validateScript(script: ScriptSkeleton): boolean {\n return validateScript(script, state);\n },\n\n validateScriptDecoded(scriptSkeleton: ScriptSkeleton): boolean {\n return validateScriptDecoded({ scriptSkeleton, state });\n },\n\n isValidJs(javascriptSource: string) {\n return isValidJs({ javascriptSource, state });\n },\n };\n};\n\nexport interface ScriptHook {\n type: 'text/javascript';\n source?: string;\n}\n\nexport function validateScriptHooks({\n jsonData,\n state,\n}: {\n jsonData: object;\n state: State;\n}): boolean {\n const scriptHooks = findAllScriptHooks(jsonData);\n\n for (const scriptHook of scriptHooks) {\n if (!('source' in scriptHook)) {\n continue;\n }\n\n if (!isValidJs({ javascriptSource: scriptHook.source, state })) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction findAllScriptHooks(\n jsonData: unknown,\n scriptHooksArray: ScriptHook[] = []\n): ScriptHook[] {\n if (typeof jsonData !== 'object' || jsonData === null) {\n return scriptHooksArray;\n }\n\n for (const key in jsonData) {\n const item = jsonData[key];\n if (typeof item !== 'object' || item === null) {\n continue;\n }\n\n if ('type' in item && item.type === 'text/javascript') {\n scriptHooksArray.push(item);\n } else {\n findAllScriptHooks(item, scriptHooksArray);\n }\n }\n\n return scriptHooksArray;\n}\n\nexport function validateScript(script: ScriptSkeleton, state: State): boolean {\n const scriptRaw = decode(script.script as string);\n\n if (script.language === 'JAVASCRIPT') {\n return isValidJs({ javascriptSource: scriptRaw, state });\n }\n return true;\n}\n\nexport function validateScriptDecoded({\n scriptSkeleton,\n state,\n}: {\n scriptSkeleton: ScriptSkeleton;\n state: State;\n}): boolean {\n if (!Array.isArray(scriptSkeleton.script)) {\n return false;\n }\n if (scriptSkeleton.language === 'JAVASCRIPT') {\n const script = scriptSkeleton.script.join('\\n');\n return isValidJs({ javascriptSource: script, state });\n }\n return true;\n}\n\nexport function isValidJs({\n javascriptSource,\n state,\n}: {\n javascriptSource: string;\n state: State;\n}) {\n try {\n parseScript(javascriptSource);\n return true;\n } catch (e) {\n printMessage({\n message: `Invalid JavaScript: ${e.message}`,\n type: 'error',\n state,\n });\n\n return false;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,SAAS;AAAC,SAI7BC,MAAM;AAAA,SACNC,YAAY;AAarB,gBAAgBC,KAAY,IAAK;EAC/B,OAAO;IACLC,mBAAmBA,CAACC,QAAgB,EAAW;MAC7C,OAAOD,mBAAmB,CAAC;QAAEC,QAAQ;QAAEF;MAAM,CAAC,CAAC;IACjD,CAAC;IAEDG,kBAAkBA,CAChBD,QAAgB,EAChBE,gBAA8B,GAAG,EAAE,EACrB;MACd,OAAOD,kBAAkB,CAACD,QAAQ,EAAEE,gBAAgB,CAAC;IACvD,CAAC;IAEDC,cAAcA,CAACC,MAAsB,EAAW;MAC9C,OAAOD,cAAc,CAACC,MAAM,EAAEN,KAAK,CAAC;IACtC,CAAC;IAEDO,qBAAqBA,CAACC,cAA8B,EAAW;MAC7D,OAAOD,qBAAqB,CAAC;QAAEC,cAAc;QAAER;MAAM,CAAC,CAAC;IACzD,CAAC;IAEDS,SAASA,CAACC,gBAAwB,EAAE;MAClC,OAAOD,SAAS,CAAC;QAAEC,gBAAgB;QAAEV;MAAM,CAAC,CAAC;IAC/C;EACF,CAAC;AACH,CAAC;AAOD,OAAO,SAASC,mBAAmBA,CAAC;EAClCC,QAAQ;EACRF;AAIF,CAAC,EAAW;EACV,MAAMW,WAAW,GAAGR,kBAAkB,CAACD,QAAQ,CAAC;EAEhD,KAAK,MAAMU,UAAU,IAAID,WAAW,EAAE;IACpC,IAAI,EAAE,QAAQ,IAAIC,UAAU,CAAC,EAAE;MAC7B;IACF;IAEA,IAAI,CAACH,SAAS,CAAC;MAAEC,gBAAgB,EAAEE,UAAU,CAACC,MAAM;MAAEb;IAAM,CAAC,CAAC,EAAE;MAC9D,OAAO,KAAK;IACd;EACF;EAEA,OAAO,IAAI;AACb;AAEA,SAASG,kBAAkBA,CACzBD,QAAiB,EACjBE,gBAA8B,GAAG,EAAE,EACrB;EACd,IAAI,OAAOF,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,KAAK,IAAI,EAAE;IACrD,OAAOE,gBAAgB;EACzB;EAEA,KAAK,MAAMU,GAAG,IAAIZ,QAAQ,EAAE;IAC1B,MAAMa,IAAI,GAAGb,QAAQ,CAACY,GAAG,CAAC;IAC1B,IAAI,OAAOC,IAAI,KAAK,QAAQ,IAAIA,IAAI,KAAK,IAAI,EAAE;MAC7C;IACF;IAEA,IAAI,MAAM,IAAIA,IAAI,IAAIA,IAAI,CAACC,IAAI,KAAK,iBAAiB,EAAE;MACrDZ,gBAAgB,CAACa,IAAI,CAACF,IAAI,CAAC;IAC7B,CAAC,MAAM;MACLZ,kBAAkB,CAACY,IAAI,EAAEX,gBAAgB,CAAC;IAC5C;EACF;EAEA,OAAOA,gBAAgB;AACzB;AAEA,OAAO,SAASC,cAAcA,CAACC,MAAsB,EAAEN,KAAY,EAAW;EAC5E,MAAMkB,SAAS,GAAGpB,MAAM,CAACQ,MAAM,CAACA,MAAgB,CAAC;EAEjD,IAAIA,MAAM,CAACa,QAAQ,KAAK,YAAY,EAAE;IACpC,OAAOV,SAAS,CAAC;MAAEC,gBAAgB,EAAEQ,SAAS;MAAElB;IAAM,CAAC,CAAC;EAC1D;EACA,OAAO,IAAI;AACb;AAEA,OAAO,SAASO,qBAAqBA,CAAC;EACpCC,cAAc;EACdR;AAIF,CAAC,EAAW;EACV,IAAI,CAACoB,KAAK,CAACC,OAAO,CAACb,cAAc,CAACF,MAAM,CAAC,EAAE;IACzC,OAAO,KAAK;EACd;EACA,IAAIE,cAAc,CAACW,QAAQ,KAAK,YAAY,EAAE;IAC5C,MAAMb,MAAM,GAAGE,cAAc,CAACF,MAAM,CAACgB,IAAI,CAAC,IAAI,CAAC;IAC/C,OAAOb,SAAS,CAAC;MAAEC,gBAAgB,EAAEJ,MAAM;MAAEN;IAAM,CAAC,CAAC;EACvD;EACA,OAAO,IAAI;AACb;AAEA,OAAO,SAASS,SAASA,CAAC;EACxBC,gBAAgB;EAChBV;AAIF,CAAC,EAAE;EACD,IAAI;IACFH,WAAW,CAACa,gBAAgB,CAAC;IAC7B,OAAO,IAAI;EACb,CAAC,CAAC,OAAOa,CAAC,EAAE;IACVxB,YAAY,CAAC;MACXyB,OAAO,EAAG,uBAAsBD,CAAC,CAACC,OAAQ,EAAC;MAC3CR,IAAI,EAAE,OAAO;MACbhB;IACF,CAAC,CAAC;IAEF,OAAO,KAAK;EACd;AACF"}
1
+ {"version":3,"file":"ScriptValidationUtils.js","names":["parseScript","decode","printMessage","state","validateScriptHooks","jsonData","validateScript","scriptData","validateJs","javascriptSource","areScriptHooksValid","isScriptValid","isValidJs","findAllScriptHooks","scriptHooksArray","key","item","type","push","scriptHooks","scriptHook","source","language","script","Array","isArray","join","e","message"],"sources":["../../src/utils/ScriptValidationUtils.ts"],"sourcesContent":["import { parseScript } from 'esprima';\n\nimport { type ScriptSkeleton } from '../api/ScriptApi';\nimport { State } from '../shared/State';\nimport { decode } from './Base64Utils';\nimport { printMessage } from './Console';\n\nexport type ScriptValidation = {\n validateScriptHooks(jsonData: object): void;\n validateScript(scriptData: ScriptSkeleton): void;\n validateJs(javascriptSource: string): void;\n areScriptHooksValid(jsonData: object): boolean;\n isScriptValid(scriptData: ScriptSkeleton): boolean;\n isValidJs(javascriptSource: string): boolean;\n};\n\nexport default (state: State): ScriptValidation => {\n return {\n validateScriptHooks(jsonData: object): void {\n validateScriptHooks({ jsonData });\n },\n validateScript(scriptData: ScriptSkeleton): void {\n validateScript({ scriptData });\n },\n validateJs(javascriptSource: string): void {\n validateJs({ javascriptSource });\n },\n areScriptHooksValid(jsonData: object): boolean {\n return areScriptHooksValid({ jsonData, state });\n },\n isScriptValid(scriptData: ScriptSkeleton): boolean {\n return isScriptValid({ scriptData, state });\n },\n isValidJs(javascriptSource: string): boolean {\n return isValidJs({ javascriptSource, state });\n },\n };\n};\n\nexport interface ScriptHook {\n type: 'text/javascript';\n source?: string;\n}\n\nfunction findAllScriptHooks(\n jsonData: any,\n scriptHooksArray: ScriptHook[] = []\n): ScriptHook[] {\n if (typeof jsonData !== 'object' || jsonData === null) {\n return scriptHooksArray;\n }\n\n for (const key in jsonData) {\n const item = jsonData[key];\n if (typeof item !== 'object' || item === null) {\n continue;\n }\n\n if ('type' in item && item.type === 'text/javascript') {\n scriptHooksArray.push(item);\n } else {\n findAllScriptHooks(item, scriptHooksArray);\n }\n }\n\n return scriptHooksArray;\n}\n\nexport function validateScriptHooks({ jsonData }: { jsonData: object }): void {\n const scriptHooks = findAllScriptHooks(jsonData);\n\n for (const scriptHook of scriptHooks) {\n if (!('source' in scriptHook)) {\n continue;\n }\n\n validateJs({ javascriptSource: scriptHook.source });\n }\n}\n\nexport function validateScript({\n scriptData,\n}: {\n scriptData: ScriptSkeleton;\n}): void {\n if (scriptData.language === 'JAVASCRIPT') {\n const script = Array.isArray(scriptData.script)\n ? scriptData.script.join('\\n')\n : decode(scriptData.script as string);\n validateJs({ javascriptSource: script });\n }\n}\n\nexport function validateJs({ javascriptSource }: { javascriptSource: string }) {\n parseScript(javascriptSource);\n return true;\n}\n\nexport function areScriptHooksValid({\n jsonData,\n state,\n}: {\n jsonData: object;\n state: State;\n}): boolean {\n const scriptHooks = findAllScriptHooks(jsonData);\n\n for (const scriptHook of scriptHooks) {\n if (!('source' in scriptHook)) {\n continue;\n }\n\n if (!isValidJs({ javascriptSource: scriptHook.source, state })) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function isScriptValid({\n scriptData,\n state,\n}: {\n scriptData: ScriptSkeleton;\n state: State;\n}): boolean {\n if (scriptData.language === 'JAVASCRIPT') {\n const script = Array.isArray(scriptData.script)\n ? scriptData.script.join('\\n')\n : decode(scriptData.script as string);\n return isValidJs({ javascriptSource: script, state });\n }\n return true;\n}\n\nexport function isValidJs({\n javascriptSource,\n state,\n}: {\n javascriptSource: string;\n state: State;\n}) {\n try {\n parseScript(javascriptSource);\n return true;\n } catch (e) {\n printMessage({\n message: `Invalid JavaScript: ${e.message}`,\n type: 'error',\n state,\n });\n\n return false;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,SAAS;AAAC,SAI7BC,MAAM;AAAA,SACNC,YAAY;AAWrB,gBAAgBC,KAAY,IAAuB;EACjD,OAAO;IACLC,mBAAmBA,CAACC,QAAgB,EAAQ;MAC1CD,mBAAmB,CAAC;QAAEC;MAAS,CAAC,CAAC;IACnC,CAAC;IACDC,cAAcA,CAACC,UAA0B,EAAQ;MAC/CD,cAAc,CAAC;QAAEC;MAAW,CAAC,CAAC;IAChC,CAAC;IACDC,UAAUA,CAACC,gBAAwB,EAAQ;MACzCD,UAAU,CAAC;QAAEC;MAAiB,CAAC,CAAC;IAClC,CAAC;IACDC,mBAAmBA,CAACL,QAAgB,EAAW;MAC7C,OAAOK,mBAAmB,CAAC;QAAEL,QAAQ;QAAEF;MAAM,CAAC,CAAC;IACjD,CAAC;IACDQ,aAAaA,CAACJ,UAA0B,EAAW;MACjD,OAAOI,aAAa,CAAC;QAAEJ,UAAU;QAAEJ;MAAM,CAAC,CAAC;IAC7C,CAAC;IACDS,SAASA,CAACH,gBAAwB,EAAW;MAC3C,OAAOG,SAAS,CAAC;QAAEH,gBAAgB;QAAEN;MAAM,CAAC,CAAC;IAC/C;EACF,CAAC;AACH,CAAC;AAOD,SAASU,kBAAkBA,CACzBR,QAAa,EACbS,gBAA8B,GAAG,EAAE,EACrB;EACd,IAAI,OAAOT,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,KAAK,IAAI,EAAE;IACrD,OAAOS,gBAAgB;EACzB;EAEA,KAAK,MAAMC,GAAG,IAAIV,QAAQ,EAAE;IAC1B,MAAMW,IAAI,GAAGX,QAAQ,CAACU,GAAG,CAAC;IAC1B,IAAI,OAAOC,IAAI,KAAK,QAAQ,IAAIA,IAAI,KAAK,IAAI,EAAE;MAC7C;IACF;IAEA,IAAI,MAAM,IAAIA,IAAI,IAAIA,IAAI,CAACC,IAAI,KAAK,iBAAiB,EAAE;MACrDH,gBAAgB,CAACI,IAAI,CAACF,IAAI,CAAC;IAC7B,CAAC,MAAM;MACLH,kBAAkB,CAACG,IAAI,EAAEF,gBAAgB,CAAC;IAC5C;EACF;EAEA,OAAOA,gBAAgB;AACzB;AAEA,OAAO,SAASV,mBAAmBA,CAAC;EAAEC;AAA+B,CAAC,EAAQ;EAC5E,MAAMc,WAAW,GAAGN,kBAAkB,CAACR,QAAQ,CAAC;EAEhD,KAAK,MAAMe,UAAU,IAAID,WAAW,EAAE;IACpC,IAAI,EAAE,QAAQ,IAAIC,UAAU,CAAC,EAAE;MAC7B;IACF;IAEAZ,UAAU,CAAC;MAAEC,gBAAgB,EAAEW,UAAU,CAACC;IAAO,CAAC,CAAC;EACrD;AACF;AAEA,OAAO,SAASf,cAAcA,CAAC;EAC7BC;AAGF,CAAC,EAAQ;EACP,IAAIA,UAAU,CAACe,QAAQ,KAAK,YAAY,EAAE;IACxC,MAAMC,MAAM,GAAGC,KAAK,CAACC,OAAO,CAAClB,UAAU,CAACgB,MAAM,CAAC,GAC3ChB,UAAU,CAACgB,MAAM,CAACG,IAAI,CAAC,IAAI,CAAC,GAC5BzB,MAAM,CAACM,UAAU,CAACgB,MAAgB,CAAC;IACvCf,UAAU,CAAC;MAAEC,gBAAgB,EAAEc;IAAO,CAAC,CAAC;EAC1C;AACF;AAEA,OAAO,SAASf,UAAUA,CAAC;EAAEC;AAA+C,CAAC,EAAE;EAC7ET,WAAW,CAACS,gBAAgB,CAAC;EAC7B,OAAO,IAAI;AACb;AAEA,OAAO,SAASC,mBAAmBA,CAAC;EAClCL,QAAQ;EACRF;AAIF,CAAC,EAAW;EACV,MAAMgB,WAAW,GAAGN,kBAAkB,CAACR,QAAQ,CAAC;EAEhD,KAAK,MAAMe,UAAU,IAAID,WAAW,EAAE;IACpC,IAAI,EAAE,QAAQ,IAAIC,UAAU,CAAC,EAAE;MAC7B;IACF;IAEA,IAAI,CAACR,SAAS,CAAC;MAAEH,gBAAgB,EAAEW,UAAU,CAACC,MAAM;MAAElB;IAAM,CAAC,CAAC,EAAE;MAC9D,OAAO,KAAK;IACd;EACF;EAEA,OAAO,IAAI;AACb;AAEA,OAAO,SAASQ,aAAaA,CAAC;EAC5BJ,UAAU;EACVJ;AAIF,CAAC,EAAW;EACV,IAAII,UAAU,CAACe,QAAQ,KAAK,YAAY,EAAE;IACxC,MAAMC,MAAM,GAAGC,KAAK,CAACC,OAAO,CAAClB,UAAU,CAACgB,MAAM,CAAC,GAC3ChB,UAAU,CAACgB,MAAM,CAACG,IAAI,CAAC,IAAI,CAAC,GAC5BzB,MAAM,CAACM,UAAU,CAACgB,MAAgB,CAAC;IACvC,OAAOX,SAAS,CAAC;MAAEH,gBAAgB,EAAEc,MAAM;MAAEpB;IAAM,CAAC,CAAC;EACvD;EACA,OAAO,IAAI;AACb;AAEA,OAAO,SAASS,SAASA,CAAC;EACxBH,gBAAgB;EAChBN;AAIF,CAAC,EAAE;EACD,IAAI;IACFH,WAAW,CAACS,gBAAgB,CAAC;IAC7B,OAAO,IAAI;EACb,CAAC,CAAC,OAAOkB,CAAC,EAAE;IACVzB,YAAY,CAAC;MACX0B,OAAO,EAAG,uBAAsBD,CAAC,CAACC,OAAQ,EAAC;MAC3CX,IAAI,EAAE,OAAO;MACbd;IACF,CAAC,CAAC;IAEF,OAAO,KAAK;EACd;AACF"}
@@ -1,7 +1,7 @@
1
1
  import StateImpl from "../shared/State.js";
2
- import { validateScriptHooks } from "./ScriptValidationUtils.js";
2
+ import { areScriptHooksValid } from "./ScriptValidationUtils.js";
3
3
  const state = StateImpl({});
4
- describe('validateScriptHooks', () => {
4
+ describe('areScriptHooksValid', () => {
5
5
  it('should return false when there is an invalid script', () => {
6
6
  const jsonData = {
7
7
  script: {
@@ -9,7 +9,7 @@ describe('validateScriptHooks', () => {
9
9
  source: 'invalid javascript'
10
10
  }
11
11
  };
12
- expect(validateScriptHooks({
12
+ expect(areScriptHooksValid({
13
13
  jsonData,
14
14
  state
15
15
  })).toBe(false);
@@ -21,7 +21,7 @@ describe('validateScriptHooks', () => {
21
21
  source: 'console.log("Hello World");'
22
22
  }
23
23
  };
24
- expect(validateScriptHooks({
24
+ expect(areScriptHooksValid({
25
25
  jsonData,
26
26
  state
27
27
  })).toBe(true);
@@ -32,7 +32,7 @@ describe('validateScriptHooks', () => {
32
32
  type: 'text/javascript'
33
33
  }
34
34
  };
35
- expect(validateScriptHooks({
35
+ expect(areScriptHooksValid({
36
36
  jsonData,
37
37
  state
38
38
  })).toBe(true);
@@ -1 +1 @@
1
- {"version":3,"file":"ScriptValidationUtils.test.js","names":["StateImpl","validateScriptHooks","state","describe","it","jsonData","script","type","source","expect","toBe"],"sources":["../../src/utils/ScriptValidationUtils.test.ts"],"sourcesContent":["import StateImpl, { State } from '../shared/State';\nimport { validateScriptHooks } from './ScriptValidationUtils';\n\nconst state: State = StateImpl({});\n\ndescribe('validateScriptHooks', () => {\n it('should return false when there is an invalid script', () => {\n const jsonData = {\n script: {\n type: 'text/javascript',\n source: 'invalid javascript',\n },\n };\n expect(validateScriptHooks({ jsonData, state })).toBe(false);\n });\n\n it('should return true when there is a valid script', () => {\n const jsonData = {\n script: {\n type: 'text/javascript',\n source: 'console.log(\"Hello World\");',\n },\n };\n expect(validateScriptHooks({ jsonData, state })).toBe(true);\n });\n\n it('should return true when there is no script', () => {\n const jsonData = {\n script: {\n type: 'text/javascript',\n },\n };\n expect(validateScriptHooks({ jsonData, state })).toBe(true);\n });\n});\n"],"mappings":"OAAOA,SAAS;AAAA,SACPC,mBAAmB;AAE5B,MAAMC,KAAY,GAAGF,SAAS,CAAC,CAAC,CAAC,CAAC;AAElCG,QAAQ,CAAC,qBAAqB,EAAE,MAAM;EACpCC,EAAE,CAAC,qDAAqD,EAAE,MAAM;IAC9D,MAAMC,QAAQ,GAAG;MACfC,MAAM,EAAE;QACNC,IAAI,EAAE,iBAAiB;QACvBC,MAAM,EAAE;MACV;IACF,CAAC;IACDC,MAAM,CAACR,mBAAmB,CAAC;MAAEI,QAAQ;MAAEH;IAAM,CAAC,CAAC,CAAC,CAACQ,IAAI,CAAC,KAAK,CAAC;EAC9D,CAAC,CAAC;EAEFN,EAAE,CAAC,iDAAiD,EAAE,MAAM;IAC1D,MAAMC,QAAQ,GAAG;MACfC,MAAM,EAAE;QACNC,IAAI,EAAE,iBAAiB;QACvBC,MAAM,EAAE;MACV;IACF,CAAC;IACDC,MAAM,CAACR,mBAAmB,CAAC;MAAEI,QAAQ;MAAEH;IAAM,CAAC,CAAC,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;EAC7D,CAAC,CAAC;EAEFN,EAAE,CAAC,4CAA4C,EAAE,MAAM;IACrD,MAAMC,QAAQ,GAAG;MACfC,MAAM,EAAE;QACNC,IAAI,EAAE;MACR;IACF,CAAC;IACDE,MAAM,CAACR,mBAAmB,CAAC;MAAEI,QAAQ;MAAEH;IAAM,CAAC,CAAC,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;EAC7D,CAAC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"ScriptValidationUtils.test.js","names":["StateImpl","areScriptHooksValid","state","describe","it","jsonData","script","type","source","expect","toBe"],"sources":["../../src/utils/ScriptValidationUtils.test.ts"],"sourcesContent":["import StateImpl, { State } from '../shared/State';\nimport { areScriptHooksValid } from './ScriptValidationUtils';\n\nconst state: State = StateImpl({});\n\ndescribe('areScriptHooksValid', () => {\n it('should return false when there is an invalid script', () => {\n const jsonData = {\n script: {\n type: 'text/javascript',\n source: 'invalid javascript',\n },\n };\n expect(areScriptHooksValid({ jsonData, state })).toBe(false);\n });\n\n it('should return true when there is a valid script', () => {\n const jsonData = {\n script: {\n type: 'text/javascript',\n source: 'console.log(\"Hello World\");',\n },\n };\n expect(areScriptHooksValid({ jsonData, state })).toBe(true);\n });\n\n it('should return true when there is no script', () => {\n const jsonData = {\n script: {\n type: 'text/javascript',\n },\n };\n expect(areScriptHooksValid({ jsonData, state })).toBe(true);\n });\n});\n"],"mappings":"OAAOA,SAAS;AAAA,SACPC,mBAAmB;AAE5B,MAAMC,KAAY,GAAGF,SAAS,CAAC,CAAC,CAAC,CAAC;AAElCG,QAAQ,CAAC,qBAAqB,EAAE,MAAM;EACpCC,EAAE,CAAC,qDAAqD,EAAE,MAAM;IAC9D,MAAMC,QAAQ,GAAG;MACfC,MAAM,EAAE;QACNC,IAAI,EAAE,iBAAiB;QACvBC,MAAM,EAAE;MACV;IACF,CAAC;IACDC,MAAM,CAACR,mBAAmB,CAAC;MAAEI,QAAQ;MAAEH;IAAM,CAAC,CAAC,CAAC,CAACQ,IAAI,CAAC,KAAK,CAAC;EAC9D,CAAC,CAAC;EAEFN,EAAE,CAAC,iDAAiD,EAAE,MAAM;IAC1D,MAAMC,QAAQ,GAAG;MACfC,MAAM,EAAE;QACNC,IAAI,EAAE,iBAAiB;QACvBC,MAAM,EAAE;MACV;IACF,CAAC;IACDC,MAAM,CAACR,mBAAmB,CAAC;MAAEI,QAAQ;MAAEH;IAAM,CAAC,CAAC,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;EAC7D,CAAC,CAAC;EAEFN,EAAE,CAAC,4CAA4C,EAAE,MAAM;IACrD,MAAMC,QAAQ,GAAG;MACfC,MAAM,EAAE;QACNC,IAAI,EAAE;MACR;IACF,CAAC;IACDE,MAAM,CAACR,mBAAmB,CAAC;MAAEI,QAAQ;MAAEH;IAAM,CAAC,CAAC,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;EAC7D,CAAC,CAAC;AACJ,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rockcarver/frodo-lib",
3
- "version": "2.0.0-21",
3
+ "version": "2.0.0-22",
4
4
  "type": "commonjs",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.js",
@@ -1 +1 @@
1
- {"version":3,"file":"ScriptOps.d.ts","sourceRoot":"","sources":["../../src/ops/ScriptOps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScriptOps.d.ts","sourceRoot":"","sources":["../../src/ops/ScriptOps.ts"],"names":[],"mappings":"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"}
@@ -1,31 +1,34 @@
1
1
  import { type ScriptSkeleton } from '../api/ScriptApi';
2
2
  import { State } from '../shared/State';
3
3
  export type ScriptValidation = {
4
- validateScriptHooks(jsonData: object): boolean;
5
- findAllScriptHooks(jsonData: object, scriptHooksArray?: ScriptHook[]): ScriptHook[];
6
- validateScript(script: ScriptSkeleton): boolean;
7
- validateScriptDecoded(scriptSkeleton: ScriptSkeleton): boolean;
8
- isValidJs(javascriptSource: string): boolean;
9
- };
10
- declare const _default: (state: State) => {
11
- validateScriptHooks(jsonData: object): boolean;
12
- findAllScriptHooks(jsonData: object, scriptHooksArray?: ScriptHook[]): ScriptHook[];
13
- validateScript(script: ScriptSkeleton): boolean;
14
- validateScriptDecoded(scriptSkeleton: ScriptSkeleton): boolean;
4
+ validateScriptHooks(jsonData: object): void;
5
+ validateScript(scriptData: ScriptSkeleton): void;
6
+ validateJs(javascriptSource: string): void;
7
+ areScriptHooksValid(jsonData: object): boolean;
8
+ isScriptValid(scriptData: ScriptSkeleton): boolean;
15
9
  isValidJs(javascriptSource: string): boolean;
16
10
  };
11
+ declare const _default: (state: State) => ScriptValidation;
17
12
  export default _default;
18
13
  export interface ScriptHook {
19
14
  type: 'text/javascript';
20
15
  source?: string;
21
16
  }
22
- export declare function validateScriptHooks({ jsonData, state, }: {
17
+ export declare function validateScriptHooks({ jsonData }: {
18
+ jsonData: object;
19
+ }): void;
20
+ export declare function validateScript({ scriptData, }: {
21
+ scriptData: ScriptSkeleton;
22
+ }): void;
23
+ export declare function validateJs({ javascriptSource }: {
24
+ javascriptSource: string;
25
+ }): boolean;
26
+ export declare function areScriptHooksValid({ jsonData, state, }: {
23
27
  jsonData: object;
24
28
  state: State;
25
29
  }): boolean;
26
- export declare function validateScript(script: ScriptSkeleton, state: State): boolean;
27
- export declare function validateScriptDecoded({ scriptSkeleton, state, }: {
28
- scriptSkeleton: ScriptSkeleton;
30
+ export declare function isScriptValid({ scriptData, state, }: {
31
+ scriptData: ScriptSkeleton;
29
32
  state: State;
30
33
  }): boolean;
31
34
  export declare function isValidJs({ javascriptSource, state, }: {
@@ -1 +1 @@
1
- {"version":3,"file":"ScriptValidationUtils.d.ts","sourceRoot":"","sources":["../../src/utils/ScriptValidationUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAIxC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/C,kBAAkB,CAChB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,UAAU,EAAE,GAC9B,UAAU,EAAE,CAAC;IAChB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC;IAChD,qBAAqB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC;IAC/D,SAAS,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC;CAC9C,CAAC;gCAEqB,KAAK;kCAEM,MAAM,GAAG,OAAO;iCAKlC,MAAM,qBACE,UAAU,EAAE,GAC7B,UAAU,EAAE;2BAIQ,cAAc,GAAG,OAAO;0CAIT,cAAc,GAAG,OAAO;gCAIlC,MAAM;;AArBtC,wBAyBE;AAEF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;CACd,GAAG,OAAO,CAcV;AA0BD,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAO5E;AAED,wBAAgB,qBAAqB,CAAC,EACpC,cAAc,EACd,KAAK,GACN,EAAE;IACD,cAAc,EAAE,cAAc,CAAC;IAC/B,KAAK,EAAE,KAAK,CAAC;CACd,GAAG,OAAO,CASV;AAED,wBAAgB,SAAS,CAAC,EACxB,gBAAgB,EAChB,KAAK,GACN,EAAE;IACD,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;CACd,WAaA"}
1
+ {"version":3,"file":"ScriptValidationUtils.d.ts","sourceRoot":"","sources":["../../src/utils/ScriptValidationUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAIxC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,cAAc,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IACjD,UAAU,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/C,aAAa,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC;IACnD,SAAS,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC;CAC9C,CAAC;gCAEqB,KAAK,KAAG,gBAAgB;AAA/C,wBAqBE;AAEF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA0BD,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAU5E;AAED,wBAAgB,cAAc,CAAC,EAC7B,UAAU,GACX,EAAE;IACD,UAAU,EAAE,cAAc,CAAC;CAC5B,GAAG,IAAI,CAOP;AAED,wBAAgB,UAAU,CAAC,EAAE,gBAAgB,EAAE,EAAE;IAAE,gBAAgB,EAAE,MAAM,CAAA;CAAE,WAG5E;AAED,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;CACd,GAAG,OAAO,CAcV;AAED,wBAAgB,aAAa,CAAC,EAC5B,UAAU,EACV,KAAK,GACN,EAAE;IACD,UAAU,EAAE,cAAc,CAAC;IAC3B,KAAK,EAAE,KAAK,CAAC;CACd,GAAG,OAAO,CAQV;AAED,wBAAgB,SAAS,CAAC,EACxB,gBAAgB,EAChB,KAAK,GACN,EAAE;IACD,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;CACd,WAaA"}