@dotenvx/primitives 0.7.1 → 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 +53 -9
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -6146,26 +6146,33 @@ var require_scan = __commonJS({
|
|
|
6146
6146
|
}
|
|
6147
6147
|
return q;
|
|
6148
6148
|
}
|
|
6149
|
-
function clean(value, quote) {
|
|
6149
|
+
function clean(value, quote, opts) {
|
|
6150
6150
|
let v = trimmer(value);
|
|
6151
6151
|
v = v.replace(/^(['"`])([\s\S]*)\1$/mg, "$2");
|
|
6152
|
-
if (quote === '"') {
|
|
6152
|
+
if (quote === '"' && opts.expandDoubleQuotedNewlines !== false) {
|
|
6153
6153
|
v = v.replace(/\\n/g, "\n");
|
|
6154
6154
|
v = v.replace(/\\r/g, "\r");
|
|
6155
6155
|
v = v.replace(/\\t/g, " ");
|
|
6156
6156
|
}
|
|
6157
6157
|
return v;
|
|
6158
6158
|
}
|
|
6159
|
-
function scan2(src, transform) {
|
|
6159
|
+
function scan2(src, opts = {}, transform) {
|
|
6160
|
+
if (typeof opts === "function") {
|
|
6161
|
+
transform = opts;
|
|
6162
|
+
opts = {};
|
|
6163
|
+
}
|
|
6160
6164
|
const LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;
|
|
6161
6165
|
const parsed = {};
|
|
6162
|
-
|
|
6166
|
+
let lines = (src || "").toString();
|
|
6167
|
+
if (opts.convertWindowsNewlines !== false) {
|
|
6168
|
+
lines = lines.replace(/\r\n?/mg, "\n");
|
|
6169
|
+
}
|
|
6163
6170
|
let match;
|
|
6164
6171
|
while ((match = LINE.exec(lines)) !== null) {
|
|
6165
6172
|
const name = match[1];
|
|
6166
6173
|
const raw = match[2];
|
|
6167
6174
|
const quote = getQuote(raw);
|
|
6168
|
-
const value = clean(raw, quote);
|
|
6175
|
+
const value = clean(raw, quote, opts);
|
|
6169
6176
|
let parsedValue = value;
|
|
6170
6177
|
if (typeof transform === "function") {
|
|
6171
6178
|
parsedValue = transform({
|
|
@@ -6174,7 +6181,8 @@ var require_scan = __commonJS({
|
|
|
6174
6181
|
quote
|
|
6175
6182
|
});
|
|
6176
6183
|
}
|
|
6177
|
-
parsed[name] =
|
|
6184
|
+
parsed[name] = parsed[name] || [];
|
|
6185
|
+
parsed[name].push(parsedValue);
|
|
6178
6186
|
}
|
|
6179
6187
|
return {
|
|
6180
6188
|
parsed
|
|
@@ -6194,7 +6202,11 @@ var require_keyring = __commonJS({
|
|
|
6194
6202
|
try {
|
|
6195
6203
|
const src = fs.readFileSync(filepath, "utf8");
|
|
6196
6204
|
const { parsed } = scan2(src);
|
|
6197
|
-
|
|
6205
|
+
const result = {};
|
|
6206
|
+
for (const name in parsed) {
|
|
6207
|
+
result[name] = parsed[name][parsed[name].length - 1];
|
|
6208
|
+
}
|
|
6209
|
+
return result;
|
|
6198
6210
|
} catch (_e) {
|
|
6199
6211
|
return {};
|
|
6200
6212
|
}
|
|
@@ -6236,6 +6248,13 @@ var require_parse = __commonJS({
|
|
|
6236
6248
|
function resolveEscapeSequences(value) {
|
|
6237
6249
|
return value.replace(/\\\$/g, "$");
|
|
6238
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
|
+
}
|
|
6239
6258
|
function parse2(src, opts = {}) {
|
|
6240
6259
|
const overload = opts.overload;
|
|
6241
6260
|
const processEnv = opts.processEnv || process.env;
|
|
@@ -6283,13 +6302,36 @@ var require_parse = __commonJS({
|
|
|
6283
6302
|
return parsedValue;
|
|
6284
6303
|
});
|
|
6285
6304
|
return {
|
|
6286
|
-
parsed
|
|
6305
|
+
parsed: collapse(parsed)
|
|
6287
6306
|
};
|
|
6288
6307
|
}
|
|
6289
6308
|
module2.exports = parse2;
|
|
6290
6309
|
}
|
|
6291
6310
|
});
|
|
6292
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
|
+
|
|
6293
6335
|
// src/index.js
|
|
6294
6336
|
var decrypt = require_decrypt();
|
|
6295
6337
|
var derive = require_derive();
|
|
@@ -6301,6 +6343,7 @@ var keypair = require_keypair();
|
|
|
6301
6343
|
var keyring = require_keyring();
|
|
6302
6344
|
var parse = require_parse();
|
|
6303
6345
|
var scan = require_scan();
|
|
6346
|
+
var sealed = require_sealed();
|
|
6304
6347
|
module.exports = {
|
|
6305
6348
|
decrypt,
|
|
6306
6349
|
derive,
|
|
@@ -6311,5 +6354,6 @@ module.exports = {
|
|
|
6311
6354
|
keypair,
|
|
6312
6355
|
keyring,
|
|
6313
6356
|
parse,
|
|
6314
|
-
scan
|
|
6357
|
+
scan,
|
|
6358
|
+
sealed
|
|
6315
6359
|
};
|
package/package.json
CHANGED