babel-plugin-transform-modules-ui5 7.8.0 → 7.9.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,297 +1,235 @@
1
1
  # Change Log
2
2
 
3
- All notable changes to this project will be documented in this file.
4
- See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
-
6
- # [7.8.0](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.7.1...v7.8.0) (2025-09-11)
3
+ ## 7.9.0
7
4
 
5
+ ### Minor Changes
8
6
 
9
- ### Features
10
-
11
- * support optional super call ([#143](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/143)) ([e09f561](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/e09f5617eb98b082e1630caa2d23801d3fc91650))
7
+ - [#151](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/pull/151) [`ce059b3`](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/ce059b343a43960de9dca8ef1d19a0ab70c51fde) Thanks [@petermuessig](https://github.com/petermuessig)! - Raise minimum Node.js version to 20.19, refresh dev dependencies, and migrate ESLint to v9 flat config.
12
8
 
9
+ - `engines.node` is now `>=20.19.0` for both packages.
10
+ - ESLint upgraded to 9.x with new `eslint.config.js` (legacy `.eslintrc.js` and `.eslintignore` removed).
11
+ - `eslint-plugin-node` (unmaintained) replaced by `eslint-plugin-n@17`.
12
+ - Removed obsolete dev dependencies: `babel-eslint` (superseded by `@babel/eslint-parser`), `eslint-config-standard`, `eslint-plugin-standard`.
13
+ - Bumped `eslint-config-prettier` to 10.x, `eslint-plugin-prettier` to 5.5.x, `eslint-plugin-promise` to 7.x, `prettier` to 3.8.x, `jest`/`babel-jest` to 30.4.x, `core-js` to 3.49.x.
14
+ - CI matrix updated from Node 18/20/22/24 to 20/22/24.
13
15
 
16
+ No changes to plugin runtime behavior or production dependencies.
14
17
 
18
+ ### Patch Changes
15
19
 
20
+ - [#151](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/pull/151) [`ce059b3`](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/ce059b343a43960de9dca8ef1d19a0ab70c51fde) Thanks [@petermuessig](https://github.com/petermuessig)! - Bump `eslint-plugin-n` from 17.24 to 18.2.1.
16
21
 
17
- ## [7.7.1](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.7.0...v7.7.1) (2025-05-13)
22
+ This stays compatible with our Node 20.19+ floor (the plugin's
23
+ `engines.node` is `^20.19.0 || ^22.13.0 || >=24`). ESLint 10 itself
24
+ is deliberately held back — see [`DEPENDENCIES.md`](../DEPENDENCIES.md)
25
+ for the full reasoning.
18
26
 
27
+ - [#151](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/pull/151) [`ce059b3`](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/ce059b343a43960de9dca8ef1d19a0ab70c51fde) Thanks [@petermuessig](https://github.com/petermuessig)! - Bump dev-only dependencies to their latest minor releases:
19
28
 
20
- ### Bug Fixes
29
+ - `globals` 17.6 → 17.7
30
+ - `prettier` 3.8 → 3.9
21
31
 
22
- * autoConvertControllerClass to consider controller.ts file as well (not just .js) ([#140](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/140)) ([788705d](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/788705dde44091cfecb47e9f51a5bd294b39af4b)), closes [#139](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/139)
23
- * noWrapBeforeImport must wrap first import if no code is before ([#141](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/141)) ([d80c070](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/d80c070e181b03546d381d8ee2fb0ddfc09d4e5a))
32
+ Both stay within the Node 20.19+ support window declared in our Node.js
33
+ support policy. No plugin behavior changes.
24
34
 
35
+ - [#151](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/pull/151) [`ce059b3`](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/ce059b343a43960de9dca8ef1d19a0ab70c51fde) Thanks [@petermuessig](https://github.com/petermuessig)! - Drop three small, single-purpose runtime dependencies in favor of built-ins:
25
36
 
37
+ - `array-flatten` → `Array.prototype.flat(Infinity)`
38
+ - `ignore-case` → `String.prototype.toLowerCase()` comparison
39
+ - `object-assign-defined` → inlined 8-line helper
26
40
 
41
+ No change in behavior; the plugin's runtime now ships only with `doctrine`
42
+ as a production dependency.
27
43
 
44
+ - [#151](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/pull/151) [`ce059b3`](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/ce059b343a43960de9dca8ef1d19a0ab70c51fde) Thanks [@petermuessig](https://github.com/petermuessig)! - Fix JSDoc parsing failures (issue [#150](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/150)) by replacing the deprecated
45
+ `doctrine` parser with the actively maintained `comment-parser`.
28
46
 
29
- # [7.7.0](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.6.2...v7.7.0) (2024-09-16)
47
+ `doctrine` has been unmaintained since 2018 and stops parsing a JSDoc
48
+ block as soon as it encounters a tag it does not recognise (e.g. an
49
+ optional `@param`, or a bare `@class`). As a result, plugin markers
50
+ like `@alias`, `@namespace`, `@nonUI5` or `@controller` that appeared
51
+ after such a tag were silently ignored and the class was left
52
+ untransformed.
30
53
 
54
+ `comment-parser` is purely structural and never bails — every tag in
55
+ the block is returned, regardless of order or content. The migration
56
+ is internal; no plugin option or fixture authoring change is required.
31
57
 
32
- ### Features
58
+ Three regression fixtures were added under
59
+ `packages/plugin/__test__/fixtures/classes/` covering the patterns
60
+ reported in the issue: a value tag (`@alias`) after an optional
61
+ `@param`, a bool flag (`@nonUI5`) after multiple optional params,
62
+ and a bare `@class` followed by `@namespace`/`@controller`.
33
63
 
34
- * update dependencies / add peer dependency to @babel/core ([#135](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/135)) ([d155e48](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/d155e48a4a3737ebcf4a7e77318391bbce783e70)), closes [#133](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/133)
64
+ All notable changes to this project will be documented in this file.
65
+ See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
35
66
 
67
+ ## [7.8.1](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.8.0...v7.8.1) (2025-12-29)
36
68
 
69
+ **Note:** Version bump only for package babel-plugin-transform-modules-ui5
37
70
 
71
+ # [7.8.0](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.7.1...v7.8.0) (2025-09-11)
38
72
 
73
+ ### Features
39
74
 
40
- ## [7.6.2](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.6.1...v7.6.2) (2024-09-14)
75
+ - support optional super call ([#143](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/143)) ([e09f561](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/e09f5617eb98b082e1630caa2d23801d3fc91650))
41
76
 
77
+ ## [7.7.1](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.7.0...v7.7.1) (2025-05-13)
42
78
 
43
79
  ### Bug Fixes
44
80
 
45
- * move qunit config autostart out of require/define ([#134](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/134)) ([9643cd0](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/9643cd08314ce54816886df6c618fbb142c1b3e8))
46
-
47
-
81
+ - autoConvertControllerClass to consider controller.ts file as well (not just .js) ([#140](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/140)) ([788705d](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/788705dde44091cfecb47e9f51a5bd294b39af4b)), closes [#139](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/139)
82
+ - noWrapBeforeImport must wrap first import if no code is before ([#141](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/141)) ([d80c070](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/d80c070e181b03546d381d8ee2fb0ddfc09d4e5a))
48
83
 
84
+ # [7.7.0](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.6.2...v7.7.0) (2024-09-16)
49
85
 
86
+ ### Features
50
87
 
51
- ## [7.6.1](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.6.0...v7.6.1) (2024-09-13)
88
+ - update dependencies / add peer dependency to @babel/core ([#135](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/135)) ([d155e48](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/d155e48a4a3737ebcf4a7e77318391bbce783e70)), closes [#133](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/133)
52
89
 
90
+ ## [7.6.2](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.6.1...v7.6.2) (2024-09-14)
53
91
 
54
92
  ### Bug Fixes
55
93
 
56
- * support wrapped controller extension assignments ([dfa51b6](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/dfa51b613259aeedb3f20987f5e5165ca35545d8))
57
-
94
+ - move qunit config autostart out of require/define ([#134](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/134)) ([9643cd0](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/9643cd08314ce54816886df6c618fbb142c1b3e8))
58
95
 
96
+ ## [7.6.1](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.6.0...v7.6.1) (2024-09-13)
59
97
 
98
+ ### Bug Fixes
60
99
 
100
+ - support wrapped controller extension assignments ([dfa51b6](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/dfa51b613259aeedb3f20987f5e5165ca35545d8))
61
101
 
62
102
  # [7.6.0](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.5.0...v7.6.0) (2024-07-22)
63
103
 
64
-
65
104
  ### Features
66
105
 
67
- * support sap.ui.require for [@sap](https://github.com/sap)UiRequire annotated modules ([#131](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/131)) ([23c4ac6](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/23c4ac67eef5a825692c528852ef62bbd621d13e))
68
-
69
-
70
-
71
-
106
+ - support sap.ui.require for [@sap](https://github.com/sap)UiRequire annotated modules ([#131](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/131)) ([23c4ac6](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/23c4ac67eef5a825692c528852ef62bbd621d13e))
72
107
 
73
108
  # [7.5.0](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.4.2...v7.5.0) (2024-07-12)
74
109
 
75
-
76
110
  ### Features
77
111
 
78
- * support ControllerExtensions extended with .override(...) ([#128](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/128)) ([f744d9d](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/f744d9db3dd82020712b47a18ce55ed51a13fe89))
79
-
80
-
81
-
82
-
112
+ - support ControllerExtensions extended with .override(...) ([#128](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/128)) ([f744d9d](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/f744d9db3dd82020712b47a18ce55ed51a13fe89))
83
113
 
84
114
  ## [7.4.2](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.4.1...v7.4.2) (2024-06-25)
85
115
 
86
-
87
116
  ### Bug Fixes
88
117
 
89
- * remove mandatory ESM file extensions from sap.ui.define imports ([#129](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/129)) ([571dfa1](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/571dfa192984c9838c573909546b42a85b71e5b6))
90
-
91
-
92
-
93
-
118
+ - remove mandatory ESM file extensions from sap.ui.define imports ([#129](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/129)) ([571dfa1](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/571dfa192984c9838c573909546b42a85b71e5b6))
94
119
 
95
120
  ## [7.4.1](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.4.0...v7.4.1) (2024-06-02)
96
121
 
97
-
98
122
  ### Bug Fixes
99
123
 
100
- * ensure to remove file ext .js only from module path ([#127](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/127)) ([c6afb92](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/c6afb92c2f758a245086baa6f77d3274bb4e5466))
101
-
102
-
103
-
104
-
124
+ - ensure to remove file ext .js only from module path ([#127](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/127)) ([c6afb92](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/c6afb92c2f758a245086baa6f77d3274bb4e5466))
105
125
 
106
126
  # [7.4.0](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.3.1...v7.4.0) (2024-05-31)
107
127
 
108
-
109
128
  ### Bug Fixes
110
129
 
111
- * remove empty export declaration added by TypeScript ([3cb14cf](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/3cb14cf7aefd400d0191d364f457c66452edc32a)), closes [/github.com/babel/babel/blob/main/packages/babel-plugin-transform-typescript/src/index.ts#L399](https://github.com//github.com/babel/babel/blob/main/packages/babel-plugin-transform-typescript/src/index.ts/issues/L399)
112
-
130
+ - remove empty export declaration added by TypeScript ([3cb14cf](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/3cb14cf7aefd400d0191d364f457c66452edc32a)), closes [/github.com/babel/babel/blob/main/packages/babel-plugin-transform-typescript/src/index.ts#L399](https://github.com//github.com/babel/babel/blob/main/packages/babel-plugin-transform-typescript/src/index.ts/issues/L399)
113
131
 
114
132
  ### Features
115
133
 
116
- * imports added by other plugins are also included in the sap.ui.define calls ([#126](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/126)) ([895fe62](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/895fe624df66a6db1b9daa5cadce8a984ced5af4))
117
-
118
-
119
-
120
-
134
+ - imports added by other plugins are also included in the sap.ui.define calls ([#126](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/126)) ([895fe62](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/895fe624df66a6db1b9daa5cadce8a984ced5af4))
121
135
 
122
136
  ## [7.3.1](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.3.0...v7.3.1) (2024-05-12)
123
137
 
124
-
125
138
  ### Bug Fixes
126
139
 
127
- * remove file extensions from imports to avoid redundant extensions ([#125](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/125)) ([e86d6f6](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/e86d6f675451b6eaaaf63f9433200cd7406d0245))
128
- * support index modules for dependencies ([#123](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/123)) ([f510380](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/f510380f7c201d9aba3e735badea21546f81f03d))
129
-
130
-
131
-
132
-
140
+ - remove file extensions from imports to avoid redundant extensions ([#125](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/125)) ([e86d6f6](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/e86d6f675451b6eaaaf63f9433200cd7406d0245))
141
+ - support index modules for dependencies ([#123](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/123)) ([f510380](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/f510380f7c201d9aba3e735badea21546f81f03d))
133
142
 
134
143
  # [7.3.0](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.2.6...v7.3.0) (2024-01-18)
135
144
 
136
-
137
145
  ### Bug Fixes
138
146
 
139
- * sanitize variable names for re-exports ([#122](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/122)) ([f475dbc](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/f475dbcb4f8b767a5680a974903e7f97df8dacc7))
140
-
147
+ - sanitize variable names for re-exports ([#122](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/122)) ([f475dbc](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/f475dbcb4f8b767a5680a974903e7f97df8dacc7))
141
148
 
142
149
  ### Features
143
150
 
144
- * support using predefined controller extensions ([#120](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/120)) ([d7cb66c](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/d7cb66cd5af422529bb00658669e595af2477615))
145
-
146
-
147
-
148
-
151
+ - support using predefined controller extensions ([#120](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/120)) ([d7cb66c](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/d7cb66cd5af422529bb00658669e595af2477615))
149
152
 
150
153
  ## [7.2.6](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.2.5...v7.2.6) (2023-11-23)
151
154
 
152
-
153
155
  ### Bug Fixes
154
156
 
155
- * preserve comments for class members ([#117](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/117)) ([b5329cb](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/b5329cb80ea0cade6b85fd1d802befa0bc36fe52))
156
-
157
-
158
-
159
-
157
+ - preserve comments for class members ([#117](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/117)) ([b5329cb](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/b5329cb80ea0cade6b85fd1d802befa0bc36fe52))
160
158
 
161
159
  ## [7.2.5](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.2.4...v7.2.5) (2023-08-28)
162
160
 
163
-
164
161
  ### Bug Fixes
165
162
 
166
- * by default add "use strict" directive to sap.ui.define ([#115](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/115)) ([7d55cc6](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/7d55cc6126258b60728a00f4070ed19b8ffe9339)), closes [#113](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/113)
167
-
168
-
169
-
170
-
163
+ - by default add "use strict" directive to sap.ui.define ([#115](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/115)) ([7d55cc6](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/7d55cc6126258b60728a00f4070ed19b8ffe9339)), closes [#113](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/113)
171
164
 
172
165
  ## [7.2.4](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.2.3...v7.2.4) (2023-07-20)
173
166
 
174
-
175
167
  ### Bug Fixes
176
168
 
177
- * ensure template to be ES5 compliant ([#111](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/111)) ([16819bc](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/16819bc91ce1942e0968a0f7efaa4e7cf767b665))
178
-
179
-
180
-
181
-
169
+ - ensure template to be ES5 compliant ([#111](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/111)) ([16819bc](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/16819bc91ce1942e0968a0f7efaa4e7cf767b665))
182
170
 
183
171
  ## [7.2.3](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.2.2...v7.2.3) (2023-07-18)
184
172
 
185
-
186
173
  ### Bug Fixes
187
174
 
188
- * copyright comment must be appended as leading comment to file ([#108](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/108)) ([8194671](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/81946714f1d48c82a6609ec3fc1c820e5fff9e51))
189
-
190
-
191
-
192
-
175
+ - copyright comment must be appended as leading comment to file ([#108](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/108)) ([8194671](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/81946714f1d48c82a6609ec3fc1c820e5fff9e51))
193
176
 
194
177
  ## [7.2.2](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.2.1...v7.2.2) (2023-07-18)
195
178
 
196
-
197
179
  ### Bug Fixes
198
180
 
199
- * ensure copyright to be kept after typescript processing ([#107](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/107)) ([da9aa69](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/da9aa69c94017e085d7f5a22abde04b123d9307d))
200
-
201
-
202
-
203
-
181
+ - ensure copyright to be kept after typescript processing ([#107](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/107)) ([da9aa69](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/da9aa69c94017e085d7f5a22abde04b123d9307d))
204
182
 
205
183
  ## [7.2.1](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.2.0...v7.2.1) (2023-06-13)
206
184
 
207
-
208
185
  ### Bug Fixes
209
186
 
210
- * add support for import.meta.url|resolve ([#106](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/106)) ([afb1e6d](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/afb1e6daa0fcc9896fd184ac9d66990d0a29214a)), closes [#103](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/103)
211
- * support for anonymous classes ([#105](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/105)) ([64773d1](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/64773d180bf65e544806b9f04b7334cd76831b3d)), closes [#104](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/104)
212
-
213
-
214
-
215
-
187
+ - add support for import.meta.url|resolve ([#106](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/106)) ([afb1e6d](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/afb1e6daa0fcc9896fd184ac9d66990d0a29214a)), closes [#103](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/103)
188
+ - support for anonymous classes ([#105](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/105)) ([64773d1](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/64773d180bf65e544806b9f04b7334cd76831b3d)), closes [#104](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/104)
216
189
 
217
190
  # [7.2.0](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.1.5...v7.2.0) (2023-05-30)
218
191
 
219
-
220
192
  ### Features
221
193
 
222
- * split class conversion to enable other Babel plugin conversion ([#100](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/100)) ([4ba096b](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/4ba096b1a24d807cda2fd2f57425f3ab4b91a31b)), closes [#23](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/23) [#25](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/25)
223
-
224
-
225
-
226
-
194
+ - split class conversion to enable other Babel plugin conversion ([#100](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/100)) ([4ba096b](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/4ba096b1a24d807cda2fd2f57425f3ab4b91a31b)), closes [#23](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/23) [#25](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/25)
227
195
 
228
196
  ## [7.1.5](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.1.4...v7.1.5) (2023-05-30)
229
197
 
230
-
231
198
  ### Bug Fixes
232
199
 
233
- * enable support for TS param props ([#99](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/99)) ([2119b41](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/2119b41fbd5fb41ade7e096190cbebad03eecf7c)), closes [#65](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/65)
234
- * ensure copyright comments to be leading comments ([#97](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/97)) ([39ab194](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/39ab1946f08d3fc33609bd6b9ac6cda9a985c5d7))
235
- * sap.ui.define without callback function ([#98](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/98)) ([c1cd6a8](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/c1cd6a8f158de9b5036d9c768c48972d66ae20aa)), closes [#50](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/50)
236
-
237
-
238
-
239
-
200
+ - enable support for TS param props ([#99](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/99)) ([2119b41](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/2119b41fbd5fb41ade7e096190cbebad03eecf7c)), closes [#65](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/65)
201
+ - ensure copyright comments to be leading comments ([#97](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/97)) ([39ab194](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/39ab1946f08d3fc33609bd6b9ac6cda9a985c5d7))
202
+ - sap.ui.define without callback function ([#98](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/98)) ([c1cd6a8](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/c1cd6a8f158de9b5036d9c768c48972d66ae20aa)), closes [#50](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/50)
240
203
 
241
204
  ## [7.1.4](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.1.3...v7.1.4) (2023-04-11)
242
205
 
243
-
244
206
  ### Bug Fixes
245
207
 
246
- * properly handle dynamic import of non-existing modules ([#94](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/94)) ([c443b36](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/c443b36d5035d2e2fa367e074d0732336af8eb78))
247
-
248
-
249
-
250
-
208
+ - properly handle dynamic import of non-existing modules ([#94](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/94)) ([c443b36](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/c443b36d5035d2e2fa367e074d0732336af8eb78))
251
209
 
252
210
  ## [7.1.3](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.1.2...v7.1.3) (2023-04-11)
253
211
 
254
-
255
212
  ### Bug Fixes
256
213
 
257
- * dynamic import must not handle __esModule flagged modules ([#93](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/93)) ([b269985](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/b26998540cac0c2c2868bd59198d6f9abfaab8f7))
258
-
259
-
260
-
261
-
214
+ - dynamic import must not handle __esModule flagged modules ([#93](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/93)) ([b269985](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/b26998540cac0c2c2868bd59198d6f9abfaab8f7))
262
215
 
263
216
  ## [7.1.2](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.1.1...v7.1.2) (2023-04-11)
264
217
 
265
-
266
218
  ### Bug Fixes
267
219
 
268
- * dynamic imports of empty modules must not fail ([#92](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/92)) ([a1de75d](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/a1de75dcfcb577bf6fea3669cf448e9183b7d636))
269
-
270
-
271
-
272
-
220
+ - dynamic imports of empty modules must not fail ([#92](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/92)) ([a1de75d](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/a1de75dcfcb577bf6fea3669cf448e9183b7d636))
273
221
 
274
222
  ## [7.1.1](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.1.0...v7.1.1) (2023-03-27)
275
223
 
276
-
277
224
  ### Bug Fixes
278
225
 
279
- * catch err for dynamic import to sap.ui.require ([#91](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/91)) ([9c7d26e](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/9c7d26e6aeebc77f5d8faec941fbd994b77de222))
280
-
281
-
282
-
283
-
226
+ - catch err for dynamic import to sap.ui.require ([#91](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/issues/91)) ([9c7d26e](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/9c7d26e6aeebc77f5d8faec941fbd994b77de222))
284
227
 
285
228
  # [7.1.0](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.0.6...v7.1.0) (2023-03-13)
286
229
 
287
-
288
230
  ### Features
289
231
 
290
- * backward compatibility for overrides (overridesToOverride option) ([dac96e6](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/dac96e685548ccf831893c03e083e6db2dae3d4f))
291
-
292
-
293
-
294
-
232
+ - backward compatibility for overrides (overridesToOverride option) ([dac96e6](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/commit/dac96e685548ccf831893c03e083e6db2dae3d4f))
295
233
 
296
234
  ## [7.0.6](https://github.com/ui5-community/babel-plugin-transform-modules-ui5/compare/v7.0.5...v7.0.6) (2023-02-21)
297
235
 
package/README.md CHANGED
@@ -5,6 +5,11 @@
5
5
 
6
6
  There is also a preset which should be used rather than using the plugin directly.
7
7
 
8
+ ## Requirements
9
+
10
+ - **Node.js ≥ 20.19**. See the [Node.js support policy](../../CONTRIBUTING.md#nodejs-support-policy) for how we evolve this floor.
11
+ - A Babel 7 toolchain (`@babel/core` 7.x) — the plugin is declared as a peer of `@babel/core`.
12
+
8
13
  ## Install
9
14
 
10
15
  ```sh
@@ -8,7 +8,6 @@ exports.getClassInfo = getClassInfo;
8
8
  exports.getTypeName = void 0;
9
9
  var _core = require("@babel/core");
10
10
  var _path = _interopRequireDefault(require("path"));
11
- var _objectAssignDefined = _interopRequireDefault(require("object-assign-defined"));
12
11
  var th = _interopRequireWildcard(require("../../utils/templates"));
13
12
  var ast = _interopRequireWildcard(require("../../utils/ast"));
14
13
  var _jsdoc = require("./jsdoc");
@@ -310,8 +309,24 @@ function getClassInfo(path, node, parent, pluginOpts) {
310
309
  const decoratorInfo = (0, _decorators.getDecoratorClassInfo)(node);
311
310
  const jsDocInfo = (0, _jsdoc.getJsDocClassInfo)(node, parent);
312
311
 
313
- // like Object.assign, but ignoring undefined values.
314
- return (0, _objectAssignDefined.default)(defaults, decoratorInfo, jsDocInfo);
312
+ // Merge like Object.assign, but ignoring undefined values.
313
+ return assignDefined(defaults, decoratorInfo, jsDocInfo);
314
+ }
315
+
316
+ /**
317
+ * Works like Object.assign but skips properties whose value is undefined,
318
+ * preserving the value from the target (or earlier source).
319
+ */
320
+ function assignDefined(target, ...sources) {
321
+ for (const source of sources) {
322
+ if (!source) continue;
323
+ for (const key of Object.keys(source)) {
324
+ if (source[key] !== undefined) {
325
+ target[key] = source[key];
326
+ }
327
+ }
328
+ }
329
+ return target;
315
330
  }
316
331
 
317
332
  /**
@@ -7,18 +7,30 @@ exports.getJsDocClassInfo = getJsDocClassInfo;
7
7
  exports.getTags = getTags;
8
8
  exports.hasJsdocGlobalExportFlag = hasJsdocGlobalExportFlag;
9
9
  var _core = require("@babel/core");
10
- var _doctrine = _interopRequireDefault(require("doctrine"));
11
- var _ignoreCase = _interopRequireDefault(require("ignore-case"));
12
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ var _commentParser = require("comment-parser");
13
11
  const classInfoValueTags = ["alias", "name", "namespace"];
14
12
  const classInfoBoolTags = ["nonUI5", "controller", "keepConstructor"];
13
+
14
+ /**
15
+ * Parse a babel `CommentBlock`'s `.value` (which omits the surrounding
16
+ * `/*` … `*\/` delimiters) using comment-parser.
17
+ *
18
+ * Returns the list of tags as `{ tag, name, description, type, optional }`.
19
+ * Returns `[]` on empty input or when no tags are present.
20
+ *
21
+ * Unlike doctrine, comment-parser does not bail on unknown or malformed
22
+ * tags — every recognised tag in the block is returned. This is the
23
+ * fix for issue #150 where doctrine stopped at the first tag it could
24
+ * not handle (e.g. optional `@param` followed by a bare `@class`).
25
+ */
26
+ function parseJsDoc(commentValue) {
27
+ const block = (0, _commentParser.parse)(`/*${commentValue}*/`)[0];
28
+ return block ? block.tags : [];
29
+ }
15
30
  function getJsDocClassInfo(node, parent) {
16
31
  if (node.leadingComments) {
17
32
  return node.leadingComments.filter(isCommentBlock).map(comment => {
18
- const docAST = _doctrine.default.parse(comment.value, {
19
- unwrap: true
20
- });
21
- const tags = docAST.tags || [];
33
+ const tags = parseJsDoc(comment.value);
22
34
  const info = {};
23
35
  for (const tagName of classInfoValueTags) {
24
36
  const value = getJsDocTagValue(tags, tagName);
@@ -56,19 +68,15 @@ function getTags(comments) {
56
68
  if (!isCommentBlock(comment)) {
57
69
  continue;
58
70
  }
59
- const docAST = _doctrine.default.parse(comment.value, {
60
- unwrap: true
61
- });
62
- const tags = docAST.tags;
63
- if (!tags || !tags.length) {
71
+ const tags = parseJsDoc(comment.value);
72
+ if (!tags.length) {
64
73
  continue;
65
74
  }
66
75
  const map = {};
67
76
  for (const tag of tags) {
68
- const title = tag.title;
69
77
  let value = tag.name || tag.description || true;
70
78
  if (value === "false") value = false;
71
- map[title] = value;
79
+ map[tag.tag] = value;
72
80
  }
73
81
  return map;
74
82
  }
@@ -79,7 +87,8 @@ function getJsDocTagValue(tags, name) {
79
87
  return tag && (tag.name || tag.description);
80
88
  }
81
89
  function getJsDocTag(tags, name) {
82
- return tags.find(t => _ignoreCase.default.equals(name, t.title));
90
+ const lower = name.toLowerCase();
91
+ return tags.find(tag => tag.tag.toLowerCase() === lower);
83
92
  }
84
93
  function notEmpty(obj) {
85
94
  return Object.values(obj).some(value => value);
@@ -89,10 +98,7 @@ function hasJsdocGlobalExportFlag(node) {
89
98
  return false;
90
99
  }
91
100
  return node.leadingComments.filter(isCommentBlock).some(comment => {
92
- return _doctrine.default.parse(comment.value, {
93
- unwrap: true,
94
- tags: ["global"]
95
- }).tags.length > 0;
101
+ return parseJsDoc(comment.value).some(tag => tag.tag === "global");
96
102
  });
97
103
  }
98
104
 
package/dist/utils/ast.js CHANGED
@@ -23,7 +23,6 @@ exports.isSuperCallExpression = isSuperCallExpression;
23
23
  exports.isSuperPrototypeCallOf = isSuperPrototypeCallOf;
24
24
  exports.isThisExpressionUsed = isThisExpressionUsed;
25
25
  var _core = require("@babel/core");
26
- var _arrayFlatten = require("array-flatten");
27
26
  function isObjectAssignOrExtendsExpression(node) {
28
27
  return isObjectAssignExpression(node) || isExtendsHelperExpression(node);
29
28
  }
@@ -89,7 +88,7 @@ function getInternalStaticThingsOfClass(classNode) {
89
88
  * @return Array<{key, value}>
90
89
  */
91
90
  function getOtherPropertiesOfIdentifier(blockScopeNode, idName) {
92
- return (0, _arrayFlatten.flatten)(blockScopeNode.body.map(node => {
91
+ return blockScopeNode.body.map(node => {
93
92
  if (_core.types.isExpressionStatement(node)) {
94
93
  // ID = value | ID.key = value | ID.key.nested = value
95
94
  const {
@@ -120,18 +119,18 @@ function getOtherPropertiesOfIdentifier(blockScopeNode, idName) {
120
119
  } else if (_core.types.isVariableDeclaration(node)) {
121
120
  return node.declarations.filter(declaration => declaration.id.name === idName).map(declaration => declaration.init).filter(init => init).filter(init => _core.types.isObjectExpression(init) || isObjectAssignOrExtendsExpression(init)).map(init => _core.types.isObjectExpression(init) ? init.properties : getPropertiesOfObjectAssignOrExtendHelper(init, blockScopeNode));
122
121
  }
123
- }).filter(item => item));
122
+ }).filter(item => item).flat(Infinity);
124
123
  }
125
124
  function getPropertiesOfObjectAssignOrExtendHelper(node, blockScopeNode) {
126
125
  // Check all the args and recursively try to get props of identifiers (although they may be imported)
127
- return (0, _arrayFlatten.flatten)(node.arguments.map(arg => {
126
+ return node.arguments.map(arg => {
128
127
  if (_core.types.isObjectExpression(arg)) {
129
128
  return arg.properties;
130
129
  } else if (_core.types.isIdentifier(arg)) {
131
130
  // Recursive, although props will be empty if arg is an imported object
132
131
  return getOtherPropertiesOfIdentifier(blockScopeNode, arg.name);
133
132
  }
134
- }));
133
+ }).flat(Infinity);
135
134
  }
136
135
  function getPropNames(props) {
137
136
  return props.map(prop => prop.key.name);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "babel-plugin-transform-modules-ui5",
3
- "version": "7.8.0",
3
+ "version": "7.9.0",
4
4
  "description": "An unofficial babel plugin for SAP UI5.",
5
5
  "main": "dist/index.js",
6
6
  "repository": {
@@ -9,7 +9,7 @@
9
9
  "directory": "packages/plugin"
10
10
  },
11
11
  "engines": {
12
- "node": ">=6"
12
+ "node": ">=20.19.0"
13
13
  },
14
14
  "scripts": {
15
15
  "clean": "rimraf dist",
@@ -21,7 +21,6 @@
21
21
  "test": "FORCE_COLOR=0 jest __test__ --coverage=no",
22
22
  "test:watch": "npm test -- --watch",
23
23
  "test:update-snapshot": "FORCE_COLOR=0 jest --updateSnapshot",
24
- "prepare": "npm test && npm run build",
25
24
  "format": "prettier --write 'src/**/*.js'"
26
25
  },
27
26
  "keywords": [
@@ -57,44 +56,39 @@
57
56
  ]
58
57
  },
59
58
  "dependencies": {
60
- "array-flatten": "^3.0.0",
61
- "doctrine": "^3.0.0",
62
- "ignore-case": "^0.1.0",
63
- "object-assign-defined": "^1.0.2"
59
+ "comment-parser": "1.4.7"
64
60
  },
65
61
  "peerDependencies": {
66
62
  "@babel/core": "*"
67
63
  },
68
64
  "devDependencies": {
69
- "@babel/cli": "^7.25.6",
70
- "@babel/core": "^7.25.2",
71
- "@babel/eslint-parser": "^7.25.1",
72
- "@babel/plugin-proposal-decorators": "^7.24.7",
73
- "@babel/plugin-proposal-object-rest-spread": "^7.20.7",
74
- "@babel/plugin-syntax-class-properties": "^7.12.13",
75
- "@babel/plugin-syntax-decorators": "^7.24.7",
76
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
77
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
78
- "@babel/plugin-transform-property-mutators": "^7.24.7",
79
- "@babel/plugin-transform-typescript": "^7.25.2",
80
- "@babel/preset-env": "^7.25.4",
81
- "@babel/preset-flow": "^7.24.7",
82
- "@babel/preset-typescript": "^7.24.7",
83
- "babel-eslint": "^10.1.0",
84
- "babel-jest": "^29.7.0",
85
- "core-js": "^3.38.1",
86
- "eslint": "^8.54.0",
87
- "eslint-config-standard": "^17.1.0",
88
- "eslint-plugin-import": "^2.30.0",
89
- "eslint-plugin-node": "^11.1.0",
90
- "eslint-plugin-prettier": "^5.2.1",
91
- "eslint-plugin-promise": "^7.1.0",
92
- "eslint-plugin-standard": "^5.0.0",
93
- "husky": "^9.1.6",
94
- "jest": "^29.7.0",
95
- "lint-staged": "^15.2.10",
96
- "prettier": "^3.3.3",
97
- "rimraf": "^6.0.1"
98
- },
99
- "gitHead": "d0c106c3b4a88bf2f44eaa09622311bbf4471bc8"
65
+ "@babel/cli": "7.28.3",
66
+ "@babel/core": "7.28.5",
67
+ "@babel/eslint-parser": "7.28.5",
68
+ "@babel/plugin-proposal-decorators": "7.28.0",
69
+ "@babel/plugin-proposal-object-rest-spread": "7.20.7",
70
+ "@babel/plugin-syntax-class-properties": "7.12.13",
71
+ "@babel/plugin-syntax-decorators": "7.27.1",
72
+ "@babel/plugin-syntax-dynamic-import": "7.8.3",
73
+ "@babel/plugin-syntax-object-rest-spread": "7.8.3",
74
+ "@babel/plugin-transform-property-mutators": "7.29.7",
75
+ "@babel/plugin-transform-typescript": "7.28.5",
76
+ "@babel/preset-env": "7.28.5",
77
+ "@babel/preset-flow": "7.27.1",
78
+ "@babel/preset-typescript": "7.28.5",
79
+ "babel-jest": "30.4.1",
80
+ "core-js": "3.49.0",
81
+ "eslint": "9.39.4",
82
+ "eslint-config-prettier": "10.1.8",
83
+ "eslint-plugin-import": "2.32.0",
84
+ "eslint-plugin-n": "18.2.1",
85
+ "eslint-plugin-prettier": "5.5.6",
86
+ "eslint-plugin-promise": "7.3.0",
87
+ "globals": "17.7.0",
88
+ "husky": "9.1.7",
89
+ "jest": "30.4.2",
90
+ "lint-staged": "16.2.7",
91
+ "prettier": "3.9.0",
92
+ "rimraf": "6.1.3"
93
+ }
100
94
  }
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2019 Ryan Murphy
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.