@@ -1068,9 +1068,8 @@ The resolver can throw the following errors:
1068
1068
> 1. Set _resolved_ to the URL resolution of _specifier_ relative to
1069
1069
> _parentURL_.
1070
1070
> 1. Otherwise, if _specifier_ starts with _" #" _, then
1071
- > 1. Set _resolved_ to the destructured value of the result of
1072
- > ** PACKAGE_IMPORTS_RESOLVE ** (_specifier_, _parentURL_,
1073
- > _defaultConditions_).
1071
+ > 1. Set _resolved_ to the result of ** PACKAGE_IMPORTS_RESOLVE ** (_specifier_,
1072
+ > _parentURL_, _defaultConditions_).
1074
1073
> 1. Otherwise,
1075
1074
> 1. Note: _specifier_ is now a bare specifier.
1076
1075
> 1. Set _resolved_ the result of
@@ -1103,7 +1102,7 @@ The resolver can throw the following errors:
1103
1102
> 1. If _packageName_ starts with _" ." _ or contains _" \\ " _ or _" %" _, then
1104
1103
> 1. Throw an _Invalid Module Specifier_ error.
1105
1104
> 1. Let _packageSubpath_ be _" ." _ concatenated with the substring of
1106
- > _packageSpecifier_ from the position at the length of _packageName_.
1105
+ > _packageSpecifier_ from the position at the length of _packageName_.
1107
1106
> 1. Let _selfUrl_ be the result of
1108
1107
> ** PACKAGE_SELF_RESOLVE ** (_packageName_, _packageSubpath_, _parentURL_).
1109
1108
> 1. If _selfUrl_ is not ** undefined ** , return _selfUrl_.
@@ -1121,11 +1120,10 @@ The resolver can throw the following errors:
1121
1120
> 1. If _pjson_ is not ** null ** and _pjson_ ._exports_ is not ** null ** or
1122
1121
> ** undefined ** , then
1123
1122
> 1. Let _exports_ be _pjson .exports_ .
1124
- > 1. Return the _resolved_ destructured value of the result of
1125
- > ** PACKAGE_EXPORTS_RESOLVE ** (_packageURL_, _packageSubpath_,
1126
- > _pjson .exports_ , _defaultConditions_).
1123
+ > 1. Return the result of ** PACKAGE_EXPORTS_RESOLVE ** (_packageURL_,
1124
+ > _packageSubpath_, _pjson .exports_ , _defaultConditions_).
1127
1125
> 1. Otherwise, if _packageSubpath_ is equal to _" ." _, then
1128
- > 1. Return the result applying the legacy ** LOAD_AS_DIRECTORY **
1126
+ > 1. Return the result of applying the legacy ** LOAD_AS_DIRECTORY **
1129
1127
> CommonJS resolver to _packageURL_, throwing a _Module Not Found_
1130
1128
> error for no resolution.
1131
1129
> 1. Otherwise,
@@ -1142,13 +1140,14 @@ The resolver can throw the following errors:
1142
1140
> ** undefined ** , then
1143
1141
> 1. Return ** undefined ** .
1144
1142
> 1. If _pjson .name_ is equal to _packageName_, then
1145
- > 1. Return the _resolved_ destructured value of the result of
1146
- > ** PACKAGE_EXPORTS_RESOLVE ** (_packageURL_, _subpath_, _pjson .exports_ ,
1147
- > _defaultConditions_).
1143
+ > 1. Return the result of ** PACKAGE_EXPORTS_RESOLVE ** (_packageURL_,
1144
+ > _subpath_, _pjson .exports_ , _defaultConditions_).
1148
1145
> 1. Otherwise, return ** undefined ** .
1149
1146
1150
1147
** PACKAGE_EXPORTS_RESOLVE ** (_packageURL_, _subpath_, _exports_, _conditions_)
1151
1148
1149
+ > 1. If _subpath_ ends in _" /" _, then
1150
+ > 1. Throw an _Invalid Module Specifier_ error.
1152
1151
> 1. If _exports_ is an Object with both a key starting with _" ." _ and a key not
1153
1152
> starting with _" ." _, throw an _Invalid Package Configuration_ error.
1154
1153
> 1. If _subpath_ is equal to _" ." _, then
@@ -1162,53 +1161,45 @@ The resolver can throw the following errors:
1162
1161
> 1. Let _resolved_ be the result of ** PACKAGE_TARGET_RESOLVE ** (
1163
1162
> _packageURL_, _mainExport_, _" " _, ** false ** , ** false ** ,
1164
1163
> _conditions_).
1165
- > 1. If _resolved_ is not ** null ** or ** undefined ** , then
1166
- > 1. Return _resolved_.
1164
+ > 1. If _resolved_ is not ** null ** or ** undefined ** , return _resolved_.
1167
1165
> 1. Otherwise, if _exports_ is an Object and all keys of _exports_ start with
1168
1166
> _" ." _, then
1169
1167
> 1. Let _matchKey_ be the string _" ./" _ concatenated with _subpath_.
1170
- > 1. Let _resolvedMatch_ be result of ** PACKAGE_IMPORTS_EXPORTS_RESOLVE ** (
1168
+ > 1. Let _resolved_ be the result of ** PACKAGE_IMPORTS_EXPORTS_RESOLVE ** (
1171
1169
> _matchKey_, _exports_, _packageURL_, ** false ** , _conditions_).
1172
- > 1. If _resolvedMatch_ ._resolve_ is not ** null ** or ** undefined ** , then
1173
- > 1. Return _resolvedMatch_.
1170
+ > 1. If _resolved_ is not ** null ** or ** undefined ** , return _resolved_.
1174
1171
> 1. Throw a _Package Path Not Exported_ error.
1175
1172
1176
1173
** PACKAGE_IMPORTS_RESOLVE ** (_specifier_, _parentURL_, _conditions_)
1177
1174
1178
1175
> 1. Assert: _specifier_ begins with _" #" _.
1179
- > 1. If _specifier_ is exactly equal to _" #" _ or starts with _" #/" _, then
1176
+ > 1. If _specifier_ is exactly equal to _" #" _, starts with _" #/" _, or ends in
1177
+ > _" /" _, then
1180
1178
> 1. Throw an _Invalid Module Specifier_ error.
1181
1179
> 1. Let _packageURL_ be the result of ** READ_PACKAGE_SCOPE ** (_parentURL_).
1182
1180
> 1. If _packageURL_ is not ** null ** , then
1183
1181
> 1. Let _pjson_ be the result of ** READ_PACKAGE_JSON ** (_packageURL_).
1184
1182
> 1. If _pjson .imports_ is a non- null Object , then
1185
- > 1. Let _resolvedMatch_ be the result of
1186
- > ** PACKAGE_IMPORTS_EXPORTS_RESOLVE ** (_specifier_, _pjson .imports_ ,
1187
- > _packageURL_, ** true ** , _conditions_).
1188
- > 1. If _resolvedMatch_ ._resolve_ is not ** null ** or ** undefined ** , then
1189
- > 1. Return _resolvedMatch_.
1183
+ > 1. Let _resolved_ be the result of ** PACKAGE_IMPORTS_EXPORTS_RESOLVE ** (
1184
+ > _specifier_, _pjson .imports_ , _packageURL_, ** true ** , _conditions_).
1185
+ > 1. If _resolved_ is not ** null ** or ** undefined ** , return _resolved_.
1190
1186
> 1. Throw a _Package Import Not Defined_ error.
1191
1187
1192
1188
** PACKAGE_IMPORTS_EXPORTS_RESOLVE ** (_matchKey_, _matchObj_, _packageURL_,
1193
1189
_isImports_, _conditions_)
1194
1190
1195
- > 1. If _matchKey_ is a key of _matchObj_ and does not end in _" /" _ or contain
1196
- > _" *" _, then
1191
+ > 1. Assert : _matchKey_ does not end in _" /" _.
1192
+ > 1. If _matchKey_ is a key of _matchObj_ and does not contain _" *" _, then
1197
1193
> 1. Let _target_ be the value of _matchObj_\[_matchKey_\].
1198
- > 1. Let _resolved_ be the result of ** PACKAGE_TARGET_RESOLVE ** (
1199
- > _packageURL_, _target_, _" " _, ** false ** , _isImports_, _conditions_).
1200
- > 1. Return the object _{ resolved, exact: ** true ** }_.
1201
- > 1. Let _expansionKeys_ be the list of keys of _matchObj_ either ending in
1202
- > _" /" _ or containing only a single _" *" _, sorted by the sorting function
1203
- > **PATTERN_KEY_COMPARE** which orders in descending order of specificity.
1194
+ > 1. Return the result of ** PACKAGE_TARGET_RESOLVE ** (_packageURL_, _target_,
1195
+ > _" " _, ** false ** , _isImports_, _conditions_).
1196
+ > 1. Let _expansionKeys_ be the list of keys of _matchObj_ containing only a
1197
+ > single _" *" _, sorted by the sorting function * *PATTERN_KEY_COMPARE** which
1198
+ > orders in descending order of specificity.
1204
1199
> 1. For each key _expansionKey_ in _expansionKeys_, do
1205
- > 1. Let _patternBase_ be **null**.
1206
- > 1. If _expansionKey_ contains _"*"_, set _patternBase_ to the substring of
1207
- > _expansionKey_ up to but excluding the first _"*"_ character.
1208
- > 1. If _patternBase_ is not **null** and _matchKey_ starts with but is not
1209
- > equal to _patternBase_, then
1210
- > 1. If _matchKey_ ends with _"/"_, throw an _Invalid Module Specifier_
1211
- > error.
1200
+ > 1. Let _patternBase_ be the substring of _expansionKey_ up to but excluding
1201
+ > the first _"*"_ character.
1202
+ > 1. If _matchKey_ starts with but is not equal to _patternBase_, then
1212
1203
> 1. Let _patternTrailer_ be the substring of _expansionKey_ from the
1213
1204
> index after the first _"*"_ character.
1214
1205
> 1. If _patternTrailer_ has zero length, or if _matchKey_ ends with
@@ -1218,20 +1209,9 @@ _isImports_, _conditions_)
1218
1209
> 1. Let _subpath_ be the substring of _matchKey_ starting at the
1219
1210
> index of the length of _patternBase_ up to the length of
1220
1211
> _matchKey_ minus the length of _patternTrailer_.
1221
- > 1. Let _resolved_ be the result of **PACKAGE_TARGET_RESOLVE**(
1222
- > _packageURL_ , _target_ , _subpath_ , ** true ** , _isImports_ ,
1223
- > _conditions_ ).
1224
- > 1. Return the object _{ resolved, exact: ** true ** }_.
1225
- > 1. Otherwise if _patternBase_ is ** null ** and _matchKey_ starts with
1226
- > _expansionKey_, then
1227
- > 1. Let _target_ be the value of _matchObj_\[_expansionKey_\].
1228
- > 1. Let _subpath_ be the substring of _matchKey_ starting at the
1229
- > index of the length of _expansionKey_.
1230
- > 1. Let _resolved_ be the result of ** PACKAGE_TARGET_RESOLVE ** (
1231
- > _packageURL_, _target_, _subpath_, ** false ** , _isImports_,
1232
- > _conditions_).
1233
- > 1. Return the object _{ resolved, exact: ** false ** }_.
1234
- > 1. Return the object _{ resolved: ** null ** , exact: ** true ** }_.
1212
+ > 1. Return the result of **PACKAGE_TARGET_RESOLVE**(_packageURL_ ,
1213
+ > _target_ , _subpath_ , ** true ** , _isImports_ , _conditions_ ).
1214
+ > 1. Return **null**.
1235
1215
1236
1216
**PATTERN_KEY_COMPARE**(_keyA_, _keyB_)
1237
1217
0 commit comments