@checkly/playwright-core 1.48.21 → 1.48.22-beta.1
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/lib/cli/cli.js +61 -0
- package/lib/common/debugLogger.js +90 -0
- package/lib/generated/clockSource.js +2 -1
- package/lib/generated/consoleApiSource.js +2 -1
- package/lib/generated/injectedScriptSource.js +2 -1
- package/lib/generated/pollingRecorderSource.js +2 -1
- package/lib/generated/recorderSource.js +1 -1
- package/lib/generated/utilityScriptSource.js +2 -1
- package/lib/generated/webSocketMockSource.js +2 -1
- package/lib/server/recorder/java.js +4 -36
- package/lib/server/trace/recorder/tracing.js +22 -17
- package/lib/vite/{traceViewer/assets/codeMirrorModule-U6XMqGkV.js → recorder/assets/codeMirrorModule--bQcPrZ2.js} +2 -2
- package/lib/vite/recorder/assets/codeMirrorModule-Cy8X9Wtw.css +344 -0
- package/lib/vite/recorder/assets/index-BMeslH8X.js +9946 -0
- package/lib/vite/recorder/assets/index-BjXmTggo.css +2515 -0
- package/lib/vite/recorder/index.html +2 -2
- package/lib/vite/traceViewer/assets/codeMirrorModule-75b0ca4f.js +24 -0
- package/lib/vite/traceViewer/assets/codeMirrorModule-CBokkFJ2.js +16431 -0
- package/lib/vite/traceViewer/assets/codeMirrorModule-CNHvVrFd.js +16437 -0
- package/lib/vite/traceViewer/assets/{codeMirrorModule-BdBhzV6t.js → codeMirrorModule-CpGx_S8D.js} +2 -2
- package/lib/vite/traceViewer/assets/codeMirrorModule-SomGa-Da.js +16443 -0
- package/lib/vite/traceViewer/assets/codeMirrorModule-c1454a2e.js +24 -0
- package/lib/vite/traceViewer/assets/codeMirrorModule-c9bb9834.js +24 -0
- package/lib/vite/traceViewer/assets/{codeMirrorModule-Dx6AXgMV.js → codeMirrorModule-cc2329e4.js} +11 -1256
- package/lib/vite/traceViewer/assets/codeMirrorModule-d2cc7db0.js +15579 -0
- package/lib/vite/traceViewer/assets/codeMirrorModule-da915a35.js +15586 -0
- package/lib/vite/traceViewer/assets/{codeMirrorModule-CcviAl53.js → codeMirrorModule-f03b1a3e.js} +1118 -2370
- package/lib/vite/traceViewer/assets/codeMirrorModule-f333a775.js +24 -0
- package/lib/vite/traceViewer/assets/{codeMirrorModule-V7N6ppkd.js → codeMirrorModule-uWDlVSQz.js} +2 -2
- package/lib/vite/{recorder/assets/codeMirrorModule-d0KhC1qL.js → traceViewer/assets/codeMirrorModule-xvopPhZ4.js} +1 -1
- package/lib/vite/traceViewer/assets/{codeMirrorModule-BqcXH1AO.js → codeMirrorModule-yboVpgC0.js} +2 -1248
- package/lib/vite/traceViewer/assets/{inspectorTab-DpvLVMq5.js → inspectorTab-B4ynvyY9.js} +18 -8
- package/lib/vite/traceViewer/assets/{inspectorTab-BPzVEZSf.js → inspectorTab-BqBvUFio.js} +18 -8
- package/lib/vite/traceViewer/assets/{workbench-Bjkiwcr1.js → inspectorTab-Dw0Gnh1T.js} +1847 -3605
- package/lib/vite/traceViewer/assets/{inspectorTab-BABZNwlH.js → inspectorTab-Ywa000c9.js} +16 -6
- package/lib/vite/traceViewer/assets/{inspectorTab-BHcfR9dD.js → inspectorTab-wfvwpMHs.js} +2 -2
- package/lib/vite/traceViewer/assets/{workbench-BcgGQnKb.js → workbench-CROk6Fcc.js} +2 -2
- package/lib/vite/traceViewer/assets/{workbench-ByyWxoT8.js → workbench-CfXOj3eT.js} +2 -2
- package/lib/vite/traceViewer/assets/{workbench-DhqI6jeL.js → workbench-D9CTkv-4.js} +2 -2
- package/lib/vite/traceViewer/assets/{workbench-I4s6sWjN.js → workbench-DNolpp3y.js} +1 -1
- package/lib/vite/traceViewer/assets/workbench-DUc2iD0P.js +1473 -0
- package/lib/vite/traceViewer/assets/{workbench-B13nfocr.js → workbench-LKskf2Iy.js} +1 -1
- package/lib/vite/traceViewer/assets/workbench-dnZM5a7x.js +1473 -0
- package/lib/vite/traceViewer/assets/wsPort-54626118.js +18361 -0
- package/lib/vite/traceViewer/assets/{workbench-Crj6jzdv.js → wsPort-57f274c6.js} +4308 -5066
- package/lib/vite/traceViewer/assets/wsPort-762c6840.js +64 -0
- package/lib/vite/traceViewer/assets/wsPort-85286e61.js +18361 -0
- package/lib/vite/traceViewer/assets/wsPort-98e00a94.js +64 -0
- package/lib/vite/traceViewer/assets/{wsPort-EUvw-dwH.js → wsPort-CAXygIGt.js} +3 -3
- package/lib/vite/traceViewer/assets/{workbench-C5OQh9VX.js → wsPort-cc0077b5.js} +4046 -4623
- package/lib/vite/traceViewer/assets/wsPort-edfeeb7d.js +64 -0
- package/lib/vite/traceViewer/assets/wsPort-ee2830d7.js +64 -0
- package/lib/vite/traceViewer/assets/{workbench-BwodYCgl.js → wsPort-peeLnQhT.js} +985 -1540
- package/lib/vite/traceViewer/assets/xtermModule-443332e6.js +9 -0
- package/lib/vite/traceViewer/assets/xtermModule-60687b6b.js +6410 -0
- package/lib/vite/traceViewer/codeMirrorModule.5d0f417c.css +1 -0
- package/lib/vite/traceViewer/codeMirrorModule.eb494ea9.css +344 -0
- package/lib/vite/traceViewer/codicon.79f233d0.ttf +0 -0
- package/lib/vite/traceViewer/{embedded.27BGR_eD.js → embedded.6N1v7bZ1.js} +4 -3
- package/lib/vite/traceViewer/{embedded.DTjd2aiy.js → embedded.BOw0jX78.js} +4 -3
- package/lib/vite/traceViewer/{embedded.Dxe2heQk.js → embedded.BXYl5zRv.js} +1 -1
- package/lib/vite/traceViewer/{embedded.SsjKHrxC.js → embedded.BaqdbLsy.js} +4 -3
- package/lib/vite/traceViewer/embedded.CwwTDBzP.js +106 -0
- package/lib/vite/traceViewer/{embedded.Zu332ZC1.js → embedded.DeCrOtlO.js} +2 -2
- package/lib/vite/traceViewer/embedded.html +6 -6
- package/lib/vite/traceViewer/embedded.i_k4ceMJ.js +106 -0
- package/lib/vite/traceViewer/index.1a1fe659.css +1 -0
- package/lib/vite/traceViewer/index.1b525c1c.js +181 -0
- package/lib/vite/traceViewer/index.55e65778.js +181 -0
- package/lib/vite/traceViewer/{index.6KJ-JQ0L.js → index.5nqVcfiC.js} +2 -2
- package/lib/vite/traceViewer/{index.C0EgJ4oW.js → index.5ooko4n7.js} +21 -36
- package/lib/vite/traceViewer/index.76e9f312.css +124 -0
- package/lib/vite/traceViewer/{index.Dz3icWJV.js → index.Bugo2TbS.js} +4 -3
- package/lib/vite/traceViewer/{index.PqcsvBxQ.js → index.BzvnAP7t.js} +4 -3
- package/lib/vite/traceViewer/{index.CLxsp2W_.js → index.CM_h9lHr.js} +2 -2
- package/lib/vite/traceViewer/{index.yxAwzeWG.js → index.CY13pBr8.js} +4 -3
- package/lib/vite/traceViewer/index.DW2ZzZfL.js +197 -0
- package/lib/vite/traceViewer/{index.CB297BuW.js → index.DZkJsFod.js} +1 -1
- package/lib/vite/traceViewer/index.DblJtEW_.js +197 -0
- package/lib/vite/traceViewer/index.a265fbdb.js +2 -0
- package/lib/vite/traceViewer/index.c9f6fa8f.js +2 -0
- package/lib/vite/traceViewer/index.d86e70ca.js +181 -0
- package/lib/vite/traceViewer/index.decad628.js +2 -0
- package/lib/vite/traceViewer/index.e8730524.js +181 -0
- package/lib/vite/traceViewer/index.ed9a3c58.js +2 -0
- package/lib/vite/traceViewer/index.html +7 -7
- package/lib/vite/traceViewer/{recorder.BufKu9Hp.js → recorder.3Xfrl_zV.js} +3 -2
- package/lib/vite/traceViewer/{recorder.am-MV-DQ.js → recorder.B76AH9PE.js} +3 -2
- package/lib/vite/traceViewer/{recorder.C88JDknq.js → recorder.BVExlUUk.js} +1 -1
- package/lib/vite/traceViewer/{recorder.7Wl6HrQl.js → recorder.Db1aK_DY.js} +3 -2
- package/lib/vite/traceViewer/recorder.html +4 -4
- package/lib/vite/traceViewer/recorder.uj3cfoMf.js +551 -0
- package/lib/vite/traceViewer/uiMode.08ab2d90.js +4 -0
- package/lib/vite/traceViewer/uiMode.0d0d667b.js +4 -0
- package/lib/vite/traceViewer/uiMode.216233d5.js +1484 -0
- package/lib/vite/traceViewer/{uiMode.DVWUEIHq.css → uiMode.2c31018f.css} +88 -188
- package/lib/vite/traceViewer/uiMode.3ff70f7d.js +4 -0
- package/lib/vite/traceViewer/uiMode.4d0a45af.js +1484 -0
- package/lib/vite/traceViewer/uiMode.66eb0ce2.js +1484 -0
- package/lib/vite/traceViewer/uiMode.8b41a49d.css +1 -0
- package/lib/vite/traceViewer/uiMode.8d080c01.js +1486 -0
- package/lib/vite/traceViewer/uiMode.BKrDfnAk.js +1725 -0
- package/lib/vite/traceViewer/uiMode.BMYUvsRh.js +1725 -0
- package/lib/vite/traceViewer/{uiMode.BZoFj6zV.js → uiMode.BVpTBGoe.js} +4 -3
- package/lib/vite/traceViewer/uiMode.BWhJCEE9.js +1725 -0
- package/lib/vite/traceViewer/uiMode.Bg9fACTB.js +1725 -0
- package/lib/vite/traceViewer/{uiMode.CpC2B27N.js → uiMode.CYBsUhm_.js} +2 -2
- package/lib/vite/traceViewer/{uiMode.Dlo9s_YX.js → uiMode.DCSdxlAq.js} +4 -3
- package/lib/vite/traceViewer/{uiMode.2tr9k625.js → uiMode.DjTS7tqC.js} +1 -1
- package/lib/vite/traceViewer/{uiMode.wsGnVMQK.js → uiMode.DtleKuGI.js} +4 -3
- package/lib/vite/traceViewer/uiMode.UamAvOMX.js +1725 -0
- package/lib/vite/traceViewer/uiMode.bBcXYWNF.js +1725 -0
- package/lib/vite/traceViewer/uiMode.ca6ec898.js +4 -0
- package/lib/vite/traceViewer/{uiMode.iq7CyYy7.js → uiMode.e-PLonGl.js} +2 -2
- package/lib/vite/traceViewer/uiMode.e_-GuqEi.js +1725 -0
- package/lib/vite/traceViewer/uiMode.f1YADWIl.js +1724 -0
- package/lib/vite/traceViewer/uiMode.html +7 -7
- package/lib/vite/traceViewer/uiMode.kHsXCfV8.js +1490 -0
- package/lib/vite/traceViewer/uiMode.myF_lyEH.js +1724 -0
- package/lib/vite/traceViewer/{workbench.B3X2QtYa.css → wsPort.162042f9.css} +63 -315
- package/lib/vite/traceViewer/{workbench.wuxQoE2z.css → wsPort.997c92cf.css} +145 -335
- package/lib/vite/traceViewer/wsPort.9c9a6767.css +1 -0
- package/lib/vite/traceViewer/xtermModule.125f4259.css +191 -0
- package/lib/vite/traceViewer/xtermModule.6428296b.css +32 -0
- package/package.json +1 -1
- package/lib/vite/recorder/assets/codeMirrorModule-ez37Vkbh.css +0 -1
- package/lib/vite/recorder/assets/index-BW-aOBcL.css +0 -1
- package/lib/vite/recorder/assets/index-Bxxcmxlu.js +0 -42
- package/lib/vite/traceViewer/assets/codeMirrorModule-5yiV-3wl.js +0 -16831
- package/lib/vite/traceViewer/assets/codeMirrorModule-B7Z3vq11.js +0 -24
- package/lib/vite/traceViewer/assets/codeMirrorModule-C6p3E9Zg.js +0 -24
- package/lib/vite/traceViewer/assets/codeMirrorModule-Ca-1BNel.js +0 -24
- package/lib/vite/traceViewer/assets/codeMirrorModule-CqYUz5ms.js +0 -24
- package/lib/vite/traceViewer/assets/codeMirrorModule-DS3v0XrQ.js +0 -24
- package/lib/vite/traceViewer/assets/codeMirrorModule-DZoSgqUd.js +0 -24
- package/lib/vite/traceViewer/assets/codeMirrorModule-EhKN7Okm.js +0 -16449
- package/lib/vite/traceViewer/assets/codeMirrorModule-MzSmL4X2.js +0 -24
- package/lib/vite/traceViewer/assets/codeMirrorModule-T_sdMrbM.js +0 -24
- package/lib/vite/traceViewer/assets/inspectorTab-Bbgq0hgt.js +0 -64
- package/lib/vite/traceViewer/assets/inspectorTab-DhBbZz8I.js +0 -64
- package/lib/vite/traceViewer/assets/workbench-C43LWZEX.js +0 -72
- package/lib/vite/traceViewer/assets/workbench-DZqNXdoV.js +0 -9
- package/lib/vite/traceViewer/assets/workbench-DrQjKdyE.js +0 -72
- package/lib/vite/traceViewer/assets/workbench-Pa1v1Ojh.js +0 -72
- package/lib/vite/traceViewer/assets/workbench-caTaZnzx.js +0 -72
- package/lib/vite/traceViewer/assets/workbench-gtYcQBNA.js +0 -9
- package/lib/vite/traceViewer/assets/workbench-u2lRPMOT.js +0 -72
- package/lib/vite/traceViewer/assets/xtermModule-CZ7sDYXB.js +0 -6529
- package/lib/vite/traceViewer/embedded.BBZ9gQEw.js +0 -104
- package/lib/vite/traceViewer/embedded.BQq6Psnz.js +0 -104
- package/lib/vite/traceViewer/embedded.BVDVQOzc.js +0 -2
- package/lib/vite/traceViewer/embedded.Bn8Ptzv6.js +0 -2
- package/lib/vite/traceViewer/embedded.CorI3dFX.js +0 -104
- package/lib/vite/traceViewer/embedded.CvhnUgIi.js +0 -2
- package/lib/vite/traceViewer/embedded.D27cnKiB.js +0 -104
- package/lib/vite/traceViewer/embedded.D4lqGydT.js +0 -2
- package/lib/vite/traceViewer/embedded.DPqrDeET.js +0 -2
- package/lib/vite/traceViewer/embedded.DbzY7Q8w.js +0 -2
- package/lib/vite/traceViewer/embedded.f-PLGsBT.js +0 -2
- package/lib/vite/traceViewer/index.B7aiTMfZ.js +0 -2
- package/lib/vite/traceViewer/index.B8dgQwuN.js +0 -2
- package/lib/vite/traceViewer/index.BGj8jY3H.js +0 -2
- package/lib/vite/traceViewer/index.BSak5QT9.js +0 -2
- package/lib/vite/traceViewer/index.BrT2kfuc.js +0 -2
- package/lib/vite/traceViewer/index.CUpI-BFe.js +0 -195
- package/lib/vite/traceViewer/index.DkRbtWVo.js +0 -195
- package/lib/vite/traceViewer/index.DsjmhbB6.js +0 -195
- package/lib/vite/traceViewer/index._cX8k4co.js +0 -2
- package/lib/vite/traceViewer/index.pMAN88y-.js +0 -2
- package/lib/vite/traceViewer/recorder.Ch-WHviK.js +0 -2
- package/lib/vite/traceViewer/recorder.POd-toIn.js +0 -2
- package/lib/vite/traceViewer/uiMode.BEZVCe5O.js +0 -5
- package/lib/vite/traceViewer/uiMode.C4nbcio6.js +0 -1730
- package/lib/vite/traceViewer/uiMode.D-tg1Oci.js +0 -1730
- package/lib/vite/traceViewer/uiMode.D3cNFP6u.css +0 -1
- package/lib/vite/traceViewer/uiMode.DKjMBMlc.js +0 -1730
- package/lib/vite/traceViewer/uiMode.DVrL7a1K.js +0 -10
- package/lib/vite/traceViewer/uiMode.DdtUZZVS.js +0 -5
- package/lib/vite/traceViewer/uiMode.Dg9oJCQU.js +0 -10
- package/lib/vite/traceViewer/uiMode.DwZAzstF.js +0 -10
- package/lib/vite/traceViewer/uiMode.O07awP3T.js +0 -10
- package/lib/vite/traceViewer/uiMode.gGHHTsyL.js +0 -1730
- package/lib/vite/traceViewer/uiMode.jY2s-9ps.js +0 -10
- package/lib/vite/traceViewer/workbench.DjbIuxix.css +0 -1
- package/lib/vite/traceViewer/workbench.DyTpxWVb.css +0 -1
|
@@ -4,4 +4,5 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.source = void 0;
|
|
7
|
-
const source = exports.source = "\nvar __commonJS = obj => {\n let required = false;\n let result;\n return function __require() {\n if (!required) {\n required = true;\n let fn;\n for (const name in obj) { fn = obj[name]; break; }\n const module = { exports: {} };\n fn(module.exports, module);\n result = module.exports;\n }\n return result;\n }\n};\nvar __export = (target, all) => {for (var name in all) target[name] = all[name];};\nvar __toESM = mod => ({ ...mod, 'default': mod });\nvar __toCommonJS = mod => ({ ...mod, __esModule: true });\n\n\n// packages/playwright-core/src/server/injected/utilityScript.ts\nvar utilityScript_exports = {};\n__export(utilityScript_exports, {\n UtilityScript: () => UtilityScript\n});\nmodule.exports = __toCommonJS(utilityScript_exports);\n\n// packages/playwright-core/src/server/isomorphic/utilityScriptSerializers.ts\nfunction source() {\n function isRegExp(obj) {\n try {\n return obj instanceof RegExp || Object.prototype.toString.call(obj) === \"[object RegExp]\";\n } catch (error) {\n return false;\n }\n }\n function isDate(obj) {\n try {\n return obj instanceof Date || Object.prototype.toString.call(obj) === \"[object Date]\";\n } catch (error) {\n return false;\n }\n }\n function isURL(obj) {\n try {\n return obj instanceof URL || Object.prototype.toString.call(obj) === \"[object URL]\";\n } catch (error) {\n return false;\n }\n }\n function isError(obj) {\n var _a;\n try {\n return obj instanceof Error || obj && ((_a = Object.getPrototypeOf(obj)) == null ? void 0 : _a.name) === \"Error\";\n } catch (error) {\n return false;\n }\n }\n function parseEvaluationResultValue2(value, handles = [], refs = /* @__PURE__ */ new Map()) {\n if (Object.is(value, void 0))\n return void 0;\n if (typeof value === \"object\" && value) {\n if (\"ref\" in value)\n return refs.get(value.ref);\n if (\"v\" in value) {\n if (value.v === \"undefined\")\n return void 0;\n if (value.v === \"null\")\n return null;\n if (value.v === \"NaN\")\n return NaN;\n if (value.v === \"Infinity\")\n return Infinity;\n if (value.v === \"-Infinity\")\n return -Infinity;\n if (value.v === \"-0\")\n return -0;\n return void 0;\n }\n if (\"d\" in value)\n return new Date(value.d);\n if (\"u\" in value)\n return new URL(value.u);\n if (\"bi\" in value)\n return BigInt(value.bi);\n if (\"e\" in value) {\n const error = new Error(value.e.m);\n error.name = value.e.n;\n error.stack = value.e.s;\n return error;\n }\n if (\"r\" in value)\n return new RegExp(value.r.p, value.r.f);\n if (\"a\" in value) {\n const result2 = [];\n refs.set(value.id, result2);\n for (const a of value.a)\n result2.push(parseEvaluationResultValue2(a, handles, refs));\n return result2;\n }\n if (\"o\" in value) {\n const result2 = {};\n refs.set(value.id, result2);\n for (const { k, v } of value.o)\n result2[k] = parseEvaluationResultValue2(v, handles, refs);\n return result2;\n }\n if (\"h\" in value)\n return handles[value.h];\n }\n return value;\n }\n function serializeAsCallArgument2(value, handleSerializer) {\n return serialize(value, handleSerializer, { visited: /* @__PURE__ */ new Map(), lastId: 0 });\n }\n function serialize(value, handleSerializer, visitorInfo) {\n if (value && typeof value === \"object\") {\n if (typeof globalThis.Window === \"function\" && value instanceof globalThis.Window)\n return \"ref: <Window>\";\n if (typeof globalThis.Document === \"function\" && value instanceof globalThis.Document)\n return \"ref: <Document>\";\n if (typeof globalThis.Node === \"function\" && value instanceof globalThis.Node)\n return \"ref: <Node>\";\n }\n return innerSerialize(value, handleSerializer, visitorInfo);\n }\n function innerSerialize(value, handleSerializer, visitorInfo) {\n var _a;\n const result2 = handleSerializer(value);\n if (\"fallThrough\" in result2)\n value = result2.fallThrough;\n else\n return result2;\n if (typeof value === \"symbol\")\n return { v: \"undefined\" };\n if (Object.is(value, void 0))\n return { v: \"undefined\" };\n if (Object.is(value, null))\n return { v: \"null\" };\n if (Object.is(value, NaN))\n return { v: \"NaN\" };\n if (Object.is(value, Infinity))\n return { v: \"Infinity\" };\n if (Object.is(value, -Infinity))\n return { v: \"-Infinity\" };\n if (Object.is(value, -0))\n return { v: \"-0\" };\n if (typeof value === \"boolean\")\n return value;\n if (typeof value === \"number\")\n return value;\n if (typeof value === \"string\")\n return value;\n if (typeof value === \"bigint\")\n return { bi: value.toString() };\n if (isError(value)) {\n let stack;\n if ((_a = value.stack) == null ? void 0 : _a.startsWith(value.name + \": \" + value.message)) {\n stack = value.stack;\n } else {\n stack = `${value.name}: ${value.message}\n${value.stack}`;\n }\n return { e: { n: value.name, m: value.message, s: stack } };\n }\n if (isDate(value))\n return { d: value.toJSON() };\n if (isURL(value))\n return { u: value.toJSON() };\n if (isRegExp(value))\n return { r: { p: value.source, f: value.flags } };\n const id = visitorInfo.visited.get(value);\n if (id)\n return { ref: id };\n if (Array.isArray(value)) {\n const a = [];\n const id2 = ++visitorInfo.lastId;\n visitorInfo.visited.set(value, id2);\n for (let i = 0; i < value.length; ++i)\n a.push(serialize(value[i], handleSerializer, visitorInfo));\n return { a, id: id2 };\n }\n if (typeof value === \"object\") {\n const o = [];\n const id2 = ++visitorInfo.lastId;\n visitorInfo.visited.set(value, id2);\n for (const name of Object.keys(value)) {\n let item;\n try {\n item = value[name];\n } catch (e) {\n continue;\n }\n if (name === \"toJSON\" && typeof item === \"function\")\n o.push({ k: name, v: { o: [], id: 0 } });\n else\n o.push({ k: name, v: serialize(item, handleSerializer, visitorInfo) });\n }\n let jsonWrapper;\n try {\n if (o.length === 0 && value.toJSON && typeof value.toJSON === \"function\")\n jsonWrapper = { value: value.toJSON() };\n } catch (e) {\n }\n if (jsonWrapper)\n return innerSerialize(jsonWrapper.value, handleSerializer, visitorInfo);\n return { o, id: id2 };\n }\n }\n return { parseEvaluationResultValue: parseEvaluationResultValue2, serializeAsCallArgument: serializeAsCallArgument2 };\n}\nvar result = source();\nvar parseEvaluationResultValue = result.parseEvaluationResultValue;\nvar serializeAsCallArgument = result.serializeAsCallArgument;\n\n// packages/playwright-core/src/server/injected/utilityScript.ts\nvar UtilityScript = class {\n constructor(isUnderTest) {\n this.serializeAsCallArgument = serializeAsCallArgument;\n this.parseEvaluationResultValue = parseEvaluationResultValue;\n if (isUnderTest)\n this._setBuiltins();\n }\n evaluate(isFunction, returnByValue, expression, argCount, ...argsAndHandles) {\n const args = argsAndHandles.slice(0, argCount);\n const handles = argsAndHandles.slice(argCount);\n const parameters = [];\n for (let i = 0; i < args.length; i++)\n parameters[i] = this.parseEvaluationResultValue(args[i], handles);\n let result2 = globalThis.eval(expression);\n if (isFunction === true) {\n result2 = result2(...parameters);\n } else if (isFunction === false) {\n result2 = result2;\n } else {\n if (typeof result2 === \"function\")\n result2 = result2(...parameters);\n }\n return returnByValue ? this._promiseAwareJsonValueNoThrow(result2) : result2;\n }\n jsonValue(returnByValue, value) {\n if (Object.is(value, void 0))\n return void 0;\n return serializeAsCallArgument(value, (value2) => ({ fallThrough: value2 }));\n }\n _promiseAwareJsonValueNoThrow(value) {\n const safeJson = (value2) => {\n try {\n return this.jsonValue(true, value2);\n } catch (e) {\n return void 0;\n }\n };\n if (value && typeof value === \"object\" && typeof value.then === \"function\") {\n return (async () => {\n const promiseValue = await value;\n return safeJson(promiseValue);\n })();\n }\n return safeJson(value);\n }\n _setBuiltins() {\n var _a, _b;\n const window = globalThis;\n window.builtinSetTimeout = (callback, timeout) => {\n var _a2;\n if ((_a2 = window.__pwClock) == null ? void 0 : _a2.builtin)\n return window.__pwClock.builtin.setTimeout(callback, timeout);\n return setTimeout(callback, timeout);\n };\n window.builtinClearTimeout = (id) => {\n var _a2;\n if ((_a2 = window.__pwClock) == null ? void 0 : _a2.builtin)\n return window.__pwClock.builtin.clearTimeout(id);\n return clearTimeout(id);\n };\n window.builtinSetInterval = (callback, timeout) => {\n var _a2;\n if ((_a2 = window.__pwClock) == null ? void 0 : _a2.builtin)\n return window.__pwClock.builtin.setInterval(callback, timeout);\n return setInterval(callback, timeout);\n };\n window.builtinClearInterval = (id) => {\n var _a2;\n if ((_a2 = window.__pwClock) == null ? void 0 : _a2.builtin)\n return window.__pwClock.builtin.clearInterval(id);\n return clearInterval(id);\n };\n window.builtinRequestAnimationFrame = (callback) => {\n var _a2;\n if ((_a2 = window.__pwClock) == null ? void 0 : _a2.builtin)\n return window.__pwClock.builtin.requestAnimationFrame(callback);\n return requestAnimationFrame(callback);\n };\n window.builtinCancelAnimationFrame = (id) => {\n var _a2;\n if ((_a2 = window.__pwClock) == null ? void 0 : _a2.builtin)\n return window.__pwClock.builtin.cancelAnimationFrame(id);\n return cancelAnimationFrame(id);\n };\n window.builtinDate = ((_a = window.__pwClock) == null ? void 0 : _a.builtin.Date) || Date;\n window.builtinPerformance = ((_b = window.__pwClock) == null ? void 0 : _b.builtin.performance) || performance;\n }\n};\n";
|
|
7
|
+
const source = exports.source = "\nvar __commonJS = obj => {\n let required = false;\n let result;\n return function __require() {\n if (!required) {\n required = true;\n let fn;\n for (const name in obj) { fn = obj[name]; break; }\n const module = { exports: {} };\n fn(module.exports, module);\n result = module.exports;\n }\n return result;\n }\n};\nvar __export = (target, all) => {for (var name in all) target[name] = all[name];};\nvar __toESM = mod => ({ ...mod, 'default': mod });\nvar __toCommonJS = mod => ({ ...mod, __esModule: true });\n\n\n// packages/playwright-core/src/server/injected/utilityScript.ts\nvar utilityScript_exports = {};\n__export(utilityScript_exports, {\n UtilityScript: () => UtilityScript\n});\nmodule.exports = __toCommonJS(utilityScript_exports);\n\n// packages/playwright-core/src/server/isomorphic/utilityScriptSerializers.ts\nfunction source() {\n function isRegExp(obj) {\n try {\n return obj instanceof RegExp || Object.prototype.toString.call(obj) === \"[object RegExp]\";\n } catch (error) {\n return false;\n }\n }\n function isDate(obj) {\n try {\n return obj instanceof Date || Object.prototype.toString.call(obj) === \"[object Date]\";\n } catch (error) {\n return false;\n }\n }\n function isURL(obj) {\n try {\n return obj instanceof URL || Object.prototype.toString.call(obj) === \"[object URL]\";\n } catch (error) {\n return false;\n }\n }\n function isError(obj) {\n var _a;\n try {\n return obj instanceof Error || obj && ((_a = Object.getPrototypeOf(obj)) == null ? void 0 : _a.name) === \"Error\";\n } catch (error) {\n return false;\n }\n }\n function parseEvaluationResultValue2(value, handles = [], refs = /* @__PURE__ */ new Map()) {\n if (Object.is(value, void 0))\n return void 0;\n if (typeof value === \"object\" && value) {\n if (\"ref\" in value)\n return refs.get(value.ref);\n if (\"v\" in value) {\n if (value.v === \"undefined\")\n return void 0;\n if (value.v === \"null\")\n return null;\n if (value.v === \"NaN\")\n return NaN;\n if (value.v === \"Infinity\")\n return Infinity;\n if (value.v === \"-Infinity\")\n return -Infinity;\n if (value.v === \"-0\")\n return -0;\n return void 0;\n }\n if (\"d\" in value)\n return new Date(value.d);\n if (\"u\" in value)\n return new URL(value.u);\n if (\"bi\" in value)\n return BigInt(value.bi);\n if (\"e\" in value) {\n const error = new Error(value.e.m);\n error.name = value.e.n;\n error.stack = value.e.s;\n return error;\n }\n if (\"r\" in value)\n return new RegExp(value.r.p, value.r.f);\n if (\"a\" in value) {\n const result2 = [];\n refs.set(value.id, result2);\n for (const a of value.a)\n result2.push(parseEvaluationResultValue2(a, handles, refs));\n return result2;\n }\n if (\"o\" in value) {\n const result2 = {};\n refs.set(value.id, result2);\n for (const { k, v } of value.o)\n result2[k] = parseEvaluationResultValue2(v, handles, refs);\n return result2;\n }\n if (\"h\" in value)\n return handles[value.h];\n }\n return value;\n }\n function serializeAsCallArgument2(value, handleSerializer) {\n return serialize(value, handleSerializer, { visited: /* @__PURE__ */ new Map(), lastId: 0 });\n }\n function serialize(value, handleSerializer, visitorInfo) {\n if (value && typeof value === \"object\") {\n if (typeof globalThis.Window === \"function\" && value instanceof globalThis.Window)\n return \"ref: <Window>\";\n if (typeof globalThis.Document === \"function\" && value instanceof globalThis.Document)\n return \"ref: <Document>\";\n if (typeof globalThis.Node === \"function\" && value instanceof globalThis.Node)\n return \"ref: <Node>\";\n }\n return innerSerialize(value, handleSerializer, visitorInfo);\n }\n function innerSerialize(value, handleSerializer, visitorInfo) {\n var _a;\n const result2 = handleSerializer(value);\n if (\"fallThrough\" in result2)\n value = result2.fallThrough;\n else\n return result2;\n if (typeof value === \"symbol\")\n return { v: \"undefined\" };\n if (Object.is(value, void 0))\n return { v: \"undefined\" };\n if (Object.is(value, null))\n return { v: \"null\" };\n if (Object.is(value, NaN))\n return { v: \"NaN\" };\n if (Object.is(value, Infinity))\n return { v: \"Infinity\" };\n if (Object.is(value, -Infinity))\n return { v: \"-Infinity\" };\n if (Object.is(value, -0))\n return { v: \"-0\" };\n if (typeof value === \"boolean\")\n return value;\n if (typeof value === \"number\")\n return value;\n if (typeof value === \"string\")\n return value;\n if (typeof value === \"bigint\")\n return { bi: value.toString() };\n if (isError(value)) {\n let stack;\n if ((_a = value.stack) == null ? void 0 : _a.startsWith(value.name + \": \" + value.message)) {\n stack = value.stack;\n } else {\n stack = `${value.name}: ${value.message}\n${value.stack}`;\n }\n return { e: { n: value.name, m: value.message, s: stack } };\n }\n if (isDate(value))\n return { d: value.toJSON() };\n if (isURL(value))\n return { u: value.toJSON() };\n if (isRegExp(value))\n return { r: { p: value.source, f: value.flags } };\n const id = visitorInfo.visited.get(value);\n if (id)\n return { ref: id };\n if (Array.isArray(value)) {\n const a = [];\n const id2 = ++visitorInfo.lastId;\n visitorInfo.visited.set(value, id2);\n for (let i = 0; i < value.length; ++i)\n a.push(serialize(value[i], handleSerializer, visitorInfo));\n return { a, id: id2 };\n }\n if (typeof value === \"object\") {\n const o = [];\n const id2 = ++visitorInfo.lastId;\n visitorInfo.visited.set(value, id2);\n for (const name of Object.keys(value)) {\n let item;\n try {\n item = value[name];\n } catch (e) {\n continue;\n }\n if (name === \"toJSON\" && typeof item === \"function\")\n o.push({ k: name, v: { o: [], id: 0 } });\n else\n o.push({ k: name, v: serialize(item, handleSerializer, visitorInfo) });\n }\n let jsonWrapper;\n try {\n if (o.length === 0 && value.toJSON && typeof value.toJSON === \"function\")\n jsonWrapper = { value: value.toJSON() };\n } catch (e) {\n }\n if (jsonWrapper)\n return innerSerialize(jsonWrapper.value, handleSerializer, visitorInfo);\n return { o, id: id2 };\n }\n }\n return { parseEvaluationResultValue: parseEvaluationResultValue2, serializeAsCallArgument: serializeAsCallArgument2 };\n}\nvar result = source();\nvar parseEvaluationResultValue = result.parseEvaluationResultValue;\nvar serializeAsCallArgument = result.serializeAsCallArgument;\n\n// packages/playwright-core/src/server/injected/utilityScript.ts\nvar UtilityScript = class {\n constructor(isUnderTest) {\n this.serializeAsCallArgument = serializeAsCallArgument;\n this.parseEvaluationResultValue = parseEvaluationResultValue;\n if (isUnderTest)\n this._setBuiltins();\n }\n evaluate(isFunction, returnByValue, expression, argCount, ...argsAndHandles) {\n const args = argsAndHandles.slice(0, argCount);\n const handles = argsAndHandles.slice(argCount);\n const parameters = [];\n for (let i = 0; i < args.length; i++)\n parameters[i] = this.parseEvaluationResultValue(args[i], handles);\n let result2 = globalThis.eval(expression);\n if (isFunction === true) {\n result2 = result2(...parameters);\n } else if (isFunction === false) {\n result2 = result2;\n } else {\n if (typeof result2 === \"function\")\n result2 = result2(...parameters);\n }\n return returnByValue ? this._promiseAwareJsonValueNoThrow(result2) : result2;\n }\n jsonValue(returnByValue, value) {\n if (Object.is(value, void 0))\n return void 0;\n return serializeAsCallArgument(value, (value2) => ({ fallThrough: value2 }));\n }\n _promiseAwareJsonValueNoThrow(value) {\n const safeJson = (value2) => {\n try {\n return this.jsonValue(true, value2);\n } catch (e) {\n return void 0;\n }\n };\n if (value && typeof value === \"object\" && typeof value.then === \"function\") {\n return (async () => {\n const promiseValue = await value;\n return safeJson(promiseValue);\n })();\n }\n return safeJson(value);\n }\n _setBuiltins() {\n var _a, _b;\n const window = globalThis;\n window.builtinSetTimeout = (callback, timeout) => {\n var _a2;\n if ((_a2 = window.__pwClock) == null ? void 0 : _a2.builtin)\n return window.__pwClock.builtin.setTimeout(callback, timeout);\n return setTimeout(callback, timeout);\n };\n window.builtinClearTimeout = (id) => {\n var _a2;\n if ((_a2 = window.__pwClock) == null ? void 0 : _a2.builtin)\n return window.__pwClock.builtin.clearTimeout(id);\n return clearTimeout(id);\n };\n window.builtinSetInterval = (callback, timeout) => {\n var _a2;\n if ((_a2 = window.__pwClock) == null ? void 0 : _a2.builtin)\n return window.__pwClock.builtin.setInterval(callback, timeout);\n return setInterval(callback, timeout);\n };\n window.builtinClearInterval = (id) => {\n var _a2;\n if ((_a2 = window.__pwClock) == null ? void 0 : _a2.builtin)\n return window.__pwClock.builtin.clearInterval(id);\n return clearInterval(id);\n };\n window.builtinRequestAnimationFrame = (callback) => {\n var _a2;\n if ((_a2 = window.__pwClock) == null ? void 0 : _a2.builtin)\n return window.__pwClock.builtin.requestAnimationFrame(callback);\n return requestAnimationFrame(callback);\n };\n window.builtinCancelAnimationFrame = (id) => {\n var _a2;\n if ((_a2 = window.__pwClock) == null ? void 0 : _a2.builtin)\n return window.__pwClock.builtin.cancelAnimationFrame(id);\n return cancelAnimationFrame(id);\n };\n window.builtinDate = ((_a = window.__pwClock) == null ? void 0 : _a.builtin.Date) || Date;\n window.builtinPerformance = ((_b = window.__pwClock) == null ? void 0 : _b.builtin.performance) || performance;\n }\n};\n";
|
|
8
|
+
//# sourceMappingURL=utilityScriptSource.js.map
|
|
@@ -4,4 +4,5 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.source = void 0;
|
|
7
|
-
const source = exports.source = "\nvar __commonJS = obj => {\n let required = false;\n let result;\n return function __require() {\n if (!required) {\n required = true;\n let fn;\n for (const name in obj) { fn = obj[name]; break; }\n const module = { exports: {} };\n fn(module.exports, module);\n result = module.exports;\n }\n return result;\n }\n};\nvar __export = (target, all) => {for (var name in all) target[name] = all[name];};\nvar __toESM = mod => ({ ...mod, 'default': mod });\nvar __toCommonJS = mod => ({ ...mod, __esModule: true });\n\n\n// packages/playwright-core/src/server/injected/webSocketMock.ts\nvar webSocketMock_exports = {};\n__export(webSocketMock_exports, {\n inject: () => inject\n});\nmodule.exports = __toCommonJS(webSocketMock_exports);\nfunction inject(globalThis) {\n if (globalThis.__pwWebSocketDispatch)\n return;\n function generateId() {\n const bytes = new Uint8Array(32);\n globalThis.crypto.getRandomValues(bytes);\n const hex = \"0123456789abcdef\";\n return [...bytes].map((value) => {\n const high = Math.floor(value / 16);\n const low = value % 16;\n return hex[high] + hex[low];\n }).join(\"\");\n }\n function bufferToData(b) {\n let s = \"\";\n for (let i = 0; i < b.length; i++)\n s += String.fromCharCode(b[i]);\n return { data: globalThis.btoa(s), isBase64: true };\n }\n function stringToBuffer(s) {\n s = globalThis.atob(s);\n const b = new Uint8Array(s.length);\n for (let i = 0; i < s.length; i++)\n b[i] = s.charCodeAt(i);\n return b.buffer;\n }\n function messageToData(message, cb) {\n if (message instanceof globalThis.Blob)\n return message.arrayBuffer().then((buffer) => cb(bufferToData(new Uint8Array(buffer))));\n if (typeof message === \"string\")\n return cb({ data: message, isBase64: false });\n if (ArrayBuffer.isView(message))\n return cb(bufferToData(new Uint8Array(message.buffer, message.byteOffset, message.byteLength)));\n return cb(bufferToData(new Uint8Array(message)));\n }\n function dataToMessage(data, binaryType) {\n if (!data.isBase64)\n return data.data;\n const buffer = stringToBuffer(data.data);\n return binaryType === \"arraybuffer\" ? buffer : new Blob([buffer]);\n }\n const binding = globalThis.__pwWebSocketBinding;\n const NativeWebSocket = globalThis.WebSocket;\n const idToWebSocket = /* @__PURE__ */ new Map();\n globalThis.__pwWebSocketDispatch = (request) => {\n const ws = idToWebSocket.get(request.id);\n if (!ws)\n return;\n if (request.type === \"connect\")\n ws._apiConnect();\n if (request.type === \"passthrough\")\n ws._apiPassThrough();\n if (request.type === \"ensureOpened\")\n ws._apiEnsureOpened();\n if (request.type === \"sendToPage\")\n ws._apiSendToPage(dataToMessage(request.data, ws.binaryType));\n if (request.type === \"closePage\")\n ws._apiClosePage(request.code, request.reason, request.wasClean);\n if (request.type === \"sendToServer\")\n ws._apiSendToServer(dataToMessage(request.data, ws.binaryType));\n if (request.type === \"closeServer\")\n ws._apiCloseServer(request.code, request.reason, request.wasClean);\n };\n const _WebSocketMock = class _WebSocketMock extends EventTarget {\n constructor(url, protocols) {\n super();\n // WebSocket.CLOSED\n this.CONNECTING = 0;\n // WebSocket.CONNECTING\n this.OPEN = 1;\n // WebSocket.OPEN\n this.CLOSING = 2;\n // WebSocket.CLOSING\n this.CLOSED = 3;\n // WebSocket.CLOSED\n this._oncloseListener = null;\n this._onerrorListener = null;\n this._onmessageListener = null;\n this._onopenListener = null;\n this.bufferedAmount = 0;\n this.extensions = \"\";\n this.protocol = \"\";\n this.readyState = 0;\n this._origin = \"\";\n this._passthrough = false;\n this._wsBufferedMessages = [];\n this._binaryType = \"blob\";\n this.url = typeof url === \"string\" ? url : url.href;\n try {\n this.url = new URL(url).href;\n this._origin = new URL(url).origin;\n } catch {\n }\n this._protocols = protocols;\n this._id = generateId();\n idToWebSocket.set(this._id, this);\n binding({ type: \"onCreate\", id: this._id, url: this.url });\n }\n // --- native WebSocket implementation ---\n get binaryType() {\n return this._binaryType;\n }\n set binaryType(type) {\n this._binaryType = type;\n if (this._ws)\n this._ws.binaryType = type;\n }\n get onclose() {\n return this._oncloseListener;\n }\n set onclose(listener) {\n if (this._oncloseListener)\n this.removeEventListener(\"close\", this._oncloseListener);\n this._oncloseListener = listener;\n if (this._oncloseListener)\n this.addEventListener(\"close\", this._oncloseListener);\n }\n get onerror() {\n return this._onerrorListener;\n }\n set onerror(listener) {\n if (this._onerrorListener)\n this.removeEventListener(\"error\", this._onerrorListener);\n this._onerrorListener = listener;\n if (this._onerrorListener)\n this.addEventListener(\"error\", this._onerrorListener);\n }\n get onopen() {\n return this._onopenListener;\n }\n set onopen(listener) {\n if (this._onopenListener)\n this.removeEventListener(\"open\", this._onopenListener);\n this._onopenListener = listener;\n if (this._onopenListener)\n this.addEventListener(\"open\", this._onopenListener);\n }\n get onmessage() {\n return this._onmessageListener;\n }\n set onmessage(listener) {\n if (this._onmessageListener)\n this.removeEventListener(\"message\", this._onmessageListener);\n this._onmessageListener = listener;\n if (this._onmessageListener)\n this.addEventListener(\"message\", this._onmessageListener);\n }\n send(message) {\n if (this.readyState === _WebSocketMock.CONNECTING)\n throw new DOMException(`Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.`);\n if (this.readyState !== _WebSocketMock.OPEN)\n throw new DOMException(`WebSocket is already in CLOSING or CLOSED state.`);\n if (this._passthrough) {\n if (this._ws)\n this._apiSendToServer(message);\n } else {\n messageToData(message, (data) => binding({ type: \"onMessageFromPage\", id: this._id, data }));\n }\n }\n close(code, reason) {\n if (code !== void 0 && code !== 1e3 && (code < 3e3 || code > 4999))\n throw new DOMException(`Failed to execute 'close' on 'WebSocket': The close code must be either 1000, or between 3000 and 4999. ${code} is neither.`);\n if (this.readyState === _WebSocketMock.OPEN || this.readyState === _WebSocketMock.CONNECTING)\n this.readyState = _WebSocketMock.CLOSING;\n if (this._passthrough)\n this._apiCloseServer(code, reason, true);\n else\n binding({ type: \"onClosePage\", id: this._id, code, reason, wasClean: true });\n }\n // --- methods called from the routing API ---\n _apiEnsureOpened() {\n if (!this._ws)\n this._ensureOpened();\n }\n _apiSendToPage(message) {\n this._ensureOpened();\n if (this.readyState !== _WebSocketMock.OPEN)\n throw new DOMException(`WebSocket is already in CLOSING or CLOSED state.`);\n this.dispatchEvent(new MessageEvent(\"message\", { data: message, origin: this._origin, cancelable: true }));\n }\n _apiSendToServer(message) {\n if (!this._ws)\n throw new Error(\"Cannot send a message before connecting to the server\");\n if (this._ws.readyState === _WebSocketMock.CONNECTING)\n this._wsBufferedMessages.push(message);\n else\n this._ws.send(message);\n }\n _apiConnect() {\n if (this._ws)\n throw new Error(\"Can only connect to the server once\");\n this._ws = new NativeWebSocket(this.url, this._protocols);\n this._ws.binaryType = this._binaryType;\n this._ws.onopen = () => {\n for (const message of this._wsBufferedMessages)\n this._ws.send(message);\n this._wsBufferedMessages = [];\n this._ensureOpened();\n };\n this._ws.onclose = (event) => {\n this._onWSClose(event.code, event.reason, event.wasClean);\n };\n this._ws.onmessage = (event) => {\n if (this._passthrough)\n this._apiSendToPage(event.data);\n else\n messageToData(event.data, (data) => binding({ type: \"onMessageFromServer\", id: this._id, data }));\n };\n this._ws.onerror = () => {\n const event = new Event(\"error\", { cancelable: true });\n this.dispatchEvent(event);\n };\n }\n // This method connects to the server, and passes all messages through,\n // as if WebSocketMock was not engaged.\n _apiPassThrough() {\n this._passthrough = true;\n this._apiConnect();\n }\n _apiCloseServer(code, reason, wasClean) {\n if (!this._ws) {\n this._onWSClose(code, reason, wasClean);\n return;\n }\n if (this._ws.readyState === _WebSocketMock.CONNECTING || this._ws.readyState === _WebSocketMock.OPEN)\n this._ws.close(code, reason);\n }\n _apiClosePage(code, reason, wasClean) {\n if (this.readyState === _WebSocketMock.CLOSED)\n return;\n this.readyState = _WebSocketMock.CLOSED;\n this.dispatchEvent(new CloseEvent(\"close\", { code, reason, wasClean, cancelable: true }));\n this._maybeCleanup();\n if (this._passthrough)\n this._apiCloseServer(code, reason, wasClean);\n else\n binding({ type: \"onClosePage\", id: this._id, code, reason, wasClean });\n }\n // --- internals ---\n _ensureOpened() {\n if (this.readyState !== _WebSocketMock.CONNECTING)\n return;\n this.readyState = _WebSocketMock.OPEN;\n this.dispatchEvent(new Event(\"open\", { cancelable: true }));\n }\n _onWSClose(code, reason, wasClean) {\n if (this._passthrough)\n this._apiClosePage(code, reason, wasClean);\n else\n binding({ type: \"onCloseServer\", id: this._id, code, reason, wasClean });\n if (this._ws) {\n this._ws.onopen = null;\n this._ws.onclose = null;\n this._ws.onmessage = null;\n this._ws.onerror = null;\n this._ws = void 0;\n this._wsBufferedMessages = [];\n }\n this._maybeCleanup();\n }\n _maybeCleanup() {\n if (this.readyState === _WebSocketMock.CLOSED && !this._ws)\n idToWebSocket.delete(this._id);\n }\n };\n _WebSocketMock.CONNECTING = 0;\n // WebSocket.CONNECTING\n _WebSocketMock.OPEN = 1;\n // WebSocket.OPEN\n _WebSocketMock.CLOSING = 2;\n // WebSocket.CLOSING\n _WebSocketMock.CLOSED = 3;\n let WebSocketMock = _WebSocketMock;\n globalThis.WebSocket = class WebSocket extends WebSocketMock {\n };\n}\n";
|
|
7
|
+
const source = exports.source = "\nvar __commonJS = obj => {\n let required = false;\n let result;\n return function __require() {\n if (!required) {\n required = true;\n let fn;\n for (const name in obj) { fn = obj[name]; break; }\n const module = { exports: {} };\n fn(module.exports, module);\n result = module.exports;\n }\n return result;\n }\n};\nvar __export = (target, all) => {for (var name in all) target[name] = all[name];};\nvar __toESM = mod => ({ ...mod, 'default': mod });\nvar __toCommonJS = mod => ({ ...mod, __esModule: true });\n\n\n// packages/playwright-core/src/server/injected/webSocketMock.ts\nvar webSocketMock_exports = {};\n__export(webSocketMock_exports, {\n inject: () => inject\n});\nmodule.exports = __toCommonJS(webSocketMock_exports);\nfunction inject(globalThis) {\n if (globalThis.__pwWebSocketDispatch)\n return;\n function generateId() {\n const bytes = new Uint8Array(32);\n globalThis.crypto.getRandomValues(bytes);\n const hex = \"0123456789abcdef\";\n return [...bytes].map((value) => {\n const high = Math.floor(value / 16);\n const low = value % 16;\n return hex[high] + hex[low];\n }).join(\"\");\n }\n function bufferToData(b) {\n let s = \"\";\n for (let i = 0; i < b.length; i++)\n s += String.fromCharCode(b[i]);\n return { data: globalThis.btoa(s), isBase64: true };\n }\n function stringToBuffer(s) {\n s = globalThis.atob(s);\n const b = new Uint8Array(s.length);\n for (let i = 0; i < s.length; i++)\n b[i] = s.charCodeAt(i);\n return b.buffer;\n }\n function messageToData(message, cb) {\n if (message instanceof globalThis.Blob)\n return message.arrayBuffer().then((buffer) => cb(bufferToData(new Uint8Array(buffer))));\n if (typeof message === \"string\")\n return cb({ data: message, isBase64: false });\n if (ArrayBuffer.isView(message))\n return cb(bufferToData(new Uint8Array(message.buffer, message.byteOffset, message.byteLength)));\n return cb(bufferToData(new Uint8Array(message)));\n }\n function dataToMessage(data, binaryType) {\n if (!data.isBase64)\n return data.data;\n const buffer = stringToBuffer(data.data);\n return binaryType === \"arraybuffer\" ? buffer : new Blob([buffer]);\n }\n const binding = globalThis.__pwWebSocketBinding;\n const NativeWebSocket = globalThis.WebSocket;\n const idToWebSocket = /* @__PURE__ */ new Map();\n globalThis.__pwWebSocketDispatch = (request) => {\n const ws = idToWebSocket.get(request.id);\n if (!ws)\n return;\n if (request.type === \"connect\")\n ws._apiConnect();\n if (request.type === \"passthrough\")\n ws._apiPassThrough();\n if (request.type === \"ensureOpened\")\n ws._apiEnsureOpened();\n if (request.type === \"sendToPage\")\n ws._apiSendToPage(dataToMessage(request.data, ws.binaryType));\n if (request.type === \"closePage\")\n ws._apiClosePage(request.code, request.reason, request.wasClean);\n if (request.type === \"sendToServer\")\n ws._apiSendToServer(dataToMessage(request.data, ws.binaryType));\n if (request.type === \"closeServer\")\n ws._apiCloseServer(request.code, request.reason, request.wasClean);\n };\n const _WebSocketMock = class _WebSocketMock extends EventTarget {\n constructor(url, protocols) {\n super();\n // WebSocket.CLOSED\n this.CONNECTING = 0;\n // WebSocket.CONNECTING\n this.OPEN = 1;\n // WebSocket.OPEN\n this.CLOSING = 2;\n // WebSocket.CLOSING\n this.CLOSED = 3;\n // WebSocket.CLOSED\n this._oncloseListener = null;\n this._onerrorListener = null;\n this._onmessageListener = null;\n this._onopenListener = null;\n this.bufferedAmount = 0;\n this.extensions = \"\";\n this.protocol = \"\";\n this.readyState = 0;\n this._origin = \"\";\n this._passthrough = false;\n this._wsBufferedMessages = [];\n this._binaryType = \"blob\";\n this.url = typeof url === \"string\" ? url : url.href;\n try {\n this.url = new URL(url).href;\n this._origin = new URL(url).origin;\n } catch {\n }\n this._protocols = protocols;\n this._id = generateId();\n idToWebSocket.set(this._id, this);\n binding({ type: \"onCreate\", id: this._id, url: this.url });\n }\n // --- native WebSocket implementation ---\n get binaryType() {\n return this._binaryType;\n }\n set binaryType(type) {\n this._binaryType = type;\n if (this._ws)\n this._ws.binaryType = type;\n }\n get onclose() {\n return this._oncloseListener;\n }\n set onclose(listener) {\n if (this._oncloseListener)\n this.removeEventListener(\"close\", this._oncloseListener);\n this._oncloseListener = listener;\n if (this._oncloseListener)\n this.addEventListener(\"close\", this._oncloseListener);\n }\n get onerror() {\n return this._onerrorListener;\n }\n set onerror(listener) {\n if (this._onerrorListener)\n this.removeEventListener(\"error\", this._onerrorListener);\n this._onerrorListener = listener;\n if (this._onerrorListener)\n this.addEventListener(\"error\", this._onerrorListener);\n }\n get onopen() {\n return this._onopenListener;\n }\n set onopen(listener) {\n if (this._onopenListener)\n this.removeEventListener(\"open\", this._onopenListener);\n this._onopenListener = listener;\n if (this._onopenListener)\n this.addEventListener(\"open\", this._onopenListener);\n }\n get onmessage() {\n return this._onmessageListener;\n }\n set onmessage(listener) {\n if (this._onmessageListener)\n this.removeEventListener(\"message\", this._onmessageListener);\n this._onmessageListener = listener;\n if (this._onmessageListener)\n this.addEventListener(\"message\", this._onmessageListener);\n }\n send(message) {\n if (this.readyState === _WebSocketMock.CONNECTING)\n throw new DOMException(`Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.`);\n if (this.readyState !== _WebSocketMock.OPEN)\n throw new DOMException(`WebSocket is already in CLOSING or CLOSED state.`);\n if (this._passthrough) {\n if (this._ws)\n this._apiSendToServer(message);\n } else {\n messageToData(message, (data) => binding({ type: \"onMessageFromPage\", id: this._id, data }));\n }\n }\n close(code, reason) {\n if (code !== void 0 && code !== 1e3 && (code < 3e3 || code > 4999))\n throw new DOMException(`Failed to execute 'close' on 'WebSocket': The close code must be either 1000, or between 3000 and 4999. ${code} is neither.`);\n if (this.readyState === _WebSocketMock.OPEN || this.readyState === _WebSocketMock.CONNECTING)\n this.readyState = _WebSocketMock.CLOSING;\n if (this._passthrough)\n this._apiCloseServer(code, reason, true);\n else\n binding({ type: \"onClosePage\", id: this._id, code, reason, wasClean: true });\n }\n // --- methods called from the routing API ---\n _apiEnsureOpened() {\n if (!this._ws)\n this._ensureOpened();\n }\n _apiSendToPage(message) {\n this._ensureOpened();\n if (this.readyState !== _WebSocketMock.OPEN)\n throw new DOMException(`WebSocket is already in CLOSING or CLOSED state.`);\n this.dispatchEvent(new MessageEvent(\"message\", { data: message, origin: this._origin, cancelable: true }));\n }\n _apiSendToServer(message) {\n if (!this._ws)\n throw new Error(\"Cannot send a message before connecting to the server\");\n if (this._ws.readyState === _WebSocketMock.CONNECTING)\n this._wsBufferedMessages.push(message);\n else\n this._ws.send(message);\n }\n _apiConnect() {\n if (this._ws)\n throw new Error(\"Can only connect to the server once\");\n this._ws = new NativeWebSocket(this.url, this._protocols);\n this._ws.binaryType = this._binaryType;\n this._ws.onopen = () => {\n for (const message of this._wsBufferedMessages)\n this._ws.send(message);\n this._wsBufferedMessages = [];\n this._ensureOpened();\n };\n this._ws.onclose = (event) => {\n this._onWSClose(event.code, event.reason, event.wasClean);\n };\n this._ws.onmessage = (event) => {\n if (this._passthrough)\n this._apiSendToPage(event.data);\n else\n messageToData(event.data, (data) => binding({ type: \"onMessageFromServer\", id: this._id, data }));\n };\n this._ws.onerror = () => {\n const event = new Event(\"error\", { cancelable: true });\n this.dispatchEvent(event);\n };\n }\n // This method connects to the server, and passes all messages through,\n // as if WebSocketMock was not engaged.\n _apiPassThrough() {\n this._passthrough = true;\n this._apiConnect();\n }\n _apiCloseServer(code, reason, wasClean) {\n if (!this._ws) {\n this._onWSClose(code, reason, wasClean);\n return;\n }\n if (this._ws.readyState === _WebSocketMock.CONNECTING || this._ws.readyState === _WebSocketMock.OPEN)\n this._ws.close(code, reason);\n }\n _apiClosePage(code, reason, wasClean) {\n if (this.readyState === _WebSocketMock.CLOSED)\n return;\n this.readyState = _WebSocketMock.CLOSED;\n this.dispatchEvent(new CloseEvent(\"close\", { code, reason, wasClean, cancelable: true }));\n this._maybeCleanup();\n if (this._passthrough)\n this._apiCloseServer(code, reason, wasClean);\n else\n binding({ type: \"onClosePage\", id: this._id, code, reason, wasClean });\n }\n // --- internals ---\n _ensureOpened() {\n if (this.readyState !== _WebSocketMock.CONNECTING)\n return;\n this.readyState = _WebSocketMock.OPEN;\n this.dispatchEvent(new Event(\"open\", { cancelable: true }));\n }\n _onWSClose(code, reason, wasClean) {\n if (this._passthrough)\n this._apiClosePage(code, reason, wasClean);\n else\n binding({ type: \"onCloseServer\", id: this._id, code, reason, wasClean });\n if (this._ws) {\n this._ws.onopen = null;\n this._ws.onclose = null;\n this._ws.onmessage = null;\n this._ws.onerror = null;\n this._ws = void 0;\n this._wsBufferedMessages = [];\n }\n this._maybeCleanup();\n }\n _maybeCleanup() {\n if (this.readyState === _WebSocketMock.CLOSED && !this._ws)\n idToWebSocket.delete(this._id);\n }\n };\n _WebSocketMock.CONNECTING = 0;\n // WebSocket.CONNECTING\n _WebSocketMock.OPEN = 1;\n // WebSocket.OPEN\n _WebSocketMock.CLOSING = 2;\n // WebSocket.CLOSING\n _WebSocketMock.CLOSED = 3;\n let WebSocketMock = _WebSocketMock;\n globalThis.WebSocket = class WebSocket extends WebSocketMock {\n };\n}\n";
|
|
8
|
+
//# sourceMappingURL=webSocketMockSource.js.map
|
|
@@ -27,29 +27,16 @@ var _locatorGenerators = require("../../utils/isomorphic/locatorGenerators");
|
|
|
27
27
|
|
|
28
28
|
const deviceDescriptors = require('../deviceDescriptorsSource.json');
|
|
29
29
|
class JavaLanguageGenerator {
|
|
30
|
-
constructor(
|
|
31
|
-
this.id =
|
|
30
|
+
constructor() {
|
|
31
|
+
this.id = 'java';
|
|
32
32
|
this.groupName = 'Java';
|
|
33
|
-
this.name =
|
|
33
|
+
this.name = 'Library';
|
|
34
34
|
this.highlighter = 'java';
|
|
35
|
-
this._mode = void 0;
|
|
36
|
-
if (mode === 'library') {
|
|
37
|
-
this.name = 'Library';
|
|
38
|
-
this.id = 'java';
|
|
39
|
-
} else if (mode === 'junit') {
|
|
40
|
-
this.name = 'JUnit';
|
|
41
|
-
this.id = 'java-junit';
|
|
42
|
-
} else {
|
|
43
|
-
throw new Error(`Unknown Java language mode: ${mode}`);
|
|
44
|
-
}
|
|
45
|
-
this._mode = mode;
|
|
46
35
|
}
|
|
47
36
|
generateAction(actionInContext) {
|
|
48
37
|
const action = actionInContext.action;
|
|
49
38
|
const pageAlias = actionInContext.frame.pageAlias;
|
|
50
|
-
const
|
|
51
|
-
const formatter = new _javascript.JavaScriptFormatter(offset);
|
|
52
|
-
if (this._mode !== 'library' && (action.name === 'openPage' || action.name === 'closePage')) return '';
|
|
39
|
+
const formatter = new _javascript.JavaScriptFormatter(6);
|
|
53
40
|
if (action.name === 'openPage') {
|
|
54
41
|
formatter.add(`Page ${pageAlias} = context.newPage();`);
|
|
55
42
|
if (action.url && action.url !== 'about:blank' && action.url !== 'chrome://newtab/') formatter.add(`${pageAlias}.navigate(${quote(action.url)});`);
|
|
@@ -140,21 +127,6 @@ class JavaLanguageGenerator {
|
|
|
140
127
|
}
|
|
141
128
|
generateHeader(options) {
|
|
142
129
|
const formatter = new _javascript.JavaScriptFormatter();
|
|
143
|
-
if (this._mode === 'junit') {
|
|
144
|
-
formatter.add(`
|
|
145
|
-
import com.microsoft.playwright.junit.UsePlaywright;
|
|
146
|
-
import com.microsoft.playwright.Page;
|
|
147
|
-
import com.microsoft.playwright.options.*;
|
|
148
|
-
|
|
149
|
-
import org.junit.jupiter.api.*;
|
|
150
|
-
import static com.microsoft.playwright.assertions.PlaywrightAssertions.*;
|
|
151
|
-
|
|
152
|
-
@UsePlaywright
|
|
153
|
-
public class TestExample {
|
|
154
|
-
@Test
|
|
155
|
-
void test(Page page) {`);
|
|
156
|
-
return formatter.format();
|
|
157
|
-
}
|
|
158
130
|
formatter.add(`
|
|
159
131
|
import com.microsoft.playwright.*;
|
|
160
132
|
import com.microsoft.playwright.options.*;
|
|
@@ -170,10 +142,6 @@ class JavaLanguageGenerator {
|
|
|
170
142
|
}
|
|
171
143
|
generateFooter(saveStorage) {
|
|
172
144
|
const storageStateLine = saveStorage ? `\n context.storageState(new BrowserContext.StorageStateOptions().setPath(${quote(saveStorage)}));\n` : '';
|
|
173
|
-
if (this._mode === 'junit') {
|
|
174
|
-
return `${storageStateLine} }
|
|
175
|
-
}`;
|
|
176
|
-
}
|
|
177
145
|
return `${storageStateLine} }
|
|
178
146
|
}
|
|
179
147
|
}`;
|
|
@@ -333,9 +333,8 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
333
333
|
type: 'resource-snapshot',
|
|
334
334
|
snapshot: entry
|
|
335
335
|
};
|
|
336
|
-
const visited = visitTraceEvent(event, this._state.networkSha1s);
|
|
337
|
-
|
|
338
|
-
this._fs.appendFile(this._state.networkFile, harEntryString, true /* flush */);
|
|
336
|
+
const visited = visitTraceEvent(event, this._state.networkSha1s, this._secretsFilter);
|
|
337
|
+
this._fs.appendFile(this._state.networkFile, JSON.stringify(visited) + '\n', true /* flush */);
|
|
339
338
|
}
|
|
340
339
|
flushHarEntries() {
|
|
341
340
|
const harLines = [];
|
|
@@ -344,14 +343,11 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
344
343
|
type: 'resource-snapshot',
|
|
345
344
|
snapshot: entry
|
|
346
345
|
};
|
|
347
|
-
const visited = visitTraceEvent(event, this._state.networkSha1s);
|
|
346
|
+
const visited = visitTraceEvent(event, this._state.networkSha1s, this._secretsFilter);
|
|
348
347
|
harLines.push(JSON.stringify(visited));
|
|
349
348
|
}
|
|
350
349
|
this._pendingHarEntries.clear();
|
|
351
|
-
if (harLines.length)
|
|
352
|
-
const harString = this._secretsFilter(harLines.join('\n') + '\n');
|
|
353
|
-
this._fs.appendFile(this._state.networkFile, harString, true /* flush */);
|
|
354
|
-
}
|
|
350
|
+
if (harLines.length) this._fs.appendFile(this._state.networkFile, harLines.join('\n') + '\n', true /* flush */);
|
|
355
351
|
}
|
|
356
352
|
onContentBlob(sha1, buffer) {
|
|
357
353
|
this._appendResource(sha1, buffer);
|
|
@@ -470,12 +466,10 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
470
466
|
}));
|
|
471
467
|
}
|
|
472
468
|
_appendTraceEvent(event) {
|
|
473
|
-
const visited = visitTraceEvent(event, this._state.traceSha1s);
|
|
469
|
+
const visited = visitTraceEvent(event, this._state.traceSha1s, this._secretsFilter);
|
|
474
470
|
// Do not flush (console) events, they are too noisy, unless we are in ui mode (live).
|
|
475
471
|
const flush = this._state.options.live || event.type !== 'event' && event.type !== 'console' && event.type !== 'log';
|
|
476
|
-
|
|
477
|
-
const filtered = this._secretsFilter(json);
|
|
478
|
-
this._fs.appendFile(this._state.traceFile, filtered, flush);
|
|
472
|
+
this._fs.appendFile(this._state.traceFile, JSON.stringify(visited) + '\n', flush);
|
|
479
473
|
}
|
|
480
474
|
_appendResource(sha1, buffer) {
|
|
481
475
|
if (this._allResources.has(sha1)) return;
|
|
@@ -485,19 +479,30 @@ class Tracing extends _instrumentation.SdkObject {
|
|
|
485
479
|
}
|
|
486
480
|
}
|
|
487
481
|
exports.Tracing = Tracing;
|
|
488
|
-
function visitTraceEvent(object, sha1s) {
|
|
489
|
-
if (Array.isArray(object)) return object.map(o =>
|
|
482
|
+
function visitTraceEvent(object, sha1s, secretsFilter) {
|
|
483
|
+
if (Array.isArray(object)) return object.map(o => {
|
|
484
|
+
if (typeof o === 'string' && new Date(o).toString() === 'Invalid Date') {
|
|
485
|
+
return secretsFilter(o);
|
|
486
|
+
}
|
|
487
|
+
return visitTraceEvent(o, sha1s, secretsFilter);
|
|
488
|
+
});
|
|
490
489
|
if (object instanceof _dispatcher.Dispatcher) return `<${object._type}>`;
|
|
491
490
|
if (object instanceof Buffer) return `<Buffer>`;
|
|
492
491
|
if (object instanceof Date) return object;
|
|
493
492
|
if (typeof object === 'object') {
|
|
494
493
|
const result = {};
|
|
495
494
|
for (const key in object) {
|
|
495
|
+
const value = object[key];
|
|
496
496
|
if (key === 'sha1' || key === '_sha1' || key.endsWith('Sha1')) {
|
|
497
|
-
|
|
498
|
-
|
|
497
|
+
if (value) sha1s.add(value);
|
|
498
|
+
}
|
|
499
|
+
if (typeof value === 'string') {
|
|
500
|
+
// Some values like numbers or certain strings shouldn't be scrubbed,
|
|
501
|
+
// Otherwise parts of the trace will be unreadable.
|
|
502
|
+
result[key] = key.endsWith('Sha1') || ['pageref', '_sha1', 'downloadsPath', 'tracesDir', 'pageId', 'sha1'].includes(key) ? value : secretsFilter(value);
|
|
503
|
+
} else {
|
|
504
|
+
result[key] = visitTraceEvent(value, sha1s, secretsFilter);
|
|
499
505
|
}
|
|
500
|
-
result[key] = visitTraceEvent(object[key], sha1s);
|
|
501
506
|
}
|
|
502
507
|
return result;
|
|
503
508
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { c as commonjsGlobal, g as getDefaultExportFromCjs } from "./index-BMeslH8X.js";
|
|
2
2
|
var codemirror$1 = { exports: {} };
|
|
3
3
|
var hasRequiredCodemirror;
|
|
4
4
|
function requireCodemirror() {
|
|
@@ -16434,4 +16434,4 @@ function requireMeta() {
|
|
|
16434
16434
|
export {
|
|
16435
16435
|
codemirror as default
|
|
16436
16436
|
};
|
|
16437
|
-
//# sourceMappingURL=codeMirrorModule
|
|
16437
|
+
//# sourceMappingURL=codeMirrorModule--bQcPrZ2.js.map
|
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
/* BASICS */
|
|
2
|
+
|
|
3
|
+
.CodeMirror {
|
|
4
|
+
/* Set height, width, borders, and global font properties here */
|
|
5
|
+
font-family: monospace;
|
|
6
|
+
height: 300px;
|
|
7
|
+
color: black;
|
|
8
|
+
direction: ltr;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/* PADDING */
|
|
12
|
+
|
|
13
|
+
.CodeMirror-lines {
|
|
14
|
+
padding: 4px 0; /* Vertical padding around content */
|
|
15
|
+
}
|
|
16
|
+
.CodeMirror pre.CodeMirror-line,
|
|
17
|
+
.CodeMirror pre.CodeMirror-line-like {
|
|
18
|
+
padding: 0 4px; /* Horizontal padding of content */
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
|
|
22
|
+
background-color: white; /* The little square between H and V scrollbars */
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/* GUTTER */
|
|
26
|
+
|
|
27
|
+
.CodeMirror-gutters {
|
|
28
|
+
border-right: 1px solid #ddd;
|
|
29
|
+
background-color: #f7f7f7;
|
|
30
|
+
white-space: nowrap;
|
|
31
|
+
}
|
|
32
|
+
.CodeMirror-linenumbers {}
|
|
33
|
+
.CodeMirror-linenumber {
|
|
34
|
+
padding: 0 3px 0 5px;
|
|
35
|
+
min-width: 20px;
|
|
36
|
+
text-align: right;
|
|
37
|
+
color: #999;
|
|
38
|
+
white-space: nowrap;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.CodeMirror-guttermarker { color: black; }
|
|
42
|
+
.CodeMirror-guttermarker-subtle { color: #999; }
|
|
43
|
+
|
|
44
|
+
/* CURSOR */
|
|
45
|
+
|
|
46
|
+
.CodeMirror-cursor {
|
|
47
|
+
border-left: 1px solid black;
|
|
48
|
+
border-right: none;
|
|
49
|
+
width: 0;
|
|
50
|
+
}
|
|
51
|
+
/* Shown when moving in bi-directional text */
|
|
52
|
+
.CodeMirror div.CodeMirror-secondarycursor {
|
|
53
|
+
border-left: 1px solid silver;
|
|
54
|
+
}
|
|
55
|
+
.cm-fat-cursor .CodeMirror-cursor {
|
|
56
|
+
width: auto;
|
|
57
|
+
border: 0 !important;
|
|
58
|
+
background: #7e7;
|
|
59
|
+
}
|
|
60
|
+
.cm-fat-cursor div.CodeMirror-cursors {
|
|
61
|
+
z-index: 1;
|
|
62
|
+
}
|
|
63
|
+
.cm-fat-cursor .CodeMirror-line::selection,
|
|
64
|
+
.cm-fat-cursor .CodeMirror-line > span::selection,
|
|
65
|
+
.cm-fat-cursor .CodeMirror-line > span > span::selection { background: transparent; }
|
|
66
|
+
.cm-fat-cursor .CodeMirror-line::-moz-selection,
|
|
67
|
+
.cm-fat-cursor .CodeMirror-line > span::-moz-selection,
|
|
68
|
+
.cm-fat-cursor .CodeMirror-line > span > span::-moz-selection { background: transparent; }
|
|
69
|
+
.cm-fat-cursor { caret-color: transparent; }
|
|
70
|
+
@-moz-keyframes blink {
|
|
71
|
+
0% {}
|
|
72
|
+
50% { background-color: transparent; }
|
|
73
|
+
100% {}
|
|
74
|
+
}
|
|
75
|
+
@-webkit-keyframes blink {
|
|
76
|
+
0% {}
|
|
77
|
+
50% { background-color: transparent; }
|
|
78
|
+
100% {}
|
|
79
|
+
}
|
|
80
|
+
@keyframes blink {
|
|
81
|
+
0% {}
|
|
82
|
+
50% { background-color: transparent; }
|
|
83
|
+
100% {}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/* Can style cursor different in overwrite (non-insert) mode */
|
|
87
|
+
.CodeMirror-overwrite .CodeMirror-cursor {}
|
|
88
|
+
|
|
89
|
+
.cm-tab { display: inline-block; text-decoration: inherit; }
|
|
90
|
+
|
|
91
|
+
.CodeMirror-rulers {
|
|
92
|
+
position: absolute;
|
|
93
|
+
left: 0; right: 0; top: -50px; bottom: 0;
|
|
94
|
+
overflow: hidden;
|
|
95
|
+
}
|
|
96
|
+
.CodeMirror-ruler {
|
|
97
|
+
border-left: 1px solid #ccc;
|
|
98
|
+
top: 0; bottom: 0;
|
|
99
|
+
position: absolute;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/* DEFAULT THEME */
|
|
103
|
+
|
|
104
|
+
.cm-s-default .cm-header {color: blue;}
|
|
105
|
+
.cm-s-default .cm-quote {color: #090;}
|
|
106
|
+
.cm-negative {color: #d44;}
|
|
107
|
+
.cm-positive {color: #292;}
|
|
108
|
+
.cm-header, .cm-strong {font-weight: bold;}
|
|
109
|
+
.cm-em {font-style: italic;}
|
|
110
|
+
.cm-link {text-decoration: underline;}
|
|
111
|
+
.cm-strikethrough {text-decoration: line-through;}
|
|
112
|
+
|
|
113
|
+
.cm-s-default .cm-keyword {color: #708;}
|
|
114
|
+
.cm-s-default .cm-atom {color: #219;}
|
|
115
|
+
.cm-s-default .cm-number {color: #164;}
|
|
116
|
+
.cm-s-default .cm-def {color: #00f;}
|
|
117
|
+
.cm-s-default .cm-variable,
|
|
118
|
+
.cm-s-default .cm-punctuation,
|
|
119
|
+
.cm-s-default .cm-property,
|
|
120
|
+
.cm-s-default .cm-operator {}
|
|
121
|
+
.cm-s-default .cm-variable-2 {color: #05a;}
|
|
122
|
+
.cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;}
|
|
123
|
+
.cm-s-default .cm-comment {color: #a50;}
|
|
124
|
+
.cm-s-default .cm-string {color: #a11;}
|
|
125
|
+
.cm-s-default .cm-string-2 {color: #f50;}
|
|
126
|
+
.cm-s-default .cm-meta {color: #555;}
|
|
127
|
+
.cm-s-default .cm-qualifier {color: #555;}
|
|
128
|
+
.cm-s-default .cm-builtin {color: #30a;}
|
|
129
|
+
.cm-s-default .cm-bracket {color: #997;}
|
|
130
|
+
.cm-s-default .cm-tag {color: #170;}
|
|
131
|
+
.cm-s-default .cm-attribute {color: #00c;}
|
|
132
|
+
.cm-s-default .cm-hr {color: #999;}
|
|
133
|
+
.cm-s-default .cm-link {color: #00c;}
|
|
134
|
+
|
|
135
|
+
.cm-s-default .cm-error {color: #f00;}
|
|
136
|
+
.cm-invalidchar {color: #f00;}
|
|
137
|
+
|
|
138
|
+
.CodeMirror-composing { border-bottom: 2px solid; }
|
|
139
|
+
|
|
140
|
+
/* Default styles for common addons */
|
|
141
|
+
|
|
142
|
+
div.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;}
|
|
143
|
+
div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;}
|
|
144
|
+
.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
|
|
145
|
+
.CodeMirror-activeline-background {background: #e8f2ff;}
|
|
146
|
+
|
|
147
|
+
/* STOP */
|
|
148
|
+
|
|
149
|
+
/* The rest of this file contains styles related to the mechanics of
|
|
150
|
+
the editor. You probably shouldn't touch them. */
|
|
151
|
+
|
|
152
|
+
.CodeMirror {
|
|
153
|
+
position: relative;
|
|
154
|
+
overflow: hidden;
|
|
155
|
+
background: white;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.CodeMirror-scroll {
|
|
159
|
+
overflow: scroll !important; /* Things will break if this is overridden */
|
|
160
|
+
/* 50px is the magic margin used to hide the element's real scrollbars */
|
|
161
|
+
/* See overflow: hidden in .CodeMirror */
|
|
162
|
+
margin-bottom: -50px; margin-right: -50px;
|
|
163
|
+
padding-bottom: 50px;
|
|
164
|
+
height: 100%;
|
|
165
|
+
outline: none; /* Prevent dragging from highlighting the element */
|
|
166
|
+
position: relative;
|
|
167
|
+
z-index: 0;
|
|
168
|
+
}
|
|
169
|
+
.CodeMirror-sizer {
|
|
170
|
+
position: relative;
|
|
171
|
+
border-right: 50px solid transparent;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/* The fake, visible scrollbars. Used to force redraw during scrolling
|
|
175
|
+
before actual scrolling happens, thus preventing shaking and
|
|
176
|
+
flickering artifacts. */
|
|
177
|
+
.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
|
|
178
|
+
position: absolute;
|
|
179
|
+
z-index: 6;
|
|
180
|
+
display: none;
|
|
181
|
+
outline: none;
|
|
182
|
+
}
|
|
183
|
+
.CodeMirror-vscrollbar {
|
|
184
|
+
right: 0; top: 0;
|
|
185
|
+
overflow-x: hidden;
|
|
186
|
+
overflow-y: scroll;
|
|
187
|
+
}
|
|
188
|
+
.CodeMirror-hscrollbar {
|
|
189
|
+
bottom: 0; left: 0;
|
|
190
|
+
overflow-y: hidden;
|
|
191
|
+
overflow-x: scroll;
|
|
192
|
+
}
|
|
193
|
+
.CodeMirror-scrollbar-filler {
|
|
194
|
+
right: 0; bottom: 0;
|
|
195
|
+
}
|
|
196
|
+
.CodeMirror-gutter-filler {
|
|
197
|
+
left: 0; bottom: 0;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.CodeMirror-gutters {
|
|
201
|
+
position: absolute; left: 0; top: 0;
|
|
202
|
+
min-height: 100%;
|
|
203
|
+
z-index: 3;
|
|
204
|
+
}
|
|
205
|
+
.CodeMirror-gutter {
|
|
206
|
+
white-space: normal;
|
|
207
|
+
height: 100%;
|
|
208
|
+
display: inline-block;
|
|
209
|
+
vertical-align: top;
|
|
210
|
+
margin-bottom: -50px;
|
|
211
|
+
}
|
|
212
|
+
.CodeMirror-gutter-wrapper {
|
|
213
|
+
position: absolute;
|
|
214
|
+
z-index: 4;
|
|
215
|
+
background: none !important;
|
|
216
|
+
border: none !important;
|
|
217
|
+
}
|
|
218
|
+
.CodeMirror-gutter-background {
|
|
219
|
+
position: absolute;
|
|
220
|
+
top: 0; bottom: 0;
|
|
221
|
+
z-index: 4;
|
|
222
|
+
}
|
|
223
|
+
.CodeMirror-gutter-elt {
|
|
224
|
+
position: absolute;
|
|
225
|
+
cursor: default;
|
|
226
|
+
z-index: 4;
|
|
227
|
+
}
|
|
228
|
+
.CodeMirror-gutter-wrapper ::selection { background-color: transparent }
|
|
229
|
+
.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent }
|
|
230
|
+
|
|
231
|
+
.CodeMirror-lines {
|
|
232
|
+
cursor: text;
|
|
233
|
+
min-height: 1px; /* prevents collapsing before first draw */
|
|
234
|
+
}
|
|
235
|
+
.CodeMirror pre.CodeMirror-line,
|
|
236
|
+
.CodeMirror pre.CodeMirror-line-like {
|
|
237
|
+
/* Reset some styles that the rest of the page might have set */
|
|
238
|
+
-moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
|
|
239
|
+
border-width: 0;
|
|
240
|
+
background: transparent;
|
|
241
|
+
font-family: inherit;
|
|
242
|
+
font-size: inherit;
|
|
243
|
+
margin: 0;
|
|
244
|
+
white-space: pre;
|
|
245
|
+
word-wrap: normal;
|
|
246
|
+
line-height: inherit;
|
|
247
|
+
color: inherit;
|
|
248
|
+
z-index: 2;
|
|
249
|
+
position: relative;
|
|
250
|
+
overflow: visible;
|
|
251
|
+
-webkit-tap-highlight-color: transparent;
|
|
252
|
+
-webkit-font-variant-ligatures: contextual;
|
|
253
|
+
font-variant-ligatures: contextual;
|
|
254
|
+
}
|
|
255
|
+
.CodeMirror-wrap pre.CodeMirror-line,
|
|
256
|
+
.CodeMirror-wrap pre.CodeMirror-line-like {
|
|
257
|
+
word-wrap: break-word;
|
|
258
|
+
white-space: pre-wrap;
|
|
259
|
+
word-break: normal;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
.CodeMirror-linebackground {
|
|
263
|
+
position: absolute;
|
|
264
|
+
left: 0; right: 0; top: 0; bottom: 0;
|
|
265
|
+
z-index: 0;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
.CodeMirror-linewidget {
|
|
269
|
+
position: relative;
|
|
270
|
+
z-index: 2;
|
|
271
|
+
padding: 0.1px; /* Force widget margins to stay inside of the container */
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
.CodeMirror-widget {}
|
|
275
|
+
|
|
276
|
+
.CodeMirror-rtl pre { direction: rtl; }
|
|
277
|
+
|
|
278
|
+
.CodeMirror-code {
|
|
279
|
+
outline: none;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/* Force content-box sizing for the elements where we expect it */
|
|
283
|
+
.CodeMirror-scroll,
|
|
284
|
+
.CodeMirror-sizer,
|
|
285
|
+
.CodeMirror-gutter,
|
|
286
|
+
.CodeMirror-gutters,
|
|
287
|
+
.CodeMirror-linenumber {
|
|
288
|
+
-moz-box-sizing: content-box;
|
|
289
|
+
box-sizing: content-box;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
.CodeMirror-measure {
|
|
293
|
+
position: absolute;
|
|
294
|
+
width: 100%;
|
|
295
|
+
height: 0;
|
|
296
|
+
overflow: hidden;
|
|
297
|
+
visibility: hidden;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
.CodeMirror-cursor {
|
|
301
|
+
position: absolute;
|
|
302
|
+
pointer-events: none;
|
|
303
|
+
}
|
|
304
|
+
.CodeMirror-measure pre { position: static; }
|
|
305
|
+
|
|
306
|
+
div.CodeMirror-cursors {
|
|
307
|
+
visibility: hidden;
|
|
308
|
+
position: relative;
|
|
309
|
+
z-index: 3;
|
|
310
|
+
}
|
|
311
|
+
div.CodeMirror-dragcursors {
|
|
312
|
+
visibility: visible;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
.CodeMirror-focused div.CodeMirror-cursors {
|
|
316
|
+
visibility: visible;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
.CodeMirror-selected { background: #d9d9d9; }
|
|
320
|
+
.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
|
|
321
|
+
.CodeMirror-crosshair { cursor: crosshair; }
|
|
322
|
+
.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }
|
|
323
|
+
.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
|
|
324
|
+
|
|
325
|
+
.cm-searching {
|
|
326
|
+
background-color: #ffa;
|
|
327
|
+
background-color: rgba(255, 255, 0, .4);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
/* Used to force a border model for a node */
|
|
331
|
+
.cm-force-border { padding-right: .1px; }
|
|
332
|
+
|
|
333
|
+
@media print {
|
|
334
|
+
/* Hide the cursor when printing */
|
|
335
|
+
.CodeMirror div.CodeMirror-cursors {
|
|
336
|
+
visibility: hidden;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
/* See issue #2901 */
|
|
341
|
+
.cm-tab-wrap-hack:after { content: ''; }
|
|
342
|
+
|
|
343
|
+
/* Help users use markselection to safely style text background */
|
|
344
|
+
span.CodeMirror-selectedtext { background: none; }
|