@dotenvx/primitives 0.7.0 → 0.8.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/dist/index.cjs +56 -9
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -5951,6 +5951,9 @@ var require_encrypted = __commonJS({
|
|
|
5951
5951
|
"src/encrypted.js"(exports2, module2) {
|
|
5952
5952
|
var PREFIX = "encrypted:";
|
|
5953
5953
|
function encrypted2(value) {
|
|
5954
|
+
if (!value) {
|
|
5955
|
+
return false;
|
|
5956
|
+
}
|
|
5954
5957
|
return value.startsWith(PREFIX);
|
|
5955
5958
|
}
|
|
5956
5959
|
module2.exports = encrypted2;
|
|
@@ -6143,26 +6146,33 @@ var require_scan = __commonJS({
|
|
|
6143
6146
|
}
|
|
6144
6147
|
return q;
|
|
6145
6148
|
}
|
|
6146
|
-
function clean(value, quote) {
|
|
6149
|
+
function clean(value, quote, opts) {
|
|
6147
6150
|
let v = trimmer(value);
|
|
6148
6151
|
v = v.replace(/^(['"`])([\s\S]*)\1$/mg, "$2");
|
|
6149
|
-
if (quote === '"') {
|
|
6152
|
+
if (quote === '"' && opts.expandDoubleQuotedNewlines !== false) {
|
|
6150
6153
|
v = v.replace(/\\n/g, "\n");
|
|
6151
6154
|
v = v.replace(/\\r/g, "\r");
|
|
6152
6155
|
v = v.replace(/\\t/g, " ");
|
|
6153
6156
|
}
|
|
6154
6157
|
return v;
|
|
6155
6158
|
}
|
|
6156
|
-
function scan2(src, transform) {
|
|
6159
|
+
function scan2(src, opts = {}, transform) {
|
|
6160
|
+
if (typeof opts === "function") {
|
|
6161
|
+
transform = opts;
|
|
6162
|
+
opts = {};
|
|
6163
|
+
}
|
|
6157
6164
|
const LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;
|
|
6158
6165
|
const parsed = {};
|
|
6159
|
-
|
|
6166
|
+
let lines = (src || "").toString();
|
|
6167
|
+
if (opts.convertWindowsNewlines !== false) {
|
|
6168
|
+
lines = lines.replace(/\r\n?/mg, "\n");
|
|
6169
|
+
}
|
|
6160
6170
|
let match;
|
|
6161
6171
|
while ((match = LINE.exec(lines)) !== null) {
|
|
6162
6172
|
const name = match[1];
|
|
6163
6173
|
const raw = match[2];
|
|
6164
6174
|
const quote = getQuote(raw);
|
|
6165
|
-
const value = clean(raw, quote);
|
|
6175
|
+
const value = clean(raw, quote, opts);
|
|
6166
6176
|
let parsedValue = value;
|
|
6167
6177
|
if (typeof transform === "function") {
|
|
6168
6178
|
parsedValue = transform({
|
|
@@ -6171,7 +6181,8 @@ var require_scan = __commonJS({
|
|
|
6171
6181
|
quote
|
|
6172
6182
|
});
|
|
6173
6183
|
}
|
|
6174
|
-
parsed[name] =
|
|
6184
|
+
parsed[name] = parsed[name] || [];
|
|
6185
|
+
parsed[name].push(parsedValue);
|
|
6175
6186
|
}
|
|
6176
6187
|
return {
|
|
6177
6188
|
parsed
|
|
@@ -6191,7 +6202,11 @@ var require_keyring = __commonJS({
|
|
|
6191
6202
|
try {
|
|
6192
6203
|
const src = fs.readFileSync(filepath, "utf8");
|
|
6193
6204
|
const { parsed } = scan2(src);
|
|
6194
|
-
|
|
6205
|
+
const result = {};
|
|
6206
|
+
for (const name in parsed) {
|
|
6207
|
+
result[name] = parsed[name][parsed[name].length - 1];
|
|
6208
|
+
}
|
|
6209
|
+
return result;
|
|
6195
6210
|
} catch (_e) {
|
|
6196
6211
|
return {};
|
|
6197
6212
|
}
|
|
@@ -6233,6 +6248,13 @@ var require_parse = __commonJS({
|
|
|
6233
6248
|
function resolveEscapeSequences(value) {
|
|
6234
6249
|
return value.replace(/\\\$/g, "$");
|
|
6235
6250
|
}
|
|
6251
|
+
function collapse(parsed) {
|
|
6252
|
+
const result = {};
|
|
6253
|
+
for (const name in parsed) {
|
|
6254
|
+
result[name] = parsed[name][parsed[name].length - 1];
|
|
6255
|
+
}
|
|
6256
|
+
return result;
|
|
6257
|
+
}
|
|
6236
6258
|
function parse2(src, opts = {}) {
|
|
6237
6259
|
const overload = opts.overload;
|
|
6238
6260
|
const processEnv = opts.processEnv || process.env;
|
|
@@ -6280,13 +6302,36 @@ var require_parse = __commonJS({
|
|
|
6280
6302
|
return parsedValue;
|
|
6281
6303
|
});
|
|
6282
6304
|
return {
|
|
6283
|
-
parsed
|
|
6305
|
+
parsed: collapse(parsed)
|
|
6284
6306
|
};
|
|
6285
6307
|
}
|
|
6286
6308
|
module2.exports = parse2;
|
|
6287
6309
|
}
|
|
6288
6310
|
});
|
|
6289
6311
|
|
|
6312
|
+
// src/sealed.js
|
|
6313
|
+
var require_sealed = __commonJS({
|
|
6314
|
+
"src/sealed.js"(exports2, module2) {
|
|
6315
|
+
var encrypted2 = require_encrypted();
|
|
6316
|
+
var scan2 = require_scan();
|
|
6317
|
+
function publicKey(name) {
|
|
6318
|
+
return name.startsWith("DOTENV_PUBLIC_KEY");
|
|
6319
|
+
}
|
|
6320
|
+
function sealed2(src) {
|
|
6321
|
+
const { parsed } = scan2(src);
|
|
6322
|
+
for (const [name, values] of Object.entries(parsed)) {
|
|
6323
|
+
for (const value of values) {
|
|
6324
|
+
if (!encrypted2(value) && !publicKey(name)) {
|
|
6325
|
+
return false;
|
|
6326
|
+
}
|
|
6327
|
+
}
|
|
6328
|
+
}
|
|
6329
|
+
return true;
|
|
6330
|
+
}
|
|
6331
|
+
module2.exports = sealed2;
|
|
6332
|
+
}
|
|
6333
|
+
});
|
|
6334
|
+
|
|
6290
6335
|
// src/index.js
|
|
6291
6336
|
var decrypt = require_decrypt();
|
|
6292
6337
|
var derive = require_derive();
|
|
@@ -6298,6 +6343,7 @@ var keypair = require_keypair();
|
|
|
6298
6343
|
var keyring = require_keyring();
|
|
6299
6344
|
var parse = require_parse();
|
|
6300
6345
|
var scan = require_scan();
|
|
6346
|
+
var sealed = require_sealed();
|
|
6301
6347
|
module.exports = {
|
|
6302
6348
|
decrypt,
|
|
6303
6349
|
derive,
|
|
@@ -6308,5 +6354,6 @@ module.exports = {
|
|
|
6308
6354
|
keypair,
|
|
6309
6355
|
keyring,
|
|
6310
6356
|
parse,
|
|
6311
|
-
scan
|
|
6357
|
+
scan,
|
|
6358
|
+
sealed
|
|
6312
6359
|
};
|
package/package.json
CHANGED