@messagevisor/catalog 0.1.0 → 0.2.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/assets/index-Cn0qFwkD.css +1 -0
- package/dist/index.html +2 -2
- package/lib/node/index.js +210 -100
- package/lib/node/index.js.map +1 -1
- package/package.json +2 -2
- package/src/node/index.spec.ts +222 -0
- package/src/node/index.ts +241 -97
- package/dist/assets/index-CfGbXx4X.css +0 -1
- /package/dist/assets/{index-r8ugP5JL.js → index-BoO0zn_O.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.static{position:static}.absolute{position:absolute}.relative{position:relative}.right-0{right:0}.right-2{right:.5rem}.right-3{right:.75rem}.top-1\/2{top:50%}.top-full{top:100%}.z-20{z-index:20}.m-8{margin:2rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.mx-auto{margin-left:auto;margin-right:auto}.-ml-px{margin-left:-1px}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-6{margin-bottom:1.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-px{margin-top:1px}.box-border{box-sizing:border-box}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-\[46px\]{height:46px}.h-auto{height:auto}.h-full{height:100%}.max-h-4{max-height:1rem}.min-h-0{min-height:0px}.min-h-screen{min-height:100vh}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-16{width:4rem}.w-2\/5{width:40%}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-8{width:2rem}.w-\[10\%\]{width:10%}.w-\[12\%\]{width:12%}.w-\[14\%\]{width:14%}.w-\[16\%\]{width:16%}.w-\[18\%\]{width:18%}.w-\[20\%\]{width:20%}.w-\[22\%\]{width:22%}.w-\[28\%\]{width:28%}.w-\[30\%\]{width:30%}.w-\[32\%\]{width:32%}.w-\[34\%\]{width:34%}.w-\[36\%\]{width:36%}.w-\[38\%\]{width:38%}.w-\[40\%\]{width:40%}.w-\[42\%\]{width:42%}.w-\[70\%\]{width:70%}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-28{min-width:7rem}.min-w-48{min-width:12rem}.min-w-\[40rem\]{min-width:40rem}.max-w-44{max-width:11rem}.max-w-5xl{max-width:64rem}.max-w-full{max-width:100%}.max-w-none{max-width:none}.flex-1{flex:1 1 0%}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.basis-\[min\(100\%\,22rem\)\]{flex-basis:min(100%,22rem)}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-rows-\[0fr\]{grid-template-rows:0fr}.grid-rows-\[1fr\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-1\.5{row-gap:.375rem}.gap-y-3{row-gap:.75rem}.gap-y-8{row-gap:2rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-border>:not([hidden])~:not([hidden]){border-color:var(--mv-color-border)}.self-start{align-self:flex-start}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:8px}.rounded-\[3px\]{border-radius:3px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-l{border-top-left-radius:8px;border-bottom-left-radius:8px}.rounded-r{border-top-right-radius:8px;border-bottom-right-radius:8px}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-border{border-color:var(--mv-color-border)}.border-danger-outline{border-color:var(--mv-color-danger-outline)}.border-pill{border-color:var(--mv-color-pill)}.border-primary{border-color:var(--mv-color-primary)}.border-success-outline{border-color:var(--mv-color-success-outline)}.border-transparent{border-color:transparent}.border-warning-outline{border-color:var(--mv-color-warning-outline)}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-background{background-color:var(--mv-color-background)}.bg-danger-surface{background-color:var(--mv-color-danger-surface)}.bg-elevated{background-color:var(--mv-color-elevated)}.bg-header{background-color:var(--mv-color-header)}.bg-header-active{background-color:var(--mv-color-header-active)}.bg-pill{background-color:var(--mv-color-pill)}.bg-success-surface{background-color:var(--mv-color-success-surface)}.bg-surface{background-color:var(--mv-color-surface)}.bg-transparent{background-color:transparent}.bg-warning-surface{background-color:var(--mv-color-warning-surface)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-left{-o-object-position:left;object-position:left}.p-1{padding:.25rem}.p-4{padding:1rem}.p-8{padding:2rem}.p-px{padding:1px}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-px{padding-top:1px;padding-bottom:1px}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pb-6{padding-bottom:1.5rem}.pl-1{padding-left:.25rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pr-10{padding-right:2.5rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-7{padding-right:1.75rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-snug{line-height:1.375}.tracking-wide{letter-spacing:.025em}.text-danger{color:var(--mv-color-danger)}.text-faint{color:var(--mv-color-faint)}.text-header{color:var(--mv-color-header)}.text-header-text{color:var(--mv-color-header-text)}.text-inherit{color:inherit}.text-muted{color:var(--mv-color-muted)}.text-pill{color:var(--mv-color-pill)}.text-primary{color:var(--mv-color-primary)}.text-text{color:var(--mv-color-text)}.opacity-0{opacity:0}.shadow{--tw-shadow: var(--mv-shadow);--tw-shadow-colored: var(--mv-shadow);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[inset_0_-2px_0_0_rgba\(251\,191\,36\,0\.35\)\]{--tw-shadow: inset 0 -2px 0 0 rgba(251,191,36,.35);--tw-shadow-colored: inset 0 -2px 0 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: var(--mv-shadow-md);--tw-shadow-colored: var(--mv-shadow-md);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: var(--mv-shadow-sm);--tw-shadow-colored: var(--mv-shadow-sm);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset: inset}.ring-amber-400\/25{--tw-ring-color: rgb(251 191 36 / .25)}.ring-black\/5{--tw-ring-color: rgb(0 0 0 / .05)}.ring-offset-2{--tw-ring-offset-width: 2px}.ring-offset-header{--tw-ring-offset-color: var(--mv-color-header)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-\[background-color\,box-shadow\]{transition-property:background-color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}:root{color-scheme:light;--mv-color-background: #e5e7eb;--mv-color-surface: #ffffff;--mv-color-elevated: #f8fafc;--mv-color-border: #e5e7eb;--mv-color-text: #374151;--mv-color-muted: #6b7280;--mv-color-primary: #475569;--mv-color-success: #16a34a;--mv-color-warning: #ea580c;--mv-color-danger: #dc2626;--mv-color-header: #1f2937;--mv-color-header-active: #374151;--mv-color-header-text: #f9fafb;--mv-color-pill: #cbd5e1;--mv-color-faint: #9ca3af;--mv-color-placeholder: #9ca3af;--mv-color-success-surface: #bbf7d0;--mv-color-success-outline: #86efac;--mv-color-warning-surface: #fed7aa;--mv-color-warning-outline: #fdba74;--mv-color-danger-surface: #fee2e2;--mv-color-danger-outline: #fca5a5;--mv-color-ring: rgb(71 85 105 / .45);--mv-shadow-sm: 0 1px 2px 0 rgb(15 23 42 / .06);--mv-shadow-md: 0 4px 6px -1px rgb(15 23 42 / .08), 0 2px 4px -2px rgb(15 23 42 / .06);--mv-shadow: 0 1px 3px 0 rgb(15 23 42 / .1), 0 1px 2px -1px rgb(15 23 42 / .08);--mv-shadow-soft: 0 10px 30px rgb(15 23 42 / .08)}body{margin:0;background:var(--mv-color-background);color:var(--mv-color-text);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit}.placeholder\:text-xs::-moz-placeholder{font-size:.75rem;line-height:1rem}.placeholder\:text-xs::placeholder{font-size:.75rem;line-height:1rem}.placeholder\:leading-snug::-moz-placeholder{line-height:1.375}.placeholder\:leading-snug::placeholder{line-height:1.375}.placeholder\:text-muted::-moz-placeholder{color:var(--mv-color-muted)}.placeholder\:text-muted::placeholder{color:var(--mv-color-muted)}.placeholder\:text-placeholder::-moz-placeholder{color:var(--mv-color-placeholder)}.placeholder\:text-placeholder::placeholder{color:var(--mv-color-placeholder)}.hover\:border-border:hover{border-color:var(--mv-color-border)}.hover\:border-primary:hover{border-color:var(--mv-color-primary)}.hover\:bg-background:hover{background-color:var(--mv-color-background)}.hover\:bg-elevated:hover{background-color:var(--mv-color-elevated)}.hover\:bg-header-active:hover{background-color:var(--mv-color-header-active)}.hover\:text-primary:hover{color:var(--mv-color-primary)}.hover\:text-text:hover{color:var(--mv-color-text)}.hover\:underline:hover{text-decoration-line:underline}.focus\:border-primary:focus{border-color:var(--mv-color-primary)}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-header-text:focus-visible{--tw-ring-color: var(--mv-color-header-text)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: var(--mv-color-ring)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: var(--mv-color-background)}.group:hover .group-hover\:opacity-100{opacity:1}@media(min-width:640px){.sm\:px-4{padding-left:1rem;padding-right:1rem}}@media(min-width:768px){.md\:col-span-2{grid-column:span 2 / span 2}.md\:flex{display:flex}.md\:w-56{width:14rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:justify-self-end{justify-self:end}.md\:text-right{text-align:right}}.\[\&_code\]\:rounded-md code{border-radius:.375rem}.\[\&_code\]\:border code{border-width:1px}.\[\&_code\]\:border-faint code{border-color:var(--mv-color-faint)}.\[\&_code\]\:bg-elevated code{background-color:var(--mv-color-elevated)}.\[\&_code\]\:px-1\.5 code{padding-left:.375rem;padding-right:.375rem}.\[\&_code\]\:py-0\.5 code{padding-top:.125rem;padding-bottom:.125rem}.\[\&_code\]\:font-mono code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.\[\&_code\]\:text-\[0\.8125rem\] code{font-size:.8125rem}.\[\&_code\]\:font-medium code{font-weight:500}.\[\&_code\]\:text-text code{color:var(--mv-color-text)}.\[\&_pre\]\:my-3 pre{margin-top:.75rem;margin-bottom:.75rem}.\[\&_pre\]\:rounded-xl pre{border-radius:.75rem}.\[\&_pre\]\:border pre{border-width:1px}.\[\&_pre\]\:border-faint pre{border-color:var(--mv-color-faint)}.\[\&_pre\]\:bg-elevated pre{background-color:var(--mv-color-elevated)}.\[\&_pre\]\:p-4 pre{padding:1rem}.\[\&_pre\]\:shadow-sm pre{--tw-shadow: var(--mv-shadow-sm);--tw-shadow-colored: var(--mv-shadow-sm);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.\[\&_pre_code\]\:m-0 pre code{margin:0}.\[\&_pre_code\]\:block pre code{display:block}.\[\&_pre_code\]\:w-full pre code{width:100%}.\[\&_pre_code\]\:rounded-none pre code{border-radius:0}.\[\&_pre_code\]\:border-0 pre code{border-width:0px}.\[\&_pre_code\]\:bg-transparent pre code{background-color:transparent}.\[\&_pre_code\]\:p-0 pre code{padding:0}.\[\&_pre_code\]\:text-xs pre code{font-size:.75rem;line-height:1rem}.\[\&_pre_code\]\:font-normal pre code{font-weight:400}.\[\&_pre_code\]\:leading-relaxed pre code{line-height:1.625}.\[\&_pre_code\]\:shadow-none pre code{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}
|
package/dist/index.html
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<link rel="icon" type="image/png" href="/favicon.png" />
|
|
7
7
|
<title>Messagevisor Catalog</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
9
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-BoO0zn_O.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="/assets/index-Cn0qFwkD.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
12
12
|
<div id="root"></div>
|
package/lib/node/index.js
CHANGED
|
@@ -226,26 +226,22 @@ function getTargetMessageKeys(target, messageKeys) {
|
|
|
226
226
|
})
|
|
227
227
|
.sort();
|
|
228
228
|
}
|
|
229
|
-
function
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
entity.key === key &&
|
|
234
|
-
(typeof set === "undefined" || entity.set === set);
|
|
235
|
-
});
|
|
236
|
-
});
|
|
237
|
-
if (!entry) {
|
|
238
|
-
return undefined;
|
|
239
|
-
}
|
|
229
|
+
function getHistoryEntityKey(type, key, set) {
|
|
230
|
+
return "".concat(set || "", "\u001F").concat(type, "\u001F").concat(key);
|
|
231
|
+
}
|
|
232
|
+
function toLastModified(entry) {
|
|
240
233
|
return {
|
|
241
234
|
commit: entry.commit,
|
|
242
235
|
author: entry.author,
|
|
243
236
|
timestamp: entry.timestamp,
|
|
244
237
|
};
|
|
245
238
|
}
|
|
246
|
-
function
|
|
239
|
+
function getLastModified(historyIndex, type, key, set) {
|
|
240
|
+
return historyIndex.lastModifiedByEntity[getHistoryEntityKey(type, key, set)];
|
|
241
|
+
}
|
|
242
|
+
function getEntitySummary(entity, type, key, historyIndex, set, extra) {
|
|
247
243
|
if (extra === void 0) { extra = {}; }
|
|
248
|
-
return __assign(__assign({ key: key, description: entity.description, archived: entity.archived, deprecated: entity.deprecated }, extra), { lastModified: getLastModified(
|
|
244
|
+
return __assign(__assign({ key: key, description: entity.description, archived: entity.archived, deprecated: entity.deprecated }, extra), { lastModified: getLastModified(historyIndex, type, key, set), href: "entities/".concat(type, "/").concat(encodeKey(key), ".json") });
|
|
249
245
|
}
|
|
250
246
|
function getPathValue(value, segments) {
|
|
251
247
|
var current = value;
|
|
@@ -431,6 +427,153 @@ function runGit(rootDirectoryPath, args) {
|
|
|
431
427
|
stdio: ["ignore", "pipe", "ignore"],
|
|
432
428
|
});
|
|
433
429
|
}
|
|
430
|
+
function getCatalogHistoryPathPatterns(rootDirectoryPath, projectConfig) {
|
|
431
|
+
return projectConfig.sets
|
|
432
|
+
? [path.relative(rootDirectoryPath, projectConfig.setsDirectoryPath)]
|
|
433
|
+
: [
|
|
434
|
+
path.relative(rootDirectoryPath, projectConfig.localesDirectoryPath),
|
|
435
|
+
path.relative(rootDirectoryPath, projectConfig.messagesDirectoryPath),
|
|
436
|
+
path.relative(rootDirectoryPath, projectConfig.attributesDirectoryPath),
|
|
437
|
+
path.relative(rootDirectoryPath, projectConfig.segmentsDirectoryPath),
|
|
438
|
+
path.relative(rootDirectoryPath, projectConfig.targetsDirectoryPath),
|
|
439
|
+
path.relative(rootDirectoryPath, projectConfig.testsDirectoryPath),
|
|
440
|
+
];
|
|
441
|
+
}
|
|
442
|
+
function createEmptyHistoryIndex() {
|
|
443
|
+
return {
|
|
444
|
+
entries: [],
|
|
445
|
+
bySet: {},
|
|
446
|
+
byEntity: {},
|
|
447
|
+
lastModifiedByEntity: {},
|
|
448
|
+
};
|
|
449
|
+
}
|
|
450
|
+
function addHistoryIndexEntry(target, key, entry) {
|
|
451
|
+
if (!target[key]) {
|
|
452
|
+
target[key] = [];
|
|
453
|
+
}
|
|
454
|
+
target[key].push(entry);
|
|
455
|
+
}
|
|
456
|
+
function buildCatalogHistoryIndex(entries) {
|
|
457
|
+
var index = createEmptyHistoryIndex();
|
|
458
|
+
index.entries = entries;
|
|
459
|
+
for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {
|
|
460
|
+
var entry = entries_1[_i];
|
|
461
|
+
var seenSets = new Set();
|
|
462
|
+
for (var _a = 0, _b = entry.entities; _a < _b.length; _a++) {
|
|
463
|
+
var entity = _b[_a];
|
|
464
|
+
if (entity.type === "test") {
|
|
465
|
+
continue;
|
|
466
|
+
}
|
|
467
|
+
var entityKey = getHistoryEntityKey(entity.type, entity.key, entity.set);
|
|
468
|
+
addHistoryIndexEntry(index.byEntity, entityKey, entry);
|
|
469
|
+
if (!index.lastModifiedByEntity[entityKey]) {
|
|
470
|
+
index.lastModifiedByEntity[entityKey] = toLastModified(entry);
|
|
471
|
+
}
|
|
472
|
+
if (entity.set && !seenSets.has(entity.set)) {
|
|
473
|
+
seenSets.add(entity.set);
|
|
474
|
+
addHistoryIndexEntry(index.bySet, entity.set, entry);
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
return index;
|
|
479
|
+
}
|
|
480
|
+
function appendHistoryEntry(history, current) {
|
|
481
|
+
if (!current || current.entities.length === 0) {
|
|
482
|
+
return;
|
|
483
|
+
}
|
|
484
|
+
history.push({
|
|
485
|
+
commit: current.commit,
|
|
486
|
+
author: current.author,
|
|
487
|
+
timestamp: current.timestamp,
|
|
488
|
+
entities: current.entities,
|
|
489
|
+
});
|
|
490
|
+
}
|
|
491
|
+
function addHistoryEntity(current, entity) {
|
|
492
|
+
if (entity.type === "test") {
|
|
493
|
+
return;
|
|
494
|
+
}
|
|
495
|
+
var entityKey = getHistoryEntityKey(entity.type, entity.key, entity.set);
|
|
496
|
+
if (current.seenEntityKeys.has(entityKey)) {
|
|
497
|
+
return;
|
|
498
|
+
}
|
|
499
|
+
current.seenEntityKeys.add(entityKey);
|
|
500
|
+
current.entities.push(entity);
|
|
501
|
+
}
|
|
502
|
+
function streamCatalogGitHistory(rootDirectoryPath, projectConfig) {
|
|
503
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
504
|
+
var pathPatterns, args;
|
|
505
|
+
return __generator(this, function (_a) {
|
|
506
|
+
pathPatterns = getCatalogHistoryPathPatterns(rootDirectoryPath, projectConfig);
|
|
507
|
+
args = __spreadArray([
|
|
508
|
+
"-C",
|
|
509
|
+
rootDirectoryPath,
|
|
510
|
+
"log",
|
|
511
|
+
"--name-only",
|
|
512
|
+
"--pretty=format:%x1e%h%x1f%an%x1f%aI",
|
|
513
|
+
"--relative",
|
|
514
|
+
"--no-merges",
|
|
515
|
+
"--"
|
|
516
|
+
], pathPatterns, true);
|
|
517
|
+
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
518
|
+
var current;
|
|
519
|
+
var buffer = "";
|
|
520
|
+
var history = [];
|
|
521
|
+
var git = childProcess.spawn("git", args, {
|
|
522
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
523
|
+
});
|
|
524
|
+
function processLine(line) {
|
|
525
|
+
if (!line) {
|
|
526
|
+
return;
|
|
527
|
+
}
|
|
528
|
+
if (line.startsWith("\x1e")) {
|
|
529
|
+
appendHistoryEntry(history, current);
|
|
530
|
+
var _a = line.slice(1).split("\x1f"), commit = _a[0], author = _a[1], timestamp = _a[2];
|
|
531
|
+
current =
|
|
532
|
+
commit && author && timestamp
|
|
533
|
+
? {
|
|
534
|
+
commit: commit,
|
|
535
|
+
author: author,
|
|
536
|
+
timestamp: timestamp,
|
|
537
|
+
entities: [],
|
|
538
|
+
seenEntityKeys: new Set(),
|
|
539
|
+
}
|
|
540
|
+
: undefined;
|
|
541
|
+
return;
|
|
542
|
+
}
|
|
543
|
+
if (!current) {
|
|
544
|
+
return;
|
|
545
|
+
}
|
|
546
|
+
var entity = getEntityInfoFromRelativePath(rootDirectoryPath, projectConfig, line);
|
|
547
|
+
if (entity) {
|
|
548
|
+
addHistoryEntity(current, entity);
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
git.stdout.setEncoding("utf8");
|
|
552
|
+
git.stdout.on("data", function (chunk) {
|
|
553
|
+
buffer += chunk;
|
|
554
|
+
var lines = buffer.split(/\r?\n/);
|
|
555
|
+
buffer = lines.pop() || "";
|
|
556
|
+
for (var _i = 0, lines_1 = lines; _i < lines_1.length; _i++) {
|
|
557
|
+
var line = lines_1[_i];
|
|
558
|
+
processLine(line);
|
|
559
|
+
}
|
|
560
|
+
});
|
|
561
|
+
git.on("error", reject);
|
|
562
|
+
git.on("close", function (code) {
|
|
563
|
+
if (buffer) {
|
|
564
|
+
processLine(buffer);
|
|
565
|
+
}
|
|
566
|
+
appendHistoryEntry(history, current);
|
|
567
|
+
if (code === 0) {
|
|
568
|
+
resolve(history);
|
|
569
|
+
return;
|
|
570
|
+
}
|
|
571
|
+
reject(new Error("git log exited with code ".concat(code)));
|
|
572
|
+
});
|
|
573
|
+
})];
|
|
574
|
+
});
|
|
575
|
+
});
|
|
576
|
+
}
|
|
434
577
|
function isExecutableFile(filePath) {
|
|
435
578
|
try {
|
|
436
579
|
var stat = fs.statSync(filePath);
|
|
@@ -496,49 +639,23 @@ function detectDevEditors() {
|
|
|
496
639
|
}
|
|
497
640
|
return editors;
|
|
498
641
|
}
|
|
499
|
-
function
|
|
500
|
-
|
|
501
|
-
var
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
"--name-only",
|
|
514
|
-
"--pretty=format:%h|%an|%aI",
|
|
515
|
-
"--relative",
|
|
516
|
-
"--no-merges",
|
|
517
|
-
"--"
|
|
518
|
-
], pathPatterns, true));
|
|
519
|
-
var blocks = raw.split("\n\n");
|
|
520
|
-
var history_1 = [];
|
|
521
|
-
for (var _i = 0, blocks_1 = blocks; _i < blocks_1.length; _i++) {
|
|
522
|
-
var block = blocks_1[_i];
|
|
523
|
-
if (!block.trim()) {
|
|
524
|
-
continue;
|
|
525
|
-
}
|
|
526
|
-
var lines = block.split("\n").filter(Boolean);
|
|
527
|
-
var _a = lines[0].split("|"), commit = _a[0], author = _a[1], timestamp = _a[2];
|
|
528
|
-
var entities = lines
|
|
529
|
-
.slice(1)
|
|
530
|
-
.map(function (line) { return getEntityInfoFromRelativePath(rootDirectoryPath, projectConfig, line); })
|
|
531
|
-
.filter(Boolean);
|
|
532
|
-
var filteredEntities = entities.filter(function (entity) { return entity.type !== "test"; });
|
|
533
|
-
if (filteredEntities.length > 0) {
|
|
534
|
-
history_1.push({ commit: commit, author: author, timestamp: timestamp, entities: filteredEntities });
|
|
642
|
+
function getGitHistoryIndex(rootDirectoryPath, projectConfig) {
|
|
643
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
644
|
+
var _a, _error_1;
|
|
645
|
+
return __generator(this, function (_b) {
|
|
646
|
+
switch (_b.label) {
|
|
647
|
+
case 0:
|
|
648
|
+
_b.trys.push([0, 2, , 3]);
|
|
649
|
+
_a = buildCatalogHistoryIndex;
|
|
650
|
+
return [4 /*yield*/, streamCatalogGitHistory(rootDirectoryPath, projectConfig)];
|
|
651
|
+
case 1: return [2 /*return*/, _a.apply(void 0, [_b.sent()])];
|
|
652
|
+
case 2:
|
|
653
|
+
_error_1 = _b.sent();
|
|
654
|
+
return [2 /*return*/, createEmptyHistoryIndex()];
|
|
655
|
+
case 3: return [2 /*return*/];
|
|
535
656
|
}
|
|
536
|
-
}
|
|
537
|
-
|
|
538
|
-
}
|
|
539
|
-
catch (_error) {
|
|
540
|
-
return [];
|
|
541
|
-
}
|
|
657
|
+
});
|
|
658
|
+
});
|
|
542
659
|
}
|
|
543
660
|
function getCurrentBranch(rootDirectoryPath) {
|
|
544
661
|
try {
|
|
@@ -646,17 +763,8 @@ function writeHistoryPages(directoryPath, history) {
|
|
|
646
763
|
});
|
|
647
764
|
});
|
|
648
765
|
}
|
|
649
|
-
function
|
|
650
|
-
return
|
|
651
|
-
return entry.entities.some(function (entity) {
|
|
652
|
-
return entity.type === type &&
|
|
653
|
-
entity.key === key &&
|
|
654
|
-
(typeof set === "undefined" || entity.set === set);
|
|
655
|
-
});
|
|
656
|
-
});
|
|
657
|
-
}
|
|
658
|
-
function filterHistoryForSet(history, set) {
|
|
659
|
-
return history.filter(function (entry) { return entry.entities.some(function (entity) { return entity.set === set; }); });
|
|
766
|
+
function getHistoryForEntity(historyIndex, type, key, set) {
|
|
767
|
+
return historyIndex.byEntity[getHistoryEntityKey(type, key, set)] || [];
|
|
660
768
|
}
|
|
661
769
|
function getSourceFileInfo(repositoryRootDirectoryPath, rootDirectoryPath, projectConfig, type, key) {
|
|
662
770
|
var directoryByType = {
|
|
@@ -825,7 +933,7 @@ function buildSetCatalog(context, set, projectConfig, datasource, outputRelative
|
|
|
825
933
|
}
|
|
826
934
|
}
|
|
827
935
|
}
|
|
828
|
-
history = set ?
|
|
936
|
+
history = set ? context.historyIndex.bySet[set] || [] : context.historyIndex.entries;
|
|
829
937
|
localeDirections = getLocaleDirections(locales);
|
|
830
938
|
duplicateResult = context.duplicateResultsBySet[getDuplicateSetKey(set)] || {
|
|
831
939
|
set: set || null,
|
|
@@ -900,9 +1008,9 @@ function buildSetCatalog(context, set, projectConfig, datasource, outputRelative
|
|
|
900
1008
|
targetKey,
|
|
901
1009
|
context.runtime.resolveFormats(localeKey, locales, targets[targetKey]),
|
|
902
1010
|
]; })),
|
|
903
|
-
lastModified: getLastModified(context.
|
|
1011
|
+
lastModified: getLastModified(context.historyIndex, "locale", localeKey, set || undefined),
|
|
904
1012
|
};
|
|
905
|
-
index.entities.locale.push(getEntitySummary(locale, "locale", localeKey, context.
|
|
1013
|
+
index.entities.locale.push(getEntitySummary(locale, "locale", localeKey, context.historyIndex, set || undefined, {
|
|
906
1014
|
targets: sortStrings(Array.from(localeTargets[localeKey] || [])),
|
|
907
1015
|
}));
|
|
908
1016
|
return [4 /*yield*/, writeJson(path.join(outputDirectoryPath, "entities", "locale", "".concat(encodeKey(localeKey), ".json")), detail)];
|
|
@@ -911,7 +1019,7 @@ function buildSetCatalog(context, set, projectConfig, datasource, outputRelative
|
|
|
911
1019
|
return [4 /*yield*/, writeJson(path.join(outputDirectoryPath, "duplicates", "locales", "".concat(encodeKey(localeKey), ".json")), toLocaleDuplicatesFile(localeKey, duplicatesByLocale))];
|
|
912
1020
|
case 2:
|
|
913
1021
|
_16.sent();
|
|
914
|
-
return [4 /*yield*/, writeHistoryPages(path.join(outputDirectoryPath, "history", "locale", encodeKey(localeKey)),
|
|
1022
|
+
return [4 /*yield*/, writeHistoryPages(path.join(outputDirectoryPath, "history", "locale", encodeKey(localeKey)), getHistoryForEntity(context.historyIndex, "locale", localeKey, set || undefined))];
|
|
915
1023
|
case 3:
|
|
916
1024
|
_16.sent();
|
|
917
1025
|
return [2 /*return*/];
|
|
@@ -965,7 +1073,7 @@ function buildSetCatalog(context, set, projectConfig, datasource, outputRelative
|
|
|
965
1073
|
return resolveTranslationRow(override.translations, localeKey, locales);
|
|
966
1074
|
}),
|
|
967
1075
|
}); }),
|
|
968
|
-
lastModified: getLastModified(context.
|
|
1076
|
+
lastModified: getLastModified(context.historyIndex, "message", messageKey, set || undefined),
|
|
969
1077
|
};
|
|
970
1078
|
directLocales = localeKeys.filter(function (lk) { return message.translations && typeof message.translations[lk] === "string"; });
|
|
971
1079
|
overrideLocalesSet = new Set();
|
|
@@ -992,11 +1100,11 @@ function buildSetCatalog(context, set, projectConfig, datasource, outputRelative
|
|
|
992
1100
|
}
|
|
993
1101
|
}
|
|
994
1102
|
}
|
|
995
|
-
index.entities.message.push(getEntitySummary(message, "message", messageKey, context.
|
|
1103
|
+
index.entities.message.push(getEntitySummary(message, "message", messageKey, context.historyIndex, set || undefined, __assign(__assign({ targets: sortStrings(messageTargets[messageKey] || []) }, (directLocales.length > 0 ? { locales: sortStrings(directLocales) } : {})), (overrideLocalesList.length > 0 ? { overrideLocales: overrideLocalesList } : {}))));
|
|
996
1104
|
return [4 /*yield*/, writeJson(path.join(outputDirectoryPath, "entities", "message", "".concat(encodeKey(messageKey), ".json")), detail)];
|
|
997
1105
|
case 1:
|
|
998
1106
|
_22.sent();
|
|
999
|
-
return [4 /*yield*/, writeHistoryPages(path.join(outputDirectoryPath, "history", "message", encodeKey(messageKey)),
|
|
1107
|
+
return [4 /*yield*/, writeHistoryPages(path.join(outputDirectoryPath, "history", "message", encodeKey(messageKey)), getHistoryForEntity(context.historyIndex, "message", messageKey, set || undefined))];
|
|
1000
1108
|
case 2:
|
|
1001
1109
|
_22.sent();
|
|
1002
1110
|
return [2 /*return*/];
|
|
@@ -1051,15 +1159,15 @@ function buildSetCatalog(context, set, projectConfig, datasource, outputRelative
|
|
|
1051
1159
|
segments: sortStrings(Array.from(attributesUsedInSegments[attributeKey] || [])),
|
|
1052
1160
|
messages: sortStrings(Array.from(attributesUsedInMessages[attributeKey] || [])),
|
|
1053
1161
|
},
|
|
1054
|
-
lastModified: getLastModified(context.
|
|
1162
|
+
lastModified: getLastModified(context.historyIndex, "attribute", attributeKey, set || undefined),
|
|
1055
1163
|
};
|
|
1056
|
-
index.entities.attribute.push(getEntitySummary(attribute, "attribute", attributeKey, context.
|
|
1164
|
+
index.entities.attribute.push(getEntitySummary(attribute, "attribute", attributeKey, context.historyIndex, set || undefined, {
|
|
1057
1165
|
targets: sortStrings(Array.from(attributeTargets[attributeKey] || [])),
|
|
1058
1166
|
}));
|
|
1059
1167
|
return [4 /*yield*/, writeJson(path.join(outputDirectoryPath, "entities", "attribute", "".concat(encodeKey(attributeKey), ".json")), detail)];
|
|
1060
1168
|
case 19:
|
|
1061
1169
|
_15.sent();
|
|
1062
|
-
return [4 /*yield*/, writeHistoryPages(path.join(outputDirectoryPath, "history", "attribute", encodeKey(attributeKey)),
|
|
1170
|
+
return [4 /*yield*/, writeHistoryPages(path.join(outputDirectoryPath, "history", "attribute", encodeKey(attributeKey)), getHistoryForEntity(context.historyIndex, "attribute", attributeKey, set || undefined))];
|
|
1063
1171
|
case 20:
|
|
1064
1172
|
_15.sent();
|
|
1065
1173
|
_15.label = 21;
|
|
@@ -1086,15 +1194,15 @@ function buildSetCatalog(context, set, projectConfig, datasource, outputRelative
|
|
|
1086
1194
|
attributes: sortStrings(Array.from(usedAttributes)),
|
|
1087
1195
|
messages: sortStrings(Array.from(segmentsUsedInMessages[segmentKey] || [])),
|
|
1088
1196
|
},
|
|
1089
|
-
lastModified: getLastModified(context.
|
|
1197
|
+
lastModified: getLastModified(context.historyIndex, "segment", segmentKey, set || undefined),
|
|
1090
1198
|
};
|
|
1091
|
-
index.entities.segment.push(getEntitySummary(segment, "segment", segmentKey, context.
|
|
1199
|
+
index.entities.segment.push(getEntitySummary(segment, "segment", segmentKey, context.historyIndex, set || undefined, {
|
|
1092
1200
|
targets: sortStrings(Array.from(segmentTargets[segmentKey] || [])),
|
|
1093
1201
|
}));
|
|
1094
1202
|
return [4 /*yield*/, writeJson(path.join(outputDirectoryPath, "entities", "segment", "".concat(encodeKey(segmentKey), ".json")), detail)];
|
|
1095
1203
|
case 24:
|
|
1096
1204
|
_15.sent();
|
|
1097
|
-
return [4 /*yield*/, writeHistoryPages(path.join(outputDirectoryPath, "history", "segment", encodeKey(segmentKey)),
|
|
1205
|
+
return [4 /*yield*/, writeHistoryPages(path.join(outputDirectoryPath, "history", "segment", encodeKey(segmentKey)), getHistoryForEntity(context.historyIndex, "segment", segmentKey, set || undefined))];
|
|
1098
1206
|
case 25:
|
|
1099
1207
|
_15.sent();
|
|
1100
1208
|
_15.label = 26;
|
|
@@ -1127,15 +1235,15 @@ function buildSetCatalog(context, set, projectConfig, datasource, outputRelative
|
|
|
1127
1235
|
formatsByLocale: formatsByLocale,
|
|
1128
1236
|
formatRowsByLocale: formatRowsByLocale,
|
|
1129
1237
|
messages: targetMessages[targetKey],
|
|
1130
|
-
lastModified: getLastModified(context.
|
|
1238
|
+
lastModified: getLastModified(context.historyIndex, "target", targetKey, set || undefined),
|
|
1131
1239
|
};
|
|
1132
|
-
index.entities.target.push(getEntitySummary(target, "target", targetKey, context.
|
|
1240
|
+
index.entities.target.push(getEntitySummary(target, "target", targetKey, context.historyIndex, set || undefined, {
|
|
1133
1241
|
messageCount: targetMessages[targetKey].length,
|
|
1134
1242
|
}));
|
|
1135
1243
|
return [4 /*yield*/, writeJson(path.join(outputDirectoryPath, "entities", "target", "".concat(encodeKey(targetKey), ".json")), detail)];
|
|
1136
1244
|
case 29:
|
|
1137
1245
|
_15.sent();
|
|
1138
|
-
return [4 /*yield*/, writeHistoryPages(path.join(outputDirectoryPath, "history", "target", encodeKey(targetKey)),
|
|
1246
|
+
return [4 /*yield*/, writeHistoryPages(path.join(outputDirectoryPath, "history", "target", encodeKey(targetKey)), getHistoryForEntity(context.historyIndex, "target", targetKey, set || undefined))];
|
|
1139
1247
|
case 30:
|
|
1140
1248
|
_15.sent();
|
|
1141
1249
|
_15.label = 31;
|
|
@@ -1181,7 +1289,7 @@ function copyCatalogAssets(outputDirectoryPath) {
|
|
|
1181
1289
|
}
|
|
1182
1290
|
function exportCatalog(runtime_1, rootDirectoryPath_1, projectConfig_1, datasource_1) {
|
|
1183
1291
|
return __awaiter(this, arguments, void 0, function (runtime, rootDirectoryPath, projectConfig, datasource, options) {
|
|
1184
|
-
var outputDirectoryPath, dataDirectoryPath, devEditors,
|
|
1292
|
+
var outputDirectoryPath, dataDirectoryPath, devEditors, historyIndex, duplicateTranslations, duplicateResultsBySet, context, executions, setIndexes, _i, executions_1, execution, outputRelativeDirectory, _a, _b, manifest;
|
|
1185
1293
|
if (options === void 0) { options = {}; }
|
|
1186
1294
|
return __generator(this, function (_c) {
|
|
1187
1295
|
switch (_c.label) {
|
|
@@ -1203,9 +1311,11 @@ function exportCatalog(runtime_1, rootDirectoryPath_1, projectConfig_1, datasour
|
|
|
1203
1311
|
_c.label = 4;
|
|
1204
1312
|
case 4:
|
|
1205
1313
|
devEditors = options.dev ? options.devEditors || detectDevEditors() : [];
|
|
1206
|
-
|
|
1207
|
-
return [4 /*yield*/, runtime.findDuplicateTranslations(projectConfig, datasource)];
|
|
1314
|
+
return [4 /*yield*/, getGitHistoryIndex(rootDirectoryPath, projectConfig)];
|
|
1208
1315
|
case 5:
|
|
1316
|
+
historyIndex = _c.sent();
|
|
1317
|
+
return [4 /*yield*/, runtime.findDuplicateTranslations(projectConfig, datasource)];
|
|
1318
|
+
case 6:
|
|
1209
1319
|
duplicateTranslations = _c.sent();
|
|
1210
1320
|
duplicateResultsBySet = Object.fromEntries(duplicateTranslations.results.map(function (result) { return [getDuplicateSetKey(result.set), result]; }));
|
|
1211
1321
|
context = {
|
|
@@ -1213,34 +1323,34 @@ function exportCatalog(runtime_1, rootDirectoryPath_1, projectConfig_1, datasour
|
|
|
1213
1323
|
repositoryRootDirectoryPath: getRepositoryRootDirectoryPath(rootDirectoryPath),
|
|
1214
1324
|
outputDirectoryPath: outputDirectoryPath,
|
|
1215
1325
|
dataDirectoryPath: dataDirectoryPath,
|
|
1216
|
-
|
|
1326
|
+
historyIndex: historyIndex,
|
|
1217
1327
|
runtime: runtime,
|
|
1218
1328
|
devEditors: devEditors,
|
|
1219
1329
|
duplicateResultsBySet: duplicateResultsBySet,
|
|
1220
1330
|
};
|
|
1221
1331
|
return [4 /*yield*/, runtime.getProjectSetExecutions(projectConfig, datasource)];
|
|
1222
|
-
case
|
|
1332
|
+
case 7:
|
|
1223
1333
|
executions = _c.sent();
|
|
1224
1334
|
setIndexes = {};
|
|
1225
|
-
return [4 /*yield*/, writeHistoryPages(path.join(dataDirectoryPath, "project", "history"),
|
|
1226
|
-
case
|
|
1335
|
+
return [4 /*yield*/, writeHistoryPages(path.join(dataDirectoryPath, "project", "history"), historyIndex.entries)];
|
|
1336
|
+
case 8:
|
|
1227
1337
|
_c.sent();
|
|
1228
1338
|
_i = 0, executions_1 = executions;
|
|
1229
|
-
_c.label =
|
|
1230
|
-
case
|
|
1231
|
-
if (!(_i < executions_1.length)) return [3 /*break*/,
|
|
1339
|
+
_c.label = 9;
|
|
1340
|
+
case 9:
|
|
1341
|
+
if (!(_i < executions_1.length)) return [3 /*break*/, 12];
|
|
1232
1342
|
execution = executions_1[_i];
|
|
1233
1343
|
outputRelativeDirectory = projectConfig.sets ? path.join("sets", execution.set) : "root";
|
|
1234
1344
|
_a = setIndexes;
|
|
1235
1345
|
_b = execution.set || "root";
|
|
1236
1346
|
return [4 /*yield*/, buildSetCatalog(context, execution.set, execution.projectConfig, execution.datasource, outputRelativeDirectory)];
|
|
1237
|
-
case 9:
|
|
1238
|
-
_a[_b] = _c.sent();
|
|
1239
|
-
_c.label = 10;
|
|
1240
1347
|
case 10:
|
|
1241
|
-
|
|
1242
|
-
|
|
1348
|
+
_a[_b] = _c.sent();
|
|
1349
|
+
_c.label = 11;
|
|
1243
1350
|
case 11:
|
|
1351
|
+
_i++;
|
|
1352
|
+
return [3 /*break*/, 9];
|
|
1353
|
+
case 12:
|
|
1244
1354
|
manifest = {
|
|
1245
1355
|
schemaVersion: exports.CATALOG_SCHEMA_VERSION,
|
|
1246
1356
|
generatedAt: new Date().toISOString(),
|
|
@@ -1262,7 +1372,7 @@ function exportCatalog(runtime_1, rootDirectoryPath_1, projectConfig_1, datasour
|
|
|
1262
1372
|
counts: Object.fromEntries(Object.keys(setIndexes).map(function (key) { return [key, setIndexes[key].counts]; })),
|
|
1263
1373
|
};
|
|
1264
1374
|
return [4 /*yield*/, writeJson(path.join(dataDirectoryPath, "manifest.json"), manifest)];
|
|
1265
|
-
case
|
|
1375
|
+
case 13:
|
|
1266
1376
|
_c.sent();
|
|
1267
1377
|
console.log("Catalog exported to ".concat(outputDirectoryPath));
|
|
1268
1378
|
return [2 /*return*/, {
|
|
@@ -1333,8 +1443,8 @@ function createProjectWatcher(rootDirectoryPath, ignoredDirectoryPaths, onChange
|
|
|
1333
1443
|
catch (_a) {
|
|
1334
1444
|
return;
|
|
1335
1445
|
}
|
|
1336
|
-
for (var _i = 0,
|
|
1337
|
-
var entry =
|
|
1446
|
+
for (var _i = 0, entries_2 = entries; _i < entries_2.length; _i++) {
|
|
1447
|
+
var entry = entries_2[_i];
|
|
1338
1448
|
var entryPath = path.join(directoryPath, entry.name);
|
|
1339
1449
|
if (shouldIgnore(entryPath)) {
|
|
1340
1450
|
continue;
|