@ms-cloudpack/esm-stub-utilities 0.13.20 → 0.13.21

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.
@@ -1 +1 @@
1
- {"version":3,"file":"initBrowserEnvironment.d.ts","sourceRoot":"","sources":["../../src/worker/initBrowserEnvironment.js"],"names":[],"mappings":"AAQA;;GAEG;AACH,wDA4FC"}
1
+ {"version":3,"file":"initBrowserEnvironment.d.ts","sourceRoot":"","sources":["../../src/worker/initBrowserEnvironment.js"],"names":[],"mappings":"AAQA;;GAEG;AACH,wDA6FC"}
@@ -82,6 +82,7 @@ export async function initBrowserEnvironment() {
82
82
  global.XMLHttpRequest = /** @type {*} */ (class XMLHttpRequest {
83
83
  });
84
84
  // prevent 'debug' package from accessing process.stderr
85
+ // eslint-disable-next-line no-restricted-properties -- setting a property is ok
85
86
  process.env.DEBUG_COLORS = '0';
86
87
  // Some packages like readable-stream@2.3.7 read process.browser to avoid node code
87
88
  /** @type {*} */ (process).browser = true;
@@ -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';\n\n/**\n * Initialize a fake browser environment.\n */\nexport async function initBrowserEnvironment() {\n // These must be set up before JSDOM\n global.performance ??= /** @type {*} */ (performance);\n global.TextEncoder ??= util.TextEncoder;\n global.TextDecoder ??= /** @type {*} */ (util.TextDecoder);\n\n const url = 'http://localhost';\n (await import('jsdom-global')).default(undefined, { url });\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 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';\n\n/**\n * Initialize a fake browser environment.\n */\nexport async function initBrowserEnvironment() {\n // These must be set up before JSDOM\n global.performance ??= /** @type {*} */ (performance);\n global.TextEncoder ??= util.TextEncoder;\n global.TextDecoder ??= /** @type {*} */ (util.TextDecoder);\n\n const url = 'http://localhost';\n (await import('jsdom-global')).default(undefined, { url });\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 +1 @@
1
- {"version":3,"file":"writeESMStubsInWorker.d.ts","sourceRoot":"","sources":["../src/writeESMStubsInWorker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAI1E;;GAEG;AAGH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,oBAAoB,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACtD,OAAO,CAAC,mBAAmB,CAAC,CA6C9B;AAED,wBAAsB,qBAAqB,kBAG1C"}
1
+ {"version":3,"file":"writeESMStubsInWorker.d.ts","sourceRoot":"","sources":["../src/writeESMStubsInWorker.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAI1E;;GAEG;AAGH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,oBAAoB,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACtD,OAAO,CAAC,mBAAmB,CAAC,CA6C9B;AAED,wBAAsB,qBAAqB,kBAG1C"}
@@ -1,3 +1,4 @@
1
+ import { getAdjustedTimeout } from '@ms-cloudpack/environment';
1
2
  import { WorkerPool } from '@ms-cloudpack/worker-pool';
2
3
  let workerPool;
3
4
  /**
@@ -29,7 +30,7 @@ export async function writeESMStubsInWorker(options) {
29
30
  // (This is only checked after task completion, so a package exceeding it will still be stubbed.)
30
31
  maxHeapSize: 500 * 1024 * 1024,
31
32
  // console.warn if a stub takes longer than this
32
- warnAboveTime: process.env.CI ? 4000 : 2000,
33
+ warnAboveTime: getAdjustedTimeout(2000),
33
34
  });
34
35
  try {
35
36
  return await workerPool.execute({
@@ -1 +1 @@
1
- {"version":3,"file":"writeESMStubsInWorker.js","sourceRoot":"","sources":["../src/writeESMStubsInWorker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAIvD,IAAI,UAAkC,CAAC;AAEvC;;GAEG;AACH,+EAA+E;AAC/E,oDAAoD;AACpD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAuD;IAEvD,yFAAyF;IACzF,uDAAuD;IACvD,MAAM,eAAe,GAAyB;QAC5C,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC;IAEF,UAAU,KAAK,IAAI,UAAU,CAAC;QAC5B,IAAI,EAAE,qBAAqB;QAC3B,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;QAC3B,SAAS,EAAE,sBAAsB;QACjC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC;QACnC,2FAA2F;QAC3F,+FAA+F;QAC/F,6FAA6F;QAC7F,2FAA2F;QAC3F,4BAA4B;QAC5B,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;QAC9B,4FAA4F;QAC5F,oFAAoF;QACpF,iGAAiG;QACjG,WAAW,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;QAC9B,gDAAgD;QAChD,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;KAC5C,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,OAAO,MAAM,UAAU,CAAC,OAAO,CAAsB;YACnD,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,CAAC,eAAe,CAAC;SACxB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,UAAU,EAAE,EAAE;YACd,MAAM,EAAE;gBACN;oBACE,MAAM,EAAE,qBAAqB;oBAC7B,mEAAmE;oBACnE,IAAI,EAAG,GAAa,EAAE,KAAK,IAAK,GAAa,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC;iBACtE;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,MAAM,UAAU,EAAE,OAAO,EAAE,CAAC;IAC5B,UAAU,GAAG,SAAS,CAAC;AACzB,CAAC","sourcesContent":["import { WorkerPool } from '@ms-cloudpack/worker-pool';\nimport type { WriteESMStubsOptions } from './types/WriteESMStubsOptions.js';\nimport type { WriteESMStubsResult } from './types/WriteESMStubsResult.js';\n\nlet workerPool: WorkerPool | undefined;\n\n/**\n * Write ESM stubs using a worker pool.\n */\n// This is tested in bundler-rollup/src/writeESMStubsInWorker.test.ts so we can\n// use the compiled version of the workerEntry file.\nexport async function writeESMStubsInWorker(\n options: WriteESMStubsOptions & { maxWorkers?: number },\n): Promise<WriteESMStubsResult> {\n // Trim the options to only the necessary ones for the worker to reduce what's serialized\n // (a larger BundleOptions object was likely passed in)\n const onlyStubOptions: WriteESMStubsOptions = {\n inputPath: options.inputPath,\n entries: options.entries,\n forceCJS: options.forceCJS,\n };\n\n workerPool ??= new WorkerPool({\n name: 'ESM stub generation',\n parentPath: import.meta.url,\n entryPath: './worker/workerEntry',\n maxWorkers: options.maxWorkers || 5,\n // Stop inactive workers after 5 minutes. This is intended to prevent one possible cause of\n // OOM crashes if cloudpack start is left running for a long time (though it's much more likely\n // that the issue is caused by servers or file watchers). The timeout is conservative because\n // the fake browser environment has nontrivial startup time, so killing workers too quickly\n // could slow down rebuilds.\n inactiveTimeout: 5 * 60 * 1000,\n // Most stubs seem to stay well under this size, and Node appears to be decent about freeing\n // memory after writeESMStubs finishes, but this will catch anything giant or leaky.\n // (This is only checked after task completion, so a package exceeding it will still be stubbed.)\n maxHeapSize: 500 * 1024 * 1024,\n // console.warn if a stub takes longer than this\n warnAboveTime: process.env.CI ? 4000 : 2000,\n });\n\n try {\n return await workerPool.execute<WriteESMStubsResult>({\n method: 'writeESMStubs',\n args: [onlyStubOptions],\n });\n } catch (err) {\n return {\n newEntries: {},\n errors: [\n {\n source: 'ESM stub generation',\n // note: err won't be an instance of Error because of serialization\n text: (err as Error)?.stack || (err as Error)?.message || String(err),\n },\n ],\n };\n }\n}\n\nexport async function disposeStubWorkerPool() {\n await workerPool?.dispose();\n workerPool = undefined;\n}\n"]}
1
+ {"version":3,"file":"writeESMStubsInWorker.js","sourceRoot":"","sources":["../src/writeESMStubsInWorker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAIvD,IAAI,UAAkC,CAAC;AAEvC;;GAEG;AACH,+EAA+E;AAC/E,oDAAoD;AACpD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAuD;IAEvD,yFAAyF;IACzF,uDAAuD;IACvD,MAAM,eAAe,GAAyB;QAC5C,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC;IAEF,UAAU,KAAK,IAAI,UAAU,CAAC;QAC5B,IAAI,EAAE,qBAAqB;QAC3B,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;QAC3B,SAAS,EAAE,sBAAsB;QACjC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC;QACnC,2FAA2F;QAC3F,+FAA+F;QAC/F,6FAA6F;QAC7F,2FAA2F;QAC3F,4BAA4B;QAC5B,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;QAC9B,4FAA4F;QAC5F,oFAAoF;QACpF,iGAAiG;QACjG,WAAW,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;QAC9B,gDAAgD;QAChD,aAAa,EAAE,kBAAkB,CAAC,IAAI,CAAC;KACxC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,OAAO,MAAM,UAAU,CAAC,OAAO,CAAsB;YACnD,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,CAAC,eAAe,CAAC;SACxB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,UAAU,EAAE,EAAE;YACd,MAAM,EAAE;gBACN;oBACE,MAAM,EAAE,qBAAqB;oBAC7B,mEAAmE;oBACnE,IAAI,EAAG,GAAa,EAAE,KAAK,IAAK,GAAa,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC;iBACtE;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,MAAM,UAAU,EAAE,OAAO,EAAE,CAAC;IAC5B,UAAU,GAAG,SAAS,CAAC;AACzB,CAAC","sourcesContent":["import { getAdjustedTimeout } from '@ms-cloudpack/environment';\nimport { WorkerPool } from '@ms-cloudpack/worker-pool';\nimport type { WriteESMStubsOptions } from './types/WriteESMStubsOptions.js';\nimport type { WriteESMStubsResult } from './types/WriteESMStubsResult.js';\n\nlet workerPool: WorkerPool | undefined;\n\n/**\n * Write ESM stubs using a worker pool.\n */\n// This is tested in bundler-rollup/src/writeESMStubsInWorker.test.ts so we can\n// use the compiled version of the workerEntry file.\nexport async function writeESMStubsInWorker(\n options: WriteESMStubsOptions & { maxWorkers?: number },\n): Promise<WriteESMStubsResult> {\n // Trim the options to only the necessary ones for the worker to reduce what's serialized\n // (a larger BundleOptions object was likely passed in)\n const onlyStubOptions: WriteESMStubsOptions = {\n inputPath: options.inputPath,\n entries: options.entries,\n forceCJS: options.forceCJS,\n };\n\n workerPool ??= new WorkerPool({\n name: 'ESM stub generation',\n parentPath: import.meta.url,\n entryPath: './worker/workerEntry',\n maxWorkers: options.maxWorkers || 5,\n // Stop inactive workers after 5 minutes. This is intended to prevent one possible cause of\n // OOM crashes if cloudpack start is left running for a long time (though it's much more likely\n // that the issue is caused by servers or file watchers). The timeout is conservative because\n // the fake browser environment has nontrivial startup time, so killing workers too quickly\n // could slow down rebuilds.\n inactiveTimeout: 5 * 60 * 1000,\n // Most stubs seem to stay well under this size, and Node appears to be decent about freeing\n // memory after writeESMStubs finishes, but this will catch anything giant or leaky.\n // (This is only checked after task completion, so a package exceeding it will still be stubbed.)\n maxHeapSize: 500 * 1024 * 1024,\n // console.warn if a stub takes longer than this\n warnAboveTime: getAdjustedTimeout(2000),\n });\n\n try {\n return await workerPool.execute<WriteESMStubsResult>({\n method: 'writeESMStubs',\n args: [onlyStubOptions],\n });\n } catch (err) {\n return {\n newEntries: {},\n errors: [\n {\n source: 'ESM stub generation',\n // note: err won't be an instance of Error because of serialization\n text: (err as Error)?.stack || (err as Error)?.message || String(err),\n },\n ],\n };\n }\n}\n\nexport async function disposeStubWorkerPool() {\n await workerPool?.dispose();\n workerPool = undefined;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ms-cloudpack/esm-stub-utilities",
3
- "version": "0.13.20",
3
+ "version": "0.13.21",
4
4
  "description": "Generates ESM stubs for CommonJS entry files.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -14,11 +14,12 @@
14
14
  }
15
15
  },
16
16
  "dependencies": {
17
- "@ms-cloudpack/common-types": "^0.23.6",
18
- "@ms-cloudpack/json-utilities": "^0.1.8",
19
- "@ms-cloudpack/package-utilities": "^10.4.2",
20
- "@ms-cloudpack/path-string-parsing": "^1.2.5",
21
- "@ms-cloudpack/worker-pool": "^0.3.0",
17
+ "@ms-cloudpack/common-types": "^0.23.7",
18
+ "@ms-cloudpack/environment": "^0.1.1",
19
+ "@ms-cloudpack/json-utilities": "^0.1.9",
20
+ "@ms-cloudpack/package-utilities": "^11.0.0",
21
+ "@ms-cloudpack/path-string-parsing": "^1.2.6",
22
+ "@ms-cloudpack/worker-pool": "^0.3.1",
22
23
  "jsdom": "^24.0.0",
23
24
  "jsdom-global": "^3.0.2",
24
25
  "regenerator-runtime": "^0.14.1"
@@ -1,11 +0,0 @@
1
- // This file is read by tools that parse documentation comments conforming to the TSDoc standard.
2
- // It should be published with your NPM package. It should not be tracked by Git.
3
- {
4
- "tsdocVersion": "0.12",
5
- "toolPackages": [
6
- {
7
- "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.47.11"
9
- }
10
- ]
11
- }