dev-dict 0.12.0 → 0.12.2

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 (40) hide show
  1. package/README.md +21 -0
  2. package/dist/data/terms/ai.d.ts +6 -2
  3. package/dist/data/terms/ai.d.ts.map +1 -1
  4. package/dist/data/terms/index.d.ts +12 -4
  5. package/dist/data/terms/index.d.ts.map +1 -1
  6. package/dist/dev-dict.min.js +1 -1
  7. package/dist/dev-dict.min.js.map +1 -1
  8. package/dist/helpers-Bjtmz5WU.js +104 -0
  9. package/dist/helpers-Bjtmz5WU.js.map +1 -0
  10. package/dist/index.d.ts +4 -4
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +140 -138
  13. package/dist/index.js.map +1 -1
  14. package/dist/{locales-CvHJXK8Z.js → locales-DykmuSoE.js} +1 -1
  15. package/dist/{locales-CvHJXK8Z.js.map → locales-DykmuSoE.js.map} +1 -1
  16. package/dist/{standard-C4r20BPR.js → standard-CH5Xu_9r.js} +2 -2
  17. package/dist/{standard-C4r20BPR.js.map → standard-CH5Xu_9r.js.map} +1 -1
  18. package/dist/tags-entry.js +1 -1
  19. package/dist/terms-entry.d.ts +1 -1
  20. package/dist/terms-entry.d.ts.map +1 -1
  21. package/dist/terms-entry.js +1 -1
  22. package/dist/types/index.d.ts +1 -1
  23. package/dist/types/index.d.ts.map +1 -1
  24. package/dist/types-entry.js +1 -1
  25. package/dist/{ui_library-Zgy-bmI_.js → ui_library-1iebKctM.js} +2 -2
  26. package/dist/{ui_library-Zgy-bmI_.js.map → ui_library-1iebKctM.js.map} +1 -1
  27. package/dist/umd.d.ts +1 -1
  28. package/dist/umd.d.ts.map +1 -1
  29. package/dist/utils/utils.d.ts +1 -1
  30. package/dist/utils/utils.d.ts.map +1 -1
  31. package/dist/utils-entry.d.ts +1 -1
  32. package/dist/utils-entry.d.ts.map +1 -1
  33. package/dist/utils-entry.js +91 -2
  34. package/dist/utils-entry.js.map +1 -0
  35. package/dist/{zod-Cv0BGuWS.js → zod-Di5qFIiT.js} +84 -75
  36. package/dist/zod-Di5qFIiT.js.map +1 -0
  37. package/package.json +13 -15
  38. package/dist/utils-CxyRIyjZ.js +0 -188
  39. package/dist/utils-CxyRIyjZ.js.map +0 -1
  40. package/dist/zod-Cv0BGuWS.js.map +0 -1
@@ -1,188 +0,0 @@
1
- import { t as e } from "./locales-CvHJXK8Z.js";
2
- //#region src/common/index.ts
3
- var t = { TERM_INTERPOLATION_KEYS: [
4
- "name",
5
- "altName",
6
- "label",
7
- "definition"
8
- ] }, n = {
9
- DEFAULT_LOCALE: e.EN_US,
10
- POPULATE_EMPTY: !0
11
- }, r = ({ obj: t, value: r, populateEmpty: i = n.POPULATE_EMPTY }) => r && Object.values(e).includes(r) ? t[r] || (i ? t[e.EN_US] : "") : r || (i ? t[e.EN_US] : ""), i = ({ obj: t, populateEmpty: i = n.POPULATE_EMPTY }) => {
12
- let a = Object.values(e);
13
- return Object.fromEntries(a.map((e) => [e, r({
14
- obj: t,
15
- value: t[e],
16
- populateEmpty: i
17
- })]));
18
- }, a = ({ obj: e, keys: t, populateEmpty: r = n.POPULATE_EMPTY }) => Object.fromEntries(Object.entries(e).map(([e, n]) => {
19
- let a = t.filter((e) => e in n && typeof n[e] == "object").map((e) => [e, i({
20
- obj: n[e],
21
- populateEmpty: r
22
- })]);
23
- return [e, {
24
- ...n,
25
- ...Object.fromEntries(a)
26
- }];
27
- })), o = ({ obj: e, locale: t = n.DEFAULT_LOCALE, populateEmpty: i = n.POPULATE_EMPTY }) => r({
28
- obj: e,
29
- value: e[t],
30
- populateEmpty: i
31
- }), s = ({ term: e, locale: t = n.DEFAULT_LOCALE, populateEmpty: r = n.POPULATE_EMPTY }) => {
32
- let i = e.sources ? {
33
- ...e.sources.label && { label: e.sources.label.map((e) => u({
34
- source: e,
35
- locale: t,
36
- populateEmpty: r
37
- })) },
38
- ...e.sources.definition && { definition: e.sources.definition.map((e) => u({
39
- source: e,
40
- locale: t,
41
- populateEmpty: r
42
- })) }
43
- } : void 0;
44
- return {
45
- id: e.id,
46
- name: o({
47
- obj: e.name,
48
- locale: t,
49
- populateEmpty: r
50
- }),
51
- ..."altName" in e && e.altName ? { altName: o({
52
- obj: e.altName,
53
- locale: t,
54
- populateEmpty: r
55
- }) } : {},
56
- type: e.type.map((e) => l({
57
- type: e,
58
- locale: t,
59
- populateEmpty: r
60
- })),
61
- label: o({
62
- obj: e.label,
63
- locale: t,
64
- populateEmpty: r
65
- }),
66
- definition: o({
67
- obj: e.definition,
68
- locale: t,
69
- populateEmpty: r
70
- }),
71
- tags: e.tags.map((e) => c({
72
- tag: e,
73
- locale: t,
74
- populateEmpty: r
75
- })),
76
- links: e.links,
77
- ...i && Object.keys(i).length > 0 ? { sources: i } : {}
78
- };
79
- }, c = ({ tag: e, locale: t = n.DEFAULT_LOCALE, populateEmpty: r = n.POPULATE_EMPTY }) => ({
80
- id: e.id,
81
- name: o({
82
- obj: e.name,
83
- locale: t,
84
- populateEmpty: r
85
- })
86
- }), l = ({ type: e, locale: t = n.DEFAULT_LOCALE, populateEmpty: r = n.POPULATE_EMPTY }) => ({
87
- id: e.id,
88
- name: o({
89
- obj: e.name,
90
- locale: t,
91
- populateEmpty: r
92
- })
93
- }), u = ({ source: e, locale: t = n.DEFAULT_LOCALE, populateEmpty: r = n.POPULATE_EMPTY }) => ({
94
- id: e.id,
95
- name: o({
96
- obj: e.name,
97
- locale: t,
98
- populateEmpty: r
99
- })
100
- }), d = ({ terms: e, locale: r = n.DEFAULT_LOCALE, populateEmpty: i = n.POPULATE_EMPTY }) => {
101
- let o = a({
102
- obj: e,
103
- keys: t.TERM_INTERPOLATION_KEYS,
104
- populateEmpty: i
105
- }), c = {};
106
- for (let [e, t] of Object.entries(o)) c[e] = s({
107
- term: t,
108
- locale: r,
109
- populateEmpty: i
110
- });
111
- return c;
112
- }, f = ({ terms: e, locale: t = n.DEFAULT_LOCALE, populateEmpty: r = n.POPULATE_EMPTY }) => Object.values(d({
113
- terms: e,
114
- locale: t,
115
- populateEmpty: r
116
- })), p = ({ terms: e, locale: r = n.DEFAULT_LOCALE, populateEmpty: i = n.POPULATE_EMPTY }) => {
117
- let o = a({
118
- obj: e,
119
- keys: t.TERM_INTERPOLATION_KEYS,
120
- populateEmpty: i
121
- }), s = {};
122
- Object.values(o).forEach((e) => {
123
- e.type.forEach((e) => {
124
- s[e.id] || (s[e.id] = e);
125
- });
126
- });
127
- let c = {};
128
- for (let [e, t] of Object.entries(s)) c[e] = l({
129
- type: t,
130
- locale: r,
131
- populateEmpty: i
132
- });
133
- return c;
134
- }, m = ({ terms: e, locale: t = n.DEFAULT_LOCALE, populateEmpty: r = n.POPULATE_EMPTY }) => Object.values(p({
135
- terms: e,
136
- locale: t,
137
- populateEmpty: r
138
- })), h = ({ terms: e, locale: r = n.DEFAULT_LOCALE, populateEmpty: i = n.POPULATE_EMPTY }) => {
139
- let o = a({
140
- obj: e,
141
- keys: t.TERM_INTERPOLATION_KEYS,
142
- populateEmpty: i
143
- }), s = {};
144
- Object.values(o).forEach((e) => {
145
- e.tags.forEach((e) => {
146
- s[e.id] || (s[e.id] = e);
147
- });
148
- });
149
- let l = {};
150
- for (let [e, t] of Object.entries(s)) l[e] = c({
151
- tag: t,
152
- locale: r,
153
- populateEmpty: i
154
- });
155
- return l;
156
- }, g = ({ terms: e, locale: t = n.DEFAULT_LOCALE, populateEmpty: r = n.POPULATE_EMPTY }) => Object.values(h({
157
- terms: e,
158
- locale: t,
159
- populateEmpty: r
160
- })), _ = ({ terms: e, locale: r = n.DEFAULT_LOCALE, populateEmpty: i = n.POPULATE_EMPTY }) => {
161
- let o = a({
162
- obj: e,
163
- keys: t.TERM_INTERPOLATION_KEYS,
164
- populateEmpty: i
165
- }), s = {};
166
- Object.values(o).forEach((e) => {
167
- e.sources?.label && e.sources.label.forEach((e) => {
168
- s[e.id] || (s[e.id] = e);
169
- }), e.sources?.definition && e.sources.definition.forEach((e) => {
170
- s[e.id] || (s[e.id] = e);
171
- });
172
- });
173
- let c = {};
174
- for (let [e, t] of Object.entries(s)) c[e] = u({
175
- source: t,
176
- locale: r,
177
- populateEmpty: i
178
- });
179
- return c;
180
- }, v = ({ terms: e, locale: t = n.DEFAULT_LOCALE, populateEmpty: r = n.POPULATE_EMPTY }) => Object.values(_({
181
- terms: e,
182
- locale: t,
183
- populateEmpty: r
184
- }));
185
- //#endregion
186
- export { t as _, f as a, p as c, s as d, l as f, a as g, r as h, h as i, u as l, i as m, _ as n, d as o, o as p, g as r, m as s, v as t, c as u };
187
-
188
- //# sourceMappingURL=utils-CxyRIyjZ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils-CxyRIyjZ.js","names":[],"sources":["../src/common/index.ts","../src/utils/helpers.ts","../src/utils/utils.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 const sourcesLocalized = term.sources\n ? {\n ...(term.sources.label && {\n label: term.sources.label.map((value) => getSource({ source: value, locale, populateEmpty })),\n }),\n ...(term.sources.definition && {\n definition: term.sources.definition.map((value) => getSource({ source: value, locale, populateEmpty })),\n }),\n }\n : undefined\n\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 ...(sourcesLocalized && Object.keys(sourcesLocalized).length > 0 ? { sources: sourcesLocalized } : {}),\n } as TTermLocalized\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","import type {\n TLocale,\n TTermLocalized,\n TTermsDict,\n TTermsDictPartial,\n TTermSourceId,\n TTermSourceLocalized,\n TTermSourcesDict,\n TTermSourcesDictLocalized,\n TTermTagId,\n TTermTagLocalized,\n TTermTagsDict,\n TTermTagsDictLocalized,\n TTermTypeId,\n TTermTypeLocalized,\n TTermTypesDict,\n TTermTypesDictLocalized,\n} from '@/types'\nimport { CONFIG, MISC } from '@/common'\n\nimport { getSource, getTag, getTerm, getType, interpolateValues } from './helpers'\n\nexport const getTermsDict = <T extends TTermsDict | TTermsDictPartial>({\n terms,\n locale = CONFIG.DEFAULT_LOCALE,\n populateEmpty = CONFIG.POPULATE_EMPTY,\n}: {\n terms: T\n locale?: TLocale\n populateEmpty?: boolean\n}): { [K in keyof T]: TTermLocalized } => {\n const interpolatedTerms = interpolateValues({ obj: terms, keys: MISC.TERM_INTERPOLATION_KEYS, populateEmpty })\n const localizedTerms = {} as { [K in keyof T]: TTermLocalized }\n\n for (const [key, term] of Object.entries(interpolatedTerms)) {\n localizedTerms[key as keyof T] = getTerm({ term, locale, populateEmpty })\n }\n\n return localizedTerms\n}\n\nexport const getTerms = ({\n terms,\n locale = CONFIG.DEFAULT_LOCALE,\n populateEmpty = CONFIG.POPULATE_EMPTY,\n}: {\n terms: TTermsDict | TTermsDictPartial\n locale?: TLocale\n populateEmpty?: boolean\n}): TTermLocalized[] => {\n return Object.values(getTermsDict({ terms, locale, populateEmpty }))\n}\n\nexport const getTypesDict = ({\n terms,\n locale = CONFIG.DEFAULT_LOCALE,\n populateEmpty = CONFIG.POPULATE_EMPTY,\n}: {\n terms: TTermsDict | TTermsDictPartial\n locale?: TLocale\n populateEmpty?: boolean\n}): TTermTypesDictLocalized => {\n const interpolatedTerms = interpolateValues({ obj: terms, keys: MISC.TERM_INTERPOLATION_KEYS, populateEmpty })\n const typesDict: TTermTypesDict = {}\n\n Object.values(interpolatedTerms).forEach((term) => {\n term.type.forEach((type) => {\n if (!typesDict[type.id]) {\n typesDict[type.id] = type\n }\n })\n })\n\n const localizedTypes: TTermTypesDictLocalized = {}\n\n for (const [key, type] of Object.entries(typesDict)) {\n localizedTypes[key as TTermTypeId] = getType({ type, locale, populateEmpty })\n }\n\n return localizedTypes\n}\n\nexport const getTypes = ({\n terms,\n locale = CONFIG.DEFAULT_LOCALE,\n populateEmpty = CONFIG.POPULATE_EMPTY,\n}: {\n terms: TTermsDict | TTermsDictPartial\n locale?: TLocale\n populateEmpty?: boolean\n}): TTermTypeLocalized[] => {\n return Object.values(getTypesDict({ terms, locale, populateEmpty }))\n}\n\nexport const getTagsDict = ({\n terms,\n locale = CONFIG.DEFAULT_LOCALE,\n populateEmpty = CONFIG.POPULATE_EMPTY,\n}: {\n terms: TTermsDict | TTermsDictPartial\n locale?: TLocale\n populateEmpty?: boolean\n}): TTermTagsDictLocalized => {\n const interpolatedTerms = interpolateValues({ obj: terms, keys: MISC.TERM_INTERPOLATION_KEYS, populateEmpty })\n const tagsDict: TTermTagsDict = {}\n\n Object.values(interpolatedTerms).forEach((term) => {\n term.tags.forEach((tag) => {\n if (!tagsDict[tag.id]) {\n tagsDict[tag.id] = tag\n }\n })\n })\n\n const localizedTags: TTermTagsDictLocalized = {}\n\n for (const [key, tag] of Object.entries(tagsDict)) {\n localizedTags[key as TTermTagId] = getTag({ tag, locale, populateEmpty })\n }\n\n return localizedTags\n}\n\nexport const getTags = ({\n terms,\n locale = CONFIG.DEFAULT_LOCALE,\n populateEmpty = CONFIG.POPULATE_EMPTY,\n}: {\n terms: TTermsDict | TTermsDictPartial\n locale?: TLocale\n populateEmpty?: boolean\n}): TTermTagLocalized[] => {\n return Object.values(getTagsDict({ terms, locale, populateEmpty }))\n}\n\nexport const getSourcesDict = ({\n terms,\n locale = CONFIG.DEFAULT_LOCALE,\n populateEmpty = CONFIG.POPULATE_EMPTY,\n}: {\n terms: TTermsDict | TTermsDictPartial\n locale?: TLocale\n populateEmpty?: boolean\n}): TTermSourcesDictLocalized => {\n const interpolatedTerms = interpolateValues({ obj: terms, keys: MISC.TERM_INTERPOLATION_KEYS, populateEmpty })\n const sourcesDict: TTermSourcesDict = {}\n\n Object.values(interpolatedTerms).forEach((term) => {\n if (term.sources?.label) {\n term.sources.label.forEach((source) => {\n if (!sourcesDict[source.id]) {\n sourcesDict[source.id] = source\n }\n })\n }\n if (term.sources?.definition) {\n term.sources.definition.forEach((source) => {\n if (!sourcesDict[source.id]) {\n sourcesDict[source.id] = source\n }\n })\n }\n })\n\n const localizedSources: TTermSourcesDictLocalized = {}\n\n for (const [key, source] of Object.entries(sourcesDict)) {\n localizedSources[key as TTermSourceId] = getSource({ source, locale, populateEmpty })\n }\n\n return localizedSources\n}\n\nexport const getSources = ({\n terms,\n locale = CONFIG.DEFAULT_LOCALE,\n populateEmpty = CONFIG.POPULATE_EMPTY,\n}: {\n terms: TTermsDict | TTermsDictPartial\n locale?: TLocale\n populateEmpty?: boolean\n}): TTermSourceLocalized[] => {\n return Object.values(getSourcesDict({ terms, locale, populateEmpty }))\n}\n"],"mappings":"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"}