@forge/bundler 7.0.2-next.9-experimental-28c9ab7 → 7.0.3-next.0

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.md CHANGED
@@ -1,11 +1,25 @@
1
1
  # @forge/bundler
2
2
 
3
- ## 7.0.2-next.9-experimental-28c9ab7
3
+ ## 7.0.3-next.0
4
4
 
5
5
  ### Patch Changes
6
6
 
7
+ - Updated dependencies [d706cd8]
8
+ - Updated dependencies [ca4fa27]
9
+ - @forge/manifest@13.3.0-next.0
10
+ - @forge/cli-shared@9.3.0-next.0
11
+ - @forge/lint@6.0.3-next.0
12
+
13
+ ## 7.0.2
14
+
15
+ ### Patch Changes
16
+
17
+ - f408181: Reject dependencies outside application directory
7
18
  - 6e5b5a4: Better interface for packaging the runtime code
8
19
  - Updated dependencies [4c5ba1c]
20
+ - Updated dependencies [2b30ef8]
21
+ - Updated dependencies [756c284]
22
+ - Updated dependencies [f408181]
9
23
  - Updated dependencies [903d6c1]
10
24
  - Updated dependencies [794aa2a]
11
25
  - Updated dependencies [8826ca3]
@@ -15,11 +29,55 @@
15
29
  - Updated dependencies [5abe69e]
16
30
  - Updated dependencies [7195f29]
17
31
  - Updated dependencies [3252a62]
32
+ - Updated dependencies [119be75]
18
33
  - Updated dependencies [c67b720]
19
34
  - Updated dependencies [3991f92]
20
- - @forge/manifest@13.2.0-next.4-experimental-28c9ab7
21
- - @forge/cli-shared@9.2.0-next.8-experimental-28c9ab7
22
- - @forge/lint@6.0.2-next.9-experimental-28c9ab7
35
+ - @forge/manifest@13.2.0
36
+ - @forge/cli-shared@9.2.0
37
+ - @forge/lint@6.0.2
38
+
39
+ ## 7.0.2-next.14
40
+
41
+ ### Patch Changes
42
+
43
+ - Updated dependencies [794aa2a]
44
+ - @forge/cli-shared@9.2.0-next.13
45
+ - @forge/lint@6.0.2-next.14
46
+
47
+ ## 7.0.2-next.13
48
+
49
+ ### Patch Changes
50
+
51
+ - Updated dependencies [119be75]
52
+ - @forge/manifest@13.2.0-next.6
53
+ - @forge/cli-shared@9.2.0-next.12
54
+ - @forge/lint@6.0.2-next.13
55
+
56
+ ## 7.0.2-next.12
57
+
58
+ ### Patch Changes
59
+
60
+ - Updated dependencies [756c284]
61
+ - @forge/cli-shared@9.2.0-next.11
62
+ - @forge/lint@6.0.2-next.12
63
+
64
+ ## 7.0.2-next.11
65
+
66
+ ### Patch Changes
67
+
68
+ - f408181: Reject dependencies outside application directory
69
+ - Updated dependencies [f408181]
70
+ - @forge/cli-shared@9.2.0-next.10
71
+ - @forge/lint@6.0.2-next.11
72
+
73
+ ## 7.0.2-next.10
74
+
75
+ ### Patch Changes
76
+
77
+ - Updated dependencies [2b30ef8]
78
+ - @forge/manifest@13.2.0-next.5
79
+ - @forge/cli-shared@9.2.0-next.9
80
+ - @forge/lint@6.0.2-next.10
23
81
 
24
82
  ## 7.0.2-next.9
25
83
 
@@ -1 +1 @@
1
- {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../src/dependencies.ts"],"names":[],"mappings":"AA2CA,KAAK,eAAe,GAAG;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAyBF,eAAO,MAAM,iCAAiC;;CAE7C,CAAC;AAYF,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAI9B;AAoDD,wBAAsB,0BAA0B,CAC9C,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CAKf"}
1
+ {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../src/dependencies.ts"],"names":[],"mappings":"AAoDA,KAAK,eAAe,GAAG;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAyBF,eAAO,MAAM,iCAAiC;;CAE7C,CAAC;AAYF,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAI9B;AAsDD,wBAAsB,0BAA0B,CAC9C,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CAKf"}
@@ -9,6 +9,10 @@ const promises_1 = require("fs/promises");
9
9
  const path_1 = tslib_1.__importDefault(require("path"));
10
10
  const fs_extra_1 = require("fs-extra");
11
11
  const common_1 = require("./common");
12
+ function isWithinRoot(root, source) {
13
+ const relativeToRoot = path_1.default.relative(path_1.default.resolve(root), path_1.default.resolve(source));
14
+ return relativeToRoot === '' || (!relativeToRoot.startsWith('..') && !path_1.default.isAbsolute(relativeToRoot));
15
+ }
12
16
  async function readPackageJSON(directory) {
13
17
  try {
14
18
  const packageJson = await (0, promises_1.readFile)(path_1.default.join(directory, 'package.json'), 'utf8');
@@ -18,8 +22,8 @@ async function readPackageJSON(directory) {
18
22
  return null;
19
23
  }
20
24
  }
21
- async function dependencyDir(moduleDir, dependency) {
22
- for (let source = moduleDir; source !== path_1.default.dirname(source); source = path_1.default.dirname(source)) {
25
+ async function dependencyDir(moduleDir, dependency, root) {
26
+ for (let source = path_1.default.resolve(moduleDir); source !== path_1.default.dirname(source) && isWithinRoot(root, source); source = path_1.default.dirname(source)) {
23
27
  const candidate = path_1.default.join(source, common_1.NODE_MODULES_DIR, dependency);
24
28
  if ((0, fs_1.existsSync)(candidate)) {
25
29
  return candidate;
@@ -37,16 +41,18 @@ async function getProductionDependencies(moduleDir, options) {
37
41
  }
38
42
  async function enumerateProductionDependencies(moduleDir, options, root, result, visited) {
39
43
  const packageDef = await readPackageJSON(moduleDir);
40
- if (!packageDef) {
44
+ if (!packageDef?.dependencies) {
41
45
  return;
42
46
  }
43
- const exclude = options?.exclude ?? [];
44
- for (const dependency of Object.keys(packageDef.dependencies ?? {})) {
45
- if (exclude.includes(dependency)) {
47
+ for (const dependency of Object.keys(packageDef.dependencies)) {
48
+ if (options.exclude?.includes(dependency)) {
46
49
  continue;
47
50
  }
48
- const source = await dependencyDir(moduleDir, dependency);
51
+ const source = await dependencyDir(moduleDir, dependency, root);
49
52
  if (source) {
53
+ if (!isWithinRoot(root, source)) {
54
+ continue;
55
+ }
50
56
  const destination = path_1.default.relative(root, source);
51
57
  if (visited.has(destination)) {
52
58
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"wrapper-provider.d.ts","sourceRoot":"","sources":["../src/wrapper-provider.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,SAAS,EAGT,cAAc,EACf,MAAM,mBAAmB,CAAC;AAW3B,qBAAa,yBAA0B,SAAQ,SAAS;;CAIvD;AAED,qBAAa,mBAAoB,SAAQ,SAAS;gBACpC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;CAGhD;AAED,qBAAa,yBAA0B,SAAQ,SAAS;gBAC1C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS;CAG3D;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,qBAAqB,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAChD,oBAAoB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;CAC5D;AAOD,qBAAa,oBAAqB,YAAW,eAAe;IAExD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADX,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,MAAM;YAExB,cAAc;IAatB,qBAAqB,IAAI,OAAO,CAAC,aAAa,CAAC;IAI/C,oBAAoB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;CAGjE;AAED,qBAAa,sBAAuB,YAAW,eAAe;IAKhD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc;IAJ7D,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,MAAM,CAA4B;IAC1C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEM,cAAc,EAAE,cAAc;YAI/C,sBAAsB;IAgBpC,OAAO,CAAC,cAAc,CAoCpB;IAEI,qBAAqB,IAAI,OAAO,CAAC,aAAa,CAAC;IAO/C,oBAAoB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;CAQjE;AAED,eAAO,MAAM,kBAAkB,GAAI,sCAGhC;IACD,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;CAChC,kDAQA,CAAC"}
1
+ {"version":3,"file":"wrapper-provider.d.ts","sourceRoot":"","sources":["../src/wrapper-provider.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,SAAS,EAGT,cAAc,EACf,MAAM,mBAAmB,CAAC;AAW3B,qBAAa,yBAA0B,SAAQ,SAAS;;CAIvD;AAED,qBAAa,mBAAoB,SAAQ,SAAS;gBACpC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;CAGhD;AAED,qBAAa,yBAA0B,SAAQ,SAAS;gBAC1C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS;CAG3D;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,qBAAqB,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAChD,oBAAoB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;CAC5D;AAOD,qBAAa,oBAAqB,YAAW,eAAe;IAExD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADX,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,MAAM;YAExB,cAAc;IAatB,qBAAqB,IAAI,OAAO,CAAC,aAAa,CAAC;IAI/C,oBAAoB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;CAGjE;AAED,qBAAa,sBAAuB,YAAW,eAAe;IAKhD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc;IAJ7D,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,MAAM,CAA4B;IAC1C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEM,cAAc,EAAE,cAAc;YAI/C,sBAAsB;IAgBpC,OAAO,CAAC,cAAc,CAuCpB;IAEI,qBAAqB,IAAI,OAAO,CAAC,aAAa,CAAC;IAO/C,oBAAoB,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;CAQjE;AAED,eAAO,MAAM,kBAAkB,GAAI,sCAGhC;IACD,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;CAChC,kDAQA,CAAC"}
@@ -22,7 +22,7 @@ class LocalWrapperNotFoundError extends cli_shared_1.UserError {
22
22
  exports.LocalWrapperNotFoundError = LocalWrapperNotFoundError;
23
23
  class WrapperNetworkError extends cli_shared_1.BaseError {
24
24
  constructor(message, requestId) {
25
- super(undefined, message);
25
+ super(requestId, message);
26
26
  }
27
27
  }
28
28
  exports.WrapperNetworkError = WrapperNetworkError;
@@ -105,6 +105,9 @@ class NetworkWrapperProvider {
105
105
  if (e instanceof ParseWrapperCDNIndexError) {
106
106
  throw e;
107
107
  }
108
+ if (e instanceof WrapperNetworkError) {
109
+ throw e;
110
+ }
108
111
  throw new WrapperNetworkError(e instanceof Error ? e.message : 'Networking error when retrieving runtime component, retry the command.');
109
112
  }
110
113
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/bundler",
3
- "version": "7.0.2-next.9-experimental-28c9ab7",
3
+ "version": "7.0.3-next.0",
4
4
  "description": "Default bundler for Forge apps",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "author": "Atlassian",
@@ -21,10 +21,10 @@
21
21
  "@babel/plugin-transform-react-jsx": "^7.23.4",
22
22
  "@babel/traverse": "^7.24.0",
23
23
  "@babel/types": "^7.24.0",
24
- "@forge/cli-shared": "9.2.0-next.8-experimental-28c9ab7",
24
+ "@forge/cli-shared": "9.3.0-next.0",
25
25
  "@forge/i18n": "1.0.0",
26
- "@forge/lint": "6.0.2-next.9-experimental-28c9ab7",
27
- "@forge/manifest": "13.2.0-next.4-experimental-28c9ab7",
26
+ "@forge/lint": "6.0.3-next.0",
27
+ "@forge/manifest": "13.3.0-next.0",
28
28
  "babel-loader": "^8.3.0",
29
29
  "cheerio": "^1.2.0",
30
30
  "cross-spawn": "^7.0.6",