dev-dict 0.4.4 → 0.4.5

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.
@@ -1,2 +1,2 @@
1
- (function(c,e){typeof exports=="object"&&typeof module<"u"?e(exports):typeof define=="function"&&define.amd?define(["exports"],e):(c=typeof globalThis<"u"?globalThis:c||self,e(c.devdict={}))})(this,(function(c){"use strict";const e={EN_US:"en-US",EN_GB:"en-GB",DE_DE:"de-DE"},g=({obj:t,value:i,useFallback:n=a.USE_FALLBACK})=>i&&Object.values(e).includes(i)?t[i]||(n?t[e.EN_US]:""):i||(n?t[e.EN_US]:""),F=({obj:t,useFallback:i=a.USE_FALLBACK})=>{const n=Object.values(e);return Object.fromEntries(n.map(r=>[r,g({obj:t,value:t[r],useFallback:i})]))},_=({obj:t,keys:i,useFallback:n=a.USE_FALLBACK})=>Object.fromEntries(Object.entries(t).map(([r,o])=>{const s=i.filter(E=>E in o&&typeof o[E]=="object").map(E=>[E,F({obj:o[E],useFallback:n})]);return[r,{...o,...Object.fromEntries(s)}]})),m=({obj:t,locale:i=a.DEFAULT_LOCALE,useFallback:n=a.USE_FALLBACK})=>g({obj:t,value:t[i],useFallback:n}),f=({tag:t,locale:i=a.DEFAULT_LOCALE,useFallback:n=a.USE_FALLBACK})=>({id:t.id,name:m({obj:t.name,locale:i,useFallback:n})}),L=({term:t,locale:i=a.DEFAULT_LOCALE,useFallback:n=a.USE_FALLBACK})=>({id:t.id,name:m({obj:t.name,locale:i,useFallback:n})}),b={id:"backend",name:{[e.EN_US]:"Backend",[e.EN_GB]:e.EN_US,[e.DE_DE]:"Backend"}},U={id:"frontend",name:{[e.EN_US]:"Frontend",[e.EN_GB]:e.EN_US,[e.DE_DE]:"Frontend"}},N={id:"open_source",name:{[e.EN_US]:"Open Source",[e.EN_GB]:e.EN_US,[e.DE_DE]:"Open Source"}},A={[b.id]:b,[U.id]:U,[N.id]:N},d=_({obj:A,keys:["name"],useFallback:!1}),D={id:"cms",name:{[e.EN_US]:"Content Management System",[e.EN_GB]:e.EN_US,[e.DE_DE]:"Content-Management-System"}},y={id:"framework",name:{[e.EN_US]:"Framework",[e.EN_GB]:e.EN_US,[e.DE_DE]:"Framework"}},T={id:"language",name:{[e.EN_US]:"Language",[e.EN_GB]:e.EN_US,[e.DE_DE]:"Sprache"}},j={id:"library",name:{[e.EN_US]:"Library",[e.EN_GB]:e.EN_US,[e.DE_DE]:"Bibliothek"}},w={id:"platform"},S={id:"runtime_environment",name:{[e.EN_US]:"Runtime Environment",[e.EN_GB]:e.EN_US,[e.DE_DE]:"Laufzeitumgebung"}},v={[D.id]:D,[y.id]:y,[T.id]:T,[j.id]:j,[S.id]:S,[w.id]:S},p=_({obj:v,keys:["name"],useFallback:!1}),B={id:"aws",name:{[e.EN_US]:"AWS"},label:{[e.EN_US]:""},definition:{[e.EN_US]:""},type:[p.platform],tags:[],links:{website:""}},k={id:"javascript",name:{[e.EN_US]:"JavaScript"},label:{[e.EN_US]:"High-Level Programming Language",[e.DE_DE]:"Hochsprache"},definition:{[e.EN_US]:""},type:[p.language],tags:[d.frontend,d.backend,d.open_source],links:{website:"https://en.wikipedia.org/wiki/JavaScript"}},C={id:"node_js",name:{[e.EN_US]:"Node.js"},label:{[e.EN_US]:"JavaScript Runtime",[e.DE_DE]:"JavaScript-Laufzeit"},definition:{[e.EN_US]:"Node.js is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.",[e.DE_DE]:"Node.js ist eine kostenlose, Open-Source, plattformübergreifende JavaScript-Laufzeitumgebung, die es Entwicklern ermöglicht, Server, Webanwendungen, Befehlszeilentools und Skripte zu erstellen."},type:[p.runtime_environment],tags:[d.backend],links:{website:"https://nodejs.org"}},O={id:"react",name:{[e.EN_US]:"React"},label:{[e.EN_US]:"JavaScript Library",[e.DE_DE]:"JavaScript-Bibliothek"},definition:{[e.EN_US]:"A JavaScript library for building component-based user interfaces.",[e.DE_DE]:"Eine JavaScript-Bibliothek zum Erstellen komponentenbasierter Benutzeroberflächen."},type:[p.library],tags:[d.frontend,d.backend],links:{website:"https://react.dev"}},h={id:"typescript",name:{[e.EN_US]:"TypeScript"},label:{[e.EN_US]:"High-Level Programming Language",[e.EN_GB]:e.EN_US,[e.DE_DE]:"Hochsprache"},definition:{[e.EN_US]:"TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.",[e.EN_GB]:e.EN_US,[e.DE_DE]:"TypeScript ist eine stark typisierte Programmiersprache, die auf JavaScript aufbaut und Ihnen bei jeder Größenordnung bessere Werkzeuge bietet."},type:[p.language],tags:[d.frontend,d.backend,d.open_source],links:{website:"https://www.typescriptlang.org"}},u={[C.id]:C,[O.id]:O,[h.id]:h,[k.id]:k,[B.id]:B};_({obj:u,keys:["name","label","definition"],useFallback:!1});const a={DEFAULT_LOCALE:e.EN_US,USE_FALLBACK:!0};function l({id:t,localized:i=!0,locale:n=a.DEFAULT_LOCALE,useFallback:r=a.USE_FALLBACK}){const s=_({obj:u,keys:["name","label","definition"],useFallback:r})[t];return i?{...s,name:m({obj:s.name,locale:n,useFallback:r}),label:m({obj:s.label,locale:n,useFallback:r}),definition:m({obj:s.definition,locale:n,useFallback:r}),type:s.type.map(E=>L({term:E,locale:n,useFallback:r})),tags:s.tags.map(E=>f({tag:E,locale:n,useFallback:r}))}:s}function G({localized:t=!0,locale:i=a.DEFAULT_LOCALE,useFallback:n=a.USE_FALLBACK}={}){const r=_({obj:u,keys:["name","label","definition"],useFallback:n}),o=Object.values(r);return t?o.map(s=>l({id:s.id,locale:i,useFallback:n})):o}function z({localized:t=!0,locale:i=a.DEFAULT_LOCALE,useFallback:n=a.USE_FALLBACK}={}){const r=_({obj:u,keys:["name","label","definition"],useFallback:n});if(!t)return r;const o={};for(const[s,E]of Object.entries(r)){const R=l({id:E.id,locale:i,useFallback:n});o[s]=R}return o}function J({localized:t=!0,locale:i=a.DEFAULT_LOCALE,useFallback:n=a.USE_FALLBACK}={}){const r=_({obj:v,keys:["name"],useFallback:n}),o=Object.values(r);return t?o.map(s=>L({term:s,locale:i,useFallback:n})):o}function K({localized:t=!0,locale:i=a.DEFAULT_LOCALE,useFallback:n=a.USE_FALLBACK}={}){const r=_({obj:A,keys:["name"],useFallback:n}),o=Object.values(r);return t?o.map(s=>f({tag:s,locale:i,useFallback:n})):o}c.getDict=z,c.getTags=K,c.getTerm=l,c.getTerms=G,c.getTypes=J,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(c,e){typeof exports=="object"&&typeof module<"u"?e(exports):typeof define=="function"&&define.amd?define(["exports"],e):(c=typeof globalThis<"u"?globalThis:c||self,e(c.devdict={}))})(this,(function(c){"use strict";const e={EN_US:"en-US",EN_GB:"en-GB",DE_DE:"de-DE"},l=({obj:t,value:i,useFallback:n=a.USE_FALLBACK})=>i&&Object.values(e).includes(i)?t[i]||(n?t[e.EN_US]:""):i||(n?t[e.EN_US]:""),w=({obj:t,useFallback:i=a.USE_FALLBACK})=>{const n=Object.values(e);return Object.fromEntries(n.map(r=>[r,l({obj:t,value:t[r],useFallback:i})]))},_=({obj:t,keys:i,useFallback:n=a.USE_FALLBACK})=>Object.fromEntries(Object.entries(t).map(([r,o])=>{const s=i.filter(E=>E in o&&typeof o[E]=="object").map(E=>[E,w({obj:o[E],useFallback:n})]);return[r,{...o,...Object.fromEntries(s)}]})),m=({obj:t,locale:i=a.DEFAULT_LOCALE,useFallback:n=a.USE_FALLBACK})=>l({obj:t,value:t[i],useFallback:n}),g=({tag:t,locale:i=a.DEFAULT_LOCALE,useFallback:n=a.USE_FALLBACK})=>({id:t.id,name:m({obj:t.name,locale:i,useFallback:n})}),f=({term:t,locale:i=a.DEFAULT_LOCALE,useFallback:n=a.USE_FALLBACK})=>({id:t.id,name:m({obj:t.name,locale:i,useFallback:n})}),L={id:"backend",name:{[e.EN_US]:"Backend",[e.EN_GB]:e.EN_US,[e.DE_DE]:"Backend"}},b={id:"frontend",name:{[e.EN_US]:"Frontend",[e.EN_GB]:e.EN_US,[e.DE_DE]:"Frontend"}},U={id:"open_source",name:{[e.EN_US]:"Open Source",[e.EN_GB]:e.EN_US,[e.DE_DE]:"Open Source"}},N={[L.id]:L,[b.id]:b,[U.id]:U},d=_({obj:N,keys:["name"],useFallback:!1}),A={id:"cms",name:{[e.EN_US]:"Content Management System",[e.EN_GB]:e.EN_US,[e.DE_DE]:"Content-Management-System"}},D={id:"framework",name:{[e.EN_US]:"Framework",[e.EN_GB]:e.EN_US,[e.DE_DE]:"Framework"}},y={id:"language",name:{[e.EN_US]:"Language",[e.EN_GB]:e.EN_US,[e.DE_DE]:"Sprache"}},T={id:"library",name:{[e.EN_US]:"Library",[e.EN_GB]:e.EN_US,[e.DE_DE]:"Bibliothek"}},j={id:"platform",name:{[e.EN_US]:"Platform"}},v={id:"runtime_environment",name:{[e.EN_US]:"Runtime Environment",[e.EN_GB]:e.EN_US,[e.DE_DE]:"Laufzeitumgebung"}},B={[A.id]:A,[D.id]:D,[y.id]:y,[T.id]:T,[v.id]:v,[j.id]:j},p=_({obj:B,keys:["name"],useFallback:!1}),k={id:"aws",name:{[e.EN_US]:"AWS"},label:{[e.EN_US]:""},definition:{[e.EN_US]:""},type:[p.platform],tags:[],links:{website:""}},C={id:"javascript",name:{[e.EN_US]:"JavaScript"},label:{[e.EN_US]:"High-Level Programming Language",[e.DE_DE]:"Hochsprache"},definition:{[e.EN_US]:""},type:[p.language],tags:[d.frontend,d.backend,d.open_source],links:{website:"https://en.wikipedia.org/wiki/JavaScript"}},O={id:"node_js",name:{[e.EN_US]:"Node.js"},label:{[e.EN_US]:"JavaScript Runtime",[e.DE_DE]:"JavaScript-Laufzeit"},definition:{[e.EN_US]:"Node.js is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.",[e.DE_DE]:"Node.js ist eine kostenlose, Open-Source, plattformübergreifende JavaScript-Laufzeitumgebung, die es Entwicklern ermöglicht, Server, Webanwendungen, Befehlszeilentools und Skripte zu erstellen."},type:[p.runtime_environment],tags:[d.backend],links:{website:"https://nodejs.org"}},h={id:"react",name:{[e.EN_US]:"React"},label:{[e.EN_US]:"JavaScript Library",[e.DE_DE]:"JavaScript-Bibliothek"},definition:{[e.EN_US]:"A JavaScript library for building component-based user interfaces.",[e.DE_DE]:"Eine JavaScript-Bibliothek zum Erstellen komponentenbasierter Benutzeroberflächen."},type:[p.library],tags:[d.frontend,d.backend],links:{website:"https://react.dev"}},F={id:"typescript",name:{[e.EN_US]:"TypeScript"},label:{[e.EN_US]:"High-Level Programming Language",[e.EN_GB]:e.EN_US,[e.DE_DE]:"Hochsprache"},definition:{[e.EN_US]:"TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.",[e.EN_GB]:e.EN_US,[e.DE_DE]:"TypeScript ist eine stark typisierte Programmiersprache, die auf JavaScript aufbaut und Ihnen bei jeder Größenordnung bessere Werkzeuge bietet."},type:[p.language],tags:[d.frontend,d.backend,d.open_source],links:{website:"https://www.typescriptlang.org"}},u={[O.id]:O,[h.id]:h,[F.id]:F,[C.id]:C,[k.id]:k};_({obj:u,keys:["name","label","definition"],useFallback:!1});const a={DEFAULT_LOCALE:e.EN_US,USE_FALLBACK:!0};function S({id:t,localized:i=!0,locale:n=a.DEFAULT_LOCALE,useFallback:r=a.USE_FALLBACK}){const s=_({obj:u,keys:["name","label","definition"],useFallback:r})[t];return i?{...s,name:m({obj:s.name,locale:n,useFallback:r}),label:m({obj:s.label,locale:n,useFallback:r}),definition:m({obj:s.definition,locale:n,useFallback:r}),type:s.type.map(E=>f({term:E,locale:n,useFallback:r})),tags:s.tags.map(E=>g({tag:E,locale:n,useFallback:r}))}:s}function G({localized:t=!0,locale:i=a.DEFAULT_LOCALE,useFallback:n=a.USE_FALLBACK}={}){const r=_({obj:u,keys:["name","label","definition"],useFallback:n}),o=Object.values(r);return t?o.map(s=>S({id:s.id,locale:i,useFallback:n})):o}function z({localized:t=!0,locale:i=a.DEFAULT_LOCALE,useFallback:n=a.USE_FALLBACK}={}){const r=_({obj:u,keys:["name","label","definition"],useFallback:n});if(!t)return r;const o={};for(const[s,E]of Object.entries(r)){const R=S({id:E.id,locale:i,useFallback:n});o[s]=R}return o}function J({localized:t=!0,locale:i=a.DEFAULT_LOCALE,useFallback:n=a.USE_FALLBACK}={}){const r=_({obj:B,keys:["name"],useFallback:n}),o=Object.values(r);return t?o.map(s=>f({term:s,locale:i,useFallback:n})):o}function K({localized:t=!0,locale:i=a.DEFAULT_LOCALE,useFallback:n=a.USE_FALLBACK}={}){const r=_({obj:N,keys:["name"],useFallback:n}),o=Object.values(r);return t?o.map(s=>g({tag:s,locale:i,useFallback:n})):o}c.getDict=z,c.getTags=K,c.getTerm=S,c.getTerms=G,c.getTypes=J,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})}));
2
2
  //# sourceMappingURL=dev-dict.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev-dict.min.js","sources":["../data/locales/index.ts","../src/utils/index.ts","../data/tags/backend.ts","../data/tags/frontend.ts","../data/tags/open_source.ts","../data/tags/index.ts","../data/types/cms.ts","../data/types/framework.ts","../data/types/language.ts","../data/types/library.ts","../data/types/platform.ts","../data/types/runtime_environment.ts","../data/types/index.ts","../data/terms/aws.ts","../data/terms/javascript.ts","../data/terms/node_js.ts","../data/terms/react.ts","../data/terms/typescript.ts","../data/terms/index.ts","../src/common/index.ts","../src/index.ts"],"sourcesContent":["export const LOCALE = {\n EN_US: 'en-US',\n EN_GB: 'en-GB',\n DE_DE: 'de-DE',\n} as const\n","import type { TLocale, TLocaleRecord, TTermTag, TTermTagLocalized, TTermType, TTermTypeLocalized } from '@/types'\nimport { CONFIG } from '@/common'\nimport { LOCALE } from '@data'\n\nexport const interpolateValue = ({\n obj,\n value,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n obj: TLocaleRecord\n value: undefined | string\n useFallback?: boolean\n}): string => {\n if (value && Object.values<string>(LOCALE).includes(value)) {\n return obj[value as TLocale] || (useFallback ? obj[LOCALE.EN_US] : '')\n }\n return value || (useFallback ? obj[LOCALE.EN_US] : '')\n}\n\nexport const interpolateLocaleRecord = ({\n obj,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n obj: TLocaleRecord\n useFallback?: boolean\n}): TLocaleRecord => {\n const locales = Object.values<string>(LOCALE) as TLocale[]\n\n return Object.fromEntries(\n locales.map((locale) => [locale, interpolateValue({ obj, value: obj[locale], useFallback })]),\n ) as TLocaleRecord\n}\n\nexport const interpolateValues = <T extends Record<string, any>>({\n obj,\n keys,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n obj: T\n keys: string[]\n useFallback?: 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], useFallback })])\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 useFallback = CONFIG.USE_FALLBACK,\n}: {\n obj: TLocaleRecord\n locale?: TLocale\n useFallback?: boolean\n}): string => {\n return interpolateValue({ obj, value: obj[locale], useFallback })\n}\n\nexport const getTermTagLocalized = ({\n tag,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n tag: TTermTag\n locale?: TLocale\n useFallback?: boolean\n}): TTermTagLocalized => {\n return {\n id: tag.id,\n name: getValueLocalized({ obj: tag.name, locale, useFallback }),\n }\n}\n\nexport const getTermTypeLocalized = ({\n term,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n term: TTermType\n locale?: TLocale\n useFallback?: boolean\n}): TTermTypeLocalized => {\n return {\n id: term.id,\n name: getValueLocalized({ obj: term.name, locale, useFallback }),\n }\n}\n","import type { TTermTag } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `backend`,\n\n name: {\n [LOCALE.EN_US]: `Backend`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Backend`,\n },\n} as const satisfies TTermTag\n","import type { TTermTag } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `frontend`,\n\n name: {\n [LOCALE.EN_US]: `Frontend`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Frontend`,\n },\n} as const satisfies TTermTag\n","import type { TTermTag } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `open_source`,\n\n name: {\n [LOCALE.EN_US]: `Open Source`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Open Source`,\n },\n} as const satisfies TTermTag\n","import { interpolateValues } from '@/utils'\n\nimport backend from './backend'\nimport frontend from './frontend'\nimport open_source from './open_source'\n\nexport const RAW_TAG = {\n [backend.id]: backend,\n [frontend.id]: frontend,\n [open_source.id]: open_source,\n} as const\n\nexport const TAG = interpolateValues({ obj: RAW_TAG, keys: ['name'], useFallback: false })\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `cms`,\n\n name: {\n [LOCALE.EN_US]: `Content Management System`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Content-Management-System`,\n },\n} as const satisfies TTermType\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `framework`,\n\n name: {\n [LOCALE.EN_US]: `Framework`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Framework`,\n },\n} as const satisfies TTermType\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `language`,\n\n name: {\n [LOCALE.EN_US]: `Language`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Sprache`,\n },\n} as const satisfies TTermType\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `library`,\n\n name: {\n [LOCALE.EN_US]: `Library`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Bibliothek`,\n },\n} as const satisfies TTermType\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `platform`,\n\n name: {\n [LOCALE.EN_US]: `Platform`,\n },\n} as const satisfies TTermType\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `runtime_environment`,\n\n name: {\n [LOCALE.EN_US]: `Runtime Environment`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Laufzeitumgebung`,\n },\n} as const satisfies TTermType\n","import { interpolateValues } from '@/utils'\n\nimport cms from './cms'\nimport framework from './framework'\nimport language from './language'\nimport library from './library'\nimport platform from './platform'\nimport runtime_environment from './runtime_environment'\n\nexport const RAW_TYPE = {\n [cms.id]: cms,\n [framework.id]: framework,\n [language.id]: language,\n [library.id]: library,\n [runtime_environment.id]: runtime_environment,\n [platform.id]: runtime_environment,\n} as const\n\nexport const TYPE = interpolateValues({ obj: RAW_TYPE, keys: ['name'], useFallback: false })\n","import type { TTerm } from '@/types'\n\nimport { LOCALE } from '../locales'\nimport { TAG } from '../tags'\nimport { TYPE } from '../types'\n\nexport default {\n id: `aws`,\n\n name: {\n [LOCALE.EN_US]: `AWS`,\n },\n\n label: {\n [LOCALE.EN_US]: ``,\n },\n\n definition: {\n [LOCALE.EN_US]: ``,\n },\n\n type: [TYPE.platform],\n\n tags: [],\n\n links: {\n website: ``,\n },\n} as const satisfies TTerm\n","import type { TTerm } from '@/types'\n\nimport { LOCALE } from '../locales'\nimport { TAG } from '../tags'\nimport { TYPE } from '../types'\n\nexport default {\n id: `javascript`,\n\n name: {\n [LOCALE.EN_US]: `JavaScript`,\n },\n\n label: {\n [LOCALE.EN_US]: `High-Level Programming Language`,\n [LOCALE.DE_DE]: `Hochsprache`,\n },\n\n definition: {\n [LOCALE.EN_US]: ``,\n },\n\n type: [TYPE.language],\n\n tags: [TAG.frontend, TAG.backend, TAG.open_source],\n\n links: {\n website: `https://en.wikipedia.org/wiki/JavaScript`,\n },\n} as const satisfies TTerm\n","import type { TTerm } from '@/types'\n\nimport { LOCALE } from '../locales'\nimport { TAG } from '../tags'\nimport { TYPE } from '../types'\n\nexport default {\n id: `node_js`,\n\n name: {\n [LOCALE.EN_US]: `Node.js`,\n },\n\n label: {\n [LOCALE.EN_US]: `JavaScript Runtime`,\n [LOCALE.DE_DE]: `JavaScript-Laufzeit`,\n },\n\n definition: {\n [LOCALE.EN_US]: `Node.js is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.`,\n [LOCALE.DE_DE]: `Node.js ist eine kostenlose, Open-Source, plattformübergreifende JavaScript-Laufzeitumgebung, die es Entwicklern ermöglicht, Server, Webanwendungen, Befehlszeilentools und Skripte zu erstellen.`,\n },\n\n type: [TYPE.runtime_environment],\n\n tags: [TAG.backend],\n\n links: {\n website: `https://nodejs.org`,\n },\n} as const satisfies TTerm\n","import type { TTerm } from '@/types'\n\nimport { LOCALE } from '../locales'\nimport { TAG } from '../tags'\nimport { TYPE } from '../types'\n\nexport default {\n id: `react`,\n\n name: {\n [LOCALE.EN_US]: `React`,\n },\n\n label: {\n [LOCALE.EN_US]: `JavaScript Library`,\n [LOCALE.DE_DE]: `JavaScript-Bibliothek`,\n },\n\n definition: {\n [LOCALE.EN_US]: `A JavaScript library for building component-based user interfaces.`,\n [LOCALE.DE_DE]: `Eine JavaScript-Bibliothek zum Erstellen komponentenbasierter Benutzeroberflächen.`,\n },\n\n type: [TYPE.library],\n\n tags: [TAG.frontend, TAG.backend],\n\n links: {\n website: `https://react.dev`,\n },\n} as const satisfies TTerm\n","import type { TTerm } from '@/types'\n\nimport { LOCALE } from '../locales'\nimport { TAG } from '../tags'\nimport { TYPE } from '../types'\n\nexport default {\n id: `typescript`,\n\n name: {\n [LOCALE.EN_US]: `TypeScript`,\n },\n\n label: {\n [LOCALE.EN_US]: `High-Level Programming Language`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Hochsprache`,\n },\n\n definition: {\n [LOCALE.EN_US]: `TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `TypeScript ist eine stark typisierte Programmiersprache, die auf JavaScript aufbaut und Ihnen bei jeder Größenordnung bessere Werkzeuge bietet.`,\n },\n\n type: [TYPE.language],\n\n tags: [TAG.frontend, TAG.backend, TAG.open_source],\n\n links: {\n website: `https://www.typescriptlang.org`,\n },\n} as const satisfies TTerm\n","import { interpolateValues } from '@/utils'\n\nimport aws from './aws'\nimport javascript from './javascript'\nimport node_js from './node_js'\nimport react from './react'\nimport typescript from './typescript'\n\nexport const RAW_TERM = {\n [node_js.id]: node_js,\n [react.id]: react,\n [typescript.id]: typescript,\n [javascript.id]: javascript,\n [aws.id]: aws,\n} as const\n\nexport const TERM = interpolateValues({ obj: RAW_TERM, keys: ['name', 'label', 'definition'], useFallback: false })\n","import { LOCALE } from '@data'\n\nexport const MISC = {} as const\n\nexport const CONFIG = {\n DEFAULT_LOCALE: LOCALE.EN_US,\n USE_FALLBACK: true,\n} as const\n","import type {\n TDevDict,\n TDevDictLocalized,\n TLocale,\n TTerm,\n TTermId,\n TTermLocalized,\n TTermTag,\n TTermTagLocalized,\n TTermType,\n TTermTypeLocalized,\n} from '@/types'\nimport { CONFIG } from '@/common'\nimport { getTermTagLocalized, getTermTypeLocalized, getValueLocalized, interpolateValues } from '@/utils'\nimport { RAW_TAG, RAW_TERM, RAW_TYPE } from '@data'\n\n/**\n * NB: The `useFallback` param only works when `localized` is `true`. This is by design.\n */\n\nexport function getTerm(params: { id: TTermId; localized: false }): TTerm\nexport function getTerm(params: {\n id: TTermId\n localized?: true\n locale?: TLocale\n useFallback?: boolean\n}): TTermLocalized\nexport function getTerm({\n id,\n localized = true,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n id: TTermId\n localized?: boolean\n locale?: TLocale\n useFallback?: boolean\n}): TTerm | TTermLocalized {\n // We do not need a null check here because TTermId only allows valid IDs\n const TERM = interpolateValues({ obj: RAW_TERM, keys: ['name', 'label', 'definition'], useFallback })\n const term = TERM[id]\n\n if (!localized) {\n return term\n }\n\n return {\n ...term,\n name: getValueLocalized({ obj: term.name, locale, useFallback }),\n label: getValueLocalized({ obj: term.label, locale, useFallback }),\n definition: getValueLocalized({ obj: term.definition, locale, useFallback }),\n type: term.type.map((value) => getTermTypeLocalized({ term: value, locale, useFallback })),\n tags: term.tags.map((value) => getTermTagLocalized({ tag: value, locale, useFallback })),\n }\n}\n\nexport function getTerms(params?: { localized: false; useFallback?: boolean }): TTerm[]\nexport function getTerms(params?: { localized?: true; locale?: TLocale; useFallback?: boolean }): TTermLocalized[]\nexport function getTerms({\n localized = true,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n localized?: boolean\n locale?: TLocale\n useFallback?: boolean\n} = {}): TTerm[] | TTermLocalized[] {\n const TERM = interpolateValues({ obj: RAW_TERM, keys: ['name', 'label', 'definition'], useFallback })\n const terms = Object.values(TERM)\n\n if (!localized) {\n return terms\n }\n\n return terms.map((term) => getTerm({ id: term.id, locale, useFallback }))\n}\n\nexport function getDict(params?: { localized: false; useFallback?: boolean }): TDevDict\nexport function getDict(params?: { localized?: true; locale?: TLocale; useFallback?: boolean }): TDevDictLocalized\nexport function getDict({\n localized = true,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n localized?: boolean\n locale?: TLocale\n useFallback?: boolean\n} = {}): TDevDict | TDevDictLocalized {\n const TERM = interpolateValues({ obj: RAW_TERM, keys: ['name', 'label', 'definition'], useFallback })\n\n if (!localized) {\n return TERM as TDevDict\n }\n\n const dict = {} as TDevDictLocalized\n\n for (const [key, term] of Object.entries(TERM)) {\n const localizedTerm = getTerm({ id: term.id, locale, useFallback })\n dict[key as TTermId] = localizedTerm\n }\n\n return dict\n}\n\nexport function getTypes(params?: { localized: false; useFallback?: boolean }): TTermType[]\nexport function getTypes(params?: { localized?: true; locale?: TLocale; useFallback?: boolean }): TTermTypeLocalized[]\nexport function getTypes({\n localized = true,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n localized?: boolean\n locale?: TLocale\n useFallback?: boolean\n} = {}): TTermType[] | TTermTypeLocalized[] {\n const TYPE = interpolateValues({ obj: RAW_TYPE, keys: ['name'], useFallback })\n const types = Object.values(TYPE)\n\n if (!localized) {\n return types\n }\n\n return types.map((type) => getTermTypeLocalized({ term: type, locale, useFallback }))\n}\n\nexport function getTags(params?: { localized: false; useFallback?: boolean }): TTermTag[]\nexport function getTags(params?: { localized?: true; locale?: TLocale; useFallback?: boolean }): TTermTagLocalized[]\nexport function getTags({\n localized = true,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n localized?: boolean\n locale?: TLocale\n useFallback?: boolean\n} = {}): TTermTag[] | TTermTagLocalized[] {\n const TAG = interpolateValues({ obj: RAW_TAG, keys: ['name'], useFallback })\n const tags = Object.values(TAG)\n\n if (!localized) {\n return tags\n }\n\n return tags.map((tag) => getTermTagLocalized({ tag, locale, useFallback }))\n}\n"],"names":["LOCALE","interpolateValue","obj","value","useFallback","CONFIG","interpolateLocaleRecord","locales","locale","interpolateValues","keys","itemKey","item","interpolatedFields","key","getValueLocalized","getTermTagLocalized","tag","getTermTypeLocalized","term","backend","frontend","open_source","RAW_TAG","TAG","cms","framework","language","library","platform","runtime_environment","RAW_TYPE","TYPE","aws","javascript","node_js","react","typescript","RAW_TERM","getTerm","id","localized","getTerms","TERM","terms","getDict","dict","localizedTerm","getTypes","types","type","getTags","tags"],"mappings":"gOAAO,MAAMA,EAAS,CACpB,MAAO,QACP,MAAO,QACP,MAAO,OACT,ECAaC,EAAmB,CAAC,CAC/B,IAAAC,EACA,MAAAC,EACA,YAAAC,EAAcC,EAAO,YACvB,IAKMF,GAAS,OAAO,OAAeH,CAAM,EAAE,SAASG,CAAK,EAChDD,EAAIC,CAAgB,IAAMC,EAAcF,EAAIF,EAAO,KAAK,EAAI,IAE9DG,IAAUC,EAAcF,EAAIF,EAAO,KAAK,EAAI,IAGxCM,EAA0B,CAAC,CACtC,IAAAJ,EACA,YAAAE,EAAcC,EAAO,YACvB,IAGqB,CACnB,MAAME,EAAU,OAAO,OAAeP,CAAM,EAE5C,OAAO,OAAO,YACZO,EAAQ,IAAKC,GAAW,CAACA,EAAQP,EAAiB,CAAE,IAAAC,EAAK,MAAOA,EAAIM,CAAM,EAAG,YAAAJ,CAAA,CAAa,CAAC,CAAC,CAAA,CAEhG,EAEaK,EAAoB,CAAgC,CAC/D,IAAAP,EACA,KAAAQ,EACA,YAAAN,EAAcC,EAAO,YACvB,IAKS,OAAO,YACZ,OAAO,QAAQH,CAAG,EAAE,IAAI,CAAC,CAACS,EAASC,CAAI,IAAM,CAC3C,MAAMC,EAAqBH,EACxB,OAAQI,GAAQA,KAAOF,GAAQ,OAAOA,EAAKE,CAAG,GAAM,QAAQ,EAC5D,IAAKA,GAAQ,CAACA,EAAKR,EAAwB,CAAE,IAAKM,EAAKE,CAAG,EAAG,YAAAV,CAAA,CAAa,CAAC,CAAC,EAE/E,MAAO,CAACO,EAAS,CAAE,GAAGC,EAAM,GAAG,OAAO,YAAYC,CAAkB,EAAG,CACzE,CAAC,CAAA,EAIQE,EAAoB,CAAC,CAChC,IAAAb,EACA,OAAAM,EAASH,EAAO,eAChB,YAAAD,EAAcC,EAAO,YACvB,IAKSJ,EAAiB,CAAE,IAAAC,EAAK,MAAOA,EAAIM,CAAM,EAAG,YAAAJ,EAAa,EAGrDY,EAAsB,CAAC,CAClC,IAAAC,EACA,OAAAT,EAASH,EAAO,eAChB,YAAAD,EAAcC,EAAO,YACvB,KAKS,CACL,GAAIY,EAAI,GACR,KAAMF,EAAkB,CAAE,IAAKE,EAAI,KAAM,OAAAT,EAAQ,YAAAJ,EAAa,CAAA,GAIrDc,EAAuB,CAAC,CACnC,KAAAC,EACA,OAAAX,EAASH,EAAO,eAChB,YAAAD,EAAcC,EAAO,YACvB,KAKS,CACL,GAAIc,EAAK,GACT,KAAMJ,EAAkB,CAAE,IAAKI,EAAK,KAAM,OAAAX,EAAQ,YAAAJ,EAAa,CAAA,GCvFnEgB,EAAe,CACb,GAAI,UAEJ,KAAM,CACJ,CAACpB,EAAO,KAAK,EAAG,UAChB,CAACA,EAAO,KAAK,EAAGA,EAAO,MACvB,CAACA,EAAO,KAAK,EAAG,SAAA,CAEpB,ECRAqB,EAAe,CACb,GAAI,WAEJ,KAAM,CACJ,CAACrB,EAAO,KAAK,EAAG,WAChB,CAACA,EAAO,KAAK,EAAGA,EAAO,MACvB,CAACA,EAAO,KAAK,EAAG,UAAA,CAEpB,ECRAsB,EAAe,CACb,GAAI,cAEJ,KAAM,CACJ,CAACtB,EAAO,KAAK,EAAG,cAChB,CAACA,EAAO,KAAK,EAAGA,EAAO,MACvB,CAACA,EAAO,KAAK,EAAG,aAAA,CAEpB,ECNauB,EAAU,CACrB,CAACH,EAAQ,EAAE,EAAGA,EACd,CAACC,EAAS,EAAE,EAAGA,EACf,CAACC,EAAY,EAAE,EAAGA,CACpB,EAEaE,EAAMf,EAAkB,CAAE,IAAKc,EAAS,KAAM,CAAC,MAAM,EAAG,YAAa,GAAO,ECRzFE,EAAe,CACb,GAAI,MAEJ,KAAM,CACJ,CAACzB,EAAO,KAAK,EAAG,4BAChB,CAACA,EAAO,KAAK,EAAGA,EAAO,MACvB,CAACA,EAAO,KAAK,EAAG,2BAAA,CAEpB,ECRA0B,EAAe,CACb,GAAI,YAEJ,KAAM,CACJ,CAAC1B,EAAO,KAAK,EAAG,YAChB,CAACA,EAAO,KAAK,EAAGA,EAAO,MACvB,CAACA,EAAO,KAAK,EAAG,WAAA,CAEpB,ECRA2B,EAAe,CACb,GAAI,WAEJ,KAAM,CACJ,CAAC3B,EAAO,KAAK,EAAG,WAChB,CAACA,EAAO,KAAK,EAAGA,EAAO,MACvB,CAACA,EAAO,KAAK,EAAG,SAAA,CAEpB,ECRA4B,EAAe,CACb,GAAI,UAEJ,KAAM,CACJ,CAAC5B,EAAO,KAAK,EAAG,UAChB,CAACA,EAAO,KAAK,EAAGA,EAAO,MACvB,CAACA,EAAO,KAAK,EAAG,YAAA,CAEpB,ECRA6B,EAAe,CACb,GAAI,UAKN,ECNAC,EAAe,CACb,GAAI,sBAEJ,KAAM,CACJ,CAAC9B,EAAO,KAAK,EAAG,sBAChB,CAACA,EAAO,KAAK,EAAGA,EAAO,MACvB,CAACA,EAAO,KAAK,EAAG,kBAAA,CAEpB,ECHa+B,EAAW,CACtB,CAACN,EAAI,EAAE,EAAGA,EACV,CAACC,EAAU,EAAE,EAAGA,EAChB,CAACC,EAAS,EAAE,EAAGA,EACf,CAACC,EAAQ,EAAE,EAAGA,EACd,CAACE,EAAoB,EAAE,EAAGA,EAC1B,CAACD,EAAS,EAAE,EAAGC,CACjB,EAEaE,EAAOvB,EAAkB,CAAE,IAAKsB,EAAU,KAAM,CAAC,MAAM,EAAG,YAAa,GAAO,ECZ3FE,EAAe,CACb,GAAI,MAEJ,KAAM,CACJ,CAACjC,EAAO,KAAK,EAAG,KAAA,EAGlB,MAAO,CACL,CAACA,EAAO,KAAK,EAAG,EAAA,EAGlB,WAAY,CACV,CAACA,EAAO,KAAK,EAAG,EAAA,EAGlB,KAAM,CAACgC,EAAK,QAAQ,EAEpB,KAAM,CAAA,EAEN,MAAO,CACL,QAAS,EAAA,CAEb,ECtBAE,EAAe,CACb,GAAI,aAEJ,KAAM,CACJ,CAAClC,EAAO,KAAK,EAAG,YAAA,EAGlB,MAAO,CACL,CAACA,EAAO,KAAK,EAAG,kCAChB,CAACA,EAAO,KAAK,EAAG,aAAA,EAGlB,WAAY,CACV,CAACA,EAAO,KAAK,EAAG,EAAA,EAGlB,KAAM,CAACgC,EAAK,QAAQ,EAEpB,KAAM,CAACR,EAAI,SAAUA,EAAI,QAASA,EAAI,WAAW,EAEjD,MAAO,CACL,QAAS,0CAAA,CAEb,ECvBAW,EAAe,CACb,GAAI,UAEJ,KAAM,CACJ,CAACnC,EAAO,KAAK,EAAG,SAAA,EAGlB,MAAO,CACL,CAACA,EAAO,KAAK,EAAG,qBAChB,CAACA,EAAO,KAAK,EAAG,qBAAA,EAGlB,WAAY,CACV,CAACA,EAAO,KAAK,EAAG,+JAChB,CAACA,EAAO,KAAK,EAAG,mMAAA,EAGlB,KAAM,CAACgC,EAAK,mBAAmB,EAE/B,KAAM,CAACR,EAAI,OAAO,EAElB,MAAO,CACL,QAAS,oBAAA,CAEb,ECxBAY,EAAe,CACb,GAAI,QAEJ,KAAM,CACJ,CAACpC,EAAO,KAAK,EAAG,OAAA,EAGlB,MAAO,CACL,CAACA,EAAO,KAAK,EAAG,qBAChB,CAACA,EAAO,KAAK,EAAG,uBAAA,EAGlB,WAAY,CACV,CAACA,EAAO,KAAK,EAAG,qEAChB,CAACA,EAAO,KAAK,EAAG,oFAAA,EAGlB,KAAM,CAACgC,EAAK,OAAO,EAEnB,KAAM,CAACR,EAAI,SAAUA,EAAI,OAAO,EAEhC,MAAO,CACL,QAAS,mBAAA,CAEb,ECxBAa,EAAe,CACb,GAAI,aAEJ,KAAM,CACJ,CAACrC,EAAO,KAAK,EAAG,YAAA,EAGlB,MAAO,CACL,CAACA,EAAO,KAAK,EAAG,kCAChB,CAACA,EAAO,KAAK,EAAGA,EAAO,MACvB,CAACA,EAAO,KAAK,EAAG,aAAA,EAGlB,WAAY,CACV,CAACA,EAAO,KAAK,EAAG,yHAChB,CAACA,EAAO,KAAK,EAAGA,EAAO,MACvB,CAACA,EAAO,KAAK,EAAG,iJAAA,EAGlB,KAAM,CAACgC,EAAK,QAAQ,EAEpB,KAAM,CAACR,EAAI,SAAUA,EAAI,QAASA,EAAI,WAAW,EAEjD,MAAO,CACL,QAAS,gCAAA,CAEb,ECxBac,EAAW,CACtB,CAACH,EAAQ,EAAE,EAAGA,EACd,CAACC,EAAM,EAAE,EAAGA,EACZ,CAACC,EAAW,EAAE,EAAGA,EACjB,CAACH,EAAW,EAAE,EAAGA,EACjB,CAACD,EAAI,EAAE,EAAGA,CACZ,EAEoBxB,EAAkB,CAAE,IAAK6B,EAAU,KAAM,CAAC,OAAQ,QAAS,YAAY,EAAG,YAAa,GAAO,ECZ3G,MAAMjC,EAAS,CACpB,eAAgBL,EAAO,MACvB,aAAc,EAChB,ECoBO,SAASuC,EAAQ,CACtB,GAAAC,EACA,UAAAC,EAAY,GACZ,OAAAjC,EAASH,EAAO,eAChB,YAAAD,EAAcC,EAAO,YACvB,EAK2B,CAGzB,MAAMc,EADOV,EAAkB,CAAE,IAAK6B,EAAU,KAAM,CAAC,OAAQ,QAAS,YAAY,EAAG,YAAAlC,CAAA,CAAa,EAClFoC,CAAE,EAEpB,OAAKC,EAIE,CACL,GAAGtB,EACH,KAAMJ,EAAkB,CAAE,IAAKI,EAAK,KAAM,OAAAX,EAAQ,YAAAJ,EAAa,EAC/D,MAAOW,EAAkB,CAAE,IAAKI,EAAK,MAAO,OAAAX,EAAQ,YAAAJ,EAAa,EACjE,WAAYW,EAAkB,CAAE,IAAKI,EAAK,WAAY,OAAAX,EAAQ,YAAAJ,EAAa,EAC3E,KAAMe,EAAK,KAAK,IAAKhB,GAAUe,EAAqB,CAAE,KAAMf,EAAO,OAAAK,EAAQ,YAAAJ,CAAA,CAAa,CAAC,EACzF,KAAMe,EAAK,KAAK,IAAKhB,GAAUa,EAAoB,CAAE,IAAKb,EAAO,OAAAK,EAAQ,YAAAJ,CAAA,CAAa,CAAC,CAAA,EAThFe,CAWX,CAIO,SAASuB,EAAS,CACvB,UAAAD,EAAY,GACZ,OAAAjC,EAASH,EAAO,eAChB,YAAAD,EAAcC,EAAO,YACvB,EAII,GAAgC,CAClC,MAAMsC,EAAOlC,EAAkB,CAAE,IAAK6B,EAAU,KAAM,CAAC,OAAQ,QAAS,YAAY,EAAG,YAAAlC,CAAA,CAAa,EAC9FwC,EAAQ,OAAO,OAAOD,CAAI,EAEhC,OAAKF,EAIEG,EAAM,IAAKzB,GAASoB,EAAQ,CAAE,GAAIpB,EAAK,GAAI,OAAAX,EAAQ,YAAAJ,CAAA,CAAa,CAAC,EAH/DwC,CAIX,CAIO,SAASC,EAAQ,CACtB,UAAAJ,EAAY,GACZ,OAAAjC,EAASH,EAAO,eAChB,YAAAD,EAAcC,EAAO,YACvB,EAII,GAAkC,CACpC,MAAMsC,EAAOlC,EAAkB,CAAE,IAAK6B,EAAU,KAAM,CAAC,OAAQ,QAAS,YAAY,EAAG,YAAAlC,CAAA,CAAa,EAEpG,GAAI,CAACqC,EACH,OAAOE,EAGT,MAAMG,EAAO,CAAA,EAEb,SAAW,CAAChC,EAAKK,CAAI,IAAK,OAAO,QAAQwB,CAAI,EAAG,CAC9C,MAAMI,EAAgBR,EAAQ,CAAE,GAAIpB,EAAK,GAAI,OAAAX,EAAQ,YAAAJ,EAAa,EAClE0C,EAAKhC,CAAc,EAAIiC,CACzB,CAEA,OAAOD,CACT,CAIO,SAASE,EAAS,CACvB,UAAAP,EAAY,GACZ,OAAAjC,EAASH,EAAO,eAChB,YAAAD,EAAcC,EAAO,YACvB,EAII,GAAwC,CAC1C,MAAM2B,EAAOvB,EAAkB,CAAE,IAAKsB,EAAU,KAAM,CAAC,MAAM,EAAG,YAAA3B,EAAa,EACvE6C,EAAQ,OAAO,OAAOjB,CAAI,EAEhC,OAAKS,EAIEQ,EAAM,IAAKC,GAAShC,EAAqB,CAAE,KAAMgC,EAAM,OAAA1C,EAAQ,YAAAJ,CAAA,CAAa,CAAC,EAH3E6C,CAIX,CAIO,SAASE,EAAQ,CACtB,UAAAV,EAAY,GACZ,OAAAjC,EAASH,EAAO,eAChB,YAAAD,EAAcC,EAAO,YACvB,EAII,GAAsC,CACxC,MAAMmB,EAAMf,EAAkB,CAAE,IAAKc,EAAS,KAAM,CAAC,MAAM,EAAG,YAAAnB,EAAa,EACrEgD,EAAO,OAAO,OAAO5B,CAAG,EAE9B,OAAKiB,EAIEW,EAAK,IAAKnC,GAAQD,EAAoB,CAAE,IAAAC,EAAK,OAAAT,EAAQ,YAAAJ,CAAA,CAAa,CAAC,EAHjEgD,CAIX"}
1
+ {"version":3,"file":"dev-dict.min.js","sources":["../data/locales/index.ts","../src/utils/index.ts","../data/tags/backend.ts","../data/tags/frontend.ts","../data/tags/open_source.ts","../data/tags/index.ts","../data/types/cms.ts","../data/types/framework.ts","../data/types/language.ts","../data/types/library.ts","../data/types/platform.ts","../data/types/runtime_environment.ts","../data/types/index.ts","../data/terms/aws.ts","../data/terms/javascript.ts","../data/terms/node_js.ts","../data/terms/react.ts","../data/terms/typescript.ts","../data/terms/index.ts","../src/common/index.ts","../src/index.ts"],"sourcesContent":["export const LOCALE = {\n EN_US: 'en-US',\n EN_GB: 'en-GB',\n DE_DE: 'de-DE',\n} as const\n","import type { TLocale, TLocaleRecord, TTermTag, TTermTagLocalized, TTermType, TTermTypeLocalized } from '@/types'\nimport { CONFIG } from '@/common'\nimport { LOCALE } from '@data'\n\nexport const interpolateValue = ({\n obj,\n value,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n obj: TLocaleRecord\n value: undefined | string\n useFallback?: boolean\n}): string => {\n if (value && Object.values<string>(LOCALE).includes(value)) {\n return obj[value as TLocale] || (useFallback ? obj[LOCALE.EN_US] : '')\n }\n return value || (useFallback ? obj[LOCALE.EN_US] : '')\n}\n\nexport const interpolateLocaleRecord = ({\n obj,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n obj: TLocaleRecord\n useFallback?: boolean\n}): TLocaleRecord => {\n const locales = Object.values<string>(LOCALE) as TLocale[]\n\n return Object.fromEntries(\n locales.map((locale) => [locale, interpolateValue({ obj, value: obj[locale], useFallback })]),\n ) as TLocaleRecord\n}\n\nexport const interpolateValues = <T extends Record<string, any>>({\n obj,\n keys,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n obj: T\n keys: string[]\n useFallback?: 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], useFallback })])\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 useFallback = CONFIG.USE_FALLBACK,\n}: {\n obj: TLocaleRecord\n locale?: TLocale\n useFallback?: boolean\n}): string => {\n return interpolateValue({ obj, value: obj[locale], useFallback })\n}\n\nexport const getTermTagLocalized = ({\n tag,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n tag: TTermTag\n locale?: TLocale\n useFallback?: boolean\n}): TTermTagLocalized => {\n return {\n id: tag.id,\n name: getValueLocalized({ obj: tag.name, locale, useFallback }),\n }\n}\n\nexport const getTermTypeLocalized = ({\n term,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n term: TTermType\n locale?: TLocale\n useFallback?: boolean\n}): TTermTypeLocalized => {\n return {\n id: term.id,\n name: getValueLocalized({ obj: term.name, locale, useFallback }),\n }\n}\n","import type { TTermTag } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `backend`,\n\n name: {\n [LOCALE.EN_US]: `Backend`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Backend`,\n },\n} as const satisfies TTermTag\n","import type { TTermTag } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `frontend`,\n\n name: {\n [LOCALE.EN_US]: `Frontend`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Frontend`,\n },\n} as const satisfies TTermTag\n","import type { TTermTag } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `open_source`,\n\n name: {\n [LOCALE.EN_US]: `Open Source`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Open Source`,\n },\n} as const satisfies TTermTag\n","import { interpolateValues } from '@/utils'\n\nimport backend from './backend'\nimport frontend from './frontend'\nimport open_source from './open_source'\n\nexport const RAW_TAG = {\n [backend.id]: backend,\n [frontend.id]: frontend,\n [open_source.id]: open_source,\n} as const\n\nexport const TAG = interpolateValues({ obj: RAW_TAG, keys: ['name'], useFallback: false })\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `cms`,\n\n name: {\n [LOCALE.EN_US]: `Content Management System`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Content-Management-System`,\n },\n} as const satisfies TTermType\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `framework`,\n\n name: {\n [LOCALE.EN_US]: `Framework`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Framework`,\n },\n} as const satisfies TTermType\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `language`,\n\n name: {\n [LOCALE.EN_US]: `Language`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Sprache`,\n },\n} as const satisfies TTermType\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `library`,\n\n name: {\n [LOCALE.EN_US]: `Library`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Bibliothek`,\n },\n} as const satisfies TTermType\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `platform`,\n\n name: {\n [LOCALE.EN_US]: `Platform`,\n },\n} as const satisfies TTermType\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `runtime_environment`,\n\n name: {\n [LOCALE.EN_US]: `Runtime Environment`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Laufzeitumgebung`,\n },\n} as const satisfies TTermType\n","import { interpolateValues } from '@/utils'\n\nimport cms from './cms'\nimport framework from './framework'\nimport language from './language'\nimport library from './library'\nimport platform from './platform'\nimport runtime_environment from './runtime_environment'\n\nexport const RAW_TYPE = {\n [cms.id]: cms,\n [framework.id]: framework,\n [language.id]: language,\n [library.id]: library,\n [runtime_environment.id]: runtime_environment,\n [platform.id]: platform,\n} as const\n\nexport const TYPE = interpolateValues({ obj: RAW_TYPE, keys: ['name'], useFallback: false })\n","import type { TTerm } from '@/types'\n\nimport { LOCALE } from '../locales'\nimport { TAG } from '../tags'\nimport { TYPE } from '../types'\n\nexport default {\n id: `aws`,\n\n name: {\n [LOCALE.EN_US]: `AWS`,\n },\n\n label: {\n [LOCALE.EN_US]: ``,\n },\n\n definition: {\n [LOCALE.EN_US]: ``,\n },\n\n type: [TYPE.platform],\n\n tags: [],\n\n links: {\n website: ``,\n },\n} as const satisfies TTerm\n","import type { TTerm } from '@/types'\n\nimport { LOCALE } from '../locales'\nimport { TAG } from '../tags'\nimport { TYPE } from '../types'\n\nexport default {\n id: `javascript`,\n\n name: {\n [LOCALE.EN_US]: `JavaScript`,\n },\n\n label: {\n [LOCALE.EN_US]: `High-Level Programming Language`,\n [LOCALE.DE_DE]: `Hochsprache`,\n },\n\n definition: {\n [LOCALE.EN_US]: ``,\n },\n\n type: [TYPE.language],\n\n tags: [TAG.frontend, TAG.backend, TAG.open_source],\n\n links: {\n website: `https://en.wikipedia.org/wiki/JavaScript`,\n },\n} as const satisfies TTerm\n","import type { TTerm } from '@/types'\n\nimport { LOCALE } from '../locales'\nimport { TAG } from '../tags'\nimport { TYPE } from '../types'\n\nexport default {\n id: `node_js`,\n\n name: {\n [LOCALE.EN_US]: `Node.js`,\n },\n\n label: {\n [LOCALE.EN_US]: `JavaScript Runtime`,\n [LOCALE.DE_DE]: `JavaScript-Laufzeit`,\n },\n\n definition: {\n [LOCALE.EN_US]: `Node.js is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.`,\n [LOCALE.DE_DE]: `Node.js ist eine kostenlose, Open-Source, plattformübergreifende JavaScript-Laufzeitumgebung, die es Entwicklern ermöglicht, Server, Webanwendungen, Befehlszeilentools und Skripte zu erstellen.`,\n },\n\n type: [TYPE.runtime_environment],\n\n tags: [TAG.backend],\n\n links: {\n website: `https://nodejs.org`,\n },\n} as const satisfies TTerm\n","import type { TTerm } from '@/types'\n\nimport { LOCALE } from '../locales'\nimport { TAG } from '../tags'\nimport { TYPE } from '../types'\n\nexport default {\n id: `react`,\n\n name: {\n [LOCALE.EN_US]: `React`,\n },\n\n label: {\n [LOCALE.EN_US]: `JavaScript Library`,\n [LOCALE.DE_DE]: `JavaScript-Bibliothek`,\n },\n\n definition: {\n [LOCALE.EN_US]: `A JavaScript library for building component-based user interfaces.`,\n [LOCALE.DE_DE]: `Eine JavaScript-Bibliothek zum Erstellen komponentenbasierter Benutzeroberflächen.`,\n },\n\n type: [TYPE.library],\n\n tags: [TAG.frontend, TAG.backend],\n\n links: {\n website: `https://react.dev`,\n },\n} as const satisfies TTerm\n","import type { TTerm } from '@/types'\n\nimport { LOCALE } from '../locales'\nimport { TAG } from '../tags'\nimport { TYPE } from '../types'\n\nexport default {\n id: `typescript`,\n\n name: {\n [LOCALE.EN_US]: `TypeScript`,\n },\n\n label: {\n [LOCALE.EN_US]: `High-Level Programming Language`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Hochsprache`,\n },\n\n definition: {\n [LOCALE.EN_US]: `TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `TypeScript ist eine stark typisierte Programmiersprache, die auf JavaScript aufbaut und Ihnen bei jeder Größenordnung bessere Werkzeuge bietet.`,\n },\n\n type: [TYPE.language],\n\n tags: [TAG.frontend, TAG.backend, TAG.open_source],\n\n links: {\n website: `https://www.typescriptlang.org`,\n },\n} as const satisfies TTerm\n","import { interpolateValues } from '@/utils'\n\nimport aws from './aws'\nimport javascript from './javascript'\nimport node_js from './node_js'\nimport react from './react'\nimport typescript from './typescript'\n\nexport const RAW_TERM = {\n [node_js.id]: node_js,\n [react.id]: react,\n [typescript.id]: typescript,\n [javascript.id]: javascript,\n [aws.id]: aws,\n} as const\n\nexport const TERM = interpolateValues({ obj: RAW_TERM, keys: ['name', 'label', 'definition'], useFallback: false })\n","import { LOCALE } from '@data'\n\nexport const MISC = {} as const\n\nexport const CONFIG = {\n DEFAULT_LOCALE: LOCALE.EN_US,\n USE_FALLBACK: true,\n} as const\n","import type {\n TDevDict,\n TDevDictLocalized,\n TLocale,\n TTerm,\n TTermId,\n TTermLocalized,\n TTermTag,\n TTermTagLocalized,\n TTermType,\n TTermTypeLocalized,\n} from '@/types'\nimport { CONFIG } from '@/common'\nimport { getTermTagLocalized, getTermTypeLocalized, getValueLocalized, interpolateValues } from '@/utils'\nimport { RAW_TAG, RAW_TERM, RAW_TYPE } from '@data'\n\n/**\n * NB: The `useFallback` param only works when `localized` is `true`. This is by design.\n */\n\nexport function getTerm(params: { id: TTermId; localized: false }): TTerm\nexport function getTerm(params: {\n id: TTermId\n localized?: true\n locale?: TLocale\n useFallback?: boolean\n}): TTermLocalized\nexport function getTerm({\n id,\n localized = true,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n id: TTermId\n localized?: boolean\n locale?: TLocale\n useFallback?: boolean\n}): TTerm | TTermLocalized {\n // We do not need a null check here because TTermId only allows valid IDs\n const TERM = interpolateValues({ obj: RAW_TERM, keys: ['name', 'label', 'definition'], useFallback })\n const term = TERM[id]\n\n if (!localized) {\n return term\n }\n\n return {\n ...term,\n name: getValueLocalized({ obj: term.name, locale, useFallback }),\n label: getValueLocalized({ obj: term.label, locale, useFallback }),\n definition: getValueLocalized({ obj: term.definition, locale, useFallback }),\n type: term.type.map((value) => getTermTypeLocalized({ term: value, locale, useFallback })),\n tags: term.tags.map((value) => getTermTagLocalized({ tag: value, locale, useFallback })),\n }\n}\n\nexport function getTerms(params?: { localized: false; useFallback?: boolean }): TTerm[]\nexport function getTerms(params?: { localized?: true; locale?: TLocale; useFallback?: boolean }): TTermLocalized[]\nexport function getTerms({\n localized = true,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n localized?: boolean\n locale?: TLocale\n useFallback?: boolean\n} = {}): TTerm[] | TTermLocalized[] {\n const TERM = interpolateValues({ obj: RAW_TERM, keys: ['name', 'label', 'definition'], useFallback })\n const terms = Object.values(TERM)\n\n if (!localized) {\n return terms\n }\n\n return terms.map((term) => getTerm({ id: term.id, locale, useFallback }))\n}\n\nexport function getDict(params?: { localized: false; useFallback?: boolean }): TDevDict\nexport function getDict(params?: { localized?: true; locale?: TLocale; useFallback?: boolean }): TDevDictLocalized\nexport function getDict({\n localized = true,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n localized?: boolean\n locale?: TLocale\n useFallback?: boolean\n} = {}): TDevDict | TDevDictLocalized {\n const TERM = interpolateValues({ obj: RAW_TERM, keys: ['name', 'label', 'definition'], useFallback })\n\n if (!localized) {\n return TERM as TDevDict\n }\n\n const dict = {} as TDevDictLocalized\n\n for (const [key, term] of Object.entries(TERM)) {\n const localizedTerm = getTerm({ id: term.id, locale, useFallback })\n dict[key as TTermId] = localizedTerm\n }\n\n return dict\n}\n\nexport function getTypes(params?: { localized: false; useFallback?: boolean }): TTermType[]\nexport function getTypes(params?: { localized?: true; locale?: TLocale; useFallback?: boolean }): TTermTypeLocalized[]\nexport function getTypes({\n localized = true,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n localized?: boolean\n locale?: TLocale\n useFallback?: boolean\n} = {}): TTermType[] | TTermTypeLocalized[] {\n const TYPE = interpolateValues({ obj: RAW_TYPE, keys: ['name'], useFallback })\n const types = Object.values(TYPE)\n\n if (!localized) {\n return types\n }\n\n return types.map((type) => getTermTypeLocalized({ term: type, locale, useFallback }))\n}\n\nexport function getTags(params?: { localized: false; useFallback?: boolean }): TTermTag[]\nexport function getTags(params?: { localized?: true; locale?: TLocale; useFallback?: boolean }): TTermTagLocalized[]\nexport function getTags({\n localized = true,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n localized?: boolean\n locale?: TLocale\n useFallback?: boolean\n} = {}): TTermTag[] | TTermTagLocalized[] {\n const TAG = interpolateValues({ obj: RAW_TAG, keys: ['name'], useFallback })\n const tags = Object.values(TAG)\n\n if (!localized) {\n return tags\n }\n\n return tags.map((tag) => getTermTagLocalized({ tag, locale, useFallback }))\n}\n"],"names":["LOCALE","interpolateValue","obj","value","useFallback","CONFIG","interpolateLocaleRecord","locales","locale","interpolateValues","keys","itemKey","item","interpolatedFields","key","getValueLocalized","getTermTagLocalized","tag","getTermTypeLocalized","term","backend","frontend","open_source","RAW_TAG","TAG","cms","framework","language","library","platform","runtime_environment","RAW_TYPE","TYPE","aws","javascript","node_js","react","typescript","RAW_TERM","getTerm","id","localized","getTerms","TERM","terms","getDict","dict","localizedTerm","getTypes","types","type","getTags","tags"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -280,11 +280,9 @@ declare const TERM: {
280
280
  readonly "en-US": "";
281
281
  };
282
282
  readonly type: [{
283
- readonly id: "runtime_environment";
283
+ readonly id: "platform";
284
284
  readonly name: {
285
- readonly "en-US": "Runtime Environment";
286
- readonly "en-GB": "en-US";
287
- readonly "de-DE": "Laufzeitumgebung";
285
+ readonly "en-US": "Platform";
288
286
  };
289
287
  }];
290
288
  readonly tags: [];
@@ -392,11 +390,9 @@ declare const TYPE: {
392
390
  };
393
391
  };
394
392
  readonly platform: {
395
- readonly id: "runtime_environment";
393
+ readonly id: "platform";
396
394
  readonly name: {
397
- readonly "en-US": "Runtime Environment";
398
- readonly "en-GB": "en-US";
399
- readonly "de-DE": "Laufzeitumgebung";
395
+ readonly "en-US": "Platform";
400
396
  };
401
397
  };
402
398
  };
package/dist/index.js CHANGED
@@ -2,17 +2,17 @@ const e = {
2
2
  EN_US: "en-US",
3
3
  EN_GB: "en-GB",
4
4
  DE_DE: "de-DE"
5
- }, B = ({
5
+ }, j = ({
6
6
  obj: t,
7
7
  value: i,
8
8
  useFallback: n = a.USE_FALLBACK
9
- }) => i && Object.values(e).includes(i) ? t[i] || (n ? t[e.EN_US] : "") : i || (n ? t[e.EN_US] : ""), F = ({
9
+ }) => i && Object.values(e).includes(i) ? t[i] || (n ? t[e.EN_US] : "") : i || (n ? t[e.EN_US] : ""), w = ({
10
10
  obj: t,
11
11
  useFallback: i = a.USE_FALLBACK
12
12
  }) => {
13
13
  const n = Object.values(e);
14
14
  return Object.fromEntries(
15
- n.map((r) => [r, B({ obj: t, value: t[r], useFallback: i })])
15
+ n.map((r) => [r, j({ obj: t, value: t[r], useFallback: i })])
16
16
  );
17
17
  }, _ = ({
18
18
  obj: t,
@@ -20,21 +20,21 @@ const e = {
20
20
  useFallback: n = a.USE_FALLBACK
21
21
  }) => Object.fromEntries(
22
22
  Object.entries(t).map(([r, o]) => {
23
- const s = i.filter((E) => E in o && typeof o[E] == "object").map((E) => [E, F({ obj: o[E], useFallback: n })]);
23
+ const s = i.filter((E) => E in o && typeof o[E] == "object").map((E) => [E, w({ obj: o[E], useFallback: n })]);
24
24
  return [r, { ...o, ...Object.fromEntries(s) }];
25
25
  })
26
26
  ), d = ({
27
27
  obj: t,
28
28
  locale: i = a.DEFAULT_LOCALE,
29
29
  useFallback: n = a.USE_FALLBACK
30
- }) => B({ obj: t, value: t[i], useFallback: n }), j = ({
30
+ }) => j({ obj: t, value: t[i], useFallback: n }), v = ({
31
31
  tag: t,
32
32
  locale: i = a.DEFAULT_LOCALE,
33
33
  useFallback: n = a.USE_FALLBACK
34
34
  }) => ({
35
35
  id: t.id,
36
36
  name: d({ obj: t.name, locale: i, useFallback: n })
37
- }), v = ({
37
+ }), k = ({
38
38
  term: t,
39
39
  locale: i = a.DEFAULT_LOCALE,
40
40
  useFallback: n = a.USE_FALLBACK
@@ -48,69 +48,72 @@ const e = {
48
48
  [e.EN_GB]: e.EN_US,
49
49
  [e.DE_DE]: "Backend"
50
50
  }
51
- }, l = {
51
+ }, u = {
52
52
  id: "frontend",
53
53
  name: {
54
54
  [e.EN_US]: "Frontend",
55
55
  [e.EN_GB]: e.EN_US,
56
56
  [e.DE_DE]: "Frontend"
57
57
  }
58
- }, L = {
58
+ }, l = {
59
59
  id: "open_source",
60
60
  name: {
61
61
  [e.EN_US]: "Open Source",
62
62
  [e.EN_GB]: e.EN_US,
63
63
  [e.DE_DE]: "Open Source"
64
64
  }
65
- }, k = {
65
+ }, C = {
66
66
  [S.id]: S,
67
- [l.id]: l,
68
- [L.id]: L
69
- }, c = _({ obj: k, keys: ["name"], useFallback: !1 }), g = {
67
+ [u.id]: u,
68
+ [l.id]: l
69
+ }, c = _({ obj: C, keys: ["name"], useFallback: !1 }), L = {
70
70
  id: "cms",
71
71
  name: {
72
72
  [e.EN_US]: "Content Management System",
73
73
  [e.EN_GB]: e.EN_US,
74
74
  [e.DE_DE]: "Content-Management-System"
75
75
  }
76
- }, b = {
76
+ }, g = {
77
77
  id: "framework",
78
78
  name: {
79
79
  [e.EN_US]: "Framework",
80
80
  [e.EN_GB]: e.EN_US,
81
81
  [e.DE_DE]: "Framework"
82
82
  }
83
- }, U = {
83
+ }, b = {
84
84
  id: "language",
85
85
  name: {
86
86
  [e.EN_US]: "Language",
87
87
  [e.EN_GB]: e.EN_US,
88
88
  [e.DE_DE]: "Sprache"
89
89
  }
90
- }, f = {
90
+ }, U = {
91
91
  id: "library",
92
92
  name: {
93
93
  [e.EN_US]: "Library",
94
94
  [e.EN_GB]: e.EN_US,
95
95
  [e.DE_DE]: "Bibliothek"
96
96
  }
97
- }, w = {
98
- id: "platform"
99
- }, u = {
97
+ }, f = {
98
+ id: "platform",
99
+ name: {
100
+ [e.EN_US]: "Platform"
101
+ }
102
+ }, N = {
100
103
  id: "runtime_environment",
101
104
  name: {
102
105
  [e.EN_US]: "Runtime Environment",
103
106
  [e.EN_GB]: e.EN_US,
104
107
  [e.DE_DE]: "Laufzeitumgebung"
105
108
  }
106
- }, C = {
109
+ }, O = {
110
+ [L.id]: L,
107
111
  [g.id]: g,
108
112
  [b.id]: b,
109
113
  [U.id]: U,
110
- [f.id]: f,
111
- [u.id]: u,
112
- [w.id]: u
113
- }, m = _({ obj: C, keys: ["name"], useFallback: !1 }), N = {
114
+ [N.id]: N,
115
+ [f.id]: f
116
+ }, m = _({ obj: O, keys: ["name"], useFallback: !1 }), A = {
114
117
  id: "aws",
115
118
  name: {
116
119
  [e.EN_US]: "AWS"
@@ -126,7 +129,7 @@ const e = {
126
129
  links: {
127
130
  website: ""
128
131
  }
129
- }, A = {
132
+ }, D = {
130
133
  id: "javascript",
131
134
  name: {
132
135
  [e.EN_US]: "JavaScript"
@@ -143,7 +146,7 @@ const e = {
143
146
  links: {
144
147
  website: "https://en.wikipedia.org/wiki/JavaScript"
145
148
  }
146
- }, D = {
149
+ }, y = {
147
150
  id: "node_js",
148
151
  name: {
149
152
  [e.EN_US]: "Node.js"
@@ -161,7 +164,7 @@ const e = {
161
164
  links: {
162
165
  website: "https://nodejs.org"
163
166
  }
164
- }, y = {
167
+ }, T = {
165
168
  id: "react",
166
169
  name: {
167
170
  [e.EN_US]: "React"
@@ -179,7 +182,7 @@ const e = {
179
182
  links: {
180
183
  website: "https://react.dev"
181
184
  }
182
- }, T = {
185
+ }, B = {
183
186
  id: "typescript",
184
187
  name: {
185
188
  [e.EN_US]: "TypeScript"
@@ -200,18 +203,18 @@ const e = {
200
203
  website: "https://www.typescriptlang.org"
201
204
  }
202
205
  }, p = {
203
- [D.id]: D,
204
206
  [y.id]: y,
205
207
  [T.id]: T,
206
- [A.id]: A,
207
- [N.id]: N
208
+ [B.id]: B,
209
+ [D.id]: D,
210
+ [A.id]: A
208
211
  };
209
212
  _({ obj: p, keys: ["name", "label", "definition"], useFallback: !1 });
210
213
  const a = {
211
214
  DEFAULT_LOCALE: e.EN_US,
212
215
  USE_FALLBACK: !0
213
216
  };
214
- function O({
217
+ function h({
215
218
  id: t,
216
219
  localized: i = !0,
217
220
  locale: n = a.DEFAULT_LOCALE,
@@ -223,8 +226,8 @@ function O({
223
226
  name: d({ obj: s.name, locale: n, useFallback: r }),
224
227
  label: d({ obj: s.label, locale: n, useFallback: r }),
225
228
  definition: d({ obj: s.definition, locale: n, useFallback: r }),
226
- type: s.type.map((E) => v({ term: E, locale: n, useFallback: r })),
227
- tags: s.tags.map((E) => j({ tag: E, locale: n, useFallback: r }))
229
+ type: s.type.map((E) => k({ term: E, locale: n, useFallback: r })),
230
+ tags: s.tags.map((E) => v({ tag: E, locale: n, useFallback: r }))
228
231
  } : s;
229
232
  }
230
233
  function G({
@@ -233,7 +236,7 @@ function G({
233
236
  useFallback: n = a.USE_FALLBACK
234
237
  } = {}) {
235
238
  const r = _({ obj: p, keys: ["name", "label", "definition"], useFallback: n }), o = Object.values(r);
236
- return t ? o.map((s) => O({ id: s.id, locale: i, useFallback: n })) : o;
239
+ return t ? o.map((s) => h({ id: s.id, locale: i, useFallback: n })) : o;
237
240
  }
238
241
  function z({
239
242
  localized: t = !0,
@@ -245,8 +248,8 @@ function z({
245
248
  return r;
246
249
  const o = {};
247
250
  for (const [s, E] of Object.entries(r)) {
248
- const h = O({ id: E.id, locale: i, useFallback: n });
249
- o[s] = h;
251
+ const F = h({ id: E.id, locale: i, useFallback: n });
252
+ o[s] = F;
250
253
  }
251
254
  return o;
252
255
  }
@@ -255,21 +258,21 @@ function J({
255
258
  locale: i = a.DEFAULT_LOCALE,
256
259
  useFallback: n = a.USE_FALLBACK
257
260
  } = {}) {
258
- const r = _({ obj: C, keys: ["name"], useFallback: n }), o = Object.values(r);
259
- return t ? o.map((s) => v({ term: s, locale: i, useFallback: n })) : o;
261
+ const r = _({ obj: O, keys: ["name"], useFallback: n }), o = Object.values(r);
262
+ return t ? o.map((s) => k({ term: s, locale: i, useFallback: n })) : o;
260
263
  }
261
264
  function K({
262
265
  localized: t = !0,
263
266
  locale: i = a.DEFAULT_LOCALE,
264
267
  useFallback: n = a.USE_FALLBACK
265
268
  } = {}) {
266
- const r = _({ obj: k, keys: ["name"], useFallback: n }), o = Object.values(r);
267
- return t ? o.map((s) => j({ tag: s, locale: i, useFallback: n })) : o;
269
+ const r = _({ obj: C, keys: ["name"], useFallback: n }), o = Object.values(r);
270
+ return t ? o.map((s) => v({ tag: s, locale: i, useFallback: n })) : o;
268
271
  }
269
272
  export {
270
273
  z as getDict,
271
274
  K as getTags,
272
- O as getTerm,
275
+ h as getTerm,
273
276
  G as getTerms,
274
277
  J as getTypes
275
278
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../data/locales/index.ts","../src/utils/index.ts","../data/tags/backend.ts","../data/tags/frontend.ts","../data/tags/open_source.ts","../data/tags/index.ts","../data/types/cms.ts","../data/types/framework.ts","../data/types/language.ts","../data/types/library.ts","../data/types/platform.ts","../data/types/runtime_environment.ts","../data/types/index.ts","../data/terms/aws.ts","../data/terms/javascript.ts","../data/terms/node_js.ts","../data/terms/react.ts","../data/terms/typescript.ts","../data/terms/index.ts","../src/common/index.ts","../src/index.ts"],"sourcesContent":["export const LOCALE = {\n EN_US: 'en-US',\n EN_GB: 'en-GB',\n DE_DE: 'de-DE',\n} as const\n","import type { TLocale, TLocaleRecord, TTermTag, TTermTagLocalized, TTermType, TTermTypeLocalized } from '@/types'\nimport { CONFIG } from '@/common'\nimport { LOCALE } from '@data'\n\nexport const interpolateValue = ({\n obj,\n value,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n obj: TLocaleRecord\n value: undefined | string\n useFallback?: boolean\n}): string => {\n if (value && Object.values<string>(LOCALE).includes(value)) {\n return obj[value as TLocale] || (useFallback ? obj[LOCALE.EN_US] : '')\n }\n return value || (useFallback ? obj[LOCALE.EN_US] : '')\n}\n\nexport const interpolateLocaleRecord = ({\n obj,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n obj: TLocaleRecord\n useFallback?: boolean\n}): TLocaleRecord => {\n const locales = Object.values<string>(LOCALE) as TLocale[]\n\n return Object.fromEntries(\n locales.map((locale) => [locale, interpolateValue({ obj, value: obj[locale], useFallback })]),\n ) as TLocaleRecord\n}\n\nexport const interpolateValues = <T extends Record<string, any>>({\n obj,\n keys,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n obj: T\n keys: string[]\n useFallback?: 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], useFallback })])\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 useFallback = CONFIG.USE_FALLBACK,\n}: {\n obj: TLocaleRecord\n locale?: TLocale\n useFallback?: boolean\n}): string => {\n return interpolateValue({ obj, value: obj[locale], useFallback })\n}\n\nexport const getTermTagLocalized = ({\n tag,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n tag: TTermTag\n locale?: TLocale\n useFallback?: boolean\n}): TTermTagLocalized => {\n return {\n id: tag.id,\n name: getValueLocalized({ obj: tag.name, locale, useFallback }),\n }\n}\n\nexport const getTermTypeLocalized = ({\n term,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n term: TTermType\n locale?: TLocale\n useFallback?: boolean\n}): TTermTypeLocalized => {\n return {\n id: term.id,\n name: getValueLocalized({ obj: term.name, locale, useFallback }),\n }\n}\n","import type { TTermTag } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `backend`,\n\n name: {\n [LOCALE.EN_US]: `Backend`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Backend`,\n },\n} as const satisfies TTermTag\n","import type { TTermTag } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `frontend`,\n\n name: {\n [LOCALE.EN_US]: `Frontend`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Frontend`,\n },\n} as const satisfies TTermTag\n","import type { TTermTag } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `open_source`,\n\n name: {\n [LOCALE.EN_US]: `Open Source`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Open Source`,\n },\n} as const satisfies TTermTag\n","import { interpolateValues } from '@/utils'\n\nimport backend from './backend'\nimport frontend from './frontend'\nimport open_source from './open_source'\n\nexport const RAW_TAG = {\n [backend.id]: backend,\n [frontend.id]: frontend,\n [open_source.id]: open_source,\n} as const\n\nexport const TAG = interpolateValues({ obj: RAW_TAG, keys: ['name'], useFallback: false })\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `cms`,\n\n name: {\n [LOCALE.EN_US]: `Content Management System`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Content-Management-System`,\n },\n} as const satisfies TTermType\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `framework`,\n\n name: {\n [LOCALE.EN_US]: `Framework`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Framework`,\n },\n} as const satisfies TTermType\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `language`,\n\n name: {\n [LOCALE.EN_US]: `Language`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Sprache`,\n },\n} as const satisfies TTermType\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `library`,\n\n name: {\n [LOCALE.EN_US]: `Library`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Bibliothek`,\n },\n} as const satisfies TTermType\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `platform`,\n\n name: {\n [LOCALE.EN_US]: `Platform`,\n },\n} as const satisfies TTermType\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `runtime_environment`,\n\n name: {\n [LOCALE.EN_US]: `Runtime Environment`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Laufzeitumgebung`,\n },\n} as const satisfies TTermType\n","import { interpolateValues } from '@/utils'\n\nimport cms from './cms'\nimport framework from './framework'\nimport language from './language'\nimport library from './library'\nimport platform from './platform'\nimport runtime_environment from './runtime_environment'\n\nexport const RAW_TYPE = {\n [cms.id]: cms,\n [framework.id]: framework,\n [language.id]: language,\n [library.id]: library,\n [runtime_environment.id]: runtime_environment,\n [platform.id]: runtime_environment,\n} as const\n\nexport const TYPE = interpolateValues({ obj: RAW_TYPE, keys: ['name'], useFallback: false })\n","import type { TTerm } from '@/types'\n\nimport { LOCALE } from '../locales'\nimport { TAG } from '../tags'\nimport { TYPE } from '../types'\n\nexport default {\n id: `aws`,\n\n name: {\n [LOCALE.EN_US]: `AWS`,\n },\n\n label: {\n [LOCALE.EN_US]: ``,\n },\n\n definition: {\n [LOCALE.EN_US]: ``,\n },\n\n type: [TYPE.platform],\n\n tags: [],\n\n links: {\n website: ``,\n },\n} as const satisfies TTerm\n","import type { TTerm } from '@/types'\n\nimport { LOCALE } from '../locales'\nimport { TAG } from '../tags'\nimport { TYPE } from '../types'\n\nexport default {\n id: `javascript`,\n\n name: {\n [LOCALE.EN_US]: `JavaScript`,\n },\n\n label: {\n [LOCALE.EN_US]: `High-Level Programming Language`,\n [LOCALE.DE_DE]: `Hochsprache`,\n },\n\n definition: {\n [LOCALE.EN_US]: ``,\n },\n\n type: [TYPE.language],\n\n tags: [TAG.frontend, TAG.backend, TAG.open_source],\n\n links: {\n website: `https://en.wikipedia.org/wiki/JavaScript`,\n },\n} as const satisfies TTerm\n","import type { TTerm } from '@/types'\n\nimport { LOCALE } from '../locales'\nimport { TAG } from '../tags'\nimport { TYPE } from '../types'\n\nexport default {\n id: `node_js`,\n\n name: {\n [LOCALE.EN_US]: `Node.js`,\n },\n\n label: {\n [LOCALE.EN_US]: `JavaScript Runtime`,\n [LOCALE.DE_DE]: `JavaScript-Laufzeit`,\n },\n\n definition: {\n [LOCALE.EN_US]: `Node.js is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.`,\n [LOCALE.DE_DE]: `Node.js ist eine kostenlose, Open-Source, plattformübergreifende JavaScript-Laufzeitumgebung, die es Entwicklern ermöglicht, Server, Webanwendungen, Befehlszeilentools und Skripte zu erstellen.`,\n },\n\n type: [TYPE.runtime_environment],\n\n tags: [TAG.backend],\n\n links: {\n website: `https://nodejs.org`,\n },\n} as const satisfies TTerm\n","import type { TTerm } from '@/types'\n\nimport { LOCALE } from '../locales'\nimport { TAG } from '../tags'\nimport { TYPE } from '../types'\n\nexport default {\n id: `react`,\n\n name: {\n [LOCALE.EN_US]: `React`,\n },\n\n label: {\n [LOCALE.EN_US]: `JavaScript Library`,\n [LOCALE.DE_DE]: `JavaScript-Bibliothek`,\n },\n\n definition: {\n [LOCALE.EN_US]: `A JavaScript library for building component-based user interfaces.`,\n [LOCALE.DE_DE]: `Eine JavaScript-Bibliothek zum Erstellen komponentenbasierter Benutzeroberflächen.`,\n },\n\n type: [TYPE.library],\n\n tags: [TAG.frontend, TAG.backend],\n\n links: {\n website: `https://react.dev`,\n },\n} as const satisfies TTerm\n","import type { TTerm } from '@/types'\n\nimport { LOCALE } from '../locales'\nimport { TAG } from '../tags'\nimport { TYPE } from '../types'\n\nexport default {\n id: `typescript`,\n\n name: {\n [LOCALE.EN_US]: `TypeScript`,\n },\n\n label: {\n [LOCALE.EN_US]: `High-Level Programming Language`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Hochsprache`,\n },\n\n definition: {\n [LOCALE.EN_US]: `TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `TypeScript ist eine stark typisierte Programmiersprache, die auf JavaScript aufbaut und Ihnen bei jeder Größenordnung bessere Werkzeuge bietet.`,\n },\n\n type: [TYPE.language],\n\n tags: [TAG.frontend, TAG.backend, TAG.open_source],\n\n links: {\n website: `https://www.typescriptlang.org`,\n },\n} as const satisfies TTerm\n","import { interpolateValues } from '@/utils'\n\nimport aws from './aws'\nimport javascript from './javascript'\nimport node_js from './node_js'\nimport react from './react'\nimport typescript from './typescript'\n\nexport const RAW_TERM = {\n [node_js.id]: node_js,\n [react.id]: react,\n [typescript.id]: typescript,\n [javascript.id]: javascript,\n [aws.id]: aws,\n} as const\n\nexport const TERM = interpolateValues({ obj: RAW_TERM, keys: ['name', 'label', 'definition'], useFallback: false })\n","import { LOCALE } from '@data'\n\nexport const MISC = {} as const\n\nexport const CONFIG = {\n DEFAULT_LOCALE: LOCALE.EN_US,\n USE_FALLBACK: true,\n} as const\n","import type {\n TDevDict,\n TDevDictLocalized,\n TLocale,\n TTerm,\n TTermId,\n TTermLocalized,\n TTermTag,\n TTermTagLocalized,\n TTermType,\n TTermTypeLocalized,\n} from '@/types'\nimport { CONFIG } from '@/common'\nimport { getTermTagLocalized, getTermTypeLocalized, getValueLocalized, interpolateValues } from '@/utils'\nimport { RAW_TAG, RAW_TERM, RAW_TYPE } from '@data'\n\n/**\n * NB: The `useFallback` param only works when `localized` is `true`. This is by design.\n */\n\nexport function getTerm(params: { id: TTermId; localized: false }): TTerm\nexport function getTerm(params: {\n id: TTermId\n localized?: true\n locale?: TLocale\n useFallback?: boolean\n}): TTermLocalized\nexport function getTerm({\n id,\n localized = true,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n id: TTermId\n localized?: boolean\n locale?: TLocale\n useFallback?: boolean\n}): TTerm | TTermLocalized {\n // We do not need a null check here because TTermId only allows valid IDs\n const TERM = interpolateValues({ obj: RAW_TERM, keys: ['name', 'label', 'definition'], useFallback })\n const term = TERM[id]\n\n if (!localized) {\n return term\n }\n\n return {\n ...term,\n name: getValueLocalized({ obj: term.name, locale, useFallback }),\n label: getValueLocalized({ obj: term.label, locale, useFallback }),\n definition: getValueLocalized({ obj: term.definition, locale, useFallback }),\n type: term.type.map((value) => getTermTypeLocalized({ term: value, locale, useFallback })),\n tags: term.tags.map((value) => getTermTagLocalized({ tag: value, locale, useFallback })),\n }\n}\n\nexport function getTerms(params?: { localized: false; useFallback?: boolean }): TTerm[]\nexport function getTerms(params?: { localized?: true; locale?: TLocale; useFallback?: boolean }): TTermLocalized[]\nexport function getTerms({\n localized = true,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n localized?: boolean\n locale?: TLocale\n useFallback?: boolean\n} = {}): TTerm[] | TTermLocalized[] {\n const TERM = interpolateValues({ obj: RAW_TERM, keys: ['name', 'label', 'definition'], useFallback })\n const terms = Object.values(TERM)\n\n if (!localized) {\n return terms\n }\n\n return terms.map((term) => getTerm({ id: term.id, locale, useFallback }))\n}\n\nexport function getDict(params?: { localized: false; useFallback?: boolean }): TDevDict\nexport function getDict(params?: { localized?: true; locale?: TLocale; useFallback?: boolean }): TDevDictLocalized\nexport function getDict({\n localized = true,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n localized?: boolean\n locale?: TLocale\n useFallback?: boolean\n} = {}): TDevDict | TDevDictLocalized {\n const TERM = interpolateValues({ obj: RAW_TERM, keys: ['name', 'label', 'definition'], useFallback })\n\n if (!localized) {\n return TERM as TDevDict\n }\n\n const dict = {} as TDevDictLocalized\n\n for (const [key, term] of Object.entries(TERM)) {\n const localizedTerm = getTerm({ id: term.id, locale, useFallback })\n dict[key as TTermId] = localizedTerm\n }\n\n return dict\n}\n\nexport function getTypes(params?: { localized: false; useFallback?: boolean }): TTermType[]\nexport function getTypes(params?: { localized?: true; locale?: TLocale; useFallback?: boolean }): TTermTypeLocalized[]\nexport function getTypes({\n localized = true,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n localized?: boolean\n locale?: TLocale\n useFallback?: boolean\n} = {}): TTermType[] | TTermTypeLocalized[] {\n const TYPE = interpolateValues({ obj: RAW_TYPE, keys: ['name'], useFallback })\n const types = Object.values(TYPE)\n\n if (!localized) {\n return types\n }\n\n return types.map((type) => getTermTypeLocalized({ term: type, locale, useFallback }))\n}\n\nexport function getTags(params?: { localized: false; useFallback?: boolean }): TTermTag[]\nexport function getTags(params?: { localized?: true; locale?: TLocale; useFallback?: boolean }): TTermTagLocalized[]\nexport function getTags({\n localized = true,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n localized?: boolean\n locale?: TLocale\n useFallback?: boolean\n} = {}): TTermTag[] | TTermTagLocalized[] {\n const TAG = interpolateValues({ obj: RAW_TAG, keys: ['name'], useFallback })\n const tags = Object.values(TAG)\n\n if (!localized) {\n return tags\n }\n\n return tags.map((tag) => getTermTagLocalized({ tag, locale, useFallback }))\n}\n"],"names":["LOCALE","interpolateValue","obj","value","useFallback","CONFIG","interpolateLocaleRecord","locales","locale","interpolateValues","keys","itemKey","item","interpolatedFields","key","getValueLocalized","getTermTagLocalized","tag","getTermTypeLocalized","term","backend","frontend","open_source","RAW_TAG","TAG","cms","framework","language","library","platform","runtime_environment","RAW_TYPE","TYPE","aws","javascript","node_js","react","typescript","RAW_TERM","getTerm","id","localized","getTerms","TERM","terms","getDict","dict","localizedTerm","getTypes","types","type","getTags","tags"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../data/locales/index.ts","../src/utils/index.ts","../data/tags/backend.ts","../data/tags/frontend.ts","../data/tags/open_source.ts","../data/tags/index.ts","../data/types/cms.ts","../data/types/framework.ts","../data/types/language.ts","../data/types/library.ts","../data/types/platform.ts","../data/types/runtime_environment.ts","../data/types/index.ts","../data/terms/aws.ts","../data/terms/javascript.ts","../data/terms/node_js.ts","../data/terms/react.ts","../data/terms/typescript.ts","../data/terms/index.ts","../src/common/index.ts","../src/index.ts"],"sourcesContent":["export const LOCALE = {\n EN_US: 'en-US',\n EN_GB: 'en-GB',\n DE_DE: 'de-DE',\n} as const\n","import type { TLocale, TLocaleRecord, TTermTag, TTermTagLocalized, TTermType, TTermTypeLocalized } from '@/types'\nimport { CONFIG } from '@/common'\nimport { LOCALE } from '@data'\n\nexport const interpolateValue = ({\n obj,\n value,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n obj: TLocaleRecord\n value: undefined | string\n useFallback?: boolean\n}): string => {\n if (value && Object.values<string>(LOCALE).includes(value)) {\n return obj[value as TLocale] || (useFallback ? obj[LOCALE.EN_US] : '')\n }\n return value || (useFallback ? obj[LOCALE.EN_US] : '')\n}\n\nexport const interpolateLocaleRecord = ({\n obj,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n obj: TLocaleRecord\n useFallback?: boolean\n}): TLocaleRecord => {\n const locales = Object.values<string>(LOCALE) as TLocale[]\n\n return Object.fromEntries(\n locales.map((locale) => [locale, interpolateValue({ obj, value: obj[locale], useFallback })]),\n ) as TLocaleRecord\n}\n\nexport const interpolateValues = <T extends Record<string, any>>({\n obj,\n keys,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n obj: T\n keys: string[]\n useFallback?: 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], useFallback })])\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 useFallback = CONFIG.USE_FALLBACK,\n}: {\n obj: TLocaleRecord\n locale?: TLocale\n useFallback?: boolean\n}): string => {\n return interpolateValue({ obj, value: obj[locale], useFallback })\n}\n\nexport const getTermTagLocalized = ({\n tag,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n tag: TTermTag\n locale?: TLocale\n useFallback?: boolean\n}): TTermTagLocalized => {\n return {\n id: tag.id,\n name: getValueLocalized({ obj: tag.name, locale, useFallback }),\n }\n}\n\nexport const getTermTypeLocalized = ({\n term,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n term: TTermType\n locale?: TLocale\n useFallback?: boolean\n}): TTermTypeLocalized => {\n return {\n id: term.id,\n name: getValueLocalized({ obj: term.name, locale, useFallback }),\n }\n}\n","import type { TTermTag } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `backend`,\n\n name: {\n [LOCALE.EN_US]: `Backend`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Backend`,\n },\n} as const satisfies TTermTag\n","import type { TTermTag } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `frontend`,\n\n name: {\n [LOCALE.EN_US]: `Frontend`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Frontend`,\n },\n} as const satisfies TTermTag\n","import type { TTermTag } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `open_source`,\n\n name: {\n [LOCALE.EN_US]: `Open Source`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Open Source`,\n },\n} as const satisfies TTermTag\n","import { interpolateValues } from '@/utils'\n\nimport backend from './backend'\nimport frontend from './frontend'\nimport open_source from './open_source'\n\nexport const RAW_TAG = {\n [backend.id]: backend,\n [frontend.id]: frontend,\n [open_source.id]: open_source,\n} as const\n\nexport const TAG = interpolateValues({ obj: RAW_TAG, keys: ['name'], useFallback: false })\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `cms`,\n\n name: {\n [LOCALE.EN_US]: `Content Management System`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Content-Management-System`,\n },\n} as const satisfies TTermType\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `framework`,\n\n name: {\n [LOCALE.EN_US]: `Framework`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Framework`,\n },\n} as const satisfies TTermType\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `language`,\n\n name: {\n [LOCALE.EN_US]: `Language`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Sprache`,\n },\n} as const satisfies TTermType\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `library`,\n\n name: {\n [LOCALE.EN_US]: `Library`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Bibliothek`,\n },\n} as const satisfies TTermType\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `platform`,\n\n name: {\n [LOCALE.EN_US]: `Platform`,\n },\n} as const satisfies TTermType\n","import type { TTermType } from '@/types'\n\nimport { LOCALE } from '../locales'\n\nexport default {\n id: `runtime_environment`,\n\n name: {\n [LOCALE.EN_US]: `Runtime Environment`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Laufzeitumgebung`,\n },\n} as const satisfies TTermType\n","import { interpolateValues } from '@/utils'\n\nimport cms from './cms'\nimport framework from './framework'\nimport language from './language'\nimport library from './library'\nimport platform from './platform'\nimport runtime_environment from './runtime_environment'\n\nexport const RAW_TYPE = {\n [cms.id]: cms,\n [framework.id]: framework,\n [language.id]: language,\n [library.id]: library,\n [runtime_environment.id]: runtime_environment,\n [platform.id]: platform,\n} as const\n\nexport const TYPE = interpolateValues({ obj: RAW_TYPE, keys: ['name'], useFallback: false })\n","import type { TTerm } from '@/types'\n\nimport { LOCALE } from '../locales'\nimport { TAG } from '../tags'\nimport { TYPE } from '../types'\n\nexport default {\n id: `aws`,\n\n name: {\n [LOCALE.EN_US]: `AWS`,\n },\n\n label: {\n [LOCALE.EN_US]: ``,\n },\n\n definition: {\n [LOCALE.EN_US]: ``,\n },\n\n type: [TYPE.platform],\n\n tags: [],\n\n links: {\n website: ``,\n },\n} as const satisfies TTerm\n","import type { TTerm } from '@/types'\n\nimport { LOCALE } from '../locales'\nimport { TAG } from '../tags'\nimport { TYPE } from '../types'\n\nexport default {\n id: `javascript`,\n\n name: {\n [LOCALE.EN_US]: `JavaScript`,\n },\n\n label: {\n [LOCALE.EN_US]: `High-Level Programming Language`,\n [LOCALE.DE_DE]: `Hochsprache`,\n },\n\n definition: {\n [LOCALE.EN_US]: ``,\n },\n\n type: [TYPE.language],\n\n tags: [TAG.frontend, TAG.backend, TAG.open_source],\n\n links: {\n website: `https://en.wikipedia.org/wiki/JavaScript`,\n },\n} as const satisfies TTerm\n","import type { TTerm } from '@/types'\n\nimport { LOCALE } from '../locales'\nimport { TAG } from '../tags'\nimport { TYPE } from '../types'\n\nexport default {\n id: `node_js`,\n\n name: {\n [LOCALE.EN_US]: `Node.js`,\n },\n\n label: {\n [LOCALE.EN_US]: `JavaScript Runtime`,\n [LOCALE.DE_DE]: `JavaScript-Laufzeit`,\n },\n\n definition: {\n [LOCALE.EN_US]: `Node.js is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.`,\n [LOCALE.DE_DE]: `Node.js ist eine kostenlose, Open-Source, plattformübergreifende JavaScript-Laufzeitumgebung, die es Entwicklern ermöglicht, Server, Webanwendungen, Befehlszeilentools und Skripte zu erstellen.`,\n },\n\n type: [TYPE.runtime_environment],\n\n tags: [TAG.backend],\n\n links: {\n website: `https://nodejs.org`,\n },\n} as const satisfies TTerm\n","import type { TTerm } from '@/types'\n\nimport { LOCALE } from '../locales'\nimport { TAG } from '../tags'\nimport { TYPE } from '../types'\n\nexport default {\n id: `react`,\n\n name: {\n [LOCALE.EN_US]: `React`,\n },\n\n label: {\n [LOCALE.EN_US]: `JavaScript Library`,\n [LOCALE.DE_DE]: `JavaScript-Bibliothek`,\n },\n\n definition: {\n [LOCALE.EN_US]: `A JavaScript library for building component-based user interfaces.`,\n [LOCALE.DE_DE]: `Eine JavaScript-Bibliothek zum Erstellen komponentenbasierter Benutzeroberflächen.`,\n },\n\n type: [TYPE.library],\n\n tags: [TAG.frontend, TAG.backend],\n\n links: {\n website: `https://react.dev`,\n },\n} as const satisfies TTerm\n","import type { TTerm } from '@/types'\n\nimport { LOCALE } from '../locales'\nimport { TAG } from '../tags'\nimport { TYPE } from '../types'\n\nexport default {\n id: `typescript`,\n\n name: {\n [LOCALE.EN_US]: `TypeScript`,\n },\n\n label: {\n [LOCALE.EN_US]: `High-Level Programming Language`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `Hochsprache`,\n },\n\n definition: {\n [LOCALE.EN_US]: `TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.`,\n [LOCALE.EN_GB]: LOCALE.EN_US,\n [LOCALE.DE_DE]: `TypeScript ist eine stark typisierte Programmiersprache, die auf JavaScript aufbaut und Ihnen bei jeder Größenordnung bessere Werkzeuge bietet.`,\n },\n\n type: [TYPE.language],\n\n tags: [TAG.frontend, TAG.backend, TAG.open_source],\n\n links: {\n website: `https://www.typescriptlang.org`,\n },\n} as const satisfies TTerm\n","import { interpolateValues } from '@/utils'\n\nimport aws from './aws'\nimport javascript from './javascript'\nimport node_js from './node_js'\nimport react from './react'\nimport typescript from './typescript'\n\nexport const RAW_TERM = {\n [node_js.id]: node_js,\n [react.id]: react,\n [typescript.id]: typescript,\n [javascript.id]: javascript,\n [aws.id]: aws,\n} as const\n\nexport const TERM = interpolateValues({ obj: RAW_TERM, keys: ['name', 'label', 'definition'], useFallback: false })\n","import { LOCALE } from '@data'\n\nexport const MISC = {} as const\n\nexport const CONFIG = {\n DEFAULT_LOCALE: LOCALE.EN_US,\n USE_FALLBACK: true,\n} as const\n","import type {\n TDevDict,\n TDevDictLocalized,\n TLocale,\n TTerm,\n TTermId,\n TTermLocalized,\n TTermTag,\n TTermTagLocalized,\n TTermType,\n TTermTypeLocalized,\n} from '@/types'\nimport { CONFIG } from '@/common'\nimport { getTermTagLocalized, getTermTypeLocalized, getValueLocalized, interpolateValues } from '@/utils'\nimport { RAW_TAG, RAW_TERM, RAW_TYPE } from '@data'\n\n/**\n * NB: The `useFallback` param only works when `localized` is `true`. This is by design.\n */\n\nexport function getTerm(params: { id: TTermId; localized: false }): TTerm\nexport function getTerm(params: {\n id: TTermId\n localized?: true\n locale?: TLocale\n useFallback?: boolean\n}): TTermLocalized\nexport function getTerm({\n id,\n localized = true,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n id: TTermId\n localized?: boolean\n locale?: TLocale\n useFallback?: boolean\n}): TTerm | TTermLocalized {\n // We do not need a null check here because TTermId only allows valid IDs\n const TERM = interpolateValues({ obj: RAW_TERM, keys: ['name', 'label', 'definition'], useFallback })\n const term = TERM[id]\n\n if (!localized) {\n return term\n }\n\n return {\n ...term,\n name: getValueLocalized({ obj: term.name, locale, useFallback }),\n label: getValueLocalized({ obj: term.label, locale, useFallback }),\n definition: getValueLocalized({ obj: term.definition, locale, useFallback }),\n type: term.type.map((value) => getTermTypeLocalized({ term: value, locale, useFallback })),\n tags: term.tags.map((value) => getTermTagLocalized({ tag: value, locale, useFallback })),\n }\n}\n\nexport function getTerms(params?: { localized: false; useFallback?: boolean }): TTerm[]\nexport function getTerms(params?: { localized?: true; locale?: TLocale; useFallback?: boolean }): TTermLocalized[]\nexport function getTerms({\n localized = true,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n localized?: boolean\n locale?: TLocale\n useFallback?: boolean\n} = {}): TTerm[] | TTermLocalized[] {\n const TERM = interpolateValues({ obj: RAW_TERM, keys: ['name', 'label', 'definition'], useFallback })\n const terms = Object.values(TERM)\n\n if (!localized) {\n return terms\n }\n\n return terms.map((term) => getTerm({ id: term.id, locale, useFallback }))\n}\n\nexport function getDict(params?: { localized: false; useFallback?: boolean }): TDevDict\nexport function getDict(params?: { localized?: true; locale?: TLocale; useFallback?: boolean }): TDevDictLocalized\nexport function getDict({\n localized = true,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n localized?: boolean\n locale?: TLocale\n useFallback?: boolean\n} = {}): TDevDict | TDevDictLocalized {\n const TERM = interpolateValues({ obj: RAW_TERM, keys: ['name', 'label', 'definition'], useFallback })\n\n if (!localized) {\n return TERM as TDevDict\n }\n\n const dict = {} as TDevDictLocalized\n\n for (const [key, term] of Object.entries(TERM)) {\n const localizedTerm = getTerm({ id: term.id, locale, useFallback })\n dict[key as TTermId] = localizedTerm\n }\n\n return dict\n}\n\nexport function getTypes(params?: { localized: false; useFallback?: boolean }): TTermType[]\nexport function getTypes(params?: { localized?: true; locale?: TLocale; useFallback?: boolean }): TTermTypeLocalized[]\nexport function getTypes({\n localized = true,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n localized?: boolean\n locale?: TLocale\n useFallback?: boolean\n} = {}): TTermType[] | TTermTypeLocalized[] {\n const TYPE = interpolateValues({ obj: RAW_TYPE, keys: ['name'], useFallback })\n const types = Object.values(TYPE)\n\n if (!localized) {\n return types\n }\n\n return types.map((type) => getTermTypeLocalized({ term: type, locale, useFallback }))\n}\n\nexport function getTags(params?: { localized: false; useFallback?: boolean }): TTermTag[]\nexport function getTags(params?: { localized?: true; locale?: TLocale; useFallback?: boolean }): TTermTagLocalized[]\nexport function getTags({\n localized = true,\n locale = CONFIG.DEFAULT_LOCALE,\n useFallback = CONFIG.USE_FALLBACK,\n}: {\n localized?: boolean\n locale?: TLocale\n useFallback?: boolean\n} = {}): TTermTag[] | TTermTagLocalized[] {\n const TAG = interpolateValues({ obj: RAW_TAG, keys: ['name'], useFallback })\n const tags = Object.values(TAG)\n\n if (!localized) {\n return tags\n }\n\n return tags.map((tag) => getTermTagLocalized({ tag, locale, useFallback }))\n}\n"],"names":["LOCALE","interpolateValue","obj","value","useFallback","CONFIG","interpolateLocaleRecord","locales","locale","interpolateValues","keys","itemKey","item","interpolatedFields","key","getValueLocalized","getTermTagLocalized","tag","getTermTypeLocalized","term","backend","frontend","open_source","RAW_TAG","TAG","cms","framework","language","library","platform","runtime_environment","RAW_TYPE","TYPE","aws","javascript","node_js","react","typescript","RAW_TERM","getTerm","id","localized","getTerms","TERM","terms","getDict","dict","localizedTerm","getTypes","types","type","getTags","tags"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dev-dict",
3
- "version": "0.4.4",
3
+ "version": "0.4.5",
4
4
  "description": "A dictionary of software related terms. Supports multiple languages.",
5
5
  "author": "Cornelius Weidmann <cornelius@kyco.io> (https://kyco.io)",
6
6
  "license": "MIT",