create-nextly-app 0.0.2-alpha.60 → 0.0.2-alpha.64
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/dist/{chunk-SEU6FVET.mjs → chunk-I2U7KBH6.mjs} +456 -141
- package/dist/chunk-I2U7KBH6.mjs.map +1 -0
- package/dist/cli.cjs +457 -140
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.mjs +4 -2
- package/dist/cli.mjs.map +1 -1
- package/dist/index.cjs +454 -139
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +6 -4
- package/templates/base/.env.example +7 -1
- package/templates/base/src/app/layout.tsx +2 -3
- package/templates/base/src/lib/site-url.ts +55 -0
- package/templates/blank/src/app/(frontend)/page.tsx +2 -2
- package/templates/blank/src/app/layout.tsx +2 -3
- package/templates/plugin/eslint.config.mjs +12 -1
- package/dist/chunk-SEU6FVET.mjs.map +0 -1
|
@@ -5897,12 +5897,31 @@ var require_data = __commonJS2({
|
|
|
5897
5897
|
}
|
|
5898
5898
|
});
|
|
5899
5899
|
var require_utils = __commonJS2({
|
|
5900
|
-
"../../node_modules/.pnpm/fast-uri@3.1.
|
|
5900
|
+
"../../node_modules/.pnpm/fast-uri@3.1.7/node_modules/fast-uri/lib/utils.js"(exports$1, module) {
|
|
5901
5901
|
var isUUID = RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu);
|
|
5902
5902
|
var isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);
|
|
5903
|
+
var isPort = RegExp.prototype.test.bind(/^\d*$/u);
|
|
5903
5904
|
var isHexPair = RegExp.prototype.test.bind(/^[\da-f]{2}$/iu);
|
|
5904
5905
|
var isUnreserved = RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu);
|
|
5905
|
-
var isPathCharacter = RegExp.prototype.test.bind(/^[
|
|
5906
|
+
var isPathCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/]$/u);
|
|
5907
|
+
var isQueryFragmentCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/?]$/u);
|
|
5908
|
+
var isUserinfoCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:]$/u);
|
|
5909
|
+
var BYTE_HEX = new Array(256);
|
|
5910
|
+
{
|
|
5911
|
+
const HEX_DIGITS = "0123456789ABCDEF";
|
|
5912
|
+
for (let i2 = 0; i2 < 256; i2++) {
|
|
5913
|
+
BYTE_HEX[i2] = "%" + HEX_DIGITS[i2 >> 4] + HEX_DIGITS[i2 & 15];
|
|
5914
|
+
}
|
|
5915
|
+
}
|
|
5916
|
+
function percentEncodeNonAscii(cp) {
|
|
5917
|
+
if (cp < 2048) {
|
|
5918
|
+
return BYTE_HEX[192 | cp >> 6] + BYTE_HEX[128 | cp & 63];
|
|
5919
|
+
}
|
|
5920
|
+
if (cp < 65536) {
|
|
5921
|
+
return BYTE_HEX[224 | cp >> 12] + BYTE_HEX[128 | cp >> 6 & 63] + BYTE_HEX[128 | cp & 63];
|
|
5922
|
+
}
|
|
5923
|
+
return BYTE_HEX[240 | cp >> 18] + BYTE_HEX[128 | cp >> 12 & 63] + BYTE_HEX[128 | cp >> 6 & 63] + BYTE_HEX[128 | cp & 63];
|
|
5924
|
+
}
|
|
5906
5925
|
function stringArrayToHexStripped(input) {
|
|
5907
5926
|
let acc = "";
|
|
5908
5927
|
let code = 0;
|
|
@@ -5927,91 +5946,105 @@ var require_utils = __commonJS2({
|
|
|
5927
5946
|
}
|
|
5928
5947
|
return acc;
|
|
5929
5948
|
}
|
|
5949
|
+
var isHextet = RegExp.prototype.test.bind(/^[\dA-Fa-f]{1,4}$/);
|
|
5950
|
+
var isIPvFuture = RegExp.prototype.test.bind(/^[vV][\dA-Fa-f]+\.[A-Za-z\d\-._~!$&'()*+,;=:]+$/);
|
|
5951
|
+
var isZoneCharacter = RegExp.prototype.test.bind(/^[A-Za-z\d\-._~]$/);
|
|
5930
5952
|
var nonSimpleDomain = RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);
|
|
5931
|
-
function
|
|
5932
|
-
|
|
5933
|
-
|
|
5934
|
-
|
|
5935
|
-
|
|
5936
|
-
|
|
5937
|
-
|
|
5938
|
-
if (hex !== "") {
|
|
5939
|
-
address.push(hex);
|
|
5940
|
-
} else {
|
|
5941
|
-
output.error = true;
|
|
5942
|
-
return false;
|
|
5953
|
+
function isZoneIdentifier(zone) {
|
|
5954
|
+
if (zone.length === 0) return false;
|
|
5955
|
+
for (let i2 = 0; i2 < zone.length; i2++) {
|
|
5956
|
+
if (isZoneCharacter(zone[i2])) continue;
|
|
5957
|
+
if (zone[i2] === "%" && i2 + 2 < zone.length && isHexPair(zone.slice(i2 + 1, i2 + 3))) {
|
|
5958
|
+
i2 += 2;
|
|
5959
|
+
continue;
|
|
5943
5960
|
}
|
|
5944
|
-
|
|
5961
|
+
return false;
|
|
5945
5962
|
}
|
|
5946
5963
|
return true;
|
|
5947
5964
|
}
|
|
5948
|
-
function
|
|
5949
|
-
let
|
|
5950
|
-
|
|
5951
|
-
|
|
5952
|
-
|
|
5953
|
-
let
|
|
5954
|
-
|
|
5955
|
-
|
|
5956
|
-
|
|
5957
|
-
|
|
5958
|
-
|
|
5959
|
-
|
|
5960
|
-
}
|
|
5961
|
-
if (cursor === ":") {
|
|
5962
|
-
if (endipv6Encountered === true) {
|
|
5963
|
-
endIpv6 = true;
|
|
5964
|
-
}
|
|
5965
|
-
if (!consume(buffer, address, output)) {
|
|
5966
|
-
break;
|
|
5967
|
-
}
|
|
5968
|
-
if (++tokenCount > 7) {
|
|
5969
|
-
output.error = true;
|
|
5970
|
-
break;
|
|
5965
|
+
function compressIPv6ZeroRun(hextets) {
|
|
5966
|
+
let bestStart = -1;
|
|
5967
|
+
let bestLength = 0;
|
|
5968
|
+
let runStart = -1;
|
|
5969
|
+
let runLength = 0;
|
|
5970
|
+
for (let i2 = 0; i2 < hextets.length; i2++) {
|
|
5971
|
+
if (hextets[i2] === "0") {
|
|
5972
|
+
if (runStart === -1) runStart = i2;
|
|
5973
|
+
runLength++;
|
|
5974
|
+
if (runLength > bestLength) {
|
|
5975
|
+
bestLength = runLength;
|
|
5976
|
+
bestStart = runStart;
|
|
5971
5977
|
}
|
|
5972
|
-
if (i2 > 0 && input[i2 - 1] === ":") {
|
|
5973
|
-
endipv6Encountered = true;
|
|
5974
|
-
}
|
|
5975
|
-
address.push(":");
|
|
5976
|
-
continue;
|
|
5977
|
-
} else if (cursor === "%") {
|
|
5978
|
-
if (!consume(buffer, address, output)) {
|
|
5979
|
-
break;
|
|
5980
|
-
}
|
|
5981
|
-
consume = consumeIsZone;
|
|
5982
5978
|
} else {
|
|
5983
|
-
|
|
5979
|
+
runStart = -1;
|
|
5980
|
+
runLength = 0;
|
|
5981
|
+
}
|
|
5982
|
+
}
|
|
5983
|
+
if (bestLength < 2) return hextets.join(":");
|
|
5984
|
+
const head = hextets.slice(0, bestStart).join(":");
|
|
5985
|
+
const tail = hextets.slice(bestStart + bestLength).join(":");
|
|
5986
|
+
return head + "::" + tail;
|
|
5987
|
+
}
|
|
5988
|
+
function normalizeIPv6Address(input) {
|
|
5989
|
+
const compression = input.indexOf("::");
|
|
5990
|
+
if (compression !== -1 && input.indexOf("::", compression + 1) !== -1) return void 0;
|
|
5991
|
+
const left = compression === -1 ? input.split(":") : input.slice(0, compression).split(":");
|
|
5992
|
+
const right = compression === -1 ? [] : input.slice(compression + 2).split(":");
|
|
5993
|
+
if (compression !== -1) {
|
|
5994
|
+
if (left.length === 1 && left[0] === "") left.length = 0;
|
|
5995
|
+
if (right.length === 1 && right[0] === "") right.length = 0;
|
|
5996
|
+
}
|
|
5997
|
+
const parts = left.concat(right);
|
|
5998
|
+
let hextetCount = 0;
|
|
5999
|
+
for (let i2 = 0; i2 < parts.length; i2++) {
|
|
6000
|
+
const part = parts[i2];
|
|
6001
|
+
if (part === "") return void 0;
|
|
6002
|
+
if (part.indexOf(".") !== -1) {
|
|
6003
|
+
if (i2 !== parts.length - 1 || compression !== -1 && right.length === 0 || !isIPv4(part)) return void 0;
|
|
6004
|
+
hextetCount += 2;
|
|
5984
6005
|
continue;
|
|
5985
6006
|
}
|
|
6007
|
+
if (!isHextet(part)) return void 0;
|
|
6008
|
+
parts[i2] = parseInt(part, 16).toString(16);
|
|
6009
|
+
hextetCount++;
|
|
5986
6010
|
}
|
|
5987
|
-
if (
|
|
5988
|
-
if (
|
|
5989
|
-
|
|
5990
|
-
} else if (endIpv6) {
|
|
5991
|
-
address.push(buffer.join(""));
|
|
5992
|
-
} else {
|
|
5993
|
-
address.push(stringArrayToHexStripped(buffer));
|
|
5994
|
-
}
|
|
6011
|
+
if (compression === -1) {
|
|
6012
|
+
if (hextetCount !== 8) return void 0;
|
|
6013
|
+
return compressIPv6ZeroRun(parts);
|
|
5995
6014
|
}
|
|
5996
|
-
|
|
5997
|
-
|
|
6015
|
+
if (hextetCount >= 8) return void 0;
|
|
6016
|
+
const expanded = parts.slice(0, left.length);
|
|
6017
|
+
for (let i2 = hextetCount; i2 < 8; i2++) expanded.push("0");
|
|
6018
|
+
for (let i2 = left.length; i2 < parts.length; i2++) expanded.push(parts[i2]);
|
|
6019
|
+
return compressIPv6ZeroRun(expanded);
|
|
5998
6020
|
}
|
|
5999
6021
|
function normalizeIPv6(host) {
|
|
6000
|
-
|
|
6001
|
-
|
|
6002
|
-
}
|
|
6003
|
-
|
|
6004
|
-
if (
|
|
6005
|
-
|
|
6006
|
-
|
|
6007
|
-
|
|
6008
|
-
|
|
6009
|
-
|
|
6010
|
-
|
|
6011
|
-
|
|
6012
|
-
|
|
6013
|
-
|
|
6014
|
-
|
|
6022
|
+
const bracketed = host[0] === "[" && host[host.length - 1] === "]";
|
|
6023
|
+
const hasBracket = host[0] === "[" || host[host.length - 1] === "]";
|
|
6024
|
+
if (hasBracket && !bracketed) return { host, isIPV6: false, error: true };
|
|
6025
|
+
let input = bracketed ? host.slice(1, -1) : host;
|
|
6026
|
+
if (bracketed && isIPvFuture(input)) {
|
|
6027
|
+
input = input.toLowerCase();
|
|
6028
|
+
return { host: `[${input}]`, escapedHost: input, isIPV6: false, isIPVFuture: true };
|
|
6029
|
+
}
|
|
6030
|
+
if (findToken(input, ":") < 2) {
|
|
6031
|
+
return { host, isIPV6: false, error: bracketed };
|
|
6032
|
+
}
|
|
6033
|
+
let zoneIdentifier = "";
|
|
6034
|
+
const zoneSeparator = input.indexOf("%");
|
|
6035
|
+
if (zoneSeparator !== -1) {
|
|
6036
|
+
const separatorLength = input.slice(zoneSeparator, zoneSeparator + 3).toLowerCase() === "%25" ? 3 : 1;
|
|
6037
|
+
zoneIdentifier = input.slice(zoneSeparator + separatorLength);
|
|
6038
|
+
if (!isZoneIdentifier(zoneIdentifier)) return { host, isIPV6: false, error: true };
|
|
6039
|
+
input = input.slice(0, zoneSeparator);
|
|
6040
|
+
}
|
|
6041
|
+
const address = normalizeIPv6Address(input);
|
|
6042
|
+
if (address === void 0) return { host, isIPV6: false, error: true };
|
|
6043
|
+
return {
|
|
6044
|
+
host: address + (zoneIdentifier ? "%" + zoneIdentifier : ""),
|
|
6045
|
+
escapedHost: address + (zoneIdentifier ? "%25" + zoneIdentifier : ""),
|
|
6046
|
+
isIPV6: true
|
|
6047
|
+
};
|
|
6015
6048
|
}
|
|
6016
6049
|
function findToken(str, token) {
|
|
6017
6050
|
let ind = 0;
|
|
@@ -6130,7 +6163,8 @@ var require_utils = __commonJS2({
|
|
|
6130
6163
|
function normalizePathEncoding(input) {
|
|
6131
6164
|
let output = "";
|
|
6132
6165
|
for (let i2 = 0; i2 < input.length; i2++) {
|
|
6133
|
-
|
|
6166
|
+
const ch = input[i2];
|
|
6167
|
+
if (ch === "%" && i2 + 2 < input.length) {
|
|
6134
6168
|
const hex = input.slice(i2 + 1, i2 + 3);
|
|
6135
6169
|
if (isHexPair(hex)) {
|
|
6136
6170
|
const normalizedHex = hex.toUpperCase();
|
|
@@ -6144,10 +6178,152 @@ var require_utils = __commonJS2({
|
|
|
6144
6178
|
continue;
|
|
6145
6179
|
}
|
|
6146
6180
|
}
|
|
6147
|
-
if (isPathCharacter(
|
|
6148
|
-
output +=
|
|
6181
|
+
if (isPathCharacter(ch)) {
|
|
6182
|
+
output += ch;
|
|
6183
|
+
} else {
|
|
6184
|
+
const code = input.charCodeAt(i2);
|
|
6185
|
+
if (code < 128) {
|
|
6186
|
+
output += isEscapeSafe(code) ? ch : BYTE_HEX[code];
|
|
6187
|
+
} else if (code < 55296 || code > 57343) {
|
|
6188
|
+
output += percentEncodeNonAscii(code);
|
|
6189
|
+
} else if (code <= 56319 && i2 + 1 < input.length) {
|
|
6190
|
+
const low = input.charCodeAt(i2 + 1);
|
|
6191
|
+
if (low >= 56320 && low <= 57343) {
|
|
6192
|
+
output += percentEncodeNonAscii(65536 + (code - 55296 << 10) + (low - 56320));
|
|
6193
|
+
i2++;
|
|
6194
|
+
} else {
|
|
6195
|
+
output += percentEncodeNonAscii(65533);
|
|
6196
|
+
}
|
|
6197
|
+
} else {
|
|
6198
|
+
output += percentEncodeNonAscii(65533);
|
|
6199
|
+
}
|
|
6200
|
+
}
|
|
6201
|
+
}
|
|
6202
|
+
return output;
|
|
6203
|
+
}
|
|
6204
|
+
function serializePathEncoding(input, pathNoScheme = false) {
|
|
6205
|
+
let output = "";
|
|
6206
|
+
let firstSegment = pathNoScheme && input[0] !== "/";
|
|
6207
|
+
for (let i2 = 0; i2 < input.length; i2++) {
|
|
6208
|
+
const ch = input[i2];
|
|
6209
|
+
if (ch === "%" && i2 + 2 < input.length) {
|
|
6210
|
+
const hex = input.slice(i2 + 1, i2 + 3);
|
|
6211
|
+
if (isHexPair(hex)) {
|
|
6212
|
+
output += "%" + hex.toUpperCase();
|
|
6213
|
+
i2 += 2;
|
|
6214
|
+
continue;
|
|
6215
|
+
}
|
|
6216
|
+
}
|
|
6217
|
+
if (ch === "/") {
|
|
6218
|
+
firstSegment = false;
|
|
6219
|
+
}
|
|
6220
|
+
if (isPathCharacter(ch) && (ch !== ":" || !firstSegment)) {
|
|
6221
|
+
output += ch;
|
|
6149
6222
|
} else {
|
|
6150
|
-
|
|
6223
|
+
const code = input.charCodeAt(i2);
|
|
6224
|
+
if (code < 128) {
|
|
6225
|
+
output += BYTE_HEX[code];
|
|
6226
|
+
} else if (code < 55296 || code > 57343) {
|
|
6227
|
+
output += percentEncodeNonAscii(code);
|
|
6228
|
+
} else if (code <= 56319 && i2 + 1 < input.length) {
|
|
6229
|
+
const low = input.charCodeAt(i2 + 1);
|
|
6230
|
+
if (low >= 56320 && low <= 57343) {
|
|
6231
|
+
output += percentEncodeNonAscii(65536 + (code - 55296 << 10) + (low - 56320));
|
|
6232
|
+
i2++;
|
|
6233
|
+
} else {
|
|
6234
|
+
output += percentEncodeNonAscii(65533);
|
|
6235
|
+
}
|
|
6236
|
+
} else {
|
|
6237
|
+
output += percentEncodeNonAscii(65533);
|
|
6238
|
+
}
|
|
6239
|
+
}
|
|
6240
|
+
}
|
|
6241
|
+
return output;
|
|
6242
|
+
}
|
|
6243
|
+
function encodeComponent(input, isAllowed) {
|
|
6244
|
+
let output = "";
|
|
6245
|
+
for (let i2 = 0; i2 < input.length; i2++) {
|
|
6246
|
+
const ch = input[i2];
|
|
6247
|
+
if (ch === "%" && i2 + 2 < input.length) {
|
|
6248
|
+
const hex = input.slice(i2 + 1, i2 + 3);
|
|
6249
|
+
if (isHexPair(hex)) {
|
|
6250
|
+
output += "%" + hex.toUpperCase();
|
|
6251
|
+
i2 += 2;
|
|
6252
|
+
continue;
|
|
6253
|
+
}
|
|
6254
|
+
}
|
|
6255
|
+
if (isAllowed(ch)) {
|
|
6256
|
+
output += ch;
|
|
6257
|
+
} else {
|
|
6258
|
+
const code = input.charCodeAt(i2);
|
|
6259
|
+
if (code < 128) {
|
|
6260
|
+
output += BYTE_HEX[code];
|
|
6261
|
+
} else if (code < 55296 || code > 57343) {
|
|
6262
|
+
output += percentEncodeNonAscii(code);
|
|
6263
|
+
} else if (code <= 56319 && i2 + 1 < input.length) {
|
|
6264
|
+
const low = input.charCodeAt(i2 + 1);
|
|
6265
|
+
if (low >= 56320 && low <= 57343) {
|
|
6266
|
+
output += percentEncodeNonAscii(65536 + (code - 55296 << 10) + (low - 56320));
|
|
6267
|
+
i2++;
|
|
6268
|
+
} else {
|
|
6269
|
+
output += percentEncodeNonAscii(65533);
|
|
6270
|
+
}
|
|
6271
|
+
} else {
|
|
6272
|
+
output += percentEncodeNonAscii(65533);
|
|
6273
|
+
}
|
|
6274
|
+
}
|
|
6275
|
+
}
|
|
6276
|
+
return output;
|
|
6277
|
+
}
|
|
6278
|
+
function encodeUserinfo(input) {
|
|
6279
|
+
return encodeComponent(input, isUserinfoCharacter);
|
|
6280
|
+
}
|
|
6281
|
+
function encodeQuery(input) {
|
|
6282
|
+
return encodeComponent(input, isQueryFragmentCharacter);
|
|
6283
|
+
}
|
|
6284
|
+
function encodeFragment(input) {
|
|
6285
|
+
return encodeComponent(input, isQueryFragmentCharacter);
|
|
6286
|
+
}
|
|
6287
|
+
function isEscapeSafe(cp) {
|
|
6288
|
+
return cp >= 48 && cp <= 57 || cp >= 65 && cp <= 90 || cp >= 97 && cp <= 122 || cp === 42 || cp === 43 || cp === 45 || cp === 46 || cp === 47 || cp === 64 || cp === 95;
|
|
6289
|
+
}
|
|
6290
|
+
function normalizeQueryFragmentEncoding(input) {
|
|
6291
|
+
let output = "";
|
|
6292
|
+
for (let i2 = 0; i2 < input.length; i2++) {
|
|
6293
|
+
const ch = input[i2];
|
|
6294
|
+
if (ch === "%" && i2 + 2 < input.length) {
|
|
6295
|
+
const hex = input.slice(i2 + 1, i2 + 3);
|
|
6296
|
+
if (isHexPair(hex)) {
|
|
6297
|
+
const normalizedHex = hex.toUpperCase();
|
|
6298
|
+
const decoded = String.fromCharCode(parseInt(normalizedHex, 16));
|
|
6299
|
+
if (isUnreserved(decoded)) {
|
|
6300
|
+
output += decoded;
|
|
6301
|
+
} else {
|
|
6302
|
+
output += "%" + normalizedHex;
|
|
6303
|
+
}
|
|
6304
|
+
i2 += 2;
|
|
6305
|
+
continue;
|
|
6306
|
+
}
|
|
6307
|
+
}
|
|
6308
|
+
if (isQueryFragmentCharacter(ch)) {
|
|
6309
|
+
output += ch;
|
|
6310
|
+
} else {
|
|
6311
|
+
const code = input.charCodeAt(i2);
|
|
6312
|
+
if (code < 128) {
|
|
6313
|
+
output += isEscapeSafe(code) ? ch : BYTE_HEX[code];
|
|
6314
|
+
} else if (code < 55296 || code > 57343) {
|
|
6315
|
+
output += percentEncodeNonAscii(code);
|
|
6316
|
+
} else if (code <= 56319 && i2 + 1 < input.length) {
|
|
6317
|
+
const low = input.charCodeAt(i2 + 1);
|
|
6318
|
+
if (low >= 56320 && low <= 57343) {
|
|
6319
|
+
output += percentEncodeNonAscii(65536 + (code - 55296 << 10) + (low - 56320));
|
|
6320
|
+
i2++;
|
|
6321
|
+
} else {
|
|
6322
|
+
output += percentEncodeNonAscii(65533);
|
|
6323
|
+
}
|
|
6324
|
+
} else {
|
|
6325
|
+
output += percentEncodeNonAscii(65533);
|
|
6326
|
+
}
|
|
6151
6327
|
}
|
|
6152
6328
|
}
|
|
6153
6329
|
return output;
|
|
@@ -6170,14 +6346,18 @@ var require_utils = __commonJS2({
|
|
|
6170
6346
|
function recomposeAuthority(component) {
|
|
6171
6347
|
const uriTokens = [];
|
|
6172
6348
|
if (component.userinfo !== void 0) {
|
|
6173
|
-
uriTokens.push(component.userinfo);
|
|
6349
|
+
uriTokens.push(encodeUserinfo(component.userinfo));
|
|
6174
6350
|
uriTokens.push("@");
|
|
6175
6351
|
}
|
|
6176
6352
|
if (component.host !== void 0) {
|
|
6177
|
-
let host =
|
|
6353
|
+
let host = component.host;
|
|
6178
6354
|
if (!isIPv4(host)) {
|
|
6179
|
-
|
|
6180
|
-
if (ipV6res.isIPV6
|
|
6355
|
+
let ipV6res = normalizeIPv6(host);
|
|
6356
|
+
if (ipV6res.isIPV6 !== true && ipV6res.isIPVFuture !== true) {
|
|
6357
|
+
host = normalizePercentEncoding(host, true);
|
|
6358
|
+
ipV6res = normalizeIPv6(host);
|
|
6359
|
+
}
|
|
6360
|
+
if (ipV6res.isIPV6 === true || ipV6res.isIPVFuture === true) {
|
|
6181
6361
|
host = `[${ipV6res.escapedHost}]`;
|
|
6182
6362
|
} else {
|
|
6183
6363
|
host = reescapeHostDelimiters(host, false);
|
|
@@ -6186,8 +6366,12 @@ var require_utils = __commonJS2({
|
|
|
6186
6366
|
uriTokens.push(host);
|
|
6187
6367
|
}
|
|
6188
6368
|
if (typeof component.port === "number" || typeof component.port === "string") {
|
|
6369
|
+
const port = String(component.port);
|
|
6370
|
+
if (!isPort(port)) {
|
|
6371
|
+
throw new TypeError("URI port is malformed.");
|
|
6372
|
+
}
|
|
6189
6373
|
uriTokens.push(":");
|
|
6190
|
-
uriTokens.push(
|
|
6374
|
+
uriTokens.push(port);
|
|
6191
6375
|
}
|
|
6192
6376
|
return uriTokens.length ? uriTokens.join("") : void 0;
|
|
6193
6377
|
}
|
|
@@ -6197,6 +6381,11 @@ var require_utils = __commonJS2({
|
|
|
6197
6381
|
reescapeHostDelimiters,
|
|
6198
6382
|
normalizePercentEncoding,
|
|
6199
6383
|
normalizePathEncoding,
|
|
6384
|
+
serializePathEncoding,
|
|
6385
|
+
normalizeQueryFragmentEncoding,
|
|
6386
|
+
encodeUserinfo,
|
|
6387
|
+
encodeQuery,
|
|
6388
|
+
encodeFragment,
|
|
6200
6389
|
escapePreservingEscapes,
|
|
6201
6390
|
removeDotSegments,
|
|
6202
6391
|
isIPv4,
|
|
@@ -6207,9 +6396,9 @@ var require_utils = __commonJS2({
|
|
|
6207
6396
|
}
|
|
6208
6397
|
});
|
|
6209
6398
|
var require_schemes = __commonJS2({
|
|
6210
|
-
"../../node_modules/.pnpm/fast-uri@3.1.
|
|
6399
|
+
"../../node_modules/.pnpm/fast-uri@3.1.7/node_modules/fast-uri/lib/schemes.js"(exports$1, module) {
|
|
6211
6400
|
var { isUUID } = require_utils();
|
|
6212
|
-
var URN_REG =
|
|
6401
|
+
var URN_REG = /^([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-./:;=@]|%[\da-f]{2})+)$/iu;
|
|
6213
6402
|
var supportedSchemeNames = (
|
|
6214
6403
|
/** @type {const} */
|
|
6215
6404
|
[
|
|
@@ -6270,9 +6459,10 @@ var require_schemes = __commonJS2({
|
|
|
6270
6459
|
wsComponent.secure = void 0;
|
|
6271
6460
|
}
|
|
6272
6461
|
if (wsComponent.resourceName) {
|
|
6273
|
-
const
|
|
6462
|
+
const queryIndex = wsComponent.resourceName.indexOf("?");
|
|
6463
|
+
const path52 = queryIndex === -1 ? wsComponent.resourceName : wsComponent.resourceName.slice(0, queryIndex);
|
|
6274
6464
|
wsComponent.path = path52 && path52 !== "/" ? path52 : void 0;
|
|
6275
|
-
wsComponent.query =
|
|
6465
|
+
wsComponent.query = queryIndex === -1 ? void 0 : wsComponent.resourceName.slice(queryIndex + 1);
|
|
6276
6466
|
wsComponent.resourceName = void 0;
|
|
6277
6467
|
}
|
|
6278
6468
|
wsComponent.fragment = void 0;
|
|
@@ -6284,7 +6474,7 @@ var require_schemes = __commonJS2({
|
|
|
6284
6474
|
return urnComponent;
|
|
6285
6475
|
}
|
|
6286
6476
|
const matches = urnComponent.path.match(URN_REG);
|
|
6287
|
-
if (matches) {
|
|
6477
|
+
if (matches && matches[0] === urnComponent.path) {
|
|
6288
6478
|
const scheme = options.scheme || urnComponent.scheme || "urn";
|
|
6289
6479
|
urnComponent.nid = matches[1].toLowerCase();
|
|
6290
6480
|
urnComponent.nss = matches[2];
|
|
@@ -6414,9 +6604,18 @@ var require_schemes = __commonJS2({
|
|
|
6414
6604
|
}
|
|
6415
6605
|
});
|
|
6416
6606
|
var require_fast_uri = __commonJS2({
|
|
6417
|
-
"../../node_modules/.pnpm/fast-uri@3.1.
|
|
6418
|
-
var { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding,
|
|
6607
|
+
"../../node_modules/.pnpm/fast-uri@3.1.7/node_modules/fast-uri/index.js"(exports$1, module) {
|
|
6608
|
+
var { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, serializePathEncoding, normalizeQueryFragmentEncoding, encodeQuery, encodeFragment, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require_utils();
|
|
6419
6609
|
var { SCHEMES, getSchemeHandler } = require_schemes();
|
|
6610
|
+
var VALID_SCHEME = /^[A-Za-z][A-Za-z0-9+.-]*$/u;
|
|
6611
|
+
var MALFORMED_SCHEME_ERROR = "URI scheme is malformed.";
|
|
6612
|
+
function decodeValidScheme(scheme) {
|
|
6613
|
+
const decodedScheme = unescape(String(scheme));
|
|
6614
|
+
if (!VALID_SCHEME.test(decodedScheme)) {
|
|
6615
|
+
throw new TypeError(MALFORMED_SCHEME_ERROR);
|
|
6616
|
+
}
|
|
6617
|
+
return decodedScheme;
|
|
6618
|
+
}
|
|
6420
6619
|
function normalize(uri, options) {
|
|
6421
6620
|
if (typeof uri === "string") {
|
|
6422
6621
|
uri = /** @type {T} */
|
|
@@ -6429,12 +6628,34 @@ var require_fast_uri = __commonJS2({
|
|
|
6429
6628
|
}
|
|
6430
6629
|
function resolve(baseURI, relativeURI, options) {
|
|
6431
6630
|
const schemelessOptions = options ? Object.assign({ scheme: "null" }, options) : { scheme: "null" };
|
|
6432
|
-
const {
|
|
6433
|
-
|
|
6434
|
-
|
|
6631
|
+
const {
|
|
6632
|
+
parsed: baseParsed,
|
|
6633
|
+
malformedAuthorityOrPort: baseMalformed,
|
|
6634
|
+
malformedPercentEncoding: baseMalformedPercentEncoding,
|
|
6635
|
+
malformedSchemeSpecific: baseMalformedSchemeSpecific,
|
|
6636
|
+
malformedHost: baseMalformedHost,
|
|
6637
|
+
malformedScheme: baseMalformedScheme
|
|
6638
|
+
} = parseWithStatus(baseURI, schemelessOptions);
|
|
6639
|
+
const {
|
|
6640
|
+
parsed: relativeParsed,
|
|
6641
|
+
malformedAuthorityOrPort: relativeMalformed,
|
|
6642
|
+
malformedPercentEncoding: relativeMalformedPercentEncoding,
|
|
6643
|
+
malformedSchemeSpecific: relativeMalformedSchemeSpecific,
|
|
6644
|
+
malformedHost: relativeMalformedHost,
|
|
6645
|
+
malformedScheme: relativeMalformedScheme
|
|
6646
|
+
} = parseWithStatus(relativeURI, schemelessOptions);
|
|
6647
|
+
if (baseMalformed || relativeMalformed || baseMalformedPercentEncoding || relativeMalformedPercentEncoding || baseMalformedSchemeSpecific || relativeMalformedSchemeSpecific || baseMalformedHost || relativeMalformedHost || baseMalformedScheme || relativeMalformedScheme) {
|
|
6435
6648
|
throw new Error(baseParsed.error || relativeParsed.error || "URI is malformed.");
|
|
6436
6649
|
}
|
|
6437
6650
|
const resolved = resolveComponent(baseParsed, relativeParsed, schemelessOptions, true);
|
|
6651
|
+
const resolvedSchemeHandler = getSchemeHandler(options && options.scheme || resolved.scheme);
|
|
6652
|
+
const resolvedHost = resolved.host;
|
|
6653
|
+
const resolvedHostIsIP = resolvedHost !== void 0 && resolvedHost !== "" && (isIPv4(resolvedHost) || normalizeIPv6(resolvedHost).isIPV6);
|
|
6654
|
+
canonicalizeHost(resolved, options || {}, resolvedSchemeHandler, resolvedHostIsIP);
|
|
6655
|
+
const encodedASCIIHost = resolvedHost && resolvedHost.indexOf("%") !== -1 && !new RegExp("\\P{ASCII}", "u").test(resolvedHost);
|
|
6656
|
+
if (resolved.error && !encodedASCIIHost) {
|
|
6657
|
+
throw new Error(resolved.error);
|
|
6658
|
+
}
|
|
6438
6659
|
schemelessOptions.skipEscape = true;
|
|
6439
6660
|
return serialize2(resolved, schemelessOptions);
|
|
6440
6661
|
}
|
|
@@ -6494,7 +6715,7 @@ var require_fast_uri = __commonJS2({
|
|
|
6494
6715
|
function equal(uriA, uriB, options) {
|
|
6495
6716
|
const normalizedA = normalizeComparableURI(uriA, options);
|
|
6496
6717
|
const normalizedB = normalizeComparableURI(uriB, options);
|
|
6497
|
-
return normalizedA !== void 0 && normalizedB !== void 0 && normalizedA
|
|
6718
|
+
return normalizedA !== void 0 && normalizedB !== void 0 && normalizedA === normalizedB;
|
|
6498
6719
|
}
|
|
6499
6720
|
function serialize2(cmpts, opts) {
|
|
6500
6721
|
const component = {
|
|
@@ -6515,19 +6736,22 @@ var require_fast_uri = __commonJS2({
|
|
|
6515
6736
|
};
|
|
6516
6737
|
const options = Object.assign({}, opts);
|
|
6517
6738
|
const uriTokens = [];
|
|
6739
|
+
if (component.scheme) {
|
|
6740
|
+
component.scheme = decodeValidScheme(component.scheme);
|
|
6741
|
+
}
|
|
6518
6742
|
const schemeHandler = getSchemeHandler(options.scheme || component.scheme);
|
|
6519
6743
|
if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options);
|
|
6744
|
+
const hasAuthority = component.userinfo !== void 0 || component.host !== void 0 || component.port !== void 0;
|
|
6745
|
+
const pathNoScheme = !options.skipEscape && component.scheme === void 0 && !hasAuthority;
|
|
6520
6746
|
if (component.path !== void 0) {
|
|
6521
6747
|
if (!options.skipEscape) {
|
|
6522
|
-
component.path =
|
|
6523
|
-
if (component.scheme !== void 0) {
|
|
6524
|
-
component.path = component.path.split("%3A").join(":");
|
|
6525
|
-
}
|
|
6748
|
+
component.path = serializePathEncoding(component.path, pathNoScheme);
|
|
6526
6749
|
} else {
|
|
6527
6750
|
component.path = normalizePercentEncoding(component.path);
|
|
6528
6751
|
}
|
|
6529
6752
|
}
|
|
6530
6753
|
if (options.reference !== "suffix" && component.scheme) {
|
|
6754
|
+
component.scheme = decodeValidScheme(component.scheme);
|
|
6531
6755
|
uriTokens.push(component.scheme, ":");
|
|
6532
6756
|
}
|
|
6533
6757
|
const authority = recomposeAuthority(component);
|
|
@@ -6545,16 +6769,19 @@ var require_fast_uri = __commonJS2({
|
|
|
6545
6769
|
if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {
|
|
6546
6770
|
s3 = removeDotSegments(s3);
|
|
6547
6771
|
}
|
|
6772
|
+
if (pathNoScheme) {
|
|
6773
|
+
s3 = serializePathEncoding(s3, true);
|
|
6774
|
+
}
|
|
6548
6775
|
if (authority === void 0 && s3[0] === "/" && s3[1] === "/") {
|
|
6549
6776
|
s3 = "/%2F" + s3.slice(2);
|
|
6550
6777
|
}
|
|
6551
6778
|
uriTokens.push(s3);
|
|
6552
6779
|
}
|
|
6553
6780
|
if (component.query !== void 0) {
|
|
6554
|
-
uriTokens.push("?", component.query);
|
|
6781
|
+
uriTokens.push("?", encodeQuery(component.query));
|
|
6555
6782
|
}
|
|
6556
6783
|
if (component.fragment !== void 0) {
|
|
6557
|
-
uriTokens.push("#", component.fragment);
|
|
6784
|
+
uriTokens.push("#", encodeFragment(component.fragment));
|
|
6558
6785
|
}
|
|
6559
6786
|
return uriTokens.join("");
|
|
6560
6787
|
}
|
|
@@ -6570,6 +6797,35 @@ var require_fast_uri = __commonJS2({
|
|
|
6570
6797
|
}
|
|
6571
6798
|
return void 0;
|
|
6572
6799
|
}
|
|
6800
|
+
function hasMalformedPercentEncoding(component) {
|
|
6801
|
+
if (component === void 0) return false;
|
|
6802
|
+
let percent = component.indexOf("%");
|
|
6803
|
+
while (percent !== -1) {
|
|
6804
|
+
if (percent + 2 >= component.length || !/^[\da-f]{2}$/iu.test(component.slice(percent + 1, percent + 3))) {
|
|
6805
|
+
return true;
|
|
6806
|
+
}
|
|
6807
|
+
percent = component.indexOf("%", percent + 3);
|
|
6808
|
+
}
|
|
6809
|
+
return false;
|
|
6810
|
+
}
|
|
6811
|
+
function isIPLiteral(host) {
|
|
6812
|
+
return host[0] === "[" && host[host.length - 1] === "]";
|
|
6813
|
+
}
|
|
6814
|
+
function hasMalformedComponentPercentEncoding(matches) {
|
|
6815
|
+
const host = matches[4];
|
|
6816
|
+
return hasMalformedPercentEncoding(matches[3]) || host !== void 0 && !isIPLiteral(host) && hasMalformedPercentEncoding(host) || hasMalformedPercentEncoding(matches[6]) || hasMalformedPercentEncoding(matches[7]) || hasMalformedPercentEncoding(matches[8]);
|
|
6817
|
+
}
|
|
6818
|
+
function canonicalizeHost(parsed, options, schemeHandler, isIP) {
|
|
6819
|
+
if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport) && parsed.host && !isIPLiteral(parsed.host) && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) {
|
|
6820
|
+
try {
|
|
6821
|
+
parsed.host = new URL("http://" + parsed.host).hostname;
|
|
6822
|
+
} catch (e) {
|
|
6823
|
+
parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e;
|
|
6824
|
+
return true;
|
|
6825
|
+
}
|
|
6826
|
+
}
|
|
6827
|
+
return false;
|
|
6828
|
+
}
|
|
6573
6829
|
function parseWithStatus(uri, opts) {
|
|
6574
6830
|
const options = Object.assign({}, opts);
|
|
6575
6831
|
const parsed = {
|
|
@@ -6582,6 +6838,11 @@ var require_fast_uri = __commonJS2({
|
|
|
6582
6838
|
fragment: void 0
|
|
6583
6839
|
};
|
|
6584
6840
|
let malformedAuthorityOrPort = false;
|
|
6841
|
+
let malformedPercentEncoding = false;
|
|
6842
|
+
let malformedSchemeSpecific = false;
|
|
6843
|
+
let malformedHost = false;
|
|
6844
|
+
let malformedIPLiteral = false;
|
|
6845
|
+
let malformedScheme = false;
|
|
6585
6846
|
let isIP = false;
|
|
6586
6847
|
if (options.reference === "suffix") {
|
|
6587
6848
|
if (options.scheme) {
|
|
@@ -6618,6 +6879,19 @@ var require_fast_uri = __commonJS2({
|
|
|
6618
6879
|
parsed.path = matches[6] || "";
|
|
6619
6880
|
parsed.query = matches[7];
|
|
6620
6881
|
parsed.fragment = matches[8];
|
|
6882
|
+
if (parsed.scheme !== void 0) {
|
|
6883
|
+
const decodedScheme = unescape(parsed.scheme);
|
|
6884
|
+
if (VALID_SCHEME.test(decodedScheme)) {
|
|
6885
|
+
parsed.scheme = decodedScheme.toLowerCase();
|
|
6886
|
+
} else {
|
|
6887
|
+
parsed.error = parsed.error || MALFORMED_SCHEME_ERROR;
|
|
6888
|
+
malformedScheme = true;
|
|
6889
|
+
}
|
|
6890
|
+
}
|
|
6891
|
+
malformedPercentEncoding = hasMalformedComponentPercentEncoding(matches);
|
|
6892
|
+
if (malformedPercentEncoding) {
|
|
6893
|
+
parsed.error = parsed.error || "URI contains malformed percent-encoding.";
|
|
6894
|
+
}
|
|
6621
6895
|
if (isNaN(parsed.port)) {
|
|
6622
6896
|
parsed.port = matches[5];
|
|
6623
6897
|
}
|
|
@@ -6629,9 +6903,16 @@ var require_fast_uri = __commonJS2({
|
|
|
6629
6903
|
if (parsed.host) {
|
|
6630
6904
|
const ipv4result = isIPv4(parsed.host);
|
|
6631
6905
|
if (ipv4result === false) {
|
|
6906
|
+
const bracketedIPLiteral = isIPLiteral(parsed.host);
|
|
6907
|
+
const hasIPLiteralBracket = parsed.host.indexOf("[") !== -1 || parsed.host.indexOf("]") !== -1;
|
|
6632
6908
|
const ipv6result = normalizeIPv6(parsed.host);
|
|
6633
|
-
|
|
6634
|
-
|
|
6909
|
+
isIP = ipv6result.isIPV6 || ipv6result.isIPVFuture === true;
|
|
6910
|
+
malformedIPLiteral = hasIPLiteralBracket && (!bracketedIPLiteral || ipv6result.error === true);
|
|
6911
|
+
parsed.host = isIP ? ipv6result.host : ipv6result.host.toLowerCase();
|
|
6912
|
+
if (malformedIPLiteral) {
|
|
6913
|
+
parsed.error = parsed.error || "URI host is malformed.";
|
|
6914
|
+
malformedAuthorityOrPort = true;
|
|
6915
|
+
}
|
|
6635
6916
|
} else {
|
|
6636
6917
|
isIP = true;
|
|
6637
6918
|
}
|
|
@@ -6649,42 +6930,36 @@ var require_fast_uri = __commonJS2({
|
|
|
6649
6930
|
parsed.error = parsed.error || "URI is not a " + options.reference + " reference.";
|
|
6650
6931
|
}
|
|
6651
6932
|
const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme);
|
|
6652
|
-
if (!
|
|
6653
|
-
|
|
6654
|
-
try {
|
|
6655
|
-
parsed.host = new URL("http://" + parsed.host).hostname;
|
|
6656
|
-
} catch (e) {
|
|
6657
|
-
parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e;
|
|
6658
|
-
}
|
|
6659
|
-
}
|
|
6933
|
+
if (!malformedIPLiteral) {
|
|
6934
|
+
malformedHost = canonicalizeHost(parsed, options, schemeHandler, isIP);
|
|
6660
6935
|
}
|
|
6661
6936
|
if (!schemeHandler || schemeHandler && !schemeHandler.skipNormalize) {
|
|
6662
6937
|
if (uri.indexOf("%") !== -1) {
|
|
6663
|
-
if (parsed.
|
|
6664
|
-
parsed.
|
|
6665
|
-
|
|
6666
|
-
if (parsed.host !== void 0) {
|
|
6667
|
-
parsed.host = reescapeHostDelimiters(unescape(parsed.host), isIP);
|
|
6938
|
+
if (parsed.host !== void 0 && !malformedIPLiteral) {
|
|
6939
|
+
const host = isIP ? parsed.host : normalizePercentEncoding(parsed.host, true);
|
|
6940
|
+
parsed.host = reescapeHostDelimiters(host, isIP);
|
|
6668
6941
|
}
|
|
6669
6942
|
}
|
|
6670
6943
|
if (parsed.path) {
|
|
6671
6944
|
parsed.path = normalizePathEncoding(parsed.path);
|
|
6672
6945
|
}
|
|
6946
|
+
if (parsed.query) {
|
|
6947
|
+
parsed.query = normalizeQueryFragmentEncoding(parsed.query);
|
|
6948
|
+
}
|
|
6673
6949
|
if (parsed.fragment) {
|
|
6674
|
-
|
|
6675
|
-
parsed.fragment = encodeURI(decodeURIComponent(parsed.fragment));
|
|
6676
|
-
} catch {
|
|
6677
|
-
parsed.error = parsed.error || "URI malformed";
|
|
6678
|
-
}
|
|
6950
|
+
parsed.fragment = normalizeQueryFragmentEncoding(parsed.fragment);
|
|
6679
6951
|
}
|
|
6680
6952
|
}
|
|
6681
6953
|
if (schemeHandler && schemeHandler.parse) {
|
|
6682
6954
|
schemeHandler.parse(parsed, options);
|
|
6955
|
+
if (schemeHandler === SCHEMES.urn && parsed.nid === void 0) {
|
|
6956
|
+
malformedSchemeSpecific = true;
|
|
6957
|
+
}
|
|
6683
6958
|
}
|
|
6684
6959
|
} else {
|
|
6685
6960
|
parsed.error = parsed.error || "URI can not be parsed.";
|
|
6686
6961
|
}
|
|
6687
|
-
return { parsed, malformedAuthorityOrPort };
|
|
6962
|
+
return { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme };
|
|
6688
6963
|
}
|
|
6689
6964
|
function parse(uri, opts) {
|
|
6690
6965
|
return parseWithStatus(uri, opts).parsed;
|
|
@@ -6693,20 +6968,28 @@ var require_fast_uri = __commonJS2({
|
|
|
6693
6968
|
return normalizeStringWithStatus(uri, opts).normalized;
|
|
6694
6969
|
}
|
|
6695
6970
|
function normalizeStringWithStatus(uri, opts) {
|
|
6696
|
-
const { parsed, malformedAuthorityOrPort } = parseWithStatus(uri, opts);
|
|
6971
|
+
const { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = parseWithStatus(uri, opts);
|
|
6697
6972
|
return {
|
|
6698
|
-
normalized: malformedAuthorityOrPort ? uri : serialize2(parsed, opts),
|
|
6699
|
-
malformedAuthorityOrPort
|
|
6973
|
+
normalized: malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? uri : serialize2(parsed, opts),
|
|
6974
|
+
malformedAuthorityOrPort,
|
|
6975
|
+
malformedPercentEncoding,
|
|
6976
|
+
malformedSchemeSpecific,
|
|
6977
|
+
malformedHost,
|
|
6978
|
+
malformedScheme
|
|
6700
6979
|
};
|
|
6701
6980
|
}
|
|
6702
6981
|
function normalizeComparableURI(uri, opts) {
|
|
6703
|
-
if (typeof uri
|
|
6704
|
-
|
|
6705
|
-
return malformedAuthorityOrPort ? void 0 : normalized;
|
|
6982
|
+
if (typeof uri !== "string" && typeof uri !== "object") {
|
|
6983
|
+
return void 0;
|
|
6706
6984
|
}
|
|
6707
|
-
|
|
6708
|
-
|
|
6985
|
+
let value;
|
|
6986
|
+
try {
|
|
6987
|
+
value = typeof uri === "string" ? uri : serialize2(uri, opts);
|
|
6988
|
+
} catch {
|
|
6989
|
+
return void 0;
|
|
6709
6990
|
}
|
|
6991
|
+
const { normalized, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = normalizeStringWithStatus(value, opts);
|
|
6992
|
+
return malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? void 0 : normalized;
|
|
6710
6993
|
}
|
|
6711
6994
|
var fastUri = {
|
|
6712
6995
|
SCHEMES,
|
|
@@ -18360,9 +18643,15 @@ DATABASE_URL=${database.envExample}
|
|
|
18360
18643
|
# Authentication (auto-generated, change if needed)
|
|
18361
18644
|
NEXTLY_SECRET=${generateNextlySecret()}
|
|
18362
18645
|
|
|
18363
|
-
#
|
|
18646
|
+
# Where the Nextly app itself lives: the admin, the API, and the origin its
|
|
18647
|
+
# emails and preview links point at.
|
|
18364
18648
|
NEXT_PUBLIC_APP_URL=http://localhost:3000
|
|
18365
18649
|
|
|
18650
|
+
# Where READERS find the public site. Used for canonical links, Open Graph
|
|
18651
|
+
# tags, the sitemap and RSS. Set it when the public site is served from a
|
|
18652
|
+
# different origin than the app above; otherwise the app's origin is used.
|
|
18653
|
+
# NEXT_PUBLIC_SITE_URL=https://example.com
|
|
18654
|
+
|
|
18366
18655
|
${DIAGNOSTICS_BLOCK}`;
|
|
18367
18656
|
}
|
|
18368
18657
|
async function generateEnv(cwd, database) {
|
|
@@ -25192,7 +25481,15 @@ async function walkSourceFiles(root) {
|
|
|
25192
25481
|
function projectUsesFormBuilder(projectType) {
|
|
25193
25482
|
return PROJECT_TYPES_WITH_FORM_BUILDER.has(projectType);
|
|
25194
25483
|
}
|
|
25195
|
-
var CONTENT_TEMPLATE_TYPES = /* @__PURE__ */ new Set([
|
|
25484
|
+
var CONTENT_TEMPLATE_TYPES = /* @__PURE__ */ new Set([
|
|
25485
|
+
"blog",
|
|
25486
|
+
// The plugin template installs `@nextlyhq/eslint-plugin` for the design-token
|
|
25487
|
+
// rules, and that package exists on `alpha` only — `latest` is the conservative
|
|
25488
|
+
// tag and lags the active release line. Pinned to `latest` a plugin scaffold
|
|
25489
|
+
// would resolve a version of it that predates the rules, exactly as a content
|
|
25490
|
+
// scaffold would resolve a `nextly` missing the helpers its pages import.
|
|
25491
|
+
"plugin"
|
|
25492
|
+
]);
|
|
25196
25493
|
function templateNextlyChannel(projectType) {
|
|
25197
25494
|
return CONTENT_TEMPLATE_TYPES.has(projectType) ? "alpha" : "latest";
|
|
25198
25495
|
}
|
|
@@ -25480,7 +25777,12 @@ var PINNED_VERSIONS = {
|
|
|
25480
25777
|
"@types/react-dom": "^19",
|
|
25481
25778
|
"@tailwindcss/postcss": "^4",
|
|
25482
25779
|
tailwindcss: "^4",
|
|
25483
|
-
eslint: "^9"
|
|
25780
|
+
eslint: "^9",
|
|
25781
|
+
// Compiles `nextly.config.ts` so the dev server and the CLI can read it.
|
|
25782
|
+
// An optional peer of `nextly` rather than a dependency, because nothing
|
|
25783
|
+
// that serves a request needs it: a production install omitting dev
|
|
25784
|
+
// dependencies never downloads it.
|
|
25785
|
+
esbuild: "^0.28.1"
|
|
25484
25786
|
};
|
|
25485
25787
|
var RUNTIME_RESOLVED_PACKAGES = ["next", "eslint-config-next"];
|
|
25486
25788
|
var NEXTLY_PACKAGES = [
|
|
@@ -25492,7 +25794,8 @@ var NEXTLY_PACKAGES = [
|
|
|
25492
25794
|
"@nextlyhq/adapter-mysql",
|
|
25493
25795
|
"@nextlyhq/adapter-sqlite",
|
|
25494
25796
|
"@nextlyhq/plugin-form-builder",
|
|
25495
|
-
"@nextlyhq/plugin-sdk"
|
|
25797
|
+
"@nextlyhq/plugin-sdk",
|
|
25798
|
+
"@nextlyhq/eslint-plugin"
|
|
25496
25799
|
];
|
|
25497
25800
|
var resolvedNextlyVersions = /* @__PURE__ */ new Map();
|
|
25498
25801
|
async function fetchLatestVersion(pkg, channel = "latest") {
|
|
@@ -25539,7 +25842,11 @@ async function resolveRuntimeVersions() {
|
|
|
25539
25842
|
}
|
|
25540
25843
|
async function generatePackageJson(projectName, database, useYalc = false, projectType = "blank", templateDirs = [], targetDir) {
|
|
25541
25844
|
if (projectType === "plugin") {
|
|
25542
|
-
return generatePluginPackageJson(
|
|
25845
|
+
return generatePluginPackageJson(
|
|
25846
|
+
projectName,
|
|
25847
|
+
useYalc,
|
|
25848
|
+
templateNextlyChannel(projectType)
|
|
25849
|
+
);
|
|
25543
25850
|
}
|
|
25544
25851
|
const runtimeVersions = await resolveRuntimeVersions();
|
|
25545
25852
|
const dependencies = {
|
|
@@ -25574,7 +25881,11 @@ async function generatePackageJson(projectName, database, useYalc = false, proje
|
|
|
25574
25881
|
"@tailwindcss/postcss": PINNED_VERSIONS["@tailwindcss/postcss"],
|
|
25575
25882
|
tailwindcss: PINNED_VERSIONS.tailwindcss,
|
|
25576
25883
|
eslint: PINNED_VERSIONS.eslint,
|
|
25577
|
-
"eslint-config-next": runtimeVersions["eslint-config-next"]
|
|
25884
|
+
"eslint-config-next": runtimeVersions["eslint-config-next"],
|
|
25885
|
+
// Declared HERE rather than inherited: `nextly` takes esbuild as an
|
|
25886
|
+
// optional peer, so nothing installs it on a project's behalf. Without it
|
|
25887
|
+
// the dev server cannot read `nextly.config.ts`.
|
|
25888
|
+
esbuild: PINNED_VERSIONS.esbuild
|
|
25578
25889
|
};
|
|
25579
25890
|
const shipsSearchIndex = targetDir ? await projectHasSearchIndexScript(targetDir) : false;
|
|
25580
25891
|
if (shipsSearchIndex) devDependencies.pagefind = "^1.1.0";
|
|
@@ -25635,10 +25946,10 @@ async function resolvePluginNextlyRange(useYalc) {
|
|
|
25635
25946
|
const v2 = versions["nextly"];
|
|
25636
25947
|
return v2 && v2 !== "latest" ? v2 : ">=0.0.0";
|
|
25637
25948
|
}
|
|
25638
|
-
async function generatePluginPackageJson(projectName, useYalc) {
|
|
25639
|
-
const versions = useYalc ? {} : await resolveNextlyVersions();
|
|
25949
|
+
async function generatePluginPackageJson(projectName, useYalc, channel) {
|
|
25950
|
+
const versions = useYalc ? {} : await resolveNextlyVersions(channel);
|
|
25640
25951
|
const runtimeVersions = await resolveRuntimeVersions();
|
|
25641
|
-
const range = (pkg2) => versions[pkg2] ??
|
|
25952
|
+
const range = (pkg2) => versions[pkg2] ?? channel;
|
|
25642
25953
|
const peerDependencies = {
|
|
25643
25954
|
nextly: range("nextly"),
|
|
25644
25955
|
"@nextlyhq/admin": range("@nextlyhq/admin"),
|
|
@@ -25670,7 +25981,11 @@ async function generatePluginPackageJson(projectName, useYalc) {
|
|
|
25670
25981
|
vitest: "^4.1.0",
|
|
25671
25982
|
eslint: PINNED_VERSIONS.eslint,
|
|
25672
25983
|
"@eslint/js": PINNED_VERSIONS.eslint,
|
|
25673
|
-
"typescript-eslint": "^8.0.0"
|
|
25984
|
+
"typescript-eslint": "^8.0.0",
|
|
25985
|
+
// The design-token rules the admin holds itself to. Shipped to the author
|
|
25986
|
+
// rather than documented at them: a rule that runs only in Nextly's own
|
|
25987
|
+
// repository governs the first-party plugins and nothing anyone else builds.
|
|
25988
|
+
"@nextlyhq/eslint-plugin": range("@nextlyhq/eslint-plugin")
|
|
25674
25989
|
};
|
|
25675
25990
|
const pkg = {
|
|
25676
25991
|
name: projectName,
|
|
@@ -29732,5 +30047,5 @@ async function createNextly(options = {}) {
|
|
|
29732
30047
|
*/
|
|
29733
30048
|
|
|
29734
30049
|
export { __commonJS, __require, __toESM, capture, createNextly, init, resolveProjectArg, shutdown, validateProjectName };
|
|
29735
|
-
//# sourceMappingURL=chunk-
|
|
29736
|
-
//# sourceMappingURL=chunk-
|
|
30050
|
+
//# sourceMappingURL=chunk-I2U7KBH6.mjs.map
|
|
30051
|
+
//# sourceMappingURL=chunk-I2U7KBH6.mjs.map
|