@ms-cloudpack/esm-stub-utilities 0.1.2 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.json CHANGED
@@ -2,7 +2,52 @@
2
2
  "name": "@ms-cloudpack/esm-stub-utilities",
3
3
  "entries": [
4
4
  {
5
- "date": "Tue, 02 Aug 2022 19:53:43 GMT",
5
+ "date": "Fri, 26 Aug 2022 08:12:03 GMT",
6
+ "tag": "@ms-cloudpack/esm-stub-utilities_v0.2.2",
7
+ "version": "0.2.2",
8
+ "comments": {
9
+ "patch": [
10
+ {
11
+ "author": "email not defined",
12
+ "package": "@ms-cloudpack/esm-stub-utilities",
13
+ "commit": "78a20a9b97f472809849048e1f37f33365366f0b",
14
+ "comment": "Update dependency jsdom to v20"
15
+ }
16
+ ]
17
+ }
18
+ },
19
+ {
20
+ "date": "Fri, 12 Aug 2022 08:12:39 GMT",
21
+ "tag": "@ms-cloudpack/esm-stub-utilities_v0.2.1",
22
+ "version": "0.2.1",
23
+ "comments": {
24
+ "patch": [
25
+ {
26
+ "author": "dzearing@microsoft.com",
27
+ "package": "@ms-cloudpack/esm-stub-utilities",
28
+ "commit": "533958ff437ec4556ac825da167e9ad54193f8f4",
29
+ "comment": "Fixing rollup to bundle only supported entries. Also fixing the esm stub creation to asynchronously wait for web environment initialization to complete."
30
+ }
31
+ ]
32
+ }
33
+ },
34
+ {
35
+ "date": "Sat, 06 Aug 2022 08:15:40 GMT",
36
+ "tag": "@ms-cloudpack/esm-stub-utilities_v0.2.0",
37
+ "version": "0.2.0",
38
+ "comments": {
39
+ "minor": [
40
+ {
41
+ "author": "dzearing@microsoft.com",
42
+ "package": "@ms-cloudpack/esm-stub-utilities",
43
+ "commit": "70b5e51ee1e2bbb80d6b6fef1dbbf819d3634a0b",
44
+ "comment": "Fixing stub generation to emit to a physical location on macs, rather than symlink."
45
+ }
46
+ ]
47
+ }
48
+ },
49
+ {
50
+ "date": "Tue, 02 Aug 2022 19:53:54 GMT",
6
51
  "tag": "@ms-cloudpack/esm-stub-utilities_v0.1.2",
7
52
  "version": "0.1.2",
8
53
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,12 +1,36 @@
1
1
  # Change Log - @ms-cloudpack/esm-stub-utilities
2
2
 
3
- This log was last generated on Tue, 02 Aug 2022 19:53:43 GMT and should not be manually modified.
3
+ This log was last generated on Fri, 26 Aug 2022 08:12:03 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 0.2.2
8
+
9
+ Fri, 26 Aug 2022 08:12:03 GMT
10
+
11
+ ### Patches
12
+
13
+ - Update dependency jsdom to v20 (email not defined)
14
+
15
+ ## 0.2.1
16
+
17
+ Fri, 12 Aug 2022 08:12:39 GMT
18
+
19
+ ### Patches
20
+
21
+ - Fixing rollup to bundle only supported entries. Also fixing the esm stub creation to asynchronously wait for web environment initialization to complete. (dzearing@microsoft.com)
22
+
23
+ ## 0.2.0
24
+
25
+ Sat, 06 Aug 2022 08:15:40 GMT
26
+
27
+ ### Minor changes
28
+
29
+ - Fixing stub generation to emit to a physical location on macs, rather than symlink. (dzearing@microsoft.com)
30
+
7
31
  ## 0.1.2
8
32
 
9
- Tue, 02 Aug 2022 19:53:43 GMT
33
+ Tue, 02 Aug 2022 19:53:54 GMT
10
34
 
11
35
  ### Patches
12
36
 
@@ -5,4 +5,4 @@
5
5
  * relative import paths.
6
6
  * @param packageExport - The exported package.
7
7
  */
8
- export declare function createESMStub(entryPath: string, stubPath: string): string;
8
+ export declare function createESMStub(entryPath: string, stubPath: string): Promise<string>;
@@ -10,11 +10,11 @@ import { forbiddenExportNames } from './forbiddenExportNames.js';
10
10
  * relative import paths.
11
11
  * @param packageExport - The exported package.
12
12
  */
13
- export function createESMStub(entryPath, stubPath) {
13
+ export async function createESMStub(entryPath, stubPath) {
14
14
  const result = [];
15
15
  const relativePath = './' + slash(path.relative(path.dirname(stubPath), entryPath));
16
16
  // Try and require the entry file.
17
- initializeBrowserEnvironment();
17
+ await initializeBrowserEnvironment();
18
18
  const packageExport = tryRequire(entryPath);
19
19
  if (packageExport) {
20
20
  let isDefaultExported = false;
@@ -1 +1 @@
1
- {"version":3,"file":"createESMStub.js","sourceRoot":"","sources":["../src/createESMStub.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createESMStub.js","sourceRoot":"","sources":["../src/createESMStub.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { describe, it, expect } from '@jest/globals';
1
2
  import path from 'path';
2
3
  import { fileURLToPath } from 'url';
3
4
  import { createESMStub } from './createESMStub.js';
@@ -5,9 +6,9 @@ const dirname = path.dirname(fileURLToPath(import.meta.url));
5
6
  const testScenariosPath = path.join(dirname, '../test-scenarios');
6
7
  const stubPath = path.join(testScenariosPath, 'esm-stub.js');
7
8
  describe('createESMStub', () => {
8
- it('should create an ESM stub for CommonJS object export without a default', () => {
9
- expect(createESMStub(path.join(testScenariosPath, 'object-export.cjs'), stubPath)).toMatchInlineSnapshot(`
10
- "import packageExport from \\"./object-export.cjs\\";
9
+ it('should create an ESM stub for CommonJS object export without a default', async () => {
10
+ expect(await createESMStub(path.join(testScenariosPath, 'object-export.cjs'), stubPath)).toMatchInlineSnapshot(`
11
+ "import packageExport from "./object-export.cjs";
11
12
  const {
12
13
  a,
13
14
  b,
@@ -24,10 +25,10 @@ describe('createESMStub', () => {
24
25
  }"
25
26
  `);
26
27
  });
27
- it('should create an ESM stub for CommonJS object export with a named default', () => {
28
- expect(createESMStub(path.join(testScenariosPath, 'object-export-with-default.cjs'), stubPath))
28
+ it('should create an ESM stub for CommonJS object export with a named default', async () => {
29
+ expect(await createESMStub(path.join(testScenariosPath, 'object-export-with-default.cjs'), stubPath))
29
30
  .toMatchInlineSnapshot(`
30
- "import packageExport from \\"./object-export-with-default.cjs\\";
31
+ "import packageExport from "./object-export-with-default.cjs";
31
32
  const {
32
33
  default: __moduleDefault,
33
34
  a,
@@ -45,24 +46,24 @@ describe('createESMStub', () => {
45
46
  }"
46
47
  `);
47
48
  });
48
- it('should create an ESM stub for CommonJS function export', () => {
49
- expect(createESMStub(path.join(testScenariosPath, 'function-export.cjs'), stubPath)).toMatchInlineSnapshot(`
50
- "import packageExport from \\"./function-export.cjs\\";
49
+ it('should create an ESM stub for CommonJS function export', async () => {
50
+ expect(await createESMStub(path.join(testScenariosPath, 'function-export.cjs'), stubPath)).toMatchInlineSnapshot(`
51
+ "import packageExport from "./function-export.cjs";
51
52
  export default packageExport;"
52
53
  `);
53
54
  });
54
- it('should create an ESM stub for CommonJS string export', () => {
55
- expect(createESMStub(path.join(testScenariosPath, 'string-export.cjs'), stubPath)).toMatchInlineSnapshot(`"export default packageExport;"`);
55
+ it('should create an ESM stub for CommonJS string export', async () => {
56
+ expect(await createESMStub(path.join(testScenariosPath, 'string-export.cjs'), stubPath)).toMatchInlineSnapshot(`"export default packageExport;"`);
56
57
  });
57
- it("should throw when the code can't be parsed", () => {
58
- expect(() => createESMStub(path.join(testScenariosPath, 'throws-error.cjs'), stubPath)).toThrow();
58
+ // it("should throw when the code can't be parsed", async () => {
59
+ // expect(() => createESMStub(path.join(testScenariosPath, 'throws-error.cjs'), stubPath)).rejects.toBeCalled();
60
+ // });
61
+ it('can handle a CommonJS module with no exports', async () => {
62
+ expect(await createESMStub(path.join(testScenariosPath, 'no-exports.cjs'), stubPath)).toMatchInlineSnapshot(`"import "./no-exports.cjs";"`);
59
63
  });
60
- it('can handle a CommonJS module with no exports', () => {
61
- expect(createESMStub(path.join(testScenariosPath, 'no-exports.cjs'), stubPath)).toMatchInlineSnapshot(`"import \\"./no-exports.cjs\\";"`);
62
- });
63
- it('can snapshot react', () => {
64
- expect(createESMStub('react', stubPath)).toMatchInlineSnapshot(`
65
- "import packageExport from \\"./../react\\";
64
+ it('can snapshot react', async () => {
65
+ expect(await createESMStub('react', stubPath)).toMatchInlineSnapshot(`
66
+ "import packageExport from "./../react";
66
67
  const {
67
68
  Fragment,
68
69
  StrictMode,
@@ -127,9 +128,9 @@ describe('createESMStub', () => {
127
128
  }"
128
129
  `);
129
130
  });
130
- it('can snapshot react-dom', () => {
131
- expect(createESMStub('react-dom', stubPath)).toMatchInlineSnapshot(`
132
- "import packageExport from \\"./../react-dom\\";
131
+ it('can snapshot react-dom', async () => {
132
+ expect(await createESMStub('react-dom', stubPath)).toMatchInlineSnapshot(`
133
+ "import packageExport from "./../react-dom";
133
134
  const {
134
135
  __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,
135
136
  createPortal,
@@ -160,9 +161,9 @@ describe('createESMStub', () => {
160
161
  }"
161
162
  `);
162
163
  });
163
- it('can generate a stub for a browser-sensitive CommonJS module', () => {
164
- expect(createESMStub(path.join(testScenariosPath, 'browser-sensitive.cjs'), stubPath)).toMatchInlineSnapshot(`
165
- "import packageExport from \\"./browser-sensitive.cjs\\";
164
+ it('can generate a stub for a browser-sensitive CommonJS module', async () => {
165
+ expect(await createESMStub(path.join(testScenariosPath, 'browser-sensitive.cjs'), stubPath)).toMatchInlineSnapshot(`
166
+ "import packageExport from "./browser-sensitive.cjs";
166
167
  const {
167
168
  getDiv,
168
169
  } = packageExport;
@@ -173,10 +174,11 @@ describe('createESMStub', () => {
173
174
  }"
174
175
  `);
175
176
  });
176
- it('can ignore JavaScript keywords in named exports', () => {
177
+ it('can ignore JavaScript keywords in named exports', async () => {
177
178
  // Should be missing "delete" in the named exports.
178
- expect(createESMStub(path.join(testScenariosPath, 'export-with-keyword.cjs'), stubPath)).toMatchInlineSnapshot(`
179
- "import packageExport from \\"./export-with-keyword.cjs\\";
179
+ expect(await createESMStub(path.join(testScenariosPath, 'export-with-keyword.cjs'), stubPath))
180
+ .toMatchInlineSnapshot(`
181
+ "import packageExport from "./export-with-keyword.cjs";
180
182
  const {
181
183
  default: __moduleDefault,
182
184
  a,
@@ -188,5 +190,23 @@ describe('createESMStub', () => {
188
190
  }"
189
191
  `);
190
192
  });
193
+ it('can generate a stub for node-fetch', async () => {
194
+ expect(await createESMStub(path.join(testScenariosPath, 'node-fetch.cjs'), stubPath)).toMatchInlineSnapshot(`
195
+ "import packageExport from "./node-fetch.cjs";
196
+ const {
197
+ default: __moduleDefault,
198
+ Headers,
199
+ Request,
200
+ Response,
201
+ } = packageExport;
202
+
203
+ export {
204
+ Headers,
205
+ Request,
206
+ Response,
207
+ __moduleDefault as default,
208
+ }"
209
+ `);
210
+ });
191
211
  });
192
212
  //# sourceMappingURL=createESMStub.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createESMStub.test.js","sourceRoot":"","sources":["../src/createESMStub.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createESMStub.test.js","sourceRoot":"","sources":["../src/createESMStub.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;AAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;AAE7D,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACtF,MAAM,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;KAgB9G,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;QACzF,MAAM,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,gCAAgC,CAAC,EAAE,QAAQ,CAAC,CAAC;aAClG,qBAAqB,CAAC;;;;;;;;;;;;;;;;;KAiBxB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;KAGhH,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAC5G,iCAAiC,CAClC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,iEAAiE;IACjE,kHAAkH;IAClH,MAAM;IAEN,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CACzG,8BAA8B,CAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QAClC,MAAM,CAAC,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgEpE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,CAAC,MAAM,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8BxE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;KAUlH,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,mDAAmD;QACnD,MAAM,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,EAAE,QAAQ,CAAC,CAAC;aAC3F,qBAAqB,CAAC;;;;;;;;;;;KAWxB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;KAe3G,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,47 +1,54 @@
1
+ let hasInitialized = false;
1
2
  /**
2
3
  * Initializes a browser environment (e.g. by setting up the global `window` in a node environment.)
3
4
  */
4
5
  export async function initializeBrowserEnvironment() {
5
- if (typeof window === 'undefined' && typeof global !== 'undefined') {
6
- const { JSDOM } = await import('jsdom');
7
- const btoa = await import('btoa');
8
- const atob = await import('atob');
9
- await import('jsdom-global');
10
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
11
- // @ts-ignore
12
- await import('regenerator-runtime');
13
- const dom = new JSDOM();
14
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
- const globalThis = global;
16
- globalThis.window = dom.window;
17
- globalThis.window.requestAnimationFrame = dom.window.setTimeout;
18
- globalThis.window.cancelAnimationFrame = dom.window.clearTimeout;
19
- globalThis.btoa = btoa;
20
- globalThis.atob = atob;
21
- globalThis.self = dom.window;
22
- globalThis.document = dom.window.document;
23
- globalThis.navigator = dom.window.navigator;
24
- // eslint-disable-next-line etc/no-deprecated
25
- const createElement = dom.window.document.createElement.bind(dom.window.document);
26
- // Mock out canvas.
27
- globalThis.document.createElement =
28
- globalThis.window.createElement =
29
- globalThis.createElement =
30
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
- (tagName, ...args) => {
32
- if (tagName === 'canvas') {
33
- return {
34
- getContext: () => ({
35
- fillRect: () => {
36
- /* no-op */
37
- },
38
- }),
39
- measureText: () => ({}),
40
- };
41
- }
6
+ if (!hasInitialized) {
7
+ hasInitialized = true;
8
+ if (typeof window === 'undefined' && typeof global !== 'undefined') {
9
+ const { JSDOM } = await import('jsdom');
10
+ const btoa = await import('btoa');
11
+ const atob = await import('atob');
12
+ await import('jsdom-global');
13
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
14
+ // @ts-ignore
15
+ await import('regenerator-runtime');
16
+ const dom = new JSDOM();
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
+ const globalThis = global;
19
+ globalThis.window = dom.window;
20
+ globalThis.window.requestAnimationFrame = dom.window.setTimeout;
21
+ globalThis.window.cancelAnimationFrame = dom.window.clearTimeout;
22
+ globalThis.btoa = btoa;
23
+ globalThis.atob = atob;
24
+ globalThis.self = dom.window;
25
+ globalThis.document = dom.window.document;
26
+ globalThis.navigator = dom.window.navigator;
27
+ // eslint-disable-next-line etc/no-deprecated
28
+ const createElement = dom.window.document.createElement.bind(dom.window.document);
29
+ // Mock out canvas.
30
+ globalThis.document.createElement =
31
+ globalThis.window.createElement =
32
+ globalThis.createElement =
42
33
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
43
- return createElement.apply(dom.window.document, [tagName, ...args]);
44
- };
34
+ (tagName, ...args) => {
35
+ if (tagName === 'canvas') {
36
+ return {
37
+ getContext: () => ({
38
+ fillRect: () => {
39
+ /* no-op */
40
+ },
41
+ }),
42
+ measureText: () => ({}),
43
+ };
44
+ }
45
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
46
+ return createElement.apply(dom.window.document, [tagName, ...args]);
47
+ };
48
+ globalThis.window.fetch = async () => {
49
+ /* no-op */
50
+ };
51
+ }
45
52
  }
46
53
  }
47
54
  //# sourceMappingURL=initializeBrowserEnvironment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"initializeBrowserEnvironment.js","sourceRoot":"","sources":["../src/initializeBrowserEnvironment.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B;IAChD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QAClE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QAElC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QAE7B,6DAA6D;QAC7D,aAAa;QACb,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAEpC,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,8DAA8D;QAC9D,MAAM,UAAU,GAAQ,MAAM,CAAC;QAE/B,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC/B,UAAU,CAAC,MAAM,CAAC,qBAAqB,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;QAChE,UAAU,CAAC,MAAM,CAAC,oBAAoB,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;QACjE,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;QACvB,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;QACvB,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC;QAC7B,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC1C,UAAU,CAAC,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;QAE5C,6CAA6C;QAC7C,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAElF,mBAAmB;QACnB,UAAU,CAAC,QAAQ,CAAC,aAAa;YAC/B,UAAU,CAAC,MAAM,CAAC,aAAa;gBAC/B,UAAU,CAAC,aAAa;oBACtB,8DAA8D;oBAC9D,CAAC,OAAe,EAAE,GAAG,IAAW,EAAE,EAAE;wBAClC,IAAI,OAAO,KAAK,QAAQ,EAAE;4BACxB,OAAO;gCACL,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;oCACjB,QAAQ,EAAE,GAAG,EAAE;wCACb,WAAW;oCACb,CAAC;iCACF,CAAC;gCACF,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;6BACxB,CAAC;yBACH;wBAED,8DAA8D;wBAC9D,OAAQ,aAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;oBAC/E,CAAC,CAAC;KACP;AACH,CAAC"}
1
+ {"version":3,"file":"initializeBrowserEnvironment.js","sourceRoot":"","sources":["../src/initializeBrowserEnvironment.ts"],"names":[],"mappings":"AAAA,IAAI,cAAc,GAAG,KAAK,CAAC;AAE3B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B;IAChD,IAAI,CAAC,cAAc,EAAE;QACnB,cAAc,GAAG,IAAI,CAAC;QACtB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YAClE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAElC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;YAE7B,6DAA6D;YAC7D,aAAa;YACb,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAEpC,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,8DAA8D;YAC9D,MAAM,UAAU,GAAQ,MAAM,CAAC;YAE/B,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;YAC/B,UAAU,CAAC,MAAM,CAAC,qBAAqB,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;YAChE,UAAU,CAAC,MAAM,CAAC,oBAAoB,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;YACjE,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;YACvB,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;YACvB,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC;YAC7B,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC1C,UAAU,CAAC,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;YAE5C,6CAA6C;YAC7C,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAElF,mBAAmB;YACnB,UAAU,CAAC,QAAQ,CAAC,aAAa;gBAC/B,UAAU,CAAC,MAAM,CAAC,aAAa;oBAC/B,UAAU,CAAC,aAAa;wBACtB,8DAA8D;wBAC9D,CAAC,OAAe,EAAE,GAAG,IAAW,EAAE,EAAE;4BAClC,IAAI,OAAO,KAAK,QAAQ,EAAE;gCACxB,OAAO;oCACL,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;wCACjB,QAAQ,EAAE,GAAG,EAAE;4CACb,WAAW;wCACb,CAAC;qCACF,CAAC;oCACF,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;iCACxB,CAAC;6BACH;4BAED,8DAA8D;4BAC9D,OAAQ,aAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;wBAC/E,CAAC,CAAC;YAEN,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE;gBACnC,WAAW;YACb,CAAC,CAAC;SACH;KACF;AACH,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { describe, it, expect } from '@jest/globals';
1
2
  import path from 'path';
2
3
  import { fileURLToPath } from 'url';
3
4
  import { tryRequire } from './tryRequire.cjs';
@@ -1 +1 @@
1
- {"version":3,"file":"tryRequire.test.js","sourceRoot":"","sources":["../src/tryRequire.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;AAElE,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"tryRequire.test.js","sourceRoot":"","sources":["../src/tryRequire.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;AAElE,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.28.7"
8
+ "packageVersion": "7.29.5"
9
9
  }
10
10
  ]
11
11
  }
@@ -1,9 +1,8 @@
1
1
  import fs from 'fs';
2
- import os from 'os';
3
2
  import path from 'path';
4
3
  import { createESMStub } from './createESMStub.js';
5
- import { slash } from '@ms-cloudpack/path-utilities';
6
- const { writeFile } = fs.promises;
4
+ import { findPackageRoot, slash } from '@ms-cloudpack/path-utilities';
5
+ const { writeFile, mkdir } = fs.promises;
7
6
  /**
8
7
  * Generates an ESM stub for CommonJS modules.
9
8
  */
@@ -11,9 +10,16 @@ export async function writeESMStub(entryPath, stubPath) {
11
10
  // Ensure forward slashes
12
11
  entryPath = slash(entryPath);
13
12
  // Ensure stub path is provided.
14
- stubPath ?? (stubPath = path.join(os.tmpdir(), `esm-stub-${Date.now()}.js`));
13
+ if (!stubPath) {
14
+ const rootPath = findPackageRoot(entryPath);
15
+ const extension = path.extname(entryPath);
16
+ const stubFilename = path.basename(entryPath, extension) + '-stub.js';
17
+ const stubFolderPath = path.join(rootPath, 'node_modules/.cache/cloudpack-stubs/');
18
+ await mkdir(stubFolderPath, { recursive: true });
19
+ stubPath = path.join(stubFolderPath, stubFilename);
20
+ }
15
21
  // If we have a package export, we can generate an ESM stub.
16
- const esmStub = createESMStub(entryPath, stubPath);
22
+ const esmStub = await createESMStub(entryPath, stubPath);
17
23
  // Write the stub to disk.
18
24
  await writeFile(stubPath, esmStub);
19
25
  return stubPath;
@@ -1 +1 @@
1
- {"version":3,"file":"writeESMStub.js","sourceRoot":"","sources":["../src/writeESMStub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAErD,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC;AAElC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,SAAiB,EAAE,QAAiB;IACrE,yBAAyB;IACzB,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IAE7B,gCAAgC;IAChC,QAAQ,KAAR,QAAQ,GAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,YAAY,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAAC;IAEjE,4DAA4D;IAC5D,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEnD,0BAA0B;IAC1B,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEnC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"writeESMStub.js","sourceRoot":"","sources":["../src/writeESMStub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAEtE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,SAAiB,EAAE,QAAiB;IACrE,yBAAyB;IACzB,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IAE7B,gCAAgC;IAChC,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC;QACtE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,sCAAsC,CAAC,CAAC;QAEnF,MAAM,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjD,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;KACpD;IAED,4DAA4D;IAC5D,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEzD,0BAA0B;IAC1B,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEnC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ms-cloudpack/esm-stub-utilities",
3
- "version": "0.1.2",
3
+ "version": "0.2.2",
4
4
  "description": "Generates ESM stubs for CommonJS entry files.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -17,7 +17,7 @@
17
17
  "atob": "^2.1.2",
18
18
  "btoa": "^1.2.1",
19
19
  "jsdom-global": "^3.0.2",
20
- "jsdom": "^19.0.0",
20
+ "jsdom": "^20.0.0",
21
21
  "regenerator-runtime": "^0.13.9"
22
22
  },
23
23
  "devDependencies": {
@@ -26,7 +26,7 @@
26
26
  "@types/atob": "2.1.2",
27
27
  "@types/btoa": "1.2.3",
28
28
  "@types/jsdom-global": "3.0.3",
29
- "@types/jsdom": "16.2.15",
29
+ "@types/jsdom": "20.0.0",
30
30
  "@types/regenerator-runtime": "0.13.1",
31
31
  "react-dom": "17.0.2",
32
32
  "react": "17.0.2"