dev-dict 0.9.1 → 0.10.1

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.
Files changed (57) hide show
  1. package/dist/__tests__/tags.test.d.ts +2 -0
  2. package/dist/__tests__/tags.test.d.ts.map +1 -0
  3. package/dist/__tests__/terms.test.d.ts +2 -0
  4. package/dist/__tests__/terms.test.d.ts.map +1 -0
  5. package/dist/__tests__/types.test.d.ts +2 -0
  6. package/dist/__tests__/types.test.d.ts.map +1 -0
  7. package/dist/data/tags/backend.d.ts +1 -1
  8. package/dist/data/tags/frontend.d.ts +1 -1
  9. package/dist/data/tags/index.d.ts +76 -12
  10. package/dist/data/tags/index.d.ts.map +1 -1
  11. package/dist/data/tags/javascript.d.ts +1 -1
  12. package/dist/data/tags/kanban.d.ts +10 -0
  13. package/dist/data/tags/kanban.d.ts.map +1 -0
  14. package/dist/data/tags/open_source.d.ts +1 -1
  15. package/dist/data/tags/project_management.d.ts +10 -0
  16. package/dist/data/tags/project_management.d.ts.map +1 -0
  17. package/dist/data/tags/qa.d.ts +1 -1
  18. package/dist/data/tags/scrum.d.ts +10 -0
  19. package/dist/data/tags/scrum.d.ts.map +1 -0
  20. package/dist/data/tags/software_development.d.ts +10 -0
  21. package/dist/data/tags/software_development.d.ts.map +1 -0
  22. package/dist/data/tags/testing.d.ts +1 -1
  23. package/dist/data/terms/agile.d.ts +67 -4
  24. package/dist/data/terms/agile.d.ts.map +1 -1
  25. package/dist/data/terms/e2e.d.ts +2 -2
  26. package/dist/data/terms/index.d.ts +162 -36
  27. package/dist/data/terms/index.d.ts.map +1 -1
  28. package/dist/data/terms/javascript.d.ts +3 -3
  29. package/dist/data/terms/node_js.d.ts +1 -1
  30. package/dist/data/terms/react.d.ts +4 -4
  31. package/dist/data/terms/typescript.d.ts +4 -4
  32. package/dist/dev-dict.min.js +1 -1
  33. package/dist/dev-dict.min.js.map +1 -1
  34. package/dist/helpers-i56sLJez.js +87 -0
  35. package/dist/helpers-i56sLJez.js.map +1 -0
  36. package/dist/index.d.ts +1 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +18 -17
  39. package/dist/index.js.map +1 -1
  40. package/dist/tags-entry.d.ts +4 -0
  41. package/dist/tags-entry.d.ts.map +1 -1
  42. package/dist/tags-entry.js +52 -20
  43. package/dist/tags-entry.js.map +1 -1
  44. package/dist/{terms-entry-BsDjmqhr.js → terms-entry-CvCnHqL5.js} +489 -472
  45. package/dist/terms-entry-CvCnHqL5.js.map +1 -0
  46. package/dist/terms-entry.d.ts +2 -2
  47. package/dist/terms-entry.d.ts.map +1 -1
  48. package/dist/terms-entry.js +2 -2
  49. package/dist/types/index.d.ts +15 -11
  50. package/dist/types/index.d.ts.map +1 -1
  51. package/dist/umd.d.ts.map +1 -1
  52. package/dist/utils/helpers.d.ts.map +1 -1
  53. package/dist/utils-entry.js +2 -2
  54. package/package.json +8 -4
  55. package/dist/helpers-D13_Q8CF.js +0 -80
  56. package/dist/helpers-D13_Q8CF.js.map +0 -1
  57. package/dist/terms-entry-BsDjmqhr.js.map +0 -1
@@ -4,17 +4,15 @@ import { SOURCES } from '../data/sources';
4
4
  import { TAGS } from '../data/tags';
5
5
  import { TERMS } from '../data/terms';
6
6
  import { TYPES } from '../data/types';
7
+ type AtLeastOne<T> = {
8
+ [K in keyof T]: Pick<T, K> & Partial<T>;
9
+ }[keyof T];
7
10
  export type TLocale = (typeof LOCALES)[keyof typeof LOCALES];
8
11
  export type TLocaleRecord = {
9
12
  [CONFIG.DEFAULT_LOCALE]: string;
10
13
  } & Partial<Record<Exclude<TLocale, typeof CONFIG.DEFAULT_LOCALE>, string>>;
11
14
  export type TLinkType = 'website' | 'github' | 'npm' | 'wikipedia';
12
- export type TTermLinks = {
13
- /**
14
- * Link to the official website.
15
- */
16
- website: string;
17
- } & Partial<Record<Exclude<TLinkType, 'website'>, string>>;
15
+ export type TTermLinks = AtLeastOne<Record<TLinkType, string>>;
18
16
  export type TTermType = {
19
17
  id: string;
20
18
  name: TLocaleRecord;
@@ -42,10 +40,14 @@ export type TTermSourceLocalized = {
42
40
  name: string;
43
41
  };
44
42
  export type TTermSources = (typeof SOURCES)[keyof typeof SOURCES];
45
- export type TSourceMetadata = {
46
- label?: TTermSources[];
47
- definition?: TTermSources[];
48
- };
43
+ export type TSourceMetadata = AtLeastOne<{
44
+ label: TTermSources[];
45
+ definition: TTermSources[];
46
+ }>;
47
+ export type TSourceMetadataLocalized = AtLeastOne<{
48
+ label: TTermSourceLocalized[];
49
+ definition: TTermSourceLocalized[];
50
+ }>;
49
51
  export type TTerm = {
50
52
  /**
51
53
  * Unique identifier for the term.
@@ -104,13 +106,14 @@ export type TTerm = {
104
106
  */
105
107
  sources?: TSourceMetadata;
106
108
  };
107
- export type TTermLocalized = Omit<TTerm, 'name' | 'altName' | 'label' | 'definition' | 'type' | 'tags'> & {
109
+ export type TTermLocalized = Omit<TTerm, 'name' | 'altName' | 'label' | 'definition' | 'type' | 'tags' | 'sources'> & {
108
110
  name: string;
109
111
  altName?: string;
110
112
  label: string;
111
113
  definition: string;
112
114
  type: TTermTypeLocalized[];
113
115
  tags: TTermTagLocalized[];
116
+ sources?: TSourceMetadataLocalized;
114
117
  };
115
118
  export type TTerms = (typeof TERMS)[keyof typeof TERMS];
116
119
  export type TTermId = keyof typeof TERMS;
@@ -126,4 +129,5 @@ export type TTermTagsDictLocalized = Record<TTermTagId, TTermTagLocalized>;
126
129
  export type TTermSourceId = TTermSource['id'];
127
130
  export type TTermSourcesDict = Record<TTermSourceId, TTermSource>;
128
131
  export type TTermSourcesDictLocalized = Record<TTermSourceId, TTermSourceLocalized>;
132
+ export {};
129
133
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
package/dist/umd.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"umd.d.ts","sourceRoot":"","sources":["../src/umd.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,cAAc,CAAA;AAE7C,mBAAmB,SAAS,CAAA;AAE5B,eAAO,MAAM,KAAK;;;cAe+9C,CAAC;qBAAyB,CAAC;;;;cAAt8B,CAAC;qBAAyB,CAAC;;;;cAF9kB,CAAC;qBAEE,CAAC;;;;cAAmkF,CAAC;qBAAyB,CAAC;;;;cAAz+B,CAAC;qBAAyB,CAAC;;;;cAAhzB,CAAC;qBAAyB,CAAC;;;;cAAm5C,CAAC;qBAAyB,CAAC;;;;cAAkY,CAAC;qBAAyB,CAAC;;;;cAA7xB,CAAC;qBAAyB,CAAC;;;;;qBALj9D,CAAC;;;;qBAKoR,CAAC;;;;;qBAAma,CAAC;;;;cAAuiB,CAAC;qBAAyB,CAAC;;CADrwC,CAAA"}
1
+ {"version":3,"file":"umd.d.ts","sourceRoot":"","sources":["../src/umd.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,cAAc,CAAA;AAE7C,mBAAmB,SAAS,CAAA;AAE5B,eAAO,MAAM,KAAK;;;cAe+9C,CAAC;qBAAyB,CAAC;;;;cAAt8B,CAAC;qBAAyB,CAAC;;;;cAF9kB,CAAC;qBAEE,CAAC;;;;cAAs7F,CAAC;qBAAyB,CAAC;;;;cAA51C,CAAC;qBAAyB,CAAC;;;;cAAhzB,CAAC;qBAAyB,CAAC;;;;cAAswD,CAAC;qBAAyB,CAAC;;;;cAAe,CAAC;qBAAyB,CAAC;;;;cAA7xB,CAAC;qBAAyB,CAAC;;;;;qBALj9D,CAAC;;;;qBAKoR,CAAC;;;;;qBAAma,CAAC;;;;cAAuiB,CAAC;qBAAyB,CAAC;;CADrwC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,KAAK,EACL,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EACnB,MAAM,SAAS,CAAA;AAIhB;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,gCAI9B;IACD,GAAG,EAAE,aAAa,CAAA;IAClB,KAAK,EAAE,SAAS,GAAG,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,KAAG,MAKH,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,yBAGrC;IACD,GAAG,EAAE,aAAa,CAAA;IAClB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,KAAG,aAMH,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,+BAI9D;IACD,GAAG,EAAE,CAAC,CAAA;IACN,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,KAAG,CAUH,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,iCAI/B;IACD,GAAG,EAAE,aAAa,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,KAAG,MAEH,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,kCAIrB;IACD,IAAI,EAAE,KAAK,CAAA;IACX,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,KAAG,cAcH,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,iCAIpB;IACD,GAAG,EAAE,QAAQ,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,KAAG,iBAKH,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,kCAIrB;IACD,IAAI,EAAE,SAAS,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,KAAG,kBAKH,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,oCAIvB;IACD,MAAM,EAAE,WAAW,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,KAAG,oBAKH,CAAA"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,KAAK,EACL,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EACnB,MAAM,SAAS,CAAA;AAIhB;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,gCAI9B;IACD,GAAG,EAAE,aAAa,CAAA;IAClB,KAAK,EAAE,SAAS,GAAG,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,KAAG,MAKH,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,yBAGrC;IACD,GAAG,EAAE,aAAa,CAAA;IAClB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,KAAG,aAMH,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,+BAI9D;IACD,GAAG,EAAE,CAAC,CAAA;IACN,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,KAAG,CAUH,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,iCAI/B;IACD,GAAG,EAAE,aAAa,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,KAAG,MAEH,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,kCAIrB;IACD,IAAI,EAAE,KAAK,CAAA;IACX,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,KAAG,cAuBH,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,iCAIpB;IACD,GAAG,EAAE,QAAQ,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,KAAG,iBAKH,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,kCAIrB;IACD,IAAI,EAAE,SAAS,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,KAAG,kBAKH,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,oCAIvB;IACD,MAAM,EAAE,WAAW,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,KAAG,oBAKH,CAAA"}
@@ -1,5 +1,5 @@
1
- import { C as c, i, M as a, g as L, a as O, b as A, c as P } from "./helpers-D13_Q8CF.js";
2
- import { f as Y, e as C, d as I } from "./helpers-D13_Q8CF.js";
1
+ import { C as c, i, M as a, g as L, a as O, b as A, c as P } from "./helpers-i56sLJez.js";
2
+ import { f as Y, e as C, d as I } from "./helpers-i56sLJez.js";
3
3
  const l = ({
4
4
  terms: r,
5
5
  locale: T = c.DEFAULT_LOCALE,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dev-dict",
3
- "version": "0.9.1",
3
+ "version": "0.10.1",
4
4
  "description": "A community-driven collection of software development terms with explanations in multiple languages. Perfect for building multilingual developer tools, documentation sites, and educational platforms.",
5
5
  "author": "Cornelius Weidmann <cornelius@kyco.io> (https://kyco.io)",
6
6
  "license": "MIT",
@@ -74,10 +74,12 @@
74
74
  "scripts": {
75
75
  "build": "vite build && BUILD_UMD=true vite build",
76
76
  "build:watch": "vite build --watch",
77
- "demo:dev": "pnpm build && (pnpm build:watch & cd demo && pnpm dev)",
77
+ "demo:dev": "pnpm build:watch & cd demo && pnpm dev",
78
78
  "demo:build": "pnpm build && cd demo && pnpm build",
79
79
  "demo:preview": "cd demo && pnpm preview",
80
- "test": "echo \"This project does not have any tests which can be run yet...\"",
80
+ "test": "vitest run",
81
+ "test:watch": "vitest",
82
+ "test:ui": "vitest --ui",
81
83
  "bundle-analyzer": "npx vite-bundle-visualizer",
82
84
  "update-packages": "pnpm dlx npm-check-updates -u"
83
85
  },
@@ -91,6 +93,7 @@
91
93
  "@semantic-release/github": "^12.0.2",
92
94
  "@semantic-release/npm": "^13.1.3",
93
95
  "@types/node": "^25.0.8",
96
+ "@vitest/ui": "^4.0.17",
94
97
  "conventional-changelog-conventionalcommits": "^9.1.0",
95
98
  "eslint": "^9.39.2",
96
99
  "globals": "^17.0.0",
@@ -100,6 +103,7 @@
100
103
  "typescript": "^5.9.3",
101
104
  "typescript-eslint": "^8.53.0",
102
105
  "vite": "^7.3.1",
103
- "vite-plugin-dts": "^5.0.0-beta.6"
106
+ "vite-plugin-dts": "^5.0.0-beta.6",
107
+ "vitest": "^4.0.17"
104
108
  }
105
109
  }
@@ -1,80 +0,0 @@
1
- import { L } from "./index-DX_tPBsM.js";
2
- const _ = {
3
- TERM_INTERPOLATION_KEYS: ["name", "altName", "label", "definition"]
4
- }, s = {
5
- DEFAULT_LOCALE: L.EN_US,
6
- POPULATE_EMPTY: !0
7
- }, T = ({
8
- obj: n,
9
- value: e,
10
- populateEmpty: a = s.POPULATE_EMPTY
11
- }) => e && Object.values(L).includes(e) ? n[e] || (a ? n[L.EN_US] : "") : e || (a ? n[L.EN_US] : ""), o = ({
12
- obj: n,
13
- populateEmpty: e = s.POPULATE_EMPTY
14
- }) => {
15
- const a = Object.values(L);
16
- return Object.fromEntries(
17
- a.map((t) => [t, T({ obj: n, value: n[t], populateEmpty: e })])
18
- );
19
- }, U = ({
20
- obj: n,
21
- keys: e,
22
- populateEmpty: a = s.POPULATE_EMPTY
23
- }) => Object.fromEntries(
24
- Object.entries(n).map(([t, r]) => {
25
- const P = e.filter((i) => i in r && typeof r[i] == "object").map((i) => [i, o({ obj: r[i], populateEmpty: a })]);
26
- return [t, { ...r, ...Object.fromEntries(P) }];
27
- })
28
- ), E = ({
29
- obj: n,
30
- locale: e = s.DEFAULT_LOCALE,
31
- populateEmpty: a = s.POPULATE_EMPTY
32
- }) => T({ obj: n, value: n[e], populateEmpty: a }), d = ({
33
- term: n,
34
- locale: e = s.DEFAULT_LOCALE,
35
- populateEmpty: a = s.POPULATE_EMPTY
36
- }) => ({
37
- id: n.id,
38
- name: E({ obj: n.name, locale: e, populateEmpty: a }),
39
- ..."altName" in n && n.altName ? { altName: E({ obj: n.altName, locale: e, populateEmpty: a }) } : {},
40
- type: n.type.map((t) => A({ type: t, locale: e, populateEmpty: a })),
41
- label: E({ obj: n.label, locale: e, populateEmpty: a }),
42
- definition: E({ obj: n.definition, locale: e, populateEmpty: a }),
43
- tags: n.tags.map((t) => O({ tag: t, locale: e, populateEmpty: a })),
44
- links: n.links,
45
- sources: n.sources
46
- }), O = ({
47
- tag: n,
48
- locale: e = s.DEFAULT_LOCALE,
49
- populateEmpty: a = s.POPULATE_EMPTY
50
- }) => ({
51
- id: n.id,
52
- name: E({ obj: n.name, locale: e, populateEmpty: a })
53
- }), A = ({
54
- type: n,
55
- locale: e = s.DEFAULT_LOCALE,
56
- populateEmpty: a = s.POPULATE_EMPTY
57
- }) => ({
58
- id: n.id,
59
- name: E({ obj: n.name, locale: e, populateEmpty: a })
60
- }), b = ({
61
- source: n,
62
- locale: e = s.DEFAULT_LOCALE,
63
- populateEmpty: a = s.POPULATE_EMPTY
64
- }) => ({
65
- id: n.id,
66
- name: E({ obj: n.name, locale: e, populateEmpty: a })
67
- });
68
- export {
69
- s as C,
70
- _ as M,
71
- A as a,
72
- O as b,
73
- b as c,
74
- T as d,
75
- o as e,
76
- E as f,
77
- d as g,
78
- U as i
79
- };
80
- //# sourceMappingURL=helpers-D13_Q8CF.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers-D13_Q8CF.js","sources":["../src/common/index.ts","../src/utils/helpers.ts"],"sourcesContent":["import { LOCALES } from '@/data/locales'\n\nexport const MISC = {\n TERM_INTERPOLATION_KEYS: ['name', 'altName', 'label', 'definition'],\n}\n\nexport const CONFIG = {\n DEFAULT_LOCALE: LOCALES.EN_US,\n POPULATE_EMPTY: true,\n}\n","import type {\n TLocale,\n TLocaleRecord,\n TTerm,\n TTermLocalized,\n TTermSource,\n TTermSourceLocalized,\n TTermTag,\n TTermTagLocalized,\n TTermType,\n TTermTypeLocalized,\n} from '@/types'\nimport { CONFIG } from '@/common'\nimport { LOCALES } from '@/data/locales'\n\n/**\n * This method will convert e.g. `[LOCALES.EN_GB]: LOCALES.EN_US` to the actual value\n * of the specified locale, in this case the value of `LOCALES.EN_US`.\n */\nexport const interpolateValue = ({\n obj,\n value,\n populateEmpty = CONFIG.POPULATE_EMPTY,\n}: {\n obj: TLocaleRecord\n value: undefined | string\n populateEmpty?: boolean\n}): string => {\n if (value && Object.values<string>(LOCALES).includes(value)) {\n return obj[value as TLocale] || (populateEmpty ? obj[LOCALES.EN_US] : '')\n }\n return value || (populateEmpty ? obj[LOCALES.EN_US] : '')\n}\n\nexport const interpolateLocaleRecord = ({\n obj,\n populateEmpty = CONFIG.POPULATE_EMPTY,\n}: {\n obj: TLocaleRecord\n populateEmpty?: boolean\n}): TLocaleRecord => {\n const locales = Object.values<string>(LOCALES) as TLocale[]\n\n return Object.fromEntries(\n locales.map((locale) => [locale, interpolateValue({ obj, value: obj[locale], populateEmpty })]),\n ) as TLocaleRecord\n}\n\nexport const interpolateValues = <T extends Record<string, any>>({\n obj,\n keys,\n populateEmpty = CONFIG.POPULATE_EMPTY,\n}: {\n obj: T\n keys: string[]\n populateEmpty?: boolean\n}): T => {\n return Object.fromEntries(\n Object.entries(obj).map(([itemKey, item]) => {\n const interpolatedFields = keys\n .filter((key) => key in item && typeof item[key] === 'object')\n .map((key) => [key, interpolateLocaleRecord({ obj: item[key], populateEmpty })])\n\n return [itemKey, { ...item, ...Object.fromEntries(interpolatedFields) }]\n }),\n ) as T\n}\n\nexport const getValueLocalized = ({\n obj,\n locale = CONFIG.DEFAULT_LOCALE,\n populateEmpty = CONFIG.POPULATE_EMPTY,\n}: {\n obj: TLocaleRecord\n locale?: TLocale\n populateEmpty?: boolean\n}): string => {\n return interpolateValue({ obj, value: obj[locale], populateEmpty })\n}\n\nexport const getTerm = ({\n term,\n locale = CONFIG.DEFAULT_LOCALE,\n populateEmpty = CONFIG.POPULATE_EMPTY,\n}: {\n term: TTerm\n locale?: TLocale\n populateEmpty?: boolean\n}): TTermLocalized => {\n return {\n id: term.id,\n name: getValueLocalized({ obj: term.name, locale, populateEmpty }),\n ...('altName' in term && term.altName\n ? { altName: getValueLocalized({ obj: term.altName, locale, populateEmpty }) }\n : {}),\n type: term.type.map((value) => getType({ type: value, locale, populateEmpty })),\n label: getValueLocalized({ obj: term.label, locale, populateEmpty }),\n definition: getValueLocalized({ obj: term.definition, locale, populateEmpty }),\n tags: term.tags.map((value) => getTag({ tag: value, locale, populateEmpty })),\n links: term.links,\n sources: term.sources,\n }\n}\n\nexport const getTag = ({\n tag,\n locale = CONFIG.DEFAULT_LOCALE,\n populateEmpty = CONFIG.POPULATE_EMPTY,\n}: {\n tag: TTermTag\n locale?: TLocale\n populateEmpty?: boolean\n}): TTermTagLocalized => {\n return {\n id: tag.id,\n name: getValueLocalized({ obj: tag.name, locale, populateEmpty }),\n }\n}\n\nexport const getType = ({\n type,\n locale = CONFIG.DEFAULT_LOCALE,\n populateEmpty = CONFIG.POPULATE_EMPTY,\n}: {\n type: TTermType\n locale?: TLocale\n populateEmpty?: boolean\n}): TTermTypeLocalized => {\n return {\n id: type.id,\n name: getValueLocalized({ obj: type.name, locale, populateEmpty }),\n }\n}\n\nexport const getSource = ({\n source,\n locale = CONFIG.DEFAULT_LOCALE,\n populateEmpty = CONFIG.POPULATE_EMPTY,\n}: {\n source: TTermSource\n locale?: TLocale\n populateEmpty?: boolean\n}): TTermSourceLocalized => {\n return {\n id: source.id,\n name: getValueLocalized({ obj: source.name, locale, populateEmpty }),\n }\n}\n"],"names":["MISC","CONFIG","LOCALES","interpolateValue","obj","value","populateEmpty","interpolateLocaleRecord","locales","locale","interpolateValues","keys","itemKey","item","interpolatedFields","key","getValueLocalized","getTerm","term","getType","getTag","tag","type","getSource","source"],"mappings":"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"}