@appsurify-testmap/rrweb-cypress-plugin 2.1.3-alpha.1 → 2.1.3-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -13031,7 +13031,7 @@ class VisibilityManager {
13031
13031
  }
13032
13032
  }
13033
13033
  }
13034
- const version$1 = "2.1.3-alpha.1";
13034
+ const version$1 = "2.1.3-alpha.2";
13035
13035
  let wrappedEmit;
13036
13036
  let takeFullSnapshot$1;
13037
13037
  let canvasManager;
package/dist/index.mjs CHANGED
@@ -13031,7 +13031,7 @@ class VisibilityManager {
13031
13031
  }
13032
13032
  }
13033
13033
  }
13034
- const version$1 = "2.1.3-alpha.1";
13034
+ const version$1 = "2.1.3-alpha.2";
13035
13035
  let wrappedEmit;
13036
13036
  let takeFullSnapshot$1;
13037
13037
  let canvasManager;
package/dist/reporter.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var w=Object.create;var o=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var S=Object.getPrototypeOf,T=Object.prototype.hasOwnProperty;var h=(t,e)=>{for(var r in e)o(t,r,{get:e[r],enumerable:!0})},R=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of N(e))!T.call(t,n)&&n!==r&&o(t,n,{get:()=>e[n],enumerable:!(s=b(e,n))||s.enumerable});return t};var m=(t,e,r)=>(r=t!=null?w(S(t)):{},R(e||!t||!t.__esModule?o(r,"default",{value:t,enumerable:!0}):r,t)),j=t=>R(o({},"__esModule",{value:!0}),t);var k={};h(k,{default:()=>f});module.exports=j(k);var p=m(require("path")),i=m(require("fs")),u={outputReportDir:"test-results/cypress/ui"};function l(t){return(t??"").trim().replace(/[\s:/\\<>|"'?*]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function f(t,e){u={...u,...e},t("task",{saveRRWebReport(r){let{testRunResult:s}=r,n=l(s.spec.name),c=l(s.test.suite?.title),g=l(s.test.title),d=s.browser.name,y=`${c?c+"-":""}${g}.json`,a=p.join(u.outputReportDir,n,d,y),v={events:s.recorderEvents,metadata:{runner:s.runner,spec:s.spec,suite:s.test.suite,test:s.test,browser:s.browser}};return i.mkdirSync(u.outputReportDir,{recursive:!0}),i.mkdirSync(p.dirname(a),{recursive:!0}),i.writeFileSync(a,JSON.stringify(v,null,2),"utf-8"),console.log(`[ui-coverage] Saved report to ${a}`),null}})}
1
+ "use strict";var h=Object.create;var c=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var $=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty;var N=(t,e)=>{for(var r in e)c(t,r,{get:e[r],enumerable:!0})},R=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of $(e))!j.call(t,i)&&i!==r&&c(t,i,{get:()=>e[i],enumerable:!(s=F(e,i))||s.enumerable});return t};var d=(t,e,r)=>(r=t!=null?h(b(t)):{},R(e||!t||!t.__esModule?c(r,"default",{value:t,enumerable:!0}):r,t)),k=t=>R(c({},"__esModule",{value:!0}),t);var A={};N(A,{default:()=>y});module.exports=k(A);var o=d(require("path")),n=d(require("fs")),u={outputReportDir:"test-results/cypress/ui"};function g(t){return(t??"").trim().replace(/[\s:/\\<>|"'?*]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function D(t,e){let r=o.dirname(t),s=o.join(r,`.${o.basename(t)}.tmp-${process.pid}-${Date.now()}`);n.mkdirSync(r,{recursive:!0}),n.writeFileSync(s,e,"utf-8"),n.renameSync(s,t)}function T(t){try{if(!n.existsSync(t))return[];let e=n.readFileSync(t,"utf-8").trim();if(!e)return[];let r=JSON.parse(e);return Array.isArray(r)?r:[]}catch{return[]}}function y(t,e){u={...u,...e},t("task",{saveRRWebReport(r){let{testRunResult:s}=r,i=g(s.spec.name),l=g(s.test.suite?.title),w=g(s.test.title),S=s.browser.name,v=`${l?l+"-":""}${w}.json`,p=o.join(u.outputReportDir,i,S,v),f={events:s.recorderEvents,metadata:{runner:s.runner,spec:s.spec,suite:s.test.suite,test:s.test,browser:s.browser}};n.mkdirSync(u.outputReportDir,{recursive:!0}),n.mkdirSync(o.dirname(p),{recursive:!0}),n.writeFileSync(p,JSON.stringify(f,null,2),"utf-8"),console.log(`[ui-coverage] Saved report to ${p}`);try{let a=o.join(u.outputReportDir,"ui-coverage-aggregated.json"),m=T(a);m.push(f),D(a,JSON.stringify(m,null,2)),console.log(`[ui-coverage] Updated aggregate: ${a}`)}catch(a){console.warn("[ui-coverage] Failed to update aggregate report:",a)}return null}})}
2
2
  //# sourceMappingURL=reporter.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/reporter.ts"],"sourcesContent":["import * as path from 'path';\nimport * as fs from 'fs';\nimport type { TestRunResult } from './types';\n\nlet pluginConfig: {\n outputReportDir: string;\n} = {\n outputReportDir: 'test-results/cypress/ui'\n};\n\nfunction sanitizeFileNamePart(name: string | undefined): string {\n return (name ?? '')\n .trim()\n .replace(/[\\s:/\\\\<>|\"'?*]+/g, '-')\n .replace(/-+/g, '-')\n .replace(/^-|-$/g, '');\n}\n\nexport default function registerRRWebReportTasks(on: Cypress.PluginEvents, config?: Partial<typeof pluginConfig>) {\n pluginConfig = { ...pluginConfig, ...config };\n\n on('task', {\n saveRRWebReport(reportData: {testRunResult: TestRunResult}) {\n const { testRunResult } = reportData;\n\n const specName = sanitizeFileNamePart(testRunResult.spec.name);\n const suiteTitle = sanitizeFileNamePart(testRunResult.test.suite?.title);\n const testTitle = sanitizeFileNamePart(testRunResult.test.title);\n const browserName = testRunResult.browser.name;\n\n const jsonFileNameRaw = `${suiteTitle ? suiteTitle + '-' : ''}${testTitle}.json`;\n const jsonFilePathRaw = path.join(pluginConfig.outputReportDir, specName, browserName, jsonFileNameRaw);\n const reportRaw = {\n events: testRunResult.recorderEvents,\n metadata: {\n runner: testRunResult.runner,\n spec: testRunResult.spec,\n suite: testRunResult.test.suite,\n test: testRunResult.test,\n browser: testRunResult.browser,\n }\n };\n fs.mkdirSync(pluginConfig.outputReportDir, { recursive: true });\n fs.mkdirSync(path.dirname(jsonFilePathRaw), { recursive: true });\n fs.writeFileSync(jsonFilePathRaw, JSON.stringify(reportRaw, null, 2), 'utf-8');\n console.log(`[ui-coverage] Saved report to ${jsonFilePathRaw}`);\n\n return null;\n }\n });\n}\n"],"mappings":"0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAsB,mBACtBC,EAAoB,iBAGhBC,EAEA,CACF,gBAAiB,yBACnB,EAEA,SAASC,EAAqBC,EAAkC,CAC9D,OAAQA,GAAQ,IACb,KAAK,EACL,QAAQ,oBAAqB,GAAG,EAChC,QAAQ,MAAO,GAAG,EAClB,QAAQ,SAAU,EAAE,CACzB,CAEe,SAARN,EAA0CO,EAA0BC,EAAuC,CAChHJ,EAAe,CAAE,GAAGA,EAAc,GAAGI,CAAO,EAE5CD,EAAG,OAAQ,CACT,gBAAgBE,EAA4C,CAC1D,GAAM,CAAE,cAAAC,CAAc,EAAID,EAEpBE,EAAWN,EAAqBK,EAAc,KAAK,IAAI,EACvDE,EAAaP,EAAqBK,EAAc,KAAK,OAAO,KAAK,EACjEG,EAAYR,EAAqBK,EAAc,KAAK,KAAK,EACzDI,EAAcJ,EAAc,QAAQ,KAEpCK,EAAkB,GAAGH,EAAaA,EAAa,IAAM,KAAKC,SAC1DG,EAAuB,OAAKZ,EAAa,gBAAiBO,EAAUG,EAAaC,CAAe,EAChGE,EAAY,CAChB,OAAQP,EAAc,eACtB,SAAU,CACR,OAAQA,EAAc,OACtB,KAAMA,EAAc,KACpB,MAAOA,EAAc,KAAK,MAC1B,KAAMA,EAAc,KACpB,QAASA,EAAc,OACzB,CACF,EACA,OAAG,YAAUN,EAAa,gBAAiB,CAAE,UAAW,EAAK,CAAC,EAC3D,YAAe,UAAQY,CAAe,EAAG,CAAE,UAAW,EAAK,CAAC,EAC5D,gBAAcA,EAAiB,KAAK,UAAUC,EAAW,KAAM,CAAC,EAAG,OAAO,EAC7E,QAAQ,IAAI,iCAAiCD,GAAiB,EAEvD,IACT,CACF,CAAC,CACH","names":["reporter_exports","__export","registerRRWebReportTasks","__toCommonJS","path","fs","pluginConfig","sanitizeFileNamePart","name","on","config","reportData","testRunResult","specName","suiteTitle","testTitle","browserName","jsonFileNameRaw","jsonFilePathRaw","reportRaw"]}
1
+ {"version":3,"sources":["../src/reporter.ts"],"sourcesContent":["import * as path from 'path';\nimport * as fs from 'fs';\nimport type { TestRunResult } from './types';\n\nlet pluginConfig: {\n outputReportDir: string;\n} = {\n outputReportDir: 'test-results/cypress/ui'\n};\n\nfunction sanitizeFileNamePart(name: string | undefined): string {\n return (name ?? '')\n .trim()\n .replace(/[\\s:/\\\\<>|\"'?*]+/g, '-')\n .replace(/-+/g, '-')\n .replace(/^-|-$/g, '');\n}\n\n\nfunction writeFileAtomic(filePath: string, data: string) {\n const dir = path.dirname(filePath);\n const tmp = path.join(dir, `.${path.basename(filePath)}.tmp-${process.pid}-${Date.now()}`);\n fs.mkdirSync(dir, { recursive: true });\n fs.writeFileSync(tmp, data, 'utf-8');\n fs.renameSync(tmp, filePath);\n}\n\nfunction readJsonArraySafe(filePath: string): unknown[] {\n try {\n if (!fs.existsSync(filePath)) return [];\n const text = fs.readFileSync(filePath, 'utf-8').trim();\n if (!text) return [];\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const parsed = JSON.parse(text);\n return Array.isArray(parsed) ? parsed : [];\n } catch {\n return [];\n }\n}\n\nexport default function registerRRWebReportTasks(on: Cypress.PluginEvents, config?: Partial<typeof pluginConfig>) {\n pluginConfig = { ...pluginConfig, ...config };\n\n on('task', {\n saveRRWebReport(reportData: {testRunResult: TestRunResult}) {\n const { testRunResult } = reportData;\n\n const specName = sanitizeFileNamePart(testRunResult.spec.name);\n const suiteTitle = sanitizeFileNamePart(testRunResult.test.suite?.title);\n const testTitle = sanitizeFileNamePart(testRunResult.test.title);\n const browserName = testRunResult.browser.name;\n\n const jsonFileNameRaw = `${suiteTitle ? suiteTitle + '-' : ''}${testTitle}.json`;\n const jsonFilePathRaw = path.join(pluginConfig.outputReportDir, specName, browserName, jsonFileNameRaw);\n const reportRaw = {\n events: testRunResult.recorderEvents,\n metadata: {\n runner: testRunResult.runner,\n spec: testRunResult.spec,\n suite: testRunResult.test.suite,\n test: testRunResult.test,\n browser: testRunResult.browser,\n }\n };\n fs.mkdirSync(pluginConfig.outputReportDir, { recursive: true });\n fs.mkdirSync(path.dirname(jsonFilePathRaw), { recursive: true });\n fs.writeFileSync(jsonFilePathRaw, JSON.stringify(reportRaw, null, 2), 'utf-8');\n console.log(`[ui-coverage] Saved report to ${jsonFilePathRaw}`);\n\n // Агрегация: дописываем в один общий файл массивом\n try {\n const aggregatePath = path.join(pluginConfig.outputReportDir, \"ui-coverage-aggregated.json\");\n const current = readJsonArraySafe(aggregatePath);\n current.push(reportRaw);\n writeFileAtomic(aggregatePath, JSON.stringify(current, null, 2));\n console.log(`[ui-coverage] Updated aggregate: ${aggregatePath}`);\n } catch (e) {\n console.warn('[ui-coverage] Failed to update aggregate report:', e);\n }\n\n return null;\n }\n });\n}\n"],"mappings":"0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAsB,mBACtBC,EAAoB,iBAGhBC,EAEA,CACF,gBAAiB,yBACnB,EAEA,SAASC,EAAqBC,EAAkC,CAC9D,OAAQA,GAAQ,IACb,KAAK,EACL,QAAQ,oBAAqB,GAAG,EAChC,QAAQ,MAAO,GAAG,EAClB,QAAQ,SAAU,EAAE,CACzB,CAGA,SAASC,EAAgBC,EAAkBC,EAAc,CACvD,IAAMC,EAAW,UAAQF,CAAQ,EAC3BG,EAAW,OAAKD,EAAK,IAAS,WAASF,CAAQ,SAAS,QAAQ,OAAO,KAAK,IAAI,GAAG,EACtF,YAAUE,EAAK,CAAE,UAAW,EAAK,CAAC,EAClC,gBAAcC,EAAKF,EAAM,OAAO,EAChC,aAAWE,EAAKH,CAAQ,CAC7B,CAEA,SAASI,EAAkBJ,EAA6B,CACtD,GAAI,CACF,GAAI,CAAI,aAAWA,CAAQ,EAAG,MAAO,CAAC,EACtC,IAAMK,EAAU,eAAaL,EAAU,OAAO,EAAE,KAAK,EACrD,GAAI,CAACK,EAAM,MAAO,CAAC,EAEnB,IAAMC,EAAS,KAAK,MAAMD,CAAI,EAC9B,OAAO,MAAM,QAAQC,CAAM,EAAIA,EAAS,CAAC,CAC3C,MAAE,CACA,MAAO,CAAC,CACV,CACF,CAEe,SAARd,EAA0Ce,EAA0BC,EAAuC,CAChHZ,EAAe,CAAE,GAAGA,EAAc,GAAGY,CAAO,EAE5CD,EAAG,OAAQ,CACT,gBAAgBE,EAA4C,CAC1D,GAAM,CAAE,cAAAC,CAAc,EAAID,EAEpBE,EAAWd,EAAqBa,EAAc,KAAK,IAAI,EACvDE,EAAaf,EAAqBa,EAAc,KAAK,OAAO,KAAK,EACjEG,EAAYhB,EAAqBa,EAAc,KAAK,KAAK,EACzDI,EAAcJ,EAAc,QAAQ,KAEpCK,EAAkB,GAAGH,EAAaA,EAAa,IAAM,KAAKC,SAC1DG,EAAuB,OAAKpB,EAAa,gBAAiBe,EAAUG,EAAaC,CAAe,EAChGE,EAAY,CAChB,OAAQP,EAAc,eACtB,SAAU,CACR,OAAQA,EAAc,OACtB,KAAMA,EAAc,KACpB,MAAOA,EAAc,KAAK,MAC1B,KAAMA,EAAc,KACpB,QAASA,EAAc,OACzB,CACF,EACG,YAAUd,EAAa,gBAAiB,CAAE,UAAW,EAAK,CAAC,EAC3D,YAAe,UAAQoB,CAAe,EAAG,CAAE,UAAW,EAAK,CAAC,EAC5D,gBAAcA,EAAiB,KAAK,UAAUC,EAAW,KAAM,CAAC,EAAG,OAAO,EAC7E,QAAQ,IAAI,iCAAiCD,GAAiB,EAG9D,GAAI,CACF,IAAME,EAAqB,OAAKtB,EAAa,gBAAiB,6BAA6B,EACrFuB,EAAUf,EAAkBc,CAAa,EAC/CC,EAAQ,KAAKF,CAAS,EACtBlB,EAAgBmB,EAAe,KAAK,UAAUC,EAAS,KAAM,CAAC,CAAC,EAC/D,QAAQ,IAAI,oCAAoCD,GAAe,CACjE,OAASE,EAAP,CACA,QAAQ,KAAK,mDAAoDA,CAAC,CACpE,CAEA,OAAO,IACT,CACF,CAAC,CACH","names":["reporter_exports","__export","registerRRWebReportTasks","__toCommonJS","path","fs","pluginConfig","sanitizeFileNamePart","name","writeFileAtomic","filePath","data","dir","tmp","readJsonArraySafe","text","parsed","on","config","reportData","testRunResult","specName","suiteTitle","testTitle","browserName","jsonFileNameRaw","jsonFilePathRaw","reportRaw","aggregatePath","current","e"]}
package/dist/reporter.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import*as r from"path";import*as e from"fs";var s={outputReportDir:"test-results/cypress/ui"};function o(n){return(n??"").trim().replace(/[\s:/\\<>|"'?*]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function g(n,p){s={...s,...p},n("task",{saveRRWebReport(a){let{testRunResult:t}=a,l=o(t.spec.name),u=o(t.test.suite?.title),c=o(t.test.title),R=t.browser.name,m=`${u?u+"-":""}${c}.json`,i=r.join(s.outputReportDir,l,R,m),f={events:t.recorderEvents,metadata:{runner:t.runner,spec:t.spec,suite:t.test.suite,test:t.test,browser:t.browser}};return e.mkdirSync(s.outputReportDir,{recursive:!0}),e.mkdirSync(r.dirname(i),{recursive:!0}),e.writeFileSync(i,JSON.stringify(f,null,2),"utf-8"),console.log(`[ui-coverage] Saved report to ${i}`),null}})}export{g as default};
1
+ import*as s from"path";import*as e from"fs";var a={outputReportDir:"test-results/cypress/ui"};function c(r){return(r??"").trim().replace(/[\s:/\\<>|"'?*]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function y(r,o){let n=s.dirname(r),t=s.join(n,`.${s.basename(r)}.tmp-${process.pid}-${Date.now()}`);e.mkdirSync(n,{recursive:!0}),e.writeFileSync(t,o,"utf-8"),e.renameSync(t,r)}function w(r){try{if(!e.existsSync(r))return[];let o=e.readFileSync(r,"utf-8").trim();if(!o)return[];let n=JSON.parse(o);return Array.isArray(n)?n:[]}catch{return[]}}function S(r,o){a={...a,...o},r("task",{saveRRWebReport(n){let{testRunResult:t}=n,f=c(t.spec.name),p=c(t.test.suite?.title),m=c(t.test.title),R=t.browser.name,d=`${p?p+"-":""}${m}.json`,u=s.join(a.outputReportDir,f,R,d),g={events:t.recorderEvents,metadata:{runner:t.runner,spec:t.spec,suite:t.test.suite,test:t.test,browser:t.browser}};e.mkdirSync(a.outputReportDir,{recursive:!0}),e.mkdirSync(s.dirname(u),{recursive:!0}),e.writeFileSync(u,JSON.stringify(g,null,2),"utf-8"),console.log(`[ui-coverage] Saved report to ${u}`);try{let i=s.join(a.outputReportDir,"ui-coverage-aggregated.json"),l=w(i);l.push(g),y(i,JSON.stringify(l,null,2)),console.log(`[ui-coverage] Updated aggregate: ${i}`)}catch(i){console.warn("[ui-coverage] Failed to update aggregate report:",i)}return null}})}export{S as default};
2
2
  //# sourceMappingURL=reporter.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/reporter.ts"],"sourcesContent":["import * as path from 'path';\nimport * as fs from 'fs';\nimport type { TestRunResult } from './types';\n\nlet pluginConfig: {\n outputReportDir: string;\n} = {\n outputReportDir: 'test-results/cypress/ui'\n};\n\nfunction sanitizeFileNamePart(name: string | undefined): string {\n return (name ?? '')\n .trim()\n .replace(/[\\s:/\\\\<>|\"'?*]+/g, '-')\n .replace(/-+/g, '-')\n .replace(/^-|-$/g, '');\n}\n\nexport default function registerRRWebReportTasks(on: Cypress.PluginEvents, config?: Partial<typeof pluginConfig>) {\n pluginConfig = { ...pluginConfig, ...config };\n\n on('task', {\n saveRRWebReport(reportData: {testRunResult: TestRunResult}) {\n const { testRunResult } = reportData;\n\n const specName = sanitizeFileNamePart(testRunResult.spec.name);\n const suiteTitle = sanitizeFileNamePart(testRunResult.test.suite?.title);\n const testTitle = sanitizeFileNamePart(testRunResult.test.title);\n const browserName = testRunResult.browser.name;\n\n const jsonFileNameRaw = `${suiteTitle ? suiteTitle + '-' : ''}${testTitle}.json`;\n const jsonFilePathRaw = path.join(pluginConfig.outputReportDir, specName, browserName, jsonFileNameRaw);\n const reportRaw = {\n events: testRunResult.recorderEvents,\n metadata: {\n runner: testRunResult.runner,\n spec: testRunResult.spec,\n suite: testRunResult.test.suite,\n test: testRunResult.test,\n browser: testRunResult.browser,\n }\n };\n fs.mkdirSync(pluginConfig.outputReportDir, { recursive: true });\n fs.mkdirSync(path.dirname(jsonFilePathRaw), { recursive: true });\n fs.writeFileSync(jsonFilePathRaw, JSON.stringify(reportRaw, null, 2), 'utf-8');\n console.log(`[ui-coverage] Saved report to ${jsonFilePathRaw}`);\n\n return null;\n }\n });\n}\n"],"mappings":"AAAA,UAAYA,MAAU,OACtB,UAAYC,MAAQ,KAGpB,IAAIC,EAEA,CACF,gBAAiB,yBACnB,EAEA,SAASC,EAAqBC,EAAkC,CAC9D,OAAQA,GAAQ,IACb,KAAK,EACL,QAAQ,oBAAqB,GAAG,EAChC,QAAQ,MAAO,GAAG,EAClB,QAAQ,SAAU,EAAE,CACzB,CAEe,SAARC,EAA0CC,EAA0BC,EAAuC,CAChHL,EAAe,CAAE,GAAGA,EAAc,GAAGK,CAAO,EAE5CD,EAAG,OAAQ,CACT,gBAAgBE,EAA4C,CAC1D,GAAM,CAAE,cAAAC,CAAc,EAAID,EAEpBE,EAAWP,EAAqBM,EAAc,KAAK,IAAI,EACvDE,EAAaR,EAAqBM,EAAc,KAAK,OAAO,KAAK,EACjEG,EAAYT,EAAqBM,EAAc,KAAK,KAAK,EACzDI,EAAcJ,EAAc,QAAQ,KAEpCK,EAAkB,GAAGH,EAAaA,EAAa,IAAM,KAAKC,SAC1DG,EAAuB,OAAKb,EAAa,gBAAiBQ,EAAUG,EAAaC,CAAe,EAChGE,EAAY,CAChB,OAAQP,EAAc,eACtB,SAAU,CACR,OAAQA,EAAc,OACtB,KAAMA,EAAc,KACpB,MAAOA,EAAc,KAAK,MAC1B,KAAMA,EAAc,KACpB,QAASA,EAAc,OACzB,CACF,EACA,OAAG,YAAUP,EAAa,gBAAiB,CAAE,UAAW,EAAK,CAAC,EAC3D,YAAe,UAAQa,CAAe,EAAG,CAAE,UAAW,EAAK,CAAC,EAC5D,gBAAcA,EAAiB,KAAK,UAAUC,EAAW,KAAM,CAAC,EAAG,OAAO,EAC7E,QAAQ,IAAI,iCAAiCD,GAAiB,EAEvD,IACT,CACF,CAAC,CACH","names":["path","fs","pluginConfig","sanitizeFileNamePart","name","registerRRWebReportTasks","on","config","reportData","testRunResult","specName","suiteTitle","testTitle","browserName","jsonFileNameRaw","jsonFilePathRaw","reportRaw"]}
1
+ {"version":3,"sources":["../src/reporter.ts"],"sourcesContent":["import * as path from 'path';\nimport * as fs from 'fs';\nimport type { TestRunResult } from './types';\n\nlet pluginConfig: {\n outputReportDir: string;\n} = {\n outputReportDir: 'test-results/cypress/ui'\n};\n\nfunction sanitizeFileNamePart(name: string | undefined): string {\n return (name ?? '')\n .trim()\n .replace(/[\\s:/\\\\<>|\"'?*]+/g, '-')\n .replace(/-+/g, '-')\n .replace(/^-|-$/g, '');\n}\n\n\nfunction writeFileAtomic(filePath: string, data: string) {\n const dir = path.dirname(filePath);\n const tmp = path.join(dir, `.${path.basename(filePath)}.tmp-${process.pid}-${Date.now()}`);\n fs.mkdirSync(dir, { recursive: true });\n fs.writeFileSync(tmp, data, 'utf-8');\n fs.renameSync(tmp, filePath);\n}\n\nfunction readJsonArraySafe(filePath: string): unknown[] {\n try {\n if (!fs.existsSync(filePath)) return [];\n const text = fs.readFileSync(filePath, 'utf-8').trim();\n if (!text) return [];\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const parsed = JSON.parse(text);\n return Array.isArray(parsed) ? parsed : [];\n } catch {\n return [];\n }\n}\n\nexport default function registerRRWebReportTasks(on: Cypress.PluginEvents, config?: Partial<typeof pluginConfig>) {\n pluginConfig = { ...pluginConfig, ...config };\n\n on('task', {\n saveRRWebReport(reportData: {testRunResult: TestRunResult}) {\n const { testRunResult } = reportData;\n\n const specName = sanitizeFileNamePart(testRunResult.spec.name);\n const suiteTitle = sanitizeFileNamePart(testRunResult.test.suite?.title);\n const testTitle = sanitizeFileNamePart(testRunResult.test.title);\n const browserName = testRunResult.browser.name;\n\n const jsonFileNameRaw = `${suiteTitle ? suiteTitle + '-' : ''}${testTitle}.json`;\n const jsonFilePathRaw = path.join(pluginConfig.outputReportDir, specName, browserName, jsonFileNameRaw);\n const reportRaw = {\n events: testRunResult.recorderEvents,\n metadata: {\n runner: testRunResult.runner,\n spec: testRunResult.spec,\n suite: testRunResult.test.suite,\n test: testRunResult.test,\n browser: testRunResult.browser,\n }\n };\n fs.mkdirSync(pluginConfig.outputReportDir, { recursive: true });\n fs.mkdirSync(path.dirname(jsonFilePathRaw), { recursive: true });\n fs.writeFileSync(jsonFilePathRaw, JSON.stringify(reportRaw, null, 2), 'utf-8');\n console.log(`[ui-coverage] Saved report to ${jsonFilePathRaw}`);\n\n // Агрегация: дописываем в один общий файл массивом\n try {\n const aggregatePath = path.join(pluginConfig.outputReportDir, \"ui-coverage-aggregated.json\");\n const current = readJsonArraySafe(aggregatePath);\n current.push(reportRaw);\n writeFileAtomic(aggregatePath, JSON.stringify(current, null, 2));\n console.log(`[ui-coverage] Updated aggregate: ${aggregatePath}`);\n } catch (e) {\n console.warn('[ui-coverage] Failed to update aggregate report:', e);\n }\n\n return null;\n }\n });\n}\n"],"mappings":"AAAA,UAAYA,MAAU,OACtB,UAAYC,MAAQ,KAGpB,IAAIC,EAEA,CACF,gBAAiB,yBACnB,EAEA,SAASC,EAAqBC,EAAkC,CAC9D,OAAQA,GAAQ,IACb,KAAK,EACL,QAAQ,oBAAqB,GAAG,EAChC,QAAQ,MAAO,GAAG,EAClB,QAAQ,SAAU,EAAE,CACzB,CAGA,SAASC,EAAgBC,EAAkBC,EAAc,CACvD,IAAMC,EAAW,UAAQF,CAAQ,EAC3BG,EAAW,OAAKD,EAAK,IAAS,WAASF,CAAQ,SAAS,QAAQ,OAAO,KAAK,IAAI,GAAG,EACtF,YAAUE,EAAK,CAAE,UAAW,EAAK,CAAC,EAClC,gBAAcC,EAAKF,EAAM,OAAO,EAChC,aAAWE,EAAKH,CAAQ,CAC7B,CAEA,SAASI,EAAkBJ,EAA6B,CACtD,GAAI,CACF,GAAI,CAAI,aAAWA,CAAQ,EAAG,MAAO,CAAC,EACtC,IAAMK,EAAU,eAAaL,EAAU,OAAO,EAAE,KAAK,EACrD,GAAI,CAACK,EAAM,MAAO,CAAC,EAEnB,IAAMC,EAAS,KAAK,MAAMD,CAAI,EAC9B,OAAO,MAAM,QAAQC,CAAM,EAAIA,EAAS,CAAC,CAC3C,MAAE,CACA,MAAO,CAAC,CACV,CACF,CAEe,SAARC,EAA0CC,EAA0BC,EAAuC,CAChHb,EAAe,CAAE,GAAGA,EAAc,GAAGa,CAAO,EAE5CD,EAAG,OAAQ,CACT,gBAAgBE,EAA4C,CAC1D,GAAM,CAAE,cAAAC,CAAc,EAAID,EAEpBE,EAAWf,EAAqBc,EAAc,KAAK,IAAI,EACvDE,EAAahB,EAAqBc,EAAc,KAAK,OAAO,KAAK,EACjEG,EAAYjB,EAAqBc,EAAc,KAAK,KAAK,EACzDI,EAAcJ,EAAc,QAAQ,KAEpCK,EAAkB,GAAGH,EAAaA,EAAa,IAAM,KAAKC,SAC1DG,EAAuB,OAAKrB,EAAa,gBAAiBgB,EAAUG,EAAaC,CAAe,EAChGE,EAAY,CAChB,OAAQP,EAAc,eACtB,SAAU,CACR,OAAQA,EAAc,OACtB,KAAMA,EAAc,KACpB,MAAOA,EAAc,KAAK,MAC1B,KAAMA,EAAc,KACpB,QAASA,EAAc,OACzB,CACF,EACG,YAAUf,EAAa,gBAAiB,CAAE,UAAW,EAAK,CAAC,EAC3D,YAAe,UAAQqB,CAAe,EAAG,CAAE,UAAW,EAAK,CAAC,EAC5D,gBAAcA,EAAiB,KAAK,UAAUC,EAAW,KAAM,CAAC,EAAG,OAAO,EAC7E,QAAQ,IAAI,iCAAiCD,GAAiB,EAG9D,GAAI,CACF,IAAME,EAAqB,OAAKvB,EAAa,gBAAiB,6BAA6B,EACrFwB,EAAUhB,EAAkBe,CAAa,EAC/CC,EAAQ,KAAKF,CAAS,EACtBnB,EAAgBoB,EAAe,KAAK,UAAUC,EAAS,KAAM,CAAC,CAAC,EAC/D,QAAQ,IAAI,oCAAoCD,GAAe,CACjE,OAASE,EAAP,CACA,QAAQ,KAAK,mDAAoDA,CAAC,CACpE,CAEA,OAAO,IACT,CACF,CAAC,CACH","names":["path","fs","pluginConfig","sanitizeFileNamePart","name","writeFileAtomic","filePath","data","dir","tmp","readJsonArraySafe","text","parsed","registerRRWebReportTasks","on","config","reportData","testRunResult","specName","suiteTitle","testTitle","browserName","jsonFileNameRaw","jsonFilePathRaw","reportRaw","aggregatePath","current","e"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appsurify-testmap/rrweb-cypress-plugin",
3
- "version": "2.1.3-alpha.1",
3
+ "version": "2.1.3-alpha.2",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -48,9 +48,9 @@
48
48
  "typescript": "^5.8.3"
49
49
  },
50
50
  "dependencies": {
51
- "@appsurify-testmap/rrweb": "^2.1.3-alpha.1",
52
- "@appsurify-testmap/rrweb-plugin-sequential-id-record": "^2.1.3-alpha.1",
53
- "@appsurify-testmap/rrweb-snapshot": "^2.1.3-alpha.1",
54
- "@appsurify-testmap/rrweb-types": "^2.1.3-alpha.1"
51
+ "@appsurify-testmap/rrweb": "^2.1.3-alpha.2",
52
+ "@appsurify-testmap/rrweb-plugin-sequential-id-record": "^2.1.3-alpha.2",
53
+ "@appsurify-testmap/rrweb-snapshot": "^2.1.3-alpha.2",
54
+ "@appsurify-testmap/rrweb-types": "^2.1.3-alpha.2"
55
55
  }
56
56
  }