ember-cli 4.12.0-beta.0 → 4.13.0-beta.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.
Files changed (59) hide show
  1. package/.github/workflows/ci.yml +4 -5
  2. package/CHANGELOG.md +47 -3
  3. package/CONTRIBUTING.md +1 -1
  4. package/bin/ember +0 -0
  5. package/blueprints/addon/files/.github/workflows/ci.yml +3 -3
  6. package/blueprints/addon/files/.travis.yml +1 -1
  7. package/blueprints/addon/files/README.md +1 -1
  8. package/blueprints/addon/files/npmignore +0 -6
  9. package/blueprints/app/files/.eslintignore +0 -12
  10. package/blueprints/app/files/.github/workflows/ci.yml +2 -2
  11. package/blueprints/app/files/.prettierignore +1 -13
  12. package/blueprints/app/files/.travis.yml +1 -1
  13. package/blueprints/app/files/.watchmanconfig +1 -1
  14. package/blueprints/app/files/gitignore +0 -8
  15. package/blueprints/app/files/package.json +16 -16
  16. package/blueprints/in-repo-addon/files/__root__/__name__/index.js +0 -0
  17. package/blueprints/in-repo-addon/index.js +0 -0
  18. package/blueprints/lib/index.js +0 -0
  19. package/blueprints/server/index.js +0 -27
  20. package/docs/build/data.json +628 -812
  21. package/lib/broccoli/default-packager.js +2 -79
  22. package/lib/broccoli/ember-addon.js +0 -4
  23. package/lib/broccoli/ember-app.js +19 -460
  24. package/lib/cli/cli.js +0 -9
  25. package/lib/commands/addon.js +0 -1
  26. package/lib/commands/init.js +0 -8
  27. package/lib/commands/install.js +2 -2
  28. package/lib/commands/new.js +0 -1
  29. package/lib/commands/serve.js +1 -1
  30. package/lib/experiments/index.js +2 -2
  31. package/lib/models/addon.js +38 -113
  32. package/lib/models/blueprint.js +0 -115
  33. package/lib/models/command.js +3 -4
  34. package/lib/models/package-info-cache/package-info.js +1 -5
  35. package/lib/models/project.js +2 -87
  36. package/lib/tasks/interactive-new.js +1 -1
  37. package/lib/tasks/npm-task.js +0 -15
  38. package/lib/tasks/server/express-server.js +0 -1
  39. package/lib/tasks/server/middleware/broccoli-watcher/index.js +5 -5
  40. package/lib/tasks/server/middleware/history-support/index.js +6 -7
  41. package/lib/tasks/server/middleware/testem-url-rewriter/index.js +0 -10
  42. package/lib/tasks/server/middleware/tests-server/index.js +8 -9
  43. package/lib/utilities/ember-app-utils.js +1 -21
  44. package/lib/utilities/get-serve-url.js +2 -2
  45. package/package.json +13 -23
  46. package/tests/helpers/acceptance.js +1 -3
  47. package/tests/helpers/command-generator.js +2 -2
  48. package/tests/helpers/default-packager.js +3 -9
  49. package/tests/helpers/init-app.js +1 -1
  50. package/tests/helpers/mock-project.js +1 -1
  51. package/tests/helpers/package-cache.js +2 -19
  52. package/blueprints/server/files/server/.jshintrc +0 -3
  53. package/blueprints/vendor-shim/files/vendor/shims/__name__.js +0 -12
  54. package/blueprints/vendor-shim/index.js +0 -30
  55. package/lib/broccoli/babel-process-modules-only.js +0 -18
  56. package/lib/models/installation-checker.js +0 -87
  57. package/lib/tasks/bower-install.js +0 -175
  58. package/lib/utilities/ember-cli-babel-config-key.js +0 -12
  59. package/lib/utilities/find-addon-by-name.js +0 -39
@@ -27,7 +27,7 @@ jobs:
27
27
  - uses: actions/checkout@v3
28
28
  - uses: actions/setup-node@v3
29
29
  with:
30
- node-version: 14.x
30
+ node-version: 16
31
31
  cache: 'yarn'
32
32
 
33
33
  - run: yarn install --frozen-lockfile --non-interactive
@@ -45,7 +45,7 @@ jobs:
45
45
  - uses: actions/checkout@v3
46
46
  - uses: actions/setup-node@v3
47
47
  with:
48
- node-version: 14.x
48
+ node-version: 16
49
49
  cache: 'yarn'
50
50
 
51
51
  - run: yarn install --frozen-lockfile --non-interactive
@@ -60,7 +60,7 @@ jobs:
60
60
  strategy:
61
61
  fail-fast: false
62
62
  matrix:
63
- node-version: [14.x, 16.x, 18.x]
63
+ node-version: [16, 18]
64
64
  os: [ubuntu, windows]
65
65
 
66
66
  steps:
@@ -84,7 +84,6 @@ jobs:
84
84
  matrix:
85
85
  feature-flag:
86
86
  - ENABLE_ALL_EXPERIMENTS
87
- - PACKAGER
88
87
  - EMBROIDER
89
88
  - CLASSIC
90
89
 
@@ -92,7 +91,7 @@ jobs:
92
91
  - uses: actions/checkout@v3
93
92
  - uses: actions/setup-node@v3
94
93
  with:
95
- node-version: 14.x
94
+ node-version: 16
96
95
  cache: 'yarn'
97
96
 
98
97
  - run: yarn install --frozen-lockfile --non-interactive
package/CHANGELOG.md CHANGED
@@ -1,11 +1,55 @@
1
1
  # ember-cli Changelog
2
2
 
3
- ## v4.12.0-beta.0
3
+ ## v4.13.0-beta.0
4
4
 
5
5
  #### Blueprint Changes
6
6
 
7
- - [`ember new` diff](https://github.com/ember-cli/ember-new-output/compare/v4.11.0...v4.12.0-beta.0)
8
- - [`ember addon` diff](https://github.com/ember-cli/ember-addon-output/compare/v4.11.0...v4.12.0-beta.0)
7
+ - [`ember new` diff](https://github.com/ember-cli/ember-new-output/compare/v4.12.0...v4.13.0-beta.0)
8
+ - [`ember addon` diff](https://github.com/ember-cli/ember-addon-output/compare/v4.12.0...v4.13.0-beta.0)
9
+
10
+ #### Changelog
11
+
12
+ - [#10019](https://github.com/ember-cli/ember-cli/pull/10019) [CLEANUP] Drop support for the `baseURL` environment option [@bertdeblock](https://github.com/bertdeblock)
13
+ - [#10106](https://github.com/ember-cli/ember-cli/pull/10106) [CLEANUP] Remove deprecated `PACKAGER` experiment [@bertdeblock](https://github.com/bertdeblock)
14
+ - [#10175](https://github.com/ember-cli/ember-cli/pull/10175) [CLEANUP] Clean up `blacklist-whitelist-build-options` deprecation [@bertdeblock](https://github.com/bertdeblock)
15
+ - [#10176](https://github.com/ember-cli/ember-cli/pull/10176) [CLEANUP] Clean up `vendor-shim-blueprint` deprecation [@bertdeblock](https://github.com/bertdeblock)
16
+ - [#10177](https://github.com/ember-cli/ember-cli/pull/10177) [CLEANUP] Clean up `ember-cli-jshint-support` deprecation [@bertdeblock](https://github.com/bertdeblock)
17
+ - [#10178](https://github.com/ember-cli/ember-cli/pull/10178) [CLEANUP] Remove all Bower entries from ignore files in `app` and `addon` blueprints [@bertdeblock](https://github.com/bertdeblock)
18
+ - [#10182](https://github.com/ember-cli/ember-cli/pull/10182) [CLEANUP] Clean up `project.bower-dependencies` deprecation [@bertdeblock](https://github.com/bertdeblock)
19
+ - [#10183](https://github.com/ember-cli/ember-cli/pull/10183) [CLEANUP] Clean up `project.bower-directory` deprecation [@bertdeblock](https://github.com/bertdeblock)
20
+ - [#10184](https://github.com/ember-cli/ember-cli/pull/10184) [CLEANUP] Clean up `blueprint.add-bower-package-to-project` and `blueprint.add-bower-packages-to-project` deprecations [@bertdeblock](https://github.com/bertdeblock)
21
+ - [#10185](https://github.com/ember-cli/ember-cli/pull/10185) [CLEANUP] Drop support for the `EMBER_CLI_ERROR_ON_INVALID_ADDON` env flag [@bertdeblock](https://github.com/bertdeblock)
22
+ - [#10186](https://github.com/ember-cli/ember-cli/pull/10186) [CLEANUP] Drop support for installing Bower packages [@bertdeblock](https://github.com/bertdeblock)
23
+ - [#10193](https://github.com/ember-cli/ember-cli/pull/10193) [CLEANUP] Drop support for `ember-cli-babel` v5 and v6 [@bertdeblock](https://github.com/bertdeblock)
24
+ - [#10194](https://github.com/ember-cli/ember-cli/pull/10194) [CLEANUP] Drop support for `ember-cli-shims` [@bertdeblock](https://github.com/bertdeblock)
25
+ - [#10195](https://github.com/ember-cli/ember-cli/pull/10195) [CLEANUP] Remove automatic inclusion of jQuery in legacy Ember versions [@bertdeblock](https://github.com/bertdeblock)
26
+ - [#10196](https://github.com/ember-cli/ember-cli/pull/10196) [INTERNAL] Remove unused private `_legacyAddonCompile` method on `EmberApp` class [@bertdeblock](https://github.com/bertdeblock)
27
+ - [#10197](https://github.com/ember-cli/ember-cli/pull/10197) [CLEANUP] Remove default `minifyJS` options [@bertdeblock](https://github.com/bertdeblock)
28
+ - [#10211](https://github.com/ember-cli/ember-cli/pull/10211) Automate output repos [@NullVoxPopuli](https://github.com/NullVoxPopuli)
29
+ - [#10217](https://github.com/ember-cli/ember-cli/pull/10217) [CLEANUP] Remove `ember-resolver` fallback [@bertdeblock](https://github.com/bertdeblock)
30
+ - [#10218](https://github.com/ember-cli/ember-cli/pull/10218) [CLEANUP] Drop support for including `handlebars.js` via Bower [@bertdeblock](https://github.com/bertdeblock)
31
+ - [#10219](https://github.com/ember-cli/ember-cli/pull/10219) [CLEANUP] Drop support for npm versions below v5.7.1 [@bertdeblock](https://github.com/bertdeblock)
32
+ - [#10220](https://github.com/ember-cli/ember-cli/pull/10220) [CLEANUP] Drop support for including Ember builds via Bower [@bertdeblock](https://github.com/bertdeblock)
33
+ - [#10221](https://github.com/ember-cli/ember-cli/pull/10221) [CLEANUP] Clean up `building-bower-packages` deprecation [@bertdeblock](https://github.com/bertdeblock)
34
+ - [#10222](https://github.com/ember-cli/ember-cli/pull/10222) [CLEANUP] Drop support for Node v14 [@bertdeblock](https://github.com/bertdeblock)
35
+ - [#10223](https://github.com/ember-cli/ember-cli/pull/10223) [CLEANUP] Drop support for finding addons by their `index.js` name [@bertdeblock](https://github.com/bertdeblock)
36
+ - [#10224](https://github.com/ember-cli/ember-cli/pull/10224) [CLEANUP] Drop support for checking if Bower components are installed [@bertdeblock](https://github.com/bertdeblock)
37
+ - [#10225](https://github.com/ember-cli/ember-cli/pull/10225) [CLEANUP] Drop support for the `EMBER_CLI_IGNORE_ADDON_NAME_MISMATCH` env flag [@bertdeblock](https://github.com/bertdeblock)
38
+ - [#10226](https://github.com/ember-cli/ember-cli/pull/10226) [INTERNAL] Remove all remaining Bower references [@bertdeblock](https://github.com/bertdeblock)
39
+ - [#10227](https://github.com/ember-cli/ember-cli/pull/10227) [INTERNAL] Remove JSHint reference [@bertdeblock](https://github.com/bertdeblock)
40
+ - [#10229](https://github.com/ember-cli/ember-cli/pull/10229) Update blueprint ignore files [@bertdeblock](https://github.com/bertdeblock)
41
+ - [#10231](https://github.com/ember-cli/ember-cli/pull/10231) [INTERNAL] Remove npm version check in `ember new` test [@bertdeblock](https://github.com/bertdeblock)
42
+ - [#10232](https://github.com/ember-cli/ember-cli/pull/10232) [CLEANUP] Remove Babel fallback for addons [@bertdeblock](https://github.com/bertdeblock)
43
+ - [#10245](https://github.com/ember-cli/ember-cli/pull/10245) change guarding condition for output repos [@NullVoxPopuli](https://github.com/NullVoxPopuli)
44
+
45
+ Thank you to all who took the time to contribute!
46
+
47
+ ## v4.12.0
48
+
49
+ #### Blueprint Changes
50
+
51
+ - [`ember new` diff](https://github.com/ember-cli/ember-new-output/compare/v4.11.0...v4.12.0)
52
+ - [`ember addon` diff](https://github.com/ember-cli/ember-addon-output/compare/v4.11.0...v4.12.0)
9
53
 
10
54
  #### Changelog
11
55
 
package/CONTRIBUTING.md CHANGED
@@ -171,7 +171,7 @@ We love pull requests. Here's a quick guide:
171
171
  the changes you made. For new features make sure to explain a standard use
172
172
  case to us.
173
173
 
174
- If a change requires a user to change their configuration, `bower.json`,
174
+ If a change requires a user to change their configuration,
175
175
  `package.json` or `Brocfile.js` also add a BREAKING tag within the brackets
176
176
  before any other tags (example [BREAKING BUGFIX]).
177
177
 
package/bin/ember CHANGED
File without changes
@@ -22,7 +22,7 @@ jobs:
22
22
  - name: Install Node
23
23
  uses: actions/setup-node@v3
24
24
  with:
25
- node-version: 14.x
25
+ node-version: 16
26
26
  cache: <%= yarn ? 'yarn' : 'npm' %>
27
27
  - name: Install Dependencies
28
28
  run: <%= yarn ? 'yarn install --frozen-lockfile' : 'npm ci' %>
@@ -40,7 +40,7 @@ jobs:
40
40
  - uses: actions/checkout@v3
41
41
  - uses: actions/setup-node@v3
42
42
  with:
43
- node-version: 14.x
43
+ node-version: 16
44
44
  cache: <%= yarn ? 'yarn' : 'npm' %>
45
45
  - name: Install Dependencies
46
46
  run: <%= yarn ? 'yarn install --no-lockfile' : 'npm install --no-shrinkwrap' %>
@@ -70,7 +70,7 @@ jobs:
70
70
  - name: Install Node
71
71
  uses: actions/setup-node@v3
72
72
  with:
73
- node-version: 14.x
73
+ node-version: 16
74
74
  cache: <%= yarn ? 'yarn' : 'npm' %>
75
75
  - name: Install Dependencies
76
76
  run: <%= yarn ? 'yarn install --frozen-lockfile' : 'npm ci' %>
@@ -3,7 +3,7 @@ language: node_js
3
3
  node_js:
4
4
  # we recommend testing addons with the same minimum supported node version as Ember CLI
5
5
  # so that your addon works for all apps
6
- - "14"
6
+ - "16"
7
7
 
8
8
  dist: xenial
9
9
 
@@ -7,7 +7,7 @@
7
7
 
8
8
  * Ember.js v4.4 or above
9
9
  * Ember CLI v4.4 or above
10
- * Node.js v14 or above
10
+ * Node.js v16 or above
11
11
 
12
12
 
13
13
  ## Installation
@@ -2,11 +2,7 @@
2
2
  /dist/
3
3
  /tmp/
4
4
 
5
- # dependencies
6
- /bower_components/
7
-
8
5
  # misc
9
- /.bowerrc
10
6
  /.editorconfig
11
7
  /.ember-cli
12
8
  /.env*
@@ -23,7 +19,6 @@
23
19
  /.template-lintrc.js
24
20
  /.travis.yml
25
21
  /.watchmanconfig
26
- /bower.json
27
22
  /CONTRIBUTING.md
28
23
  /ember-cli-build.js
29
24
  /testem.js
@@ -34,7 +29,6 @@
34
29
 
35
30
  # ember-try
36
31
  /.node_modules.ember-try/
37
- /bower.json.ember-try
38
32
  /npm-shrinkwrap.json.ember-try
39
33
  /package.json.ember-try
40
34
  /package-lock.json.ember-try
@@ -1,25 +1,13 @@
1
1
  # unconventional js
2
2
  /blueprints/*/files/
3
- /vendor/
4
3
 
5
4
  # compiled output
6
5
  /dist/
7
- /tmp/
8
-
9
- # dependencies
10
- /bower_components/
11
- /node_modules/
12
6
 
13
7
  # misc
14
8
  /coverage/
15
9
  !.*
16
10
  .*/
17
- .eslintcache
18
11
 
19
12
  # ember-try
20
13
  /.node_modules.ember-try/
21
- /bower.json.ember-try
22
- /npm-shrinkwrap.json.ember-try
23
- /package.json.ember-try
24
- /package-lock.json.ember-try
25
- /yarn.lock.ember-try
@@ -22,7 +22,7 @@ jobs:
22
22
  - name: Install Node
23
23
  uses: actions/setup-node@v3
24
24
  with:
25
- node-version: 14.x
25
+ node-version: 16
26
26
  cache: <%= yarn ? 'yarn' : 'npm' %>
27
27
  - name: Install Dependencies
28
28
  run: <%= yarn ? 'yarn install --frozen-lockfile' : 'npm ci' %>
@@ -39,7 +39,7 @@ jobs:
39
39
  - name: Install Node
40
40
  uses: actions/setup-node@v3
41
41
  with:
42
- node-version: 14.x
42
+ node-version: 16
43
43
  cache: <%= yarn ? 'yarn' : 'npm' %>
44
44
  - name: Install Dependencies
45
45
  run: <%= yarn ? 'yarn install --frozen-lockfile' : 'npm ci' %>
@@ -1,25 +1,13 @@
1
1
  # unconventional js
2
2
  /blueprints/*/files/
3
- /vendor/
4
3
 
5
4
  # compiled output
6
5
  /dist/
7
- /tmp/
8
-
9
- # dependencies
10
- /bower_components/
11
- /node_modules/
12
6
 
13
7
  # misc
14
8
  /coverage/
15
9
  !.*
16
- .eslintcache
17
- .lint-todo/
10
+ .*/
18
11
 
19
12
  # ember-try
20
13
  /.node_modules.ember-try/
21
- /bower.json.ember-try
22
- /npm-shrinkwrap.json.ember-try
23
- /package.json.ember-try
24
- /package-lock.json.ember-try
25
- /yarn.lock.ember-try
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  language: node_js
3
3
  node_js:
4
- - "14"
4
+ - "16"
5
5
 
6
6
  dist: xenial
7
7
 
@@ -1,3 +1,3 @@
1
1
  {
2
- "ignore_dirs": ["tmp", "dist"]
2
+ "ignore_dirs": ["dist"]
3
3
  }
@@ -1,28 +1,20 @@
1
- # See https://help.github.com/ignore-files/ for more about ignoring files.
2
-
3
1
  # compiled output
4
2
  /dist/
5
- /tmp/
6
3
 
7
4
  # dependencies
8
- /bower_components/
9
5
  /node_modules/
10
6
 
11
7
  # misc
12
8
  /.env*
13
9
  /.pnp*
14
- /.sass-cache
15
10
  /.eslintcache
16
- /connect.lock
17
11
  /coverage/
18
- /libpeerconnection.log
19
12
  /npm-debug.log*
20
13
  /testem.log
21
14
  /yarn-error.log
22
15
 
23
16
  # ember-try
24
17
  /.node_modules.ember-try/
25
- /bower.json.ember-try
26
18
  /npm-shrinkwrap.json.ember-try
27
19
  /package.json.ember-try
28
20
  /package-lock.json.ember-try
@@ -26,7 +26,7 @@
26
26
  "test:ember": "ember test"
27
27
  },
28
28
  "devDependencies": {
29
- "<% if (!typescript) { %>@babel/eslint-parser": "^7.19.1",
29
+ "<% if (!typescript) { %>@babel/eslint-parser": "^7.21.3",
30
30
  "@babel/plugin-proposal-decorators": "^7.21.0",
31
31
  "<% } %>@ember/optional-features": "^2.0.0",
32
32
  "@ember/string": "^3.0.1",
@@ -36,11 +36,11 @@
36
36
  "@embroider/webpack": "^2.1.1<% } %>",
37
37
  "@glimmer/component": "^1.1.2",
38
38
  "@glimmer/tracking": "^1.1.2<% if (typescript) { %>",
39
- "@typescript-eslint/eslint-plugin": "^5.54.1",
40
- "@typescript-eslint/parser": "^5.54.1<% } %>",
39
+ "@typescript-eslint/eslint-plugin": "^5.57.1",
40
+ "@typescript-eslint/parser": "^5.57.1<% } %>",
41
41
  "broccoli-asset-rev": "^3.0.0",
42
- "concurrently": "^7.6.0",
43
- "ember-auto-import": "^2.6.1",
42
+ "concurrently": "^8.0.1",
43
+ "ember-auto-import": "^2.6.3",
44
44
  "ember-cli": "~<%= emberCLIVersion %>",
45
45
  "ember-cli-app-version": "^6.0.0",
46
46
  "ember-cli-babel": "^7.26.11",
@@ -56,28 +56,28 @@
56
56
  "ember-page-title": "^7.0.0",
57
57
  "ember-qunit": "^6.2.0",
58
58
  "ember-resolver": "^10.0.0",
59
- "ember-source": "~4.12.0-beta.2",
60
- "ember-template-lint": "^5.6.0<% if (welcome) { %>",
59
+ "ember-source": "~4.12.0",
60
+ "ember-template-lint": "^5.7.2<% if (welcome) { %>",
61
61
  "ember-welcome-page": "^7.0.1<% } %>",
62
- "eslint": "^8.35.0",
63
- "eslint-config-prettier": "^8.7.0",
64
- "eslint-plugin-ember": "^11.4.7",
65
- "eslint-plugin-n": "^15.6.1",
62
+ "eslint": "^8.37.0",
63
+ "eslint-config-prettier": "^8.8.0",
64
+ "eslint-plugin-ember": "^11.5.0",
65
+ "eslint-plugin-n": "^15.7.0",
66
66
  "eslint-plugin-prettier": "^4.2.1",
67
67
  "eslint-plugin-qunit": "^7.3.4",
68
68
  "loader.js": "^4.7.0",
69
- "prettier": "^2.8.4",
69
+ "prettier": "^2.8.7",
70
70
  "qunit": "^2.19.4",
71
71
  "qunit-dom": "^2.0.0",
72
- "stylelint": "^15.2.0",
72
+ "stylelint": "^15.4.0",
73
73
  "stylelint-config-prettier": "^9.0.5",
74
- "stylelint-config-standard": "^30.0.1",
74
+ "stylelint-config-standard": "^32.0.0",
75
75
  "stylelint-prettier": "^3.0.0",
76
76
  "tracked-built-ins": "^3.1.1",
77
- "webpack": "^5.75.0"
77
+ "webpack": "^5.78.0"
78
78
  },
79
79
  "engines": {
80
- "node": "14.* || 16.* || >= 18"
80
+ "node": "16.* || >= 18"
81
81
  },
82
82
  "ember": {
83
83
  "edition": "octane"
File without changes
File without changes
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  const isPackageMissing = require('ember-cli-is-package-missing');
4
- const { deprecate } = require('../../lib/debug');
5
4
 
6
5
  module.exports = {
7
6
  description: 'Generates a server directory for mocks and proxies.',
@@ -27,30 +26,4 @@ module.exports = {
27
26
  return this.addPackagesToProject(libsToInstall);
28
27
  }
29
28
  },
30
-
31
- files() {
32
- let files = ['server/index.js'];
33
-
34
- if (this.hasJSHint()) {
35
- files.push('server/.jshintrc');
36
- }
37
-
38
- return files;
39
- },
40
-
41
- hasJSHint() {
42
- let hasJSHint = Boolean(this.project) && 'ember-cli-jshint' in this.project.dependencies();
43
-
44
- deprecate('Support for `ember-cli-jshint` is deprecated. We recommend using `eslint` instead.', !hasJSHint, {
45
- for: 'ember-cli',
46
- id: 'ember-cli.ember-cli-jshint-support',
47
- since: {
48
- available: '4.6.0',
49
- enabled: '4.6.0',
50
- },
51
- until: '5.0.0',
52
- });
53
-
54
- return hasJSHint;
55
- },
56
29
  };