dsh-vault 1.10.70 → 1.10.72

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/README-zh.md CHANGED
@@ -324,6 +324,25 @@ npx dsh-vault list # 或者干脆不装
324
324
 
325
325
  profile 这条路还有两个注意点:垫片可能被之后在该目录执行的 `pnpm install` 清掉;`pnpm dsh plugin --profile web add dsh-vault` 会依据包的 `dsh.bundle` 声明重整 `dsh.profile.bundles` —— 如果你自己的 patch 层**也**插入了这个插件,就会**挂两份**,要先删掉 patch 层那一行。
326
326
 
327
+ ## 泄露检查的隐私边界
328
+
329
+ `vault_breach_check`(以及安全页)可以把密码拿去和 Have I Been Pwned 比对。**离开本机的只有一样东西**:
330
+
331
+ ```
332
+ GET https://api.pwnedpasswords.com/range/<SHA-1(密码) 的前 5 个十六进制字符>
333
+ Add-Padding: true
334
+ ```
335
+
336
+ 响应会返回该前缀桶里的**全部**后缀(几百条哈希),匹配在**本地**完成 —— 完整哈希、密码原文、以及它属于哪个条目都不会离开。如果密码已经在内置常见口令表里,**根本不会发起请求**;同一前缀的重复查询会在内存里缓存一小时。
337
+
338
+ k-anonymity **没有**隐藏的东西,直说:
339
+
340
+ - **5 个字符的前缀**(20 bit,约百万分之一桶)会连同你的 IP 发给 Cloudflare;
341
+ - 能枚举候选口令的观察者,可以算出每个候选的前缀,从而看出你是否查询过那个桶 —— 这是该协议的已知局限,加请求头也解决不了;
342
+ - `Add-Padding` 只是抹掉**响应体积**这个信号(不加它,桶的响应长度会和"该密码有多常见"相关)。
343
+
344
+ 如果连前缀都不想出去,就用 `online: false` —— 此时只查离线词表,覆盖率小得多,适合当筛子而不是定论。
345
+
327
346
  ## 强度指示
328
347
 
329
348
  列表里每个条目在标题后有一个**三星**强度指示 —— **☆☆☆ = 0 分,★★★ = 满分**,中间按半星分档。半星不是 Unicode 字符(大多数字体没有),而是把同样三个 `★` 复制一层、按百分比裁剪彩色层实现的:
package/README.md CHANGED
@@ -359,6 +359,36 @@ Two more caveats on the profile route: its `.bin` shim can be pruned by a later
359
359
  patch layer *also* inserts the plugin, that mounts it twice, so remove the patch
360
360
  row first.
361
361
 
362
+ ## Privacy of the breach check
363
+
364
+ `vault_breach_check` (and the security page) can check passwords against Have I
365
+ Been Pwned. Exactly one thing leaves this machine:
366
+
367
+ ```
368
+ GET https://api.pwnedpasswords.com/range/<FIRST 5 HEX CHARS OF SHA-1(password)>
369
+ Add-Padding: true
370
+ ```
371
+
372
+ The response lists every suffix in that bucket (hundreds of hashes) and the match
373
+ is computed **locally** — the full hash, the password, and the entry it belongs to
374
+ never leave. A password already in the bundled common-password list is answered
375
+ offline and produces **no request at all**; repeat lookups of the same prefix are
376
+ cached in memory for an hour.
377
+
378
+ What k-anonymity does *not* hide, stated plainly:
379
+
380
+ - the **five-character prefix** (20 bits, one bucket in ~1M) goes to Cloudflare,
381
+ together with your IP;
382
+ - an observer who can guess candidate passwords can compute each candidate's
383
+ prefix and see whether you queried that bucket — that is the known limit of
384
+ this protocol, not something the header fixes;
385
+ - `Add-Padding` only removes the *response-size* signal (without it, a bucket's
386
+ response length correlates with how common the password is).
387
+
388
+ To keep even the prefix on your machine, pass `online: false` — the check then
389
+ uses only the offline list, which is far smaller, so treat it as a screening aid
390
+ rather than a verdict.
391
+
362
392
  ## Strength indicator
363
393
 
364
394
  Each entry row shows a three-star indicator after its title — **☆☆☆ = 0 score,
package/lib/breach.js CHANGED
@@ -17,8 +17,9 @@ const HIBP_RANGE_URL = 'https://api.pwnedpasswords.com/range/';
17
17
  const QUERY_TIMEOUT_MS = 12_000;
18
18
  /** How long a fetched prefix range is cached in memory. */
19
19
  const CACHE_TTL_MS = 60 * 60 * 1000;
20
- /** Common / weak passwords checked offline (rockyou-style head). */
21
- const WEAK_PASSWORDS = new Set([
20
+ /** Common / weak passwords checked offline (rockyou-style head). Also used by
21
+ * the strength estimator, so both agree on what "known-common" means. */
22
+ export const WEAK_PASSWORDS = new Set([
22
23
  '123456', 'password', '12345678', 'qwerty', '123456789', '12345', '1234', '111111',
23
24
  '1234567', 'dragon', '123123', 'baseball', 'abc123', 'football', 'monkey', 'letmein',
24
25
  'shadow', 'master', '666666', 'qwertyuiop', '123321', 'mustang', '1234567890', 'michael',
@@ -42,7 +43,13 @@ export function sha1Hex(password) {
42
43
  async function queryRange(prefix) {
43
44
  const res = await fetch(`${HIBP_RANGE_URL}${prefix}`, {
44
45
  signal: AbortSignal.timeout(QUERY_TIMEOUT_MS),
45
- headers: { 'User-Agent': 'dsh-vault' },
46
+ headers: {
47
+ 'User-Agent': 'dsh-vault',
48
+ // HIBP's own privacy knob: pad every response to a similar size so an
49
+ // observer cannot correlate a lookup with how many passwords share that
50
+ // prefix (which would leak information about how common yours is).
51
+ 'Add-Padding': 'true',
52
+ },
46
53
  });
47
54
  if (!res.ok)
48
55
  throw new Error(`Pwned Passwords returned HTTP ${res.status}`);
package/lib/client.js CHANGED
@@ -510,197 +510,197 @@ window.__ModuleLoader__.load({
510
510
  document.head.appendChild(tag);
511
511
  }
512
512
  var VaultSection_module_css_default = {
513
- "highBadge": "t_j5va_highBadge",
514
- "trashButton": "t_j5va_trashButton",
515
- "tab": "t_j5va_tab",
516
- "detailTotp": "t_j5va_detailTotp",
517
- "section": "t_j5va_section",
518
- "emptyHint": "t_j5va_emptyHint",
519
- "strengthWeak": "t_j5va_strengthWeak",
520
- "moreButton": "t_j5va_moreButton",
521
- "genHistItem": "t_j5va_genHistItem",
522
- "inlineField": "t_j5va_inlineField",
523
- "riskWarn": "t_j5va_riskWarn",
524
- "pwHistRow": "t_j5va_pwHistRow",
525
513
  "brandGlyph": "t_j5va_brandGlyph",
526
- "histLink": "t_j5va_histLink",
527
- "badgeOk": "t_j5va_badgeOk",
528
- "exportChips": "t_j5va_exportChips",
529
- "kindFilter": "t_j5va_kindFilter",
530
- "totpCopy": "t_j5va_totpCopy",
514
+ "intro": "t_j5va_intro",
515
+ "reportTitle": "t_j5va_reportTitle",
516
+ "colorSwatch": "t_j5va_colorSwatch",
517
+ "recentLabel": "t_j5va_recentLabel",
518
+ "pinStar": "t_j5va_pinStar",
519
+ "detailItem": "t_j5va_detailItem",
531
520
  "tagCount": "t_j5va_tagCount",
532
- "kindChipActive": "t_j5va_kindChipActive",
533
- "uriCode": "t_j5va_uriCode",
534
- "copied": "t_j5va_copied",
535
- "sortButton": "t_j5va_sortButton",
536
- "emojiBtn": "t_j5va_emojiBtn",
537
- "editor": "t_j5va_editor",
538
- "customFieldRow": "t_j5va_customFieldRow",
521
+ "pinOn": "t_j5va_pinOn",
539
522
  "toolbarFilters": "t_j5va_toolbarFilters",
540
- "status": "t_j5va_status",
541
523
  "title": "t_j5va_title",
542
- "histUpdate": "t_j5va_histUpdate",
543
- "empty": "t_j5va_empty",
544
- "revealButton": "t_j5va_revealButton",
545
- "rowExpired": "t_j5va_rowExpired",
546
- "pwLabel": "t_j5va_pwLabel",
547
- "genHist": "t_j5va_genHist",
548
- "iconFieldWrap": "t_j5va_iconFieldWrap",
549
- "customFieldRows": "t_j5va_customFieldRows",
550
- "lenChip": "t_j5va_lenChip",
551
- "customEq": "t_j5va_customEq",
552
- "lenChips": "t_j5va_lenChips",
553
- "brandGlyphSm": "t_j5va_brandGlyphSm",
554
- "actionPrimary": "t_j5va_actionPrimary",
555
- "resultCount": "t_j5va_resultCount",
556
- "actionGroup": "t_j5va_actionGroup",
557
- "tagRow": "t_j5va_tagRow",
558
- "actionBtn": "t_j5va_actionBtn",
559
- "auditRow": "t_j5va_auditRow",
560
- "bulkBar": "t_j5va_bulkBar",
561
- "auditChip": "t_j5va_auditChip",
562
- "retryButton": "t_j5va_retryButton",
563
- "colorPalette": "t_j5va_colorPalette",
564
- "copyAllBtn": "t_j5va_copyAllBtn",
565
- "reportBox": "t_j5va_reportBox",
524
+ "toolbarDivider": "t_j5va_toolbarDivider",
525
+ "importName": "t_j5va_importName",
526
+ "searchBox": "t_j5va_searchBox",
527
+ "recentClear": "t_j5va_recentClear",
566
528
  "strengthFair": "t_j5va_strengthFair",
567
- "attachAdd": "t_j5va_attachAdd",
568
- "toolbarMain": "t_j5va_toolbarMain",
569
- "vaultSwitch": "t_j5va_vaultSwitch",
570
- "gridName": "t_j5va_gridName",
571
- "inlineInput": "t_j5va_inlineInput",
572
- "badge": "t_j5va_badge",
573
- "detailDeleteBtn": "t_j5va_detailDeleteBtn",
574
- "rowActions": "t_j5va_rowActions",
575
- "importList": "t_j5va_importList",
576
- "importRow": "t_j5va_importRow",
577
- "headerMessage": "t_j5va_headerMessage",
578
- "pwBar": "t_j5va_pwBar",
579
- "colorFieldWrap": "t_j5va_colorFieldWrap",
580
- "totp": "t_j5va_totp",
581
- "emptyBox": "t_j5va_emptyBox",
582
- "tabPane": "t_j5va_tabPane",
583
- "pinOn": "t_j5va_pinOn",
584
- "policyField": "t_j5va_policyField",
585
- "gridRow": "t_j5va_gridRow",
586
- "checkField": "t_j5va_checkField",
587
- "healthSummary": "t_j5va_healthSummary",
588
- "selectActive": "t_j5va_selectActive",
589
- "auditChips": "t_j5va_auditChips",
590
- "histDanger": "t_j5va_histDanger",
591
- "urlGlyph": "t_j5va_urlGlyph",
592
- "strengthStrong": "t_j5va_strengthStrong",
593
- "pwStrong": "t_j5va_pwStrong",
594
- "clearButton": "t_j5va_clearButton",
595
- "riskBanner": "t_j5va_riskBanner",
596
- "reportLine": "t_j5va_reportLine",
597
- "favToggle": "t_j5va_favToggle",
598
- "bulkItem": "t_j5va_bulkItem",
599
- "dupNames": "t_j5va_dupNames",
600
- "pinStar": "t_j5va_pinStar",
601
- "customValueInput": "t_j5va_customValueInput",
602
- "genOptRow": "t_j5va_genOptRow",
603
- "rowSelected": "t_j5va_rowSelected",
604
- "detailBox": "t_j5va_detailBox",
605
- "secretField": "t_j5va_secretField",
606
- "detailItem": "t_j5va_detailItem",
607
- "saveButton": "t_j5va_saveButton",
608
- "modeAsk": "t_j5va_modeAsk",
609
- "tagName": "t_j5va_tagName",
610
- "reportJump": "t_j5va_reportJump",
611
- "tagActions": "t_j5va_tagActions",
612
- "dupGroup": "t_j5va_dupGroup",
529
+ "totpCopy": "t_j5va_totpCopy",
530
+ "importActions": "t_j5va_importActions",
531
+ "auditChipActive": "t_j5va_auditChipActive",
613
532
  "gridDetail": "t_j5va_gridDetail",
533
+ "tabs": "t_j5va_tabs",
534
+ "highBadge": "t_j5va_highBadge",
614
535
  "lockedTag": "t_j5va_lockedTag",
615
- "recentSearch": "t_j5va_recentSearch",
616
- "customKeyInput": "t_j5va_customKeyInput",
617
- "strengthStars": "t_j5va_strengthStars",
618
- "listCompact": "t_j5va_listCompact",
619
- "vaultManageRow": "t_j5va_vaultManageRow",
620
- "vaultTarget": "t_j5va_vaultTarget",
621
- "detailActions": "t_j5va_detailActions",
536
+ "customValueInput": "t_j5va_customValueInput",
537
+ "kindChip": "t_j5va_kindChip",
538
+ "emptyHint": "t_j5va_emptyHint",
539
+ "dupMerge": "t_j5va_dupMerge",
540
+ "importList": "t_j5va_importList",
541
+ "colorFieldWrap": "t_j5va_colorFieldWrap",
542
+ "badgeDanger": "t_j5va_badgeDanger",
543
+ "kindIcon": "t_j5va_kindIcon",
544
+ "pwBar": "t_j5va_pwBar",
545
+ "status": "t_j5va_status",
546
+ "actionGroups": "t_j5va_actionGroups",
622
547
  "actionGroupLabel": "t_j5va_actionGroupLabel",
548
+ "genHist": "t_j5va_genHist",
549
+ "badgeOk": "t_j5va_badgeOk",
623
550
  "gridActions": "t_j5va_gridActions",
624
- "totpRing": "t_j5va_totpRing",
625
- "strengthFill": "t_j5va_strengthFill",
551
+ "pinOff": "t_j5va_pinOff",
552
+ "dupNames": "t_j5va_dupNames",
553
+ "row": "t_j5va_row",
626
554
  "riskDanger": "t_j5va_riskDanger",
627
- "rowMain": "t_j5va_rowMain",
628
- "genOpts": "t_j5va_genOpts",
629
- "colorSwatch": "t_j5va_colorSwatch",
630
- "toolbarDivider": "t_j5va_toolbarDivider",
631
- "importName": "t_j5va_importName",
555
+ "pwHistRow": "t_j5va_pwHistRow",
556
+ "healthSummary": "t_j5va_healthSummary",
557
+ "deleteButton": "t_j5va_deleteButton",
558
+ "tagManagerHead": "t_j5va_tagManagerHead",
559
+ "reportBox": "t_j5va_reportBox",
560
+ "pwWeak": "t_j5va_pwWeak",
561
+ "rowActions": "t_j5va_rowActions",
562
+ "moreWrap": "t_j5va_moreWrap",
632
563
  "pwHistTime": "t_j5va_pwHistTime",
633
- "addButton": "t_j5va_addButton",
634
- "scoreRing": "t_j5va_scoreRing",
635
- "dangerButton": "t_j5va_dangerButton",
636
- "backupButton": "t_j5va_backupButton",
637
564
  "gridInput": "t_j5va_gridInput",
638
- "reportTitle": "t_j5va_reportTitle",
639
- "kindChip": "t_j5va_kindChip",
565
+ "auditChips": "t_j5va_auditChips",
566
+ "totpRing": "t_j5va_totpRing",
567
+ "histAdd": "t_j5va_histAdd",
568
+ "listCompact": "t_j5va_listCompact",
569
+ "modeAsk": "t_j5va_modeAsk",
570
+ "scoreRing": "t_j5va_scoreRing",
571
+ "strengthWeak": "t_j5va_strengthWeak",
572
+ "colorPalette": "t_j5va_colorPalette",
573
+ "toolbar": "t_j5va_toolbar",
574
+ "tagManager": "t_j5va_tagManager",
575
+ "reportSub": "t_j5va_reportSub",
576
+ "modeAuto": "t_j5va_modeAuto",
577
+ "pwMeter": "t_j5va_pwMeter",
578
+ "pwStrong": "t_j5va_pwStrong",
579
+ "customFieldRows": "t_j5va_customFieldRows",
580
+ "customFieldRow": "t_j5va_customFieldRow",
581
+ "customKeyInput": "t_j5va_customKeyInput",
582
+ "favToggle": "t_j5va_favToggle",
583
+ "strengthStrong": "t_j5va_strengthStrong",
584
+ "editorActions": "t_j5va_editorActions",
585
+ "reportJump": "t_j5va_reportJump",
586
+ "reportLineLink": "t_j5va_reportLineLink",
587
+ "rowSelected": "t_j5va_rowSelected",
588
+ "histLink": "t_j5va_histLink",
589
+ "favActive": "t_j5va_favActive",
640
590
  "srOnly": "t_j5va_srOnly",
641
- "badgeDanger": "t_j5va_badgeDanger",
642
- "tabActive": "t_j5va_tabActive",
643
- "rowCheck": "t_j5va_rowCheck",
644
- "deleteButton": "t_j5va_deleteButton",
645
- "badgeWarn": "t_j5va_badgeWarn",
591
+ "uriCode": "t_j5va_uriCode",
646
592
  "badgeLink": "t_j5va_badgeLink",
593
+ "importDesc": "t_j5va_importDesc",
594
+ "selectActive": "t_j5va_selectActive",
595
+ "emojiBtn": "t_j5va_emojiBtn",
596
+ "detailBox": "t_j5va_detailBox",
597
+ "detailDeleteBtn": "t_j5va_detailDeleteBtn",
598
+ "badgeWarn": "t_j5va_badgeWarn",
599
+ "sortButton": "t_j5va_sortButton",
647
600
  "recentChip": "t_j5va_recentChip",
648
- "pinOff": "t_j5va_pinOff",
649
- "policyBar": "t_j5va_policyBar",
650
- "modeAuto": "t_j5va_modeAuto",
651
- "histAdd": "t_j5va_histAdd",
601
+ "revealButton": "t_j5va_revealButton",
602
+ "lockedBanner": "t_j5va_lockedBanner",
603
+ "bulkBar": "t_j5va_bulkBar",
604
+ "rowCheck": "t_j5va_rowCheck",
605
+ "customEq": "t_j5va_customEq",
606
+ "copied": "t_j5va_copied",
607
+ "badge": "t_j5va_badge",
608
+ "urlGlyph": "t_j5va_urlGlyph",
609
+ "retryButton": "t_j5va_retryButton",
610
+ "moreButton": "t_j5va_moreButton",
611
+ "emptyBox": "t_j5va_emptyBox",
612
+ "resultCount": "t_j5va_resultCount",
613
+ "dangerButton": "t_j5va_dangerButton",
614
+ "detailRemain": "t_j5va_detailRemain",
652
615
  "pwHistPwd": "t_j5va_pwHistPwd",
653
- "toolbar": "t_j5va_toolbar",
654
- "editorBody": "t_j5va_editorBody",
655
- "recentLabel": "t_j5va_recentLabel",
656
- "row": "t_j5va_row",
657
- "identity": "t_j5va_identity",
658
- "lenChipActive": "t_j5va_lenChipActive",
659
- "moreMenu": "t_j5va_moreMenu",
660
- "reportSub": "t_j5va_reportSub",
661
616
  "exportChip": "t_j5va_exportChip",
662
- "tagManagerHead": "t_j5va_tagManagerHead",
617
+ "vaultSwitch": "t_j5va_vaultSwitch",
618
+ "reportLine": "t_j5va_reportLine",
619
+ "gridName": "t_j5va_gridName",
620
+ "rowDue": "t_j5va_rowDue",
621
+ "tagRow": "t_j5va_tagRow",
622
+ "auditWhen": "t_j5va_auditWhen",
623
+ "vaultManageRow": "t_j5va_vaultManageRow",
663
624
  "hit": "t_j5va_hit",
664
- "intro": "t_j5va_intro",
665
- "reportLineLink": "t_j5va_reportLineLink",
666
- "recentClear": "t_j5va_recentClear",
667
- "list": "t_j5va_list",
668
- "attachBox": "t_j5va_attachBox",
669
- "tabs": "t_j5va_tabs",
625
+ "tagName": "t_j5va_tagName",
626
+ "actionGroup": "t_j5va_actionGroup",
627
+ "brandGlyphSm": "t_j5va_brandGlyphSm",
628
+ "auditChip": "t_j5va_auditChip",
670
629
  "badgeBtn": "t_j5va_badgeBtn",
671
- "bulkCount": "t_j5va_bulkCount",
672
- "kindIcon": "t_j5va_kindIcon",
673
- "pwWeak": "t_j5va_pwWeak",
630
+ "inlineInput": "t_j5va_inlineInput",
631
+ "moreMenu": "t_j5va_moreMenu",
632
+ "policyField": "t_j5va_policyField",
633
+ "identity": "t_j5va_identity",
634
+ "totp": "t_j5va_totp",
635
+ "policyBar": "t_j5va_policyBar",
636
+ "strengthStars": "t_j5va_strengthStars",
637
+ "tabPane": "t_j5va_tabPane",
638
+ "clearButton": "t_j5va_clearButton",
639
+ "attachAdd": "t_j5va_attachAdd",
640
+ "exportChips": "t_j5va_exportChips",
641
+ "emojiPicker": "t_j5va_emojiPicker",
642
+ "tab": "t_j5va_tab",
643
+ "recentSearch": "t_j5va_recentSearch",
644
+ "editorBody": "t_j5va_editorBody",
674
645
  "error": "t_j5va_error",
675
- "lockedBanner": "t_j5va_lockedBanner",
676
- "actionGroups": "t_j5va_actionGroups",
646
+ "healthBar": "t_j5va_healthBar",
647
+ "riskWarn": "t_j5va_riskWarn",
677
648
  "detailCode": "t_j5va_detailCode",
649
+ "tabActive": "t_j5va_tabActive",
678
650
  "vaultHeader": "t_j5va_vaultHeader",
679
- "histNeutral": "t_j5va_histNeutral",
680
- "dupMerge": "t_j5va_dupMerge",
681
- "pwHistBox": "t_j5va_pwHistBox",
682
- "rowDue": "t_j5va_rowDue",
683
- "field": "t_j5va_field",
684
- "detailRemain": "t_j5va_detailRemain",
685
- "favActive": "t_j5va_favActive",
686
- "tagManager": "t_j5va_tagManager",
687
- "badgeActive": "t_j5va_badgeActive",
688
- "importDesc": "t_j5va_importDesc",
689
- "pwMeter": "t_j5va_pwMeter",
690
- "moreWrap": "t_j5va_moreWrap",
691
- "searchBox": "t_j5va_searchBox",
692
651
  "strengthTrack": "t_j5va_strengthTrack",
693
- "auditChipActive": "t_j5va_auditChipActive",
652
+ "kindChipActive": "t_j5va_kindChipActive",
653
+ "importRow": "t_j5va_importRow",
654
+ "headerMessage": "t_j5va_headerMessage",
655
+ "genOptRow": "t_j5va_genOptRow",
694
656
  "modeReadonly": "t_j5va_modeReadonly",
695
- "healthBar": "t_j5va_healthBar",
696
- "editorActions": "t_j5va_editorActions",
697
- "emojiPicker": "t_j5va_emojiPicker",
698
- "importActions": "t_j5va_importActions",
657
+ "section": "t_j5va_section",
658
+ "list": "t_j5va_list",
659
+ "empty": "t_j5va_empty",
660
+ "rowExpired": "t_j5va_rowExpired",
661
+ "attachBox": "t_j5va_attachBox",
662
+ "checkField": "t_j5va_checkField",
663
+ "toolbarMain": "t_j5va_toolbarMain",
664
+ "detailActions": "t_j5va_detailActions",
665
+ "vaultTarget": "t_j5va_vaultTarget",
666
+ "bulkCount": "t_j5va_bulkCount",
667
+ "genOpts": "t_j5va_genOpts",
699
668
  "searchKbd": "t_j5va_searchKbd",
700
- "auditIssues": "t_j5va_auditIssues",
669
+ "tagActions": "t_j5va_tagActions",
670
+ "copyAllBtn": "t_j5va_copyAllBtn",
671
+ "pwLabel": "t_j5va_pwLabel",
672
+ "addButton": "t_j5va_addButton",
673
+ "badgeActive": "t_j5va_badgeActive",
674
+ "lenChip": "t_j5va_lenChip",
675
+ "editor": "t_j5va_editor",
676
+ "actionPrimary": "t_j5va_actionPrimary",
677
+ "histUpdate": "t_j5va_histUpdate",
678
+ "kindFilter": "t_j5va_kindFilter",
701
679
  "pwFair": "t_j5va_pwFair",
680
+ "rowMain": "t_j5va_rowMain",
681
+ "genHistItem": "t_j5va_genHistItem",
682
+ "gridRow": "t_j5va_gridRow",
683
+ "field": "t_j5va_field",
684
+ "auditIssues": "t_j5va_auditIssues",
685
+ "histDanger": "t_j5va_histDanger",
686
+ "lenChipActive": "t_j5va_lenChipActive",
687
+ "secretField": "t_j5va_secretField",
702
688
  "dueBadge": "t_j5va_dueBadge",
703
- "auditWhen": "t_j5va_auditWhen"
689
+ "riskBanner": "t_j5va_riskBanner",
690
+ "dupGroup": "t_j5va_dupGroup",
691
+ "actionBtn": "t_j5va_actionBtn",
692
+ "lenChips": "t_j5va_lenChips",
693
+ "strengthFill": "t_j5va_strengthFill",
694
+ "bulkItem": "t_j5va_bulkItem",
695
+ "histNeutral": "t_j5va_histNeutral",
696
+ "detailTotp": "t_j5va_detailTotp",
697
+ "iconFieldWrap": "t_j5va_iconFieldWrap",
698
+ "pwHistBox": "t_j5va_pwHistBox",
699
+ "inlineField": "t_j5va_inlineField",
700
+ "saveButton": "t_j5va_saveButton",
701
+ "backupButton": "t_j5va_backupButton",
702
+ "auditRow": "t_j5va_auditRow",
703
+ "trashButton": "t_j5va_trashButton"
704
704
  };
705
705
  //#endregion
706
706
  //#region src/client/VaultSection.tsx
@@ -5384,7 +5384,7 @@ window.__ModuleLoader__.load({
5384
5384
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
5385
5385
  className: VaultSection_module_css_default.strengthTrack,
5386
5386
  "aria-hidden": "true",
5387
- children: "★★★"
5387
+ children: "☆☆☆"
5388
5388
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
5389
5389
  className: `${VaultSection_module_css_default.strengthFill} ${toneCss}`,
5390
5390
  style: { width: `${strengthWidthPercent(units)}%` },