kavrix 0.2.3 → 0.2.4

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.
@@ -335,57 +335,24 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
335
335
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
336
336
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
337
337
  SOFTWARE.
338
-
339
- smol-toml@1.3.1 (BSD-3-Clause)
340
- Copyright (c) Squirrel Chat et al., All rights reserved.
341
-
342
- Redistribution and use in source and binary forms, with or without
343
- modification, are permitted provided that the following conditions are met:
344
-
345
- 1. Redistributions of source code must retain the above copyright notice, this
346
- list of conditions and the following disclaimer.
347
- 2. Redistributions in binary form must reproduce the above copyright notice,
348
- this list of conditions and the following disclaimer in the
349
- documentation and/or other materials provided with the distribution.
350
- 3. Neither the name of the copyright holder nor the names of its contributors
351
- may be used to endorse or promote products derived from this software without
352
- specific prior written permission.
353
-
354
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
355
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
356
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
357
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
358
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
359
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
360
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
361
- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
362
- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
363
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
364
338
  */
365
339
  import { createRequire as __kavrixCreateRequire } from 'node:module';
366
340
  const __kavrixNodeRequire = __kavrixCreateRequire(import.meta.url);
367
341
  const __kavrixNodeBuiltin = (name) => __kavrixNodeRequire(`node:${name}`);
368
342
  import {
369
- external_exports
370
- } from "./chunk-D4JYLAAS.js";
371
- import "./chunk-S4PSIM2L.js";
343
+ ensureSecureDirectory,
344
+ validateSecureFileSource
345
+ } from "./chunk-3LXISP6O.js";
346
+ import "./chunk-MNQHU3EJ.js";
347
+ import "./chunk-T5WUZPWZ.js";
372
348
 
373
349
  // src/kavrix-config.ts
374
350
  import { existsSync } from "node:fs";
375
- import { mkdir, readFile, stat, writeFile } from "node:fs/promises";
351
+ import { writeFile } from "node:fs/promises";
376
352
  import { homedir } from "node:os";
377
353
  import { join } from "node:path";
378
354
  var CONFIG_FILE_NAME = "config.toml";
379
- var kavrixConfigSchema = external_exports.object({
380
- datastore: external_exports.enum(["file", "mongodb"]).optional(),
381
- dataFile: external_exports.string().optional(),
382
- keyFile: external_exports.string().optional(),
383
- database: external_exports.string().optional(),
384
- collection: external_exports.string().optional(),
385
- databaseCollection: external_exports.string().optional(),
386
- vaultCollection: external_exports.string().optional(),
387
- vaultLabel: external_exports.string().optional()
388
- }).strict();
355
+ var MAX_CONFIG_FILE_BYTES = 64 * 1024;
389
356
  function getKavrixConfigDir() {
390
357
  return join(homedir(), ".kavrix");
391
358
  }
@@ -393,114 +360,50 @@ function getKavrixConfigPath() {
393
360
  return join(getKavrixConfigDir(), CONFIG_FILE_NAME);
394
361
  }
395
362
  function generateDefaultConfigToml() {
396
- return `# Kavrix Configuration
397
- # =====================
363
+ return `# Kavrix Onboarding Reference
364
+ # ===========================
398
365
  # Location: ~/.kavrix/config.toml
399
366
  # Windows: %USERPROFILE%\\.kavrix\\config.toml
400
367
  # macOS/Linux: ~/.kavrix/config.toml
401
368
  #
402
- # This file is created by \`kavrix init\`. Edit the values below, then run
403
- # \`kavrix init\` again (or \`kavrix db init\` with --secrets-stdin) to
404
- # initialize your encrypted vault. All paths must be inside a private
405
- # directory that only your account can access.
369
+ # This file is created by a first interactive \`kavrix init\`. It is a
370
+ # non-secret onboarding reference, not an automatically loaded settings file.
371
+ # Copy the examples you need into your terminal and keep profile and vault
372
+ # selection explicit. All protected paths must be inside a private directory.
406
373
  #
407
374
  # Secrets are NEVER stored here. Passphrases and MongoDB URLs are always
408
375
  # read via masked prompts or --passphrase-stdin / --database-url-stdin.
409
376
  #
410
- # Uncomment a line to activate it. Lines starting with # are ignored.
411
377
  # See https://github.com/d4rkNinja/kavrix#readme for full documentation.
412
378
 
413
- # === Datastore ===
414
- # Choose where ciphertext lives. "file" is simplest for one device;
415
- # "mongodb" syncs opaque ciphertext through your own MongoDB deployment.
416
- # Allowed values: "file", "mongodb"
417
- # Example: datastore = "file"
418
- datastore = "file"
419
-
420
- # === Local File Datastore ===
421
- # Only used when datastore = "file"
422
- # Path to the encrypted vault file. Can be absolute or relative.
423
- # The parent directory must be private (chmod 700 / icacls).
424
- # Examples:
425
- # dataFile = "./kavrix.vault"
426
- # dataFile = "~/.kavrix/kavrix.vault"
427
- # dataFile = "/secure/vaults/work.vault"
428
- dataFile = "./kavrix.vault"
429
-
430
- # === Security ===
431
- # Path to the protected portable key file. This file holds your
432
- # encrypted vault key and is essential \u2014 losing it can make the vault
433
- # permanently unrecoverable. Keep it separate from the vault file.
434
- # On Windows, ACLs are enforced via icacls /inheritance:r.
435
- # Examples:
436
- # keyFile = "./kavrix.key"
437
- # keyFile = "~/.kavrix/kavrix.key"
438
- keyFile = "./kavrix.key"
439
-
440
- # Optional: path to the database revision anchor file.
441
- # Defaults to "<keyFile>.database-anchor" if not set.
442
- # Example: anchorFile = "./kavrix.key.database-anchor"
443
- # anchorFile = "./kavrix.key.database-anchor"
444
-
445
- # === MongoDB Datastore ===
446
- # Only used when datastore = "mongodb"
447
- # Your MongoDB connection string is NEVER stored here.
448
- # It is read via --database-url-stdin (masked, never in argv).
379
+ # Canonical file-datastore setup:
380
+ # kavrix db profile add work --datastore file \\
381
+ # --data-file ./work.kavrix --key-file ./work.kavrix.key
382
+ # kavrix db profile use work
383
+ # kavrix db init --profile work
384
+ # kavrix db vault create --profile work
385
+ #
386
+ # MongoDB is optional. Register its non-secret database and collection routing
387
+ # with \`kavrix db profile add --datastore mongodb\`; provide the URI only via
388
+ # the masked prompt or --database-url-stdin. Remote connections require
389
+ # validated TLS, and database-container writes require transaction support.
449
390
  #
450
- # Database name (1-63 chars: letters, numbers, underscore, hyphen)
451
- # If omitted, it is inferred from the connection string.
452
- # Example: database = "kavrix"
453
- # database = "kavrix"
454
-
455
- # Collection for encrypted database documents (1-64 chars)
456
- # Default: "kavrix_databases" for databaseCollection, "kavrix_vaults" for vaultCollection
457
- # Example: collection = "kavrix_vaults"
458
- # collection = "kavrix_vaults"
459
- # databaseCollection = "kavrix_databases"
460
- # vaultCollection = "kavrix_vaults"
461
-
462
- # === Vault ===
463
- # Initial vault label for \`kavrix init\` (human-readable, not the ID).
464
- # Allowed: 1-64 chars, no control characters.
465
- # Example: vaultLabel = "personal"
466
- # vaultLabel = "personal"
467
-
468
- # === Profiles (optional) ===
469
- # Datastore profiles let you manage multiple vaults/databases.
470
- # They are stored separately in ~/.kavrix/profiles/ and managed via
471
- # \`kavrix db profile add/list/use\`. You do not need to edit them here.
472
- # Example:
473
- # [profile]
474
- # id = "work"
475
- # configDir = "~/.kavrix/profiles"
476
-
477
- # === Advanced ===
478
- # Allow unencrypted transport to a non-local MongoDB (isolated networks only).
479
- # Default: false (TLS required for remote hosts)
480
- # allowInsecureTransport = false
481
-
482
- # End of Kavrix config.toml
483
- # After editing, run:
484
- # kavrix init --secrets-stdin # then enter label, passphrase x2 when prompted
485
- # Or for MongoDB:
486
- # kavrix init --datastore mongodb --secrets-stdin
487
- # See \`kavrix init --help\` and \`kavrix frames init\` for stdin frame contracts.
391
+ # Credential commands keep the profile and opaque vault ID explicit:
392
+ # kavrix put github/token --profile work --vault <vault-id>
393
+ # kavrix list --profile work --vault <vault-id>
394
+ # kavrix get github/token --reveal --profile work --vault <vault-id>
395
+ #
396
+ # Legacy version 2 single-vault initialization remains available only when
397
+ # explicit legacy init routing options are supplied. See \`kavrix init --help\`.
488
398
  `;
489
399
  }
490
400
  async function ensureKavrixConfig() {
491
401
  const dir = getKavrixConfigDir();
492
402
  const path = getKavrixConfigPath();
403
+ await ensureSecureDirectory(dir);
493
404
  if (existsSync(path)) {
494
- const st = await stat(path).catch(() => null);
495
- if (st?.isFile()) return path;
496
- }
497
- await mkdir(dir, { recursive: true });
498
- if (process.platform !== "win32") {
499
- try {
500
- const { chmod } = await import("node:fs/promises");
501
- await chmod(dir, 448);
502
- } catch {
503
- }
405
+ await validateSecureFileSource(path, MAX_CONFIG_FILE_BYTES);
406
+ return path;
504
407
  }
505
408
  if (!existsSync(path)) {
506
409
  const content = generateDefaultConfigToml();
@@ -514,62 +417,10 @@ async function ensureKavrixConfig() {
514
417
  }
515
418
  throw error;
516
419
  });
517
- if (process.platform !== "win32") {
518
- try {
519
- const { chmod } = await import("node:fs/promises");
520
- await chmod(path, 384);
521
- } catch {
522
- }
523
- }
524
420
  }
421
+ await validateSecureFileSource(path, MAX_CONFIG_FILE_BYTES);
525
422
  return path;
526
423
  }
527
- async function loadKavrixConfig() {
528
- const path = getKavrixConfigPath();
529
- if (!existsSync(path)) return null;
530
- const raw = await readFile(path, "utf8");
531
- const { parse } = await import("./chunk-TQHLXSBI.js");
532
- let parsed;
533
- try {
534
- parsed = parse(raw);
535
- } catch (error) {
536
- throw new Error(
537
- `Kavrix config.toml is not valid TOML at ${path}: ${error instanceof Error ? error.message : String(error)}`,
538
- { cause: error }
539
- );
540
- }
541
- const flattened = flattenConfig(parsed);
542
- const result = kavrixConfigSchema.safeParse(flattened);
543
- if (!result.success) {
544
- throw new Error(
545
- `Kavrix config.toml at ${path} is invalid: ${result.error.message}`
546
- );
547
- }
548
- return result.data;
549
- }
550
- function flattenConfig(value) {
551
- if (value === null || typeof value !== "object" || Array.isArray(value)) {
552
- return {};
553
- }
554
- const record = value;
555
- const out = {};
556
- for (const [key, val] of Object.entries(record)) {
557
- if (val !== null && typeof val === "object" && !Array.isArray(val)) {
558
- const nested = val;
559
- const isTable = Object.keys(nested).length > 0 && Object.values(nested).every(
560
- (v) => typeof v === "string" || typeof v === "number" || typeof v === "boolean"
561
- );
562
- if (isTable) {
563
- for (const [k, v] of Object.entries(nested)) {
564
- if (!(k in out)) out[k] = v;
565
- }
566
- continue;
567
- }
568
- }
569
- if (!(key in out)) out[key] = val;
570
- }
571
- return out;
572
- }
573
424
  function getConfigPathForDisplay() {
574
425
  const p = getKavrixConfigPath();
575
426
  if (process.platform === "win32") return p;
@@ -582,7 +433,6 @@ export {
582
433
  generateDefaultConfigToml,
583
434
  getConfigPathForDisplay,
584
435
  getKavrixConfigDir,
585
- getKavrixConfigPath,
586
- loadKavrixConfig
436
+ getKavrixConfigPath
587
437
  };
588
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2thdnJpeC1jb25maWcudHMiXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU0EsU0FBUyxrQkFBa0I7QUFDM0IsU0FBUyxPQUFPLFVBQVUsTUFBTSxpQkFBaUI7QUFDakQsU0FBUyxlQUFlO0FBQ3hCLFNBQVMsWUFBWTtBQUlyQixJQUFNLG1CQUFtQjtBQUV6QixJQUFNLHFCQUFxQixpQkFDeEIsT0FBTztBQUFBLEVBQ04sV0FBVyxpQkFBRSxLQUFLLENBQUMsUUFBUSxTQUFTLENBQUMsRUFBRSxTQUFTO0FBQUEsRUFDaEQsVUFBVSxpQkFBRSxPQUFPLEVBQUUsU0FBUztBQUFBLEVBQzlCLFNBQVMsaUJBQUUsT0FBTyxFQUFFLFNBQVM7QUFBQSxFQUM3QixVQUFVLGlCQUFFLE9BQU8sRUFBRSxTQUFTO0FBQUEsRUFDOUIsWUFBWSxpQkFBRSxPQUFPLEVBQUUsU0FBUztBQUFBLEVBQ2hDLG9CQUFvQixpQkFBRSxPQUFPLEVBQUUsU0FBUztBQUFBLEVBQ3hDLGlCQUFpQixpQkFBRSxPQUFPLEVBQUUsU0FBUztBQUFBLEVBQ3JDLFlBQVksaUJBQUUsT0FBTyxFQUFFLFNBQVM7QUFDbEMsQ0FBQyxFQUNBLE9BQU87QUFRSCxTQUFTLHFCQUE2QjtBQUMzQyxTQUFPLEtBQUssUUFBUSxHQUFHLFNBQVM7QUFDbEM7QUFFTyxTQUFTLHNCQUE4QjtBQUM1QyxTQUFPLEtBQUssbUJBQW1CLEdBQUcsZ0JBQWdCO0FBQ3BEO0FBT08sU0FBUyw0QkFBb0M7QUFDbEQsU0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE2RlQ7QUFFQSxlQUFzQixxQkFBc0M7QUFDMUQsUUFBTSxNQUFNLG1CQUFtQjtBQUMvQixRQUFNLE9BQU8sb0JBQW9CO0FBRWpDLE1BQUksV0FBVyxJQUFJLEdBQUc7QUFDcEIsVUFBTSxLQUFLLE1BQU0sS0FBSyxJQUFJLEVBQUUsTUFBTSxNQUFNLElBQUk7QUFDNUMsUUFBSSxJQUFJLE9BQU8sRUFBRyxRQUFPO0FBQUEsRUFDM0I7QUFFQSxRQUFNLE1BQU0sS0FBSyxFQUFFLFdBQVcsS0FBSyxDQUFDO0FBQ3BDLE1BQUksUUFBUSxhQUFhLFNBQVM7QUFDaEMsUUFBSTtBQUNGLFlBQU0sRUFBRSxNQUFNLElBQUksTUFBTSxPQUFPLGtCQUFrQjtBQUNqRCxZQUFNLE1BQU0sS0FBSyxHQUFLO0FBQUEsSUFDeEIsUUFBUTtBQUFBLElBRVI7QUFBQSxFQUNGO0FBRUEsTUFBSSxDQUFDLFdBQVcsSUFBSSxHQUFHO0FBQ3JCLFVBQU0sVUFBVSwwQkFBMEI7QUFDMUMsVUFBTSxVQUFVLE1BQU0sU0FBUztBQUFBLE1BQzdCLFVBQVU7QUFBQSxNQUNWLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxJQUNSLENBQUMsRUFBRSxNQUFNLENBQUMsVUFBbUI7QUFDM0IsVUFDRSxVQUFVLFFBQ1YsT0FBTyxVQUFVLFlBQ2pCLFVBQVUsU0FDVCxNQUEyQixTQUFTLFVBQ3JDO0FBQ0E7QUFBQSxNQUNGO0FBQ0EsWUFBTTtBQUFBLElBQ1IsQ0FBQztBQUVELFFBQUksUUFBUSxhQUFhLFNBQVM7QUFDaEMsVUFBSTtBQUNGLGNBQU0sRUFBRSxNQUFNLElBQUksTUFBTSxPQUFPLGtCQUFrQjtBQUNqRCxjQUFNLE1BQU0sTUFBTSxHQUFLO0FBQUEsTUFDekIsUUFBUTtBQUFBLE1BRVI7QUFBQSxJQUNGO0FBQUEsRUFJRjtBQUVBLFNBQU87QUFDVDtBQUVBLGVBQXNCLG1CQUFpRDtBQUNyRSxRQUFNLE9BQU8sb0JBQW9CO0FBQ2pDLE1BQUksQ0FBQyxXQUFXLElBQUksRUFBRyxRQUFPO0FBRTlCLFFBQU0sTUFBTSxNQUFNLFNBQVMsTUFBTSxNQUFNO0FBRXZDLFFBQU0sRUFBRSxNQUFNLElBQUssTUFBTSxPQUFPLHFCQUFXO0FBSTNDLE1BQUk7QUFDSixNQUFJO0FBQ0YsYUFBUyxNQUFNLEdBQUc7QUFBQSxFQUNwQixTQUFTLE9BQU87QUFDZCxVQUFNLElBQUk7QUFBQSxNQUNSLDJDQUEyQyxJQUFJLEtBQUssaUJBQWlCLFFBQVEsTUFBTSxVQUFVLE9BQU8sS0FBSyxDQUFDO0FBQUEsTUFDMUcsRUFBRSxPQUFPLE1BQU07QUFBQSxJQUNqQjtBQUFBLEVBQ0Y7QUFJQSxRQUFNLFlBQVksY0FBYyxNQUFNO0FBRXRDLFFBQU0sU0FBUyxtQkFBbUIsVUFBVSxTQUFTO0FBQ3JELE1BQUksQ0FBQyxPQUFPLFNBQVM7QUFDbkIsVUFBTSxJQUFJO0FBQUEsTUFDUix5QkFBeUIsSUFBSSxnQkFBZ0IsT0FBTyxNQUFNLE9BQU87QUFBQSxJQUNuRTtBQUFBLEVBQ0Y7QUFFQSxTQUFPLE9BQU87QUFDaEI7QUFFQSxTQUFTLGNBQWMsT0FBeUM7QUFDOUQsTUFBSSxVQUFVLFFBQVEsT0FBTyxVQUFVLFlBQVksTUFBTSxRQUFRLEtBQUssR0FBRztBQUN2RSxXQUFPLENBQUM7QUFBQSxFQUNWO0FBRUEsUUFBTSxTQUFTO0FBQ2YsUUFBTSxNQUErQixDQUFDO0FBRXRDLGFBQVcsQ0FBQyxLQUFLLEdBQUcsS0FBSyxPQUFPLFFBQVEsTUFBTSxHQUFHO0FBQy9DLFFBQUksUUFBUSxRQUFRLE9BQU8sUUFBUSxZQUFZLENBQUMsTUFBTSxRQUFRLEdBQUcsR0FBRztBQUNsRSxZQUFNLFNBQVM7QUFDZixZQUFNLFVBQ0osT0FBTyxLQUFLLE1BQU0sRUFBRSxTQUFTLEtBQzdCLE9BQU8sT0FBTyxNQUFNLEVBQUU7QUFBQSxRQUNwQixDQUFDLE1BQ0MsT0FBTyxNQUFNLFlBQVksT0FBTyxNQUFNLFlBQVksT0FBTyxNQUFNO0FBQUEsTUFDbkU7QUFDRixVQUFJLFNBQVM7QUFDWCxtQkFBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLE9BQU8sUUFBUSxNQUFNLEdBQUc7QUFDM0MsY0FBSSxFQUFFLEtBQUssS0FBTSxLQUFJLENBQUMsSUFBSTtBQUFBLFFBQzVCO0FBQ0E7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUNBLFFBQUksRUFBRSxPQUFPLEtBQU0sS0FBSSxHQUFHLElBQUk7QUFBQSxFQUNoQztBQUVBLFNBQU87QUFDVDtBQUVPLFNBQVMsMEJBQWtDO0FBQ2hELFFBQU0sSUFBSSxvQkFBb0I7QUFDOUIsTUFBSSxRQUFRLGFBQWEsUUFBUyxRQUFPO0FBQ3pDLFFBQU0sT0FBTyxRQUFRO0FBQ3JCLE1BQUksRUFBRSxXQUFXLElBQUksRUFBRyxRQUFPLElBQUksRUFBRSxNQUFNLEtBQUssTUFBTSxDQUFDO0FBQ3ZELFNBQU87QUFDVDsiLAogICJuYW1lcyI6IFtdCn0K
438
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2thdnJpeC1jb25maWcudHMiXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVUEsU0FBUyxrQkFBa0I7QUFDM0IsU0FBUyxpQkFBaUI7QUFDMUIsU0FBUyxlQUFlO0FBQ3hCLFNBQVMsWUFBWTtBQUlyQixJQUFNLG1CQUFtQjtBQUN6QixJQUFNLHdCQUF3QixLQUFLO0FBTTVCLFNBQVMscUJBQTZCO0FBQzNDLFNBQU8sS0FBSyxRQUFRLEdBQUcsU0FBUztBQUNsQztBQUVPLFNBQVMsc0JBQThCO0FBQzVDLFNBQU8sS0FBSyxtQkFBbUIsR0FBRyxnQkFBZ0I7QUFDcEQ7QUFPTyxTQUFTLDRCQUFvQztBQUNsRCxTQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW9DVDtBQUVBLGVBQXNCLHFCQUFzQztBQUMxRCxRQUFNLE1BQU0sbUJBQW1CO0FBQy9CLFFBQU0sT0FBTyxvQkFBb0I7QUFFakMsUUFBTSxzQkFBc0IsR0FBRztBQUMvQixNQUFJLFdBQVcsSUFBSSxHQUFHO0FBQ3BCLFVBQU0seUJBQXlCLE1BQU0scUJBQXFCO0FBQzFELFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSSxDQUFDLFdBQVcsSUFBSSxHQUFHO0FBQ3JCLFVBQU0sVUFBVSwwQkFBMEI7QUFDMUMsVUFBTSxVQUFVLE1BQU0sU0FBUztBQUFBLE1BQzdCLFVBQVU7QUFBQSxNQUNWLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxJQUNSLENBQUMsRUFBRSxNQUFNLENBQUMsVUFBbUI7QUFDM0IsVUFDRSxVQUFVLFFBQ1YsT0FBTyxVQUFVLFlBQ2pCLFVBQVUsU0FDVCxNQUEyQixTQUFTLFVBQ3JDO0FBQ0E7QUFBQSxNQUNGO0FBQ0EsWUFBTTtBQUFBLElBQ1IsQ0FBQztBQUFBLEVBSUg7QUFFQSxRQUFNLHlCQUF5QixNQUFNLHFCQUFxQjtBQUUxRCxTQUFPO0FBQ1Q7QUFFTyxTQUFTLDBCQUFrQztBQUNoRCxRQUFNLElBQUksb0JBQW9CO0FBQzlCLE1BQUksUUFBUSxhQUFhLFFBQVMsUUFBTztBQUN6QyxRQUFNLE9BQU8sUUFBUTtBQUNyQixNQUFJLEVBQUUsV0FBVyxJQUFJLEVBQUcsUUFBTyxJQUFJLEVBQUUsTUFBTSxLQUFLLE1BQU0sQ0FBQztBQUN2RCxTQUFPO0FBQ1Q7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -335,32 +335,6 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
335
335
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
336
336
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
337
337
  SOFTWARE.
338
-
339
- smol-toml@1.3.1 (BSD-3-Clause)
340
- Copyright (c) Squirrel Chat et al., All rights reserved.
341
-
342
- Redistribution and use in source and binary forms, with or without
343
- modification, are permitted provided that the following conditions are met:
344
-
345
- 1. Redistributions of source code must retain the above copyright notice, this
346
- list of conditions and the following disclaimer.
347
- 2. Redistributions in binary form must reproduce the above copyright notice,
348
- this list of conditions and the following disclaimer in the
349
- documentation and/or other materials provided with the distribution.
350
- 3. Neither the name of the copyright holder nor the names of its contributors
351
- may be used to endorse or promote products derived from this software without
352
- specific prior written permission.
353
-
354
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
355
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
356
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
357
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
358
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
359
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
360
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
361
- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
362
- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
363
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
364
338
  */
365
339
  import { createRequire as __kavrixCreateRequire } from 'node:module';
366
340
  const __kavrixNodeRequire = __kavrixCreateRequire(import.meta.url);
package/dist/index.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const CLI_VERSION: "0.2.3";
1
+ export declare const CLI_VERSION: "0.2.4";
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- export const CLI_VERSION = "0.2.3";
1
+ export const CLI_VERSION = "0.2.4";
@@ -2,14 +2,14 @@
2
2
  "$schema": "https://cyclonedx.org/schema/bom-1.6.schema.json",
3
3
  "bomFormat": "CycloneDX",
4
4
  "specVersion": "1.6",
5
- "serialNumber": "urn:uuid:5f15ad7c-1df8-56fb-9965-b44180f1e269",
5
+ "serialNumber": "urn:uuid:d3421c7c-b36c-52f8-b41f-d2e2ecb7c749",
6
6
  "version": 1,
7
7
  "metadata": {
8
8
  "component": {
9
9
  "type": "application",
10
- "bom-ref": "pkg:npm/kavrix@0.2.3",
10
+ "bom-ref": "pkg:npm/kavrix@0.2.4",
11
11
  "name": "kavrix",
12
- "version": "0.2.3",
12
+ "version": "0.2.4",
13
13
  "licenses": [
14
14
  {
15
15
  "license": {
@@ -17,49 +17,45 @@
17
17
  }
18
18
  }
19
19
  ],
20
- "purl": "pkg:npm/kavrix@0.2.3",
20
+ "purl": "pkg:npm/kavrix@0.2.4",
21
21
  "hashes": [
22
22
  {
23
23
  "alg": "SHA-256",
24
- "content": "e2edc037499ba077e3c013d9b4dece7548fb692181389e993e1ad97949eef06a"
24
+ "content": "768718b5a15f0879b330078f9cb99458eb2e2ed9ad2e313331bd7bfcf79e4d8f"
25
25
  }
26
26
  ],
27
27
  "properties": [
28
28
  {
29
29
  "name": "kavrix:artifact-sha256:dist/bin.js",
30
- "value": "2a97208845deccfbbc7ecfd85e4cd75284970ea0cc1aab0c0c4a11dfaa3302c7"
30
+ "value": "533f0f9c7af1fab1e7b52e10559467f5c77150bd41bdf00a77326b609b30ea4c"
31
31
  },
32
32
  {
33
- "name": "kavrix:artifact-sha256:dist/chunks/chunk-3MTK6AVM.js",
34
- "value": "b97edcef4518f1ed837395dabcb52e37ba9290c6503683b135d65909510b2a85"
33
+ "name": "kavrix:artifact-sha256:dist/chunks/chunk-3LXISP6O.js",
34
+ "value": "61f0c83a61a6f465a0fb89dffba857eb10c8a1ccf8cbfafb2881093242a771b8"
35
35
  },
36
36
  {
37
- "name": "kavrix:artifact-sha256:dist/chunks/chunk-D4JYLAAS.js",
38
- "value": "831829635e39ac48a7ee8f8c29aba9ee4d6b26c692e4596ae87496364df10cb6"
37
+ "name": "kavrix:artifact-sha256:dist/chunks/chunk-7AJQTDJG.js",
38
+ "value": "c4fd05039ab74c74b2c8bec042a9d50b1c6a6582121b290a7114b8a7423207d1"
39
39
  },
40
40
  {
41
- "name": "kavrix:artifact-sha256:dist/chunks/chunk-EOAERCV7.js",
42
- "value": "79354c7a8d4830976ef80181b068451db168687ca1a62c2dc4b3e5d5647ae81e"
41
+ "name": "kavrix:artifact-sha256:dist/chunks/chunk-G6X4LRO2.js",
42
+ "value": "b3ef6cf44896c862c10b473eb8c28f26c10dc37b13ea01c6f5aab8762528860f"
43
43
  },
44
44
  {
45
- "name": "kavrix:artifact-sha256:dist/chunks/chunk-FLG24WVK.js",
46
- "value": "638f17426bf841930908111b95aa34800f81ac0e873e4a93fde80d85ad2105ad"
45
+ "name": "kavrix:artifact-sha256:dist/chunks/chunk-MNQHU3EJ.js",
46
+ "value": "99e6dd8cc70aec956bcf744f16d38208ddff83a23e53fb347f0f908869b1288d"
47
47
  },
48
48
  {
49
- "name": "kavrix:artifact-sha256:dist/chunks/chunk-JOPGABL4.js",
50
- "value": "639385ce75f9ba2830b6c3c24058c3991b79b6bffaf46ba6fd511bb3be1a79b8"
49
+ "name": "kavrix:artifact-sha256:dist/chunks/chunk-MTADWNBJ.js",
50
+ "value": "e3db9e58b9568a168716755bea5a8700312576c1b6d29e6a05a18d3e1dd34dd8"
51
51
  },
52
52
  {
53
- "name": "kavrix:artifact-sha256:dist/chunks/chunk-S4PSIM2L.js",
54
- "value": "ab78a6b45213adc80949d641b5f6be3640c4a2f275a1edbf12777a7f108d48a6"
55
- },
56
- {
57
- "name": "kavrix:artifact-sha256:dist/chunks/chunk-TQHLXSBI.js",
58
- "value": "21fceb7b0923f79c7b2e6bec86a134ece640ab97496bf92ab62d8e8e535ce87c"
53
+ "name": "kavrix:artifact-sha256:dist/chunks/chunk-T5WUZPWZ.js",
54
+ "value": "0cf9f2d2037159c935b8f70d8432f7b7b14f942ee02c651ffdf2e257d9dd9d10"
59
55
  },
60
56
  {
61
57
  "name": "kavrix:artifact-sha256:dist/index.js",
62
- "value": "8a0382d40aba49d9663a24b540701a9f8d2e973adfcc5327e99bce00b3446efa"
58
+ "value": "2e7103dbbb89e1843298707402b3788d2eae3080fdac75dad803f81542fbdc08"
63
59
  }
64
60
  ]
65
61
  }
@@ -611,20 +607,6 @@
611
607
  ],
612
608
  "purl": "pkg:npm/slice-ansi@9.0.0"
613
609
  },
614
- {
615
- "type": "library",
616
- "bom-ref": "pkg:npm/smol-toml@1.3.1",
617
- "name": "smol-toml",
618
- "version": "1.3.1",
619
- "licenses": [
620
- {
621
- "license": {
622
- "id": "BSD-3-Clause"
623
- }
624
- }
625
- ],
626
- "purl": "pkg:npm/smol-toml@1.3.1"
627
- },
628
610
  {
629
611
  "type": "library",
630
612
  "bom-ref": "pkg:npm/sparse-bitfield@3.0.3",
@@ -877,7 +859,7 @@
877
859
  ],
878
860
  "dependencies": [
879
861
  {
880
- "ref": "pkg:npm/kavrix@0.2.3",
862
+ "ref": "pkg:npm/kavrix@0.2.4",
881
863
  "dependsOn": [
882
864
  "pkg:npm/mongodb@7.5.0",
883
865
  "urn:kavrix:data:eff-short-wordlist-for-passphrases-1"
@@ -1102,10 +1084,6 @@
1102
1084
  "pkg:npm/is-fullwidth-code-point@5.1.0"
1103
1085
  ]
1104
1086
  },
1105
- {
1106
- "ref": "pkg:npm/smol-toml@1.3.1",
1107
- "dependsOn": []
1108
- },
1109
1087
  {
1110
1088
  "ref": "pkg:npm/sparse-bitfield@3.0.3",
1111
1089
  "dependsOn": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kavrix",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "Zero-knowledge credential vault command-line interface",
5
5
  "license": "MIT",
6
6
  "repository": {