@ms-cloudpack/bundler 0.9.1 → 0.9.3

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,67 @@
2
2
  "name": "@ms-cloudpack/bundler",
3
3
  "entries": [
4
4
  {
5
- "date": "Wed, 25 Jan 2023 08:11:01 GMT",
5
+ "date": "Tue, 31 Jan 2023 08:08:54 GMT",
6
+ "tag": "@ms-cloudpack/bundler_v0.9.3",
7
+ "version": "0.9.3",
8
+ "comments": {
9
+ "patch": [
10
+ {
11
+ "author": "elcraig@microsoft.com",
12
+ "package": "@ms-cloudpack/bundler",
13
+ "commit": "243bfddf2ccffa5d6aa479105156b8a5de0e66c2",
14
+ "comment": "Don't publish test files"
15
+ },
16
+ {
17
+ "author": "beachball",
18
+ "package": "@ms-cloudpack/bundler",
19
+ "comment": "Bump @ms-cloudpack/bundler-plugin-ori to v0.7.16",
20
+ "commit": "d841a4219d236c863ef97e9b20ad1bc143e8bc84"
21
+ },
22
+ {
23
+ "author": "beachball",
24
+ "package": "@ms-cloudpack/bundler",
25
+ "comment": "Bump @ms-cloudpack/bundler-plugin-rollup to v0.5.10",
26
+ "commit": "d841a4219d236c863ef97e9b20ad1bc143e8bc84"
27
+ },
28
+ {
29
+ "author": "beachball",
30
+ "package": "@ms-cloudpack/bundler",
31
+ "comment": "Bump @ms-cloudpack/bundler-types to v0.9.1",
32
+ "commit": "d841a4219d236c863ef97e9b20ad1bc143e8bc84"
33
+ },
34
+ {
35
+ "author": "beachball",
36
+ "package": "@ms-cloudpack/bundler",
37
+ "comment": "Bump @ms-cloudpack/package-utilities to v2.3.1",
38
+ "commit": "d841a4219d236c863ef97e9b20ad1bc143e8bc84"
39
+ }
40
+ ]
41
+ }
42
+ },
43
+ {
44
+ "date": "Thu, 26 Jan 2023 08:12:44 GMT",
45
+ "tag": "@ms-cloudpack/bundler_v0.9.2",
46
+ "version": "0.9.2",
47
+ "comments": {
48
+ "patch": [
49
+ {
50
+ "author": "beachball",
51
+ "package": "@ms-cloudpack/bundler",
52
+ "comment": "Bump @ms-cloudpack/bundler-plugin-ori to v0.7.15",
53
+ "commit": "6b62ab60495f81a59c6d85db4f9585bcc115c7c7"
54
+ },
55
+ {
56
+ "author": "beachball",
57
+ "package": "@ms-cloudpack/bundler",
58
+ "comment": "Bump @ms-cloudpack/bundler-plugin-rollup to v0.5.9",
59
+ "commit": "6b62ab60495f81a59c6d85db4f9585bcc115c7c7"
60
+ }
61
+ ]
62
+ }
63
+ },
64
+ {
65
+ "date": "Wed, 25 Jan 2023 08:11:21 GMT",
6
66
  "tag": "@ms-cloudpack/bundler_v0.9.1",
7
67
  "version": "0.9.1",
8
68
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,12 +1,33 @@
1
1
  # Change Log - @ms-cloudpack/bundler
2
2
 
3
- This log was last generated on Wed, 25 Jan 2023 08:11:01 GMT and should not be manually modified.
3
+ This log was last generated on Tue, 31 Jan 2023 08:08:54 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 0.9.3
8
+
9
+ Tue, 31 Jan 2023 08:08:54 GMT
10
+
11
+ ### Patches
12
+
13
+ - Don't publish test files (elcraig@microsoft.com)
14
+ - Bump @ms-cloudpack/bundler-plugin-ori to v0.7.16
15
+ - Bump @ms-cloudpack/bundler-plugin-rollup to v0.5.10
16
+ - Bump @ms-cloudpack/bundler-types to v0.9.1
17
+ - Bump @ms-cloudpack/package-utilities to v2.3.1
18
+
19
+ ## 0.9.2
20
+
21
+ Thu, 26 Jan 2023 08:12:44 GMT
22
+
23
+ ### Patches
24
+
25
+ - Bump @ms-cloudpack/bundler-plugin-ori to v0.7.15
26
+ - Bump @ms-cloudpack/bundler-plugin-rollup to v0.5.9
27
+
7
28
  ## 0.9.1
8
29
 
9
- Wed, 25 Jan 2023 08:11:01 GMT
30
+ Wed, 25 Jan 2023 08:11:21 GMT
10
31
 
11
32
  ### Patches
12
33
 
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.33.7"
8
+ "packageVersion": "7.34.0"
9
9
  }
10
10
  ]
11
11
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ms-cloudpack/bundler",
3
- "version": "0.9.1",
3
+ "version": "0.9.3",
4
4
  "description": "An abstraction to bundle source code.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -14,10 +14,10 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "@ms-cloudpack/json-utilities": "^0.0.4",
17
- "@ms-cloudpack/bundler-plugin-ori": "^0.7.14",
18
- "@ms-cloudpack/bundler-plugin-rollup": "^0.5.8",
19
- "@ms-cloudpack/bundler-types": "^0.9.0",
20
- "@ms-cloudpack/package-utilities": "^2.3.0"
17
+ "@ms-cloudpack/bundler-plugin-ori": "^0.7.16",
18
+ "@ms-cloudpack/bundler-plugin-rollup": "^0.5.10",
19
+ "@ms-cloudpack/bundler-types": "^0.9.1",
20
+ "@ms-cloudpack/package-utilities": "^2.3.1"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@ms-cloudpack/scripts": "*",
@@ -35,6 +35,6 @@
35
35
  "test": "cloudpack-scripts test"
36
36
  },
37
37
  "files": [
38
- "/lib"
38
+ "lib/**/!(*.test.*)"
39
39
  ]
40
40
  }
@@ -1 +0,0 @@
1
- export {};
@@ -1,91 +0,0 @@
1
- import { describe, it, expect, afterEach } from '@jest/globals';
2
- import { getEntriesMapFromPackage } from './getEntriesMapFromPackage.js';
3
- import { createTestFileStructure } from '@ms-cloudpack/test-utilities';
4
- import path from 'path';
5
- import fs from 'fs';
6
- const { rm } = fs.promises;
7
- describe('getEntriesMapFromPackage', () => {
8
- let inputPath;
9
- afterEach(async () => {
10
- if (inputPath) {
11
- await rm(inputPath, { recursive: true });
12
- inputPath = undefined;
13
- }
14
- });
15
- it('returns an index.js entry correctly by inferring entries from the main entry', async () => {
16
- inputPath = await createTestFileStructure({
17
- 'package.json': { main: 'index.js' },
18
- 'index.js': 'export default 1;',
19
- });
20
- expect(await getEntriesMapFromPackage({ inputPath })).toEqual({
21
- './index': './index.js',
22
- });
23
- });
24
- it('references source paths for an internal package', async () => {
25
- inputPath = await createTestFileStructure({
26
- 'package.json': { main: './lib/index.js' },
27
- 'src/index.ts': 'export default 1;',
28
- });
29
- expect(await getEntriesMapFromPackage({ inputPath })).toEqual({
30
- './lib/index': './src/index.ts',
31
- });
32
- });
33
- it('references intermediate paths for an external package', async () => {
34
- inputPath = await createTestFileStructure({
35
- 'node_modules/foo/package.json': { main: './lib/index.js' },
36
- 'node_modules/foo/src/index.ts': 'export default 1;',
37
- 'node_modules/foo/lib/index.js': 'export default 1;',
38
- });
39
- expect(await getEntriesMapFromPackage({ inputPath: path.join(inputPath, 'node_modules/foo') })).toEqual({
40
- './lib/index': './lib/index.js',
41
- });
42
- });
43
- it('respects exports maps and references intermediate when src path does not exist', async () => {
44
- inputPath = await createTestFileStructure({
45
- 'package.json': {
46
- exports: {
47
- '.': './lib/index.js',
48
- },
49
- },
50
- 'lib/index.js': 'export default 1;',
51
- });
52
- // Note: the key is the output path to the input; not the key of the exports map.
53
- expect(await getEntriesMapFromPackage({ inputPath })).toEqual({
54
- './lib/index': './lib/index.js',
55
- });
56
- });
57
- it('ignores entries that are not valid bundle-able entries', async () => {
58
- inputPath = await createTestFileStructure({
59
- 'package.json': {
60
- exports: {
61
- './index': './lib/index.js',
62
- './index.js.map': './lib/index.js.map',
63
- },
64
- },
65
- });
66
- expect(await getEntriesMapFromPackage({ inputPath })).toEqual({
67
- './lib/index': './lib/index.js',
68
- });
69
- });
70
- it('respects source entries in the exports map', async () => {
71
- inputPath = await createTestFileStructure({
72
- 'package.json': {
73
- exports: {
74
- './index': {
75
- import: './lib/index.js',
76
- source: './random/path/to/source/index.ts',
77
- },
78
- './lib/foo': './lib/foo.js',
79
- },
80
- },
81
- 'lib/index.js': 'export default 1;',
82
- 'src/foo.ts': 'export default 1;',
83
- 'random/path/to/source/index.ts': 'export default 1;',
84
- });
85
- expect(await getEntriesMapFromPackage({ inputPath })).toEqual({
86
- './lib/index': './random/path/to/source/index.ts',
87
- './lib/foo': './src/foo.ts',
88
- });
89
- });
90
- });
91
- //# sourceMappingURL=getEntriesMapFromPackage.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getEntriesMapFromPackage.test.js","sourceRoot":"","sources":["../src/getEntriesMapFromPackage.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,54 +0,0 @@
1
- import { describe, it, expect, afterEach } from '@jest/globals';
2
- import { getExternalsFromPackage } from './getExternalsFromPackage.js';
3
- import { createTestFileStructure } from '@ms-cloudpack/test-utilities';
4
- import fs from 'fs';
5
- const { rm } = fs.promises;
6
- describe('getExternalsFromPackage', () => {
7
- let inputPath;
8
- afterEach(async () => {
9
- if (inputPath) {
10
- await rm(inputPath, { recursive: true });
11
- inputPath = undefined;
12
- }
13
- });
14
- it('returns an empty array when no package definition is found', async () => {
15
- inputPath = await createTestFileStructure({
16
- 'package.json': {},
17
- });
18
- expect(await getExternalsFromPackage({ inputPath })).toEqual([]);
19
- });
20
- it('returns dependencies from the package', async () => {
21
- inputPath = await createTestFileStructure({
22
- 'package.json': {
23
- dependencies: {
24
- dep1: '1.0.0',
25
- dep2: '2.0.0',
26
- },
27
- devDependencies: {
28
- devDep1: '1.0.0',
29
- devDep2: '2.0.0',
30
- react: '1.0.0',
31
- },
32
- peerDependencies: {
33
- peer1: '1.0.0',
34
- peer2: '2.0.0',
35
- react: '^1.0.0',
36
- },
37
- peerDependenciesMeta: {
38
- peer3: { optional: true },
39
- },
40
- },
41
- });
42
- expect(await getExternalsFromPackage({ inputPath })).toEqual([
43
- 'dep1',
44
- 'dep2',
45
- 'devDep1',
46
- 'devDep2',
47
- 'react',
48
- 'peer1',
49
- 'peer2',
50
- 'peer3',
51
- ]);
52
- });
53
- });
54
- //# sourceMappingURL=getExternalsFromPackage.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getExternalsFromPackage.test.js","sourceRoot":"","sources":["../src/getExternalsFromPackage.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC;AAE3B,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,IAAI,SAA6B,CAAC;IAElC,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,IAAI,SAAS,EAAE;YACb,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzC,SAAS,GAAG,SAAS,CAAC;SACvB;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,SAAS,GAAG,MAAM,uBAAuB,CAAC;YACxC,cAAc,EAAE,EAAE;SACnB,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,uBAAuB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,SAAS,GAAG,MAAM,uBAAuB,CAAC;YACxC,cAAc,EAAE;gBACd,YAAY,EAAE;oBACZ,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,OAAO;iBACd;gBACD,eAAe,EAAE;oBACf,OAAO,EAAE,OAAO;oBAChB,OAAO,EAAE,OAAO;oBAChB,KAAK,EAAE,OAAO;iBACf;gBACD,gBAAgB,EAAE;oBAChB,KAAK,EAAE,OAAO;oBACd,KAAK,EAAE,OAAO;oBACd,KAAK,EAAE,QAAQ;iBAChB;gBACD,oBAAoB,EAAE;oBACpB,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAC1B;aACF;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,uBAAuB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAC3D,MAAM;YACN,MAAM;YACN,SAAS;YACT,SAAS;YACT,OAAO;YACP,OAAO;YACP,OAAO;YACP,OAAO;SACR,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,38 +0,0 @@
1
- import { describe, expect, it } from '@jest/globals';
2
- import { isValidBundleEntry } from './isValidBundleEntry.js';
3
- describe('isValidBundleEntry', () => {
4
- it('returns true for bundlable files', () => {
5
- [
6
- './foo.js',
7
- './foo.mjs',
8
- './foo.cjs',
9
- './foo.ts',
10
- './foo.tsx',
11
- './foo.json',
12
- './foo.css',
13
- './foo.scss',
14
- './foo.svg',
15
- './foo.png',
16
- './foo.jpg',
17
- './foo.jpeg',
18
- './foo.bmp',
19
- './foo.gif',
20
- './foo.webp',
21
- './foo.mp3',
22
- './foo.mp4',
23
- './foo.woff',
24
- './foo.woff2',
25
- './foo.ttf',
26
- './foo.otf',
27
- './foo.htm',
28
- './foo.html',
29
- './foo.txt',
30
- ].forEach((filePath) => {
31
- expect(isValidBundleEntry(filePath)).toBe(true);
32
- });
33
- });
34
- it('returns false for non-bundleable files', () => {
35
- expect(isValidBundleEntry('./foo.bar')).toBe(false);
36
- });
37
- });
38
- //# sourceMappingURL=isValidBundleEntry.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isValidBundleEntry.test.js","sourceRoot":"","sources":["../src/isValidBundleEntry.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C;YACE,UAAU;YACV,WAAW;YACX,WAAW;YACX,UAAU;YACV,WAAW;YACX,YAAY;YACZ,WAAW;YACX,YAAY;YACZ,WAAW;YACX,WAAW;YACX,WAAW;YACX,YAAY;YACZ,WAAW;YACX,WAAW;YACX,YAAY;YACZ,WAAW;YACX,WAAW;YACX,YAAY;YACZ,aAAa;YACb,WAAW;YACX,WAAW;YACX,WAAW;YACX,YAAY;YACZ,WAAW;SACZ,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YACrB,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}