@ms-cloudpack/esm-stub-utilities 0.14.13 → 0.14.14

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.
@@ -49,9 +49,9 @@ export async function initBrowserEnvironment() {
49
49
  Object.defineProperty(global, k, desc);
50
50
  }
51
51
  });
52
- /** @type {*} */ (global).window = global;
53
- /** @type {*} */ (global).self = global;
54
- /** @type {*} */ (document).window = global;
52
+ /** @type {*} */ (global).window ??= global;
53
+ /** @type {*} */ (global).self ??= global;
54
+ /** @type {*} */ (document).window ??= global.window;
55
55
  // Don't allow setting timeouts or intervals
56
56
  global.setTimeout = /** @type {*} */ (() => 0);
57
57
  global.setInterval = /** @type {*} */ (() => 0);
@@ -1 +1 @@
1
- {"version":3,"file":"initBrowserEnvironment.js","sourceRoot":"","sources":["../../src/worker/initBrowserEnvironment.js"],"names":[],"mappings":"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","sourcesContent":["//\n// This file is JS because it's also used in a test worker within this package.\n// See verifyStub/loadStubWorker.js for more details.\n//\n\nimport { performance } from 'perf_hooks';\nimport util from 'util';\nimport { GlobalRegistrator } from '@happy-dom/global-registrator';\n\n/**\n * Initialize a fake browser environment.\n */\nexport async function initBrowserEnvironment() {\n global.performance ??= /** @type {*} */ (performance);\n global.TextEncoder ??= util.TextEncoder;\n global.TextDecoder ??= /** @type {*} */ (util.TextDecoder);\n\n const url = 'http://localhost';\n GlobalRegistrator.register({\n url,\n settings: {\n fetch: {\n interceptor: {\n // Mock requests to not fail returning a response.\n beforeAsyncRequest({ window }) {\n return Promise.resolve(new window.Response('async fetch response'));\n },\n beforeSyncRequest({ window }) {\n return {\n status: 0,\n statusText: '',\n ok: true,\n url: '',\n redirected: false,\n headers: new window.Headers(),\n body: Buffer.from(''),\n };\n },\n },\n },\n },\n });\n\n await import('regenerator-runtime');\n\n // Ensure assigning to and reading from `window.foo` globals works as expected by copying all the\n // properties from the jsdom `window` to node's `global`, then assigning `global` to `window`.\n Object.entries(Object.getOwnPropertyDescriptors(window)).forEach(([k, desc]) => {\n // Skip storage to avoid errors \"localStorage is not available for opaque origins\"\n // (these errors could in theory be resolved by passing a URL to jsdom-global setup, but that\n // triggers some weird issues with whatwg-url using TextDecoder in a way that works in other\n // environments but throws in the sandbox)\n if (!(k in global) && !['localStorage', 'sessionStorage'].includes(k)) {\n Object.defineProperty(global, k, desc);\n }\n });\n /** @type {*} */ (global).window = global;\n /** @type {*} */ (global).self = global;\n /** @type {*} */ (document).window = global;\n\n // Don't allow setting timeouts or intervals\n global.setTimeout = /** @type {*} */ (() => 0);\n global.setInterval = /** @type {*} */ (() => 0);\n global.setImmediate = /** @type {*} */ (global.setTimeout);\n global.requestAnimationFrame = global.setTimeout;\n global.cancelAnimationFrame = global.clearTimeout;\n // Also don't allow process.nextTick in case of Node code\n process.nextTick = () => {};\n\n global.btoa = (str) => Buffer.from(str, 'binary').toString('base64');\n global.atob = (str) => Buffer.from(str, 'base64').toString('binary');\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n URL.createObjectURL ??= () => 'blob:http://fake';\n // eslint-disable-next-line @typescript-eslint/unbound-method\n URL.revokeObjectURL ??= () => {};\n\n // Simulate WebSocket existence. (Needed for isomorphic-ws)\n global.WebSocket = /** @type {*} */ (class WebSocket {});\n\n // Fake MessageChannel so scheduler won't hang the process by opening a channel.\n global.MessageChannel = class MessageChannel {\n port1 = /** @type {*} */ ({});\n port2 = /** @type {*} */ ({});\n };\n global.BroadcastChannel = /** @type {*} */ (class BroadcastChannel {});\n\n // Prevent adding event listeners.\n global.addEventListener = document.addEventListener = () => {};\n global.removeEventListener = document.removeEventListener = () => {};\n global.dispatchEvent = document.dispatchEvent = () => false;\n\n // Mock out canvas.\n // eslint-disable-next-line etc/no-deprecated\n const createElement = window.document.createElement.bind(window.document);\n const createElementMock = (/** @type {string} */ tagName, /** @type {ElementCreationOptions} */ options) => {\n if (tagName === 'canvas') {\n return /** @type {*} */ ({\n getContext: () => ({ fillRect: () => {} }),\n measureText: () => ({}),\n });\n }\n\n return createElement(tagName, options);\n };\n // eslint-disable-next-line etc/no-deprecated\n global.document.createElement =\n /** @type {*} */ (window).createElement =\n /** @type {*} */ (global).createElement =\n createElementMock;\n\n global.Path2D ??= /** @type {*} */ (class Path2D {});\n\n global.fetch = /** @type {*} */ (async () => {});\n global.XMLHttpRequest = /** @type {*} */ (class XMLHttpRequest {});\n\n // prevent 'debug' package from accessing process.stderr\n // eslint-disable-next-line no-restricted-properties -- setting a property is ok\n process.env.DEBUG_COLORS = '0';\n\n // Some packages like readable-stream@2.3.7 read process.browser to avoid node code\n /** @type {*} */ (process).browser = true;\n\n // Add a script tag so that webpack automatic publicPath detection won't throw\n const scriptTag = createElement('script');\n scriptTag.src = `${url}/fake.js`;\n document.body.appendChild(scriptTag);\n}\n"]}
1
+ {"version":3,"file":"initBrowserEnvironment.js","sourceRoot":"","sources":["../../src/worker/initBrowserEnvironment.js"],"names":[],"mappings":"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","sourcesContent":["//\n// This file is JS because it's also used in a test worker within this package.\n// See verifyStub/loadStubWorker.js for more details.\n//\n\nimport { performance } from 'perf_hooks';\nimport util from 'util';\nimport { GlobalRegistrator } from '@happy-dom/global-registrator';\n\n/**\n * Initialize a fake browser environment.\n */\nexport async function initBrowserEnvironment() {\n global.performance ??= /** @type {*} */ (performance);\n global.TextEncoder ??= util.TextEncoder;\n global.TextDecoder ??= /** @type {*} */ (util.TextDecoder);\n\n const url = 'http://localhost';\n GlobalRegistrator.register({\n url,\n settings: {\n fetch: {\n interceptor: {\n // Mock requests to not fail returning a response.\n beforeAsyncRequest({ window }) {\n return Promise.resolve(new window.Response('async fetch response'));\n },\n beforeSyncRequest({ window }) {\n return {\n status: 0,\n statusText: '',\n ok: true,\n url: '',\n redirected: false,\n headers: new window.Headers(),\n body: Buffer.from(''),\n };\n },\n },\n },\n },\n });\n\n await import('regenerator-runtime');\n\n // Ensure assigning to and reading from `window.foo` globals works as expected by copying all the\n // properties from the jsdom `window` to node's `global`, then assigning `global` to `window`.\n Object.entries(Object.getOwnPropertyDescriptors(window)).forEach(([k, desc]) => {\n // Skip storage to avoid errors \"localStorage is not available for opaque origins\"\n // (these errors could in theory be resolved by passing a URL to jsdom-global setup, but that\n // triggers some weird issues with whatwg-url using TextDecoder in a way that works in other\n // environments but throws in the sandbox)\n if (!(k in global) && !['localStorage', 'sessionStorage'].includes(k)) {\n Object.defineProperty(global, k, desc);\n }\n });\n /** @type {*} */ (global).window ??= global;\n /** @type {*} */ (global).self ??= global;\n /** @type {*} */ (document).window ??= global.window;\n\n // Don't allow setting timeouts or intervals\n global.setTimeout = /** @type {*} */ (() => 0);\n global.setInterval = /** @type {*} */ (() => 0);\n global.setImmediate = /** @type {*} */ (global.setTimeout);\n global.requestAnimationFrame = global.setTimeout;\n global.cancelAnimationFrame = global.clearTimeout;\n // Also don't allow process.nextTick in case of Node code\n process.nextTick = () => {};\n\n global.btoa = (str) => Buffer.from(str, 'binary').toString('base64');\n global.atob = (str) => Buffer.from(str, 'base64').toString('binary');\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n URL.createObjectURL ??= () => 'blob:http://fake';\n // eslint-disable-next-line @typescript-eslint/unbound-method\n URL.revokeObjectURL ??= () => {};\n\n // Simulate WebSocket existence. (Needed for isomorphic-ws)\n global.WebSocket = /** @type {*} */ (class WebSocket {});\n\n // Fake MessageChannel so scheduler won't hang the process by opening a channel.\n global.MessageChannel = class MessageChannel {\n port1 = /** @type {*} */ ({});\n port2 = /** @type {*} */ ({});\n };\n global.BroadcastChannel = /** @type {*} */ (class BroadcastChannel {});\n\n // Prevent adding event listeners.\n global.addEventListener = document.addEventListener = () => {};\n global.removeEventListener = document.removeEventListener = () => {};\n global.dispatchEvent = document.dispatchEvent = () => false;\n\n // Mock out canvas.\n // eslint-disable-next-line etc/no-deprecated\n const createElement = window.document.createElement.bind(window.document);\n const createElementMock = (/** @type {string} */ tagName, /** @type {ElementCreationOptions} */ options) => {\n if (tagName === 'canvas') {\n return /** @type {*} */ ({\n getContext: () => ({ fillRect: () => {} }),\n measureText: () => ({}),\n });\n }\n\n return createElement(tagName, options);\n };\n // eslint-disable-next-line etc/no-deprecated\n global.document.createElement =\n /** @type {*} */ (window).createElement =\n /** @type {*} */ (global).createElement =\n createElementMock;\n\n global.Path2D ??= /** @type {*} */ (class Path2D {});\n\n global.fetch = /** @type {*} */ (async () => {});\n global.XMLHttpRequest = /** @type {*} */ (class XMLHttpRequest {});\n\n // prevent 'debug' package from accessing process.stderr\n // eslint-disable-next-line no-restricted-properties -- setting a property is ok\n process.env.DEBUG_COLORS = '0';\n\n // Some packages like readable-stream@2.3.7 read process.browser to avoid node code\n /** @type {*} */ (process).browser = true;\n\n // Add a script tag so that webpack automatic publicPath detection won't throw\n const scriptTag = createElement('script');\n scriptTag.src = `${url}/fake.js`;\n document.body.appendChild(scriptTag);\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ms-cloudpack/esm-stub-utilities",
3
- "version": "0.14.13",
3
+ "version": "0.14.14",
4
4
  "description": "Generates ESM stubs for CommonJS entry files.",
5
5
  "license": "MIT",
6
6
  "type": "module",