@jjlmoya/utils-tools 1.6.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -2
- package/src/entries.ts +26 -0
- package/src/index.ts +37 -37
- package/src/pages/[locale]/[slug].astro +3 -4
- package/src/tool/date-diff-calculator/entry.ts +24 -0
- package/src/tool/date-diff-calculator/index.ts +5 -31
- package/src/tool/drive-direct-link/entry.ts +24 -0
- package/src/tool/drive-direct-link/index.ts +5 -31
- package/src/tool/email-list-cleaner/entry.ts +24 -0
- package/src/tool/email-list-cleaner/index.ts +5 -31
- package/src/tool/env-badge-spain/entry.ts +24 -0
- package/src/tool/env-badge-spain/index.ts +5 -31
- package/src/tool/morse-beacon/entry.ts +24 -0
- package/src/tool/morse-beacon/index.ts +5 -31
- package/src/tool/password-generator/entry.ts +24 -0
- package/src/tool/password-generator/index.ts +5 -31
- package/src/tool/routes/entry.ts +24 -0
- package/src/tool/routes/index.ts +5 -31
- package/src/tool/rule-of-three/entry.ts +24 -0
- package/src/tool/rule-of-three/index.ts +5 -31
- package/src/tool/seo-content-optimizer/entry.ts +24 -0
- package/src/tool/seo-content-optimizer/index.ts +5 -31
- package/src/tool/speed-reader/entry.ts +24 -0
- package/src/tool/speed-reader/index.ts +5 -31
- package/src/tool/text-pixel-calculator/entry.ts +24 -0
- package/src/tool/text-pixel-calculator/index.ts +5 -31
- package/src/tool/whatsapp-link/entry.ts +24 -0
- package/src/tool/whatsapp-link/index.ts +5 -31
- package/src/tools.ts +1 -1
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jjlmoya/utils-tools",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./src/index.ts",
|
|
6
6
|
"types": "./src/index.ts",
|
|
7
7
|
"exports": {
|
|
8
8
|
".": "./src/index.ts",
|
|
9
|
-
"./data": "./src/data.ts"
|
|
9
|
+
"./data": "./src/data.ts",
|
|
10
|
+
"./entries": "./src/entries.ts"
|
|
10
11
|
},
|
|
11
12
|
"files": [
|
|
12
13
|
"src"
|
package/src/entries.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export { dateDiffCalculator } from './tool/date-diff-calculator/entry';
|
|
2
|
+
export { driveDirectLink } from './tool/drive-direct-link/entry';
|
|
3
|
+
export { emailListCleaner } from './tool/email-list-cleaner/entry';
|
|
4
|
+
export { envBadgeSpain } from './tool/env-badge-spain/entry';
|
|
5
|
+
export { morseBeacon } from './tool/morse-beacon/entry';
|
|
6
|
+
export { passwordGenerator } from './tool/password-generator/entry';
|
|
7
|
+
export { routes } from './tool/routes/entry';
|
|
8
|
+
export { ruleOfThree } from './tool/rule-of-three/entry';
|
|
9
|
+
export { seoContentOptimizer } from './tool/seo-content-optimizer/entry';
|
|
10
|
+
export { speedReader } from './tool/speed-reader/entry';
|
|
11
|
+
export { textPixelCalculator } from './tool/text-pixel-calculator/entry';
|
|
12
|
+
export { whatsappLink } from './tool/whatsapp-link/entry';
|
|
13
|
+
export { toolsCategory } from './category';
|
|
14
|
+
import { dateDiffCalculator } from './tool/date-diff-calculator/entry';
|
|
15
|
+
import { driveDirectLink } from './tool/drive-direct-link/entry';
|
|
16
|
+
import { emailListCleaner } from './tool/email-list-cleaner/entry';
|
|
17
|
+
import { envBadgeSpain } from './tool/env-badge-spain/entry';
|
|
18
|
+
import { morseBeacon } from './tool/morse-beacon/entry';
|
|
19
|
+
import { passwordGenerator } from './tool/password-generator/entry';
|
|
20
|
+
import { routes } from './tool/routes/entry';
|
|
21
|
+
import { ruleOfThree } from './tool/rule-of-three/entry';
|
|
22
|
+
import { seoContentOptimizer } from './tool/seo-content-optimizer/entry';
|
|
23
|
+
import { speedReader } from './tool/speed-reader/entry';
|
|
24
|
+
import { textPixelCalculator } from './tool/text-pixel-calculator/entry';
|
|
25
|
+
import { whatsappLink } from './tool/whatsapp-link/entry';
|
|
26
|
+
export const ALL_ENTRIES = [dateDiffCalculator, driveDirectLink, emailListCleaner, envBadgeSpain, morseBeacon, passwordGenerator, routes, ruleOfThree, seoContentOptimizer, speedReader, textPixelCalculator, whatsappLink];
|
package/src/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { toolsCategory } from './category';
|
|
2
|
-
export
|
|
2
|
+
export const toolsCategorySEO = () => import('./category/seo.astro').then((m) => m.default);
|
|
3
3
|
|
|
4
4
|
export type {
|
|
5
5
|
KnownLocale,
|
|
@@ -18,73 +18,73 @@ export type {
|
|
|
18
18
|
export { ALL_ENTRIES, ALL_TOOLS } from './tools';
|
|
19
19
|
|
|
20
20
|
export { routes, ROUTES_TOOL } from './tool/routes/index';
|
|
21
|
-
export
|
|
22
|
-
export
|
|
23
|
-
export
|
|
21
|
+
export const RoutesComponent = () => import('./tool/routes/component.astro').then((m) => m.default);
|
|
22
|
+
export const RoutesSEO = () => import('./tool/routes/seo.astro').then((m) => m.default);
|
|
23
|
+
export const RoutesBibliography = () => import('./tool/routes/bibliography.astro').then((m) => m.default);
|
|
24
24
|
export type { RoutesUI } from './tool/routes/ui';
|
|
25
25
|
|
|
26
26
|
export { ruleOfThree, RULE_OF_THREE_TOOL } from './tool/rule-of-three/index';
|
|
27
|
-
export
|
|
28
|
-
export
|
|
29
|
-
export
|
|
27
|
+
export const RuleOfThreeComponent = () => import('./tool/rule-of-three/component.astro').then((m) => m.default);
|
|
28
|
+
export const RuleOfThreeSEO = () => import('./tool/rule-of-three/seo.astro').then((m) => m.default);
|
|
29
|
+
export const RuleOfThreeBibliography = () => import('./tool/rule-of-three/bibliography.astro').then((m) => m.default);
|
|
30
30
|
export type { RuleOfThreeUI } from './tool/rule-of-three/ui';
|
|
31
31
|
|
|
32
32
|
export { passwordGenerator, PASSWORD_GENERATOR_TOOL } from './tool/password-generator/index';
|
|
33
|
-
export
|
|
34
|
-
export
|
|
35
|
-
export
|
|
33
|
+
export const PasswordGeneratorComponent = () => import('./tool/password-generator/component.astro').then((m) => m.default);
|
|
34
|
+
export const PasswordGeneratorSEO = () => import('./tool/password-generator/seo.astro').then((m) => m.default);
|
|
35
|
+
export const PasswordGeneratorBibliography = () => import('./tool/password-generator/bibliography.astro').then((m) => m.default);
|
|
36
36
|
export type { PasswordGeneratorUI } from './tool/password-generator/ui';
|
|
37
37
|
|
|
38
38
|
export { morseBeacon, MORSE_BEACON_TOOL } from './tool/morse-beacon/index';
|
|
39
|
-
export
|
|
40
|
-
export
|
|
41
|
-
export
|
|
39
|
+
export const MorseBeaconComponent = () => import('./tool/morse-beacon/component.astro').then((m) => m.default);
|
|
40
|
+
export const MorseBeaconSEO = () => import('./tool/morse-beacon/seo.astro').then((m) => m.default);
|
|
41
|
+
export const MorseBeaconBibliography = () => import('./tool/morse-beacon/bibliography.astro').then((m) => m.default);
|
|
42
42
|
export type { MorseBeaconUI } from './tool/morse-beacon/ui';
|
|
43
43
|
|
|
44
44
|
export { speedReader, SPEED_READER_TOOL } from './tool/speed-reader/index';
|
|
45
|
-
export
|
|
46
|
-
export
|
|
47
|
-
export
|
|
45
|
+
export const SpeedReaderComponent = () => import('./tool/speed-reader/component.astro').then((m) => m.default);
|
|
46
|
+
export const SpeedReaderSEO = () => import('./tool/speed-reader/seo.astro').then((m) => m.default);
|
|
47
|
+
export const SpeedReaderBibliography = () => import('./tool/speed-reader/bibliography.astro').then((m) => m.default);
|
|
48
48
|
export type { SpeedReaderUI } from './tool/speed-reader/ui';
|
|
49
49
|
|
|
50
50
|
export { whatsappLink, WHATSAPP_LINK_TOOL } from './tool/whatsapp-link/index';
|
|
51
|
-
export
|
|
52
|
-
export
|
|
53
|
-
export
|
|
51
|
+
export const WhatsappLinkComponent = () => import('./tool/whatsapp-link/component.astro').then((m) => m.default);
|
|
52
|
+
export const WhatsappLinkSEO = () => import('./tool/whatsapp-link/seo.astro').then((m) => m.default);
|
|
53
|
+
export const WhatsappLinkBibliography = () => import('./tool/whatsapp-link/bibliography.astro').then((m) => m.default);
|
|
54
54
|
export type { WhatsappLinkUI } from './tool/whatsapp-link/ui';
|
|
55
55
|
|
|
56
56
|
export { textPixelCalculator, TEXT_PIXEL_CALCULATOR_TOOL } from './tool/text-pixel-calculator/index';
|
|
57
|
-
export
|
|
58
|
-
export
|
|
59
|
-
export
|
|
57
|
+
export const TextPixelCalculatorComponent = () => import('./tool/text-pixel-calculator/component.astro').then((m) => m.default);
|
|
58
|
+
export const TextPixelCalculatorSEO = () => import('./tool/text-pixel-calculator/seo.astro').then((m) => m.default);
|
|
59
|
+
export const TextPixelCalculatorBibliography = () => import('./tool/text-pixel-calculator/bibliography.astro').then((m) => m.default);
|
|
60
60
|
export type { TextPixelCalculatorUI } from './tool/text-pixel-calculator/ui';
|
|
61
61
|
|
|
62
62
|
export { dateDiffCalculator, DATE_DIFF_CALCULATOR_TOOL } from './tool/date-diff-calculator/index';
|
|
63
|
-
export
|
|
64
|
-
export
|
|
65
|
-
export
|
|
63
|
+
export const DateDiffCalculatorComponent = () => import('./tool/date-diff-calculator/component.astro').then((m) => m.default);
|
|
64
|
+
export const DateDiffCalculatorSEO = () => import('./tool/date-diff-calculator/seo.astro').then((m) => m.default);
|
|
65
|
+
export const DateDiffCalculatorBibliography = () => import('./tool/date-diff-calculator/bibliography.astro').then((m) => m.default);
|
|
66
66
|
export type { DateDiffCalculatorUI } from './tool/date-diff-calculator/ui';
|
|
67
67
|
|
|
68
68
|
export { emailListCleaner, EMAIL_LIST_CLEANER_TOOL } from './tool/email-list-cleaner/index';
|
|
69
|
-
export
|
|
70
|
-
export
|
|
71
|
-
export
|
|
69
|
+
export const EmailListCleanerComponent = () => import('./tool/email-list-cleaner/component.astro').then((m) => m.default);
|
|
70
|
+
export const EmailListCleanerSEO = () => import('./tool/email-list-cleaner/seo.astro').then((m) => m.default);
|
|
71
|
+
export const EmailListCleanerBibliography = () => import('./tool/email-list-cleaner/bibliography.astro').then((m) => m.default);
|
|
72
72
|
export type { EmailListCleanerUI } from './tool/email-list-cleaner/ui';
|
|
73
73
|
|
|
74
74
|
export { envBadgeSpain, ENV_BADGE_SPAIN_TOOL } from './tool/env-badge-spain/index';
|
|
75
|
-
export
|
|
76
|
-
export
|
|
77
|
-
export
|
|
75
|
+
export const EnvBadgeSpainComponent = () => import('./tool/env-badge-spain/component.astro').then((m) => m.default);
|
|
76
|
+
export const EnvBadgeSpainSEO = () => import('./tool/env-badge-spain/seo.astro').then((m) => m.default);
|
|
77
|
+
export const EnvBadgeSpainBibliography = () => import('./tool/env-badge-spain/bibliography.astro').then((m) => m.default);
|
|
78
78
|
export type { EnvBadgeSpainUI } from './tool/env-badge-spain/ui';
|
|
79
79
|
|
|
80
80
|
export { driveDirectLink, DRIVE_DIRECT_LINK_TOOL } from './tool/drive-direct-link/index';
|
|
81
|
-
export
|
|
82
|
-
export
|
|
83
|
-
export
|
|
81
|
+
export const DriveDirectLinkComponent = () => import('./tool/drive-direct-link/component.astro').then((m) => m.default);
|
|
82
|
+
export const DriveDirectLinkSEO = () => import('./tool/drive-direct-link/seo.astro').then((m) => m.default);
|
|
83
|
+
export const DriveDirectLinkBibliography = () => import('./tool/drive-direct-link/bibliography.astro').then((m) => m.default);
|
|
84
84
|
export type { DriveDirectLinkUI } from './tool/drive-direct-link/ui';
|
|
85
85
|
|
|
86
86
|
export { seoContentOptimizer, SEO_CONTENT_OPTIMIZER_TOOL } from './tool/seo-content-optimizer/index';
|
|
87
|
-
export
|
|
88
|
-
export
|
|
89
|
-
export
|
|
87
|
+
export const SeoContentOptimizerComponent = () => import('./tool/seo-content-optimizer/component.astro').then((m) => m.default);
|
|
88
|
+
export const SeoContentOptimizerSEO = () => import('./tool/seo-content-optimizer/seo.astro').then((m) => m.default);
|
|
89
|
+
export const SeoContentOptimizerBibliography = () => import('./tool/seo-content-optimizer/bibliography.astro').then((m) => m.default);
|
|
90
90
|
export type { SeoContentOptimizerUI } from './tool/seo-content-optimizer/ui';
|
|
@@ -14,7 +14,8 @@ import type { UtilitySEOContent } from "@jjlmoya/utils-shared";
|
|
|
14
14
|
export async function getStaticPaths() {
|
|
15
15
|
const paths = [];
|
|
16
16
|
|
|
17
|
-
for (const { entry, Component } of ALL_TOOLS) {
|
|
17
|
+
for (const { entry, Component: lazyComp } of ALL_TOOLS) {
|
|
18
|
+
const { default: Component } = await lazyComp();
|
|
18
19
|
const localeEntries = Object.entries(entry.i18n) as [
|
|
19
20
|
KnownLocale,
|
|
20
21
|
() => Promise<ToolLocaleContent>,
|
|
@@ -52,8 +53,6 @@ export async function getStaticPaths() {
|
|
|
52
53
|
return paths;
|
|
53
54
|
}
|
|
54
55
|
|
|
55
|
-
type ToolComponent = (props: { ui: Record<string, string> }) => unknown;
|
|
56
|
-
|
|
57
56
|
interface NavItem {
|
|
58
57
|
id: string;
|
|
59
58
|
title: string;
|
|
@@ -62,7 +61,7 @@ interface NavItem {
|
|
|
62
61
|
}
|
|
63
62
|
|
|
64
63
|
interface Props {
|
|
65
|
-
Component:
|
|
64
|
+
Component: unknown;
|
|
66
65
|
locale: KnownLocale;
|
|
67
66
|
content: ToolLocaleContent;
|
|
68
67
|
localeUrls: Partial<Record<KnownLocale, string>>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ToolsToolEntry } from '../../types';
|
|
2
|
+
import type { DateDiffCalculatorUI } from './ui';
|
|
3
|
+
|
|
4
|
+
export const dateDiffCalculator: ToolsToolEntry<DateDiffCalculatorUI> = {
|
|
5
|
+
id: 'date-diff-calculator',
|
|
6
|
+
icons: { bg: 'mdi:calendar-clock', fg: 'mdi:clock-fast' },
|
|
7
|
+
i18n: {
|
|
8
|
+
es: () => import('./i18n/es').then((m) => m.content),
|
|
9
|
+
en: () => import('./i18n/en').then((m) => m.content),
|
|
10
|
+
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
11
|
+
de: () => import('./i18n/de').then((m) => m.content),
|
|
12
|
+
it: () => import('./i18n/it').then((m) => m.content),
|
|
13
|
+
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
14
|
+
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
15
|
+
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
16
|
+
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
17
|
+
id: () => import('./i18n/id').then((m) => m.content),
|
|
18
|
+
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
19
|
+
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
20
|
+
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
21
|
+
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
22
|
+
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
23
|
+
},
|
|
24
|
+
};
|
|
@@ -1,34 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import DateDiffCalculatorComponent from './component.astro';
|
|
4
|
-
import DateDiffCalculatorSEO from './seo.astro';
|
|
5
|
-
import DateDiffCalculatorBibliography from './bibliography.astro';
|
|
6
|
-
|
|
7
|
-
export const dateDiffCalculator: ToolsToolEntry<DateDiffCalculatorUI> = {
|
|
8
|
-
id: 'date-diff-calculator',
|
|
9
|
-
icons: { bg: 'mdi:calendar-clock', fg: 'mdi:clock-fast' },
|
|
10
|
-
i18n: {
|
|
11
|
-
es: () => import('./i18n/es').then((m) => m.content),
|
|
12
|
-
en: () => import('./i18n/en').then((m) => m.content),
|
|
13
|
-
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
14
|
-
de: () => import('./i18n/de').then((m) => m.content),
|
|
15
|
-
it: () => import('./i18n/it').then((m) => m.content),
|
|
16
|
-
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
17
|
-
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
18
|
-
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
19
|
-
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
20
|
-
id: () => import('./i18n/id').then((m) => m.content),
|
|
21
|
-
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
22
|
-
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
23
|
-
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
24
|
-
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
25
|
-
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
|
|
1
|
+
import { dateDiffCalculator } from './entry';
|
|
2
|
+
export * from './entry';
|
|
29
3
|
export const DATE_DIFF_CALCULATOR_TOOL: ToolDefinition = {
|
|
30
4
|
entry: dateDiffCalculator,
|
|
31
|
-
Component:
|
|
32
|
-
SEOComponent:
|
|
33
|
-
BibliographyComponent:
|
|
5
|
+
Component: () => import('./component.astro'),
|
|
6
|
+
SEOComponent: () => import('./seo.astro'),
|
|
7
|
+
BibliographyComponent: () => import('./bibliography.astro'),
|
|
34
8
|
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ToolsToolEntry } from '../../types';
|
|
2
|
+
import type { DriveDirectLinkUI } from './ui';
|
|
3
|
+
|
|
4
|
+
export const driveDirectLink: ToolsToolEntry<DriveDirectLinkUI> = {
|
|
5
|
+
id: 'drive-direct-link',
|
|
6
|
+
icons: { bg: 'mdi:google-drive', fg: 'mdi:download' },
|
|
7
|
+
i18n: {
|
|
8
|
+
es: () => import('./i18n/es').then((m) => m.content),
|
|
9
|
+
en: () => import('./i18n/en').then((m) => m.content),
|
|
10
|
+
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
11
|
+
de: () => import('./i18n/de').then((m) => m.content),
|
|
12
|
+
it: () => import('./i18n/it').then((m) => m.content),
|
|
13
|
+
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
14
|
+
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
15
|
+
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
16
|
+
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
17
|
+
id: () => import('./i18n/id').then((m) => m.content),
|
|
18
|
+
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
19
|
+
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
20
|
+
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
21
|
+
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
22
|
+
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
23
|
+
},
|
|
24
|
+
};
|
|
@@ -1,34 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import DriveDirectLinkComponent from './component.astro';
|
|
4
|
-
import DriveDirectLinkSEO from './seo.astro';
|
|
5
|
-
import DriveDirectLinkBibliography from './bibliography.astro';
|
|
6
|
-
|
|
7
|
-
export const driveDirectLink: ToolsToolEntry<DriveDirectLinkUI> = {
|
|
8
|
-
id: 'drive-direct-link',
|
|
9
|
-
icons: { bg: 'mdi:google-drive', fg: 'mdi:download' },
|
|
10
|
-
i18n: {
|
|
11
|
-
es: () => import('./i18n/es').then((m) => m.content),
|
|
12
|
-
en: () => import('./i18n/en').then((m) => m.content),
|
|
13
|
-
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
14
|
-
de: () => import('./i18n/de').then((m) => m.content),
|
|
15
|
-
it: () => import('./i18n/it').then((m) => m.content),
|
|
16
|
-
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
17
|
-
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
18
|
-
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
19
|
-
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
20
|
-
id: () => import('./i18n/id').then((m) => m.content),
|
|
21
|
-
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
22
|
-
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
23
|
-
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
24
|
-
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
25
|
-
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
|
|
1
|
+
import { driveDirectLink } from './entry';
|
|
2
|
+
export * from './entry';
|
|
29
3
|
export const DRIVE_DIRECT_LINK_TOOL: ToolDefinition = {
|
|
30
4
|
entry: driveDirectLink,
|
|
31
|
-
Component:
|
|
32
|
-
SEOComponent:
|
|
33
|
-
BibliographyComponent:
|
|
5
|
+
Component: () => import('./component.astro'),
|
|
6
|
+
SEOComponent: () => import('./seo.astro'),
|
|
7
|
+
BibliographyComponent: () => import('./bibliography.astro'),
|
|
34
8
|
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ToolsToolEntry } from '../../types';
|
|
2
|
+
import type { EmailListCleanerUI } from './ui';
|
|
3
|
+
|
|
4
|
+
export const emailListCleaner: ToolsToolEntry<EmailListCleanerUI> = {
|
|
5
|
+
id: 'email-list-cleaner',
|
|
6
|
+
icons: { bg: 'mdi:email-check-outline', fg: 'mdi:email-remove' },
|
|
7
|
+
i18n: {
|
|
8
|
+
es: () => import('./i18n/es').then((m) => m.content),
|
|
9
|
+
en: () => import('./i18n/en').then((m) => m.content),
|
|
10
|
+
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
11
|
+
de: () => import('./i18n/de').then((m) => m.content),
|
|
12
|
+
it: () => import('./i18n/it').then((m) => m.content),
|
|
13
|
+
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
14
|
+
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
15
|
+
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
16
|
+
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
17
|
+
id: () => import('./i18n/id').then((m) => m.content),
|
|
18
|
+
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
19
|
+
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
20
|
+
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
21
|
+
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
22
|
+
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
23
|
+
},
|
|
24
|
+
};
|
|
@@ -1,34 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import EmailListCleanerComponent from './component.astro';
|
|
4
|
-
import EmailListCleanerSEO from './seo.astro';
|
|
5
|
-
import EmailListCleanerBibliography from './bibliography.astro';
|
|
6
|
-
|
|
7
|
-
export const emailListCleaner: ToolsToolEntry<EmailListCleanerUI> = {
|
|
8
|
-
id: 'email-list-cleaner',
|
|
9
|
-
icons: { bg: 'mdi:email-check-outline', fg: 'mdi:email-remove' },
|
|
10
|
-
i18n: {
|
|
11
|
-
es: () => import('./i18n/es').then((m) => m.content),
|
|
12
|
-
en: () => import('./i18n/en').then((m) => m.content),
|
|
13
|
-
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
14
|
-
de: () => import('./i18n/de').then((m) => m.content),
|
|
15
|
-
it: () => import('./i18n/it').then((m) => m.content),
|
|
16
|
-
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
17
|
-
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
18
|
-
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
19
|
-
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
20
|
-
id: () => import('./i18n/id').then((m) => m.content),
|
|
21
|
-
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
22
|
-
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
23
|
-
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
24
|
-
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
25
|
-
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
|
|
1
|
+
import { emailListCleaner } from './entry';
|
|
2
|
+
export * from './entry';
|
|
29
3
|
export const EMAIL_LIST_CLEANER_TOOL: ToolDefinition = {
|
|
30
4
|
entry: emailListCleaner,
|
|
31
|
-
Component:
|
|
32
|
-
SEOComponent:
|
|
33
|
-
BibliographyComponent:
|
|
5
|
+
Component: () => import('./component.astro'),
|
|
6
|
+
SEOComponent: () => import('./seo.astro'),
|
|
7
|
+
BibliographyComponent: () => import('./bibliography.astro'),
|
|
34
8
|
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ToolsToolEntry } from '../../types';
|
|
2
|
+
import type { EnvBadgeSpainUI } from './ui';
|
|
3
|
+
|
|
4
|
+
export const envBadgeSpain: ToolsToolEntry<EnvBadgeSpainUI> = {
|
|
5
|
+
id: 'env-badge-spain',
|
|
6
|
+
icons: { bg: 'mdi:car-info', fg: 'mdi:leaf' },
|
|
7
|
+
i18n: {
|
|
8
|
+
es: () => import('./i18n/es').then((m) => m.content),
|
|
9
|
+
en: () => import('./i18n/en').then((m) => m.content),
|
|
10
|
+
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
11
|
+
de: () => import('./i18n/de').then((m) => m.content),
|
|
12
|
+
it: () => import('./i18n/it').then((m) => m.content),
|
|
13
|
+
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
14
|
+
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
15
|
+
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
16
|
+
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
17
|
+
id: () => import('./i18n/id').then((m) => m.content),
|
|
18
|
+
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
19
|
+
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
20
|
+
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
21
|
+
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
22
|
+
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
23
|
+
},
|
|
24
|
+
};
|
|
@@ -1,34 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import EnvBadgeSpainComponent from './component.astro';
|
|
4
|
-
import EnvBadgeSpainSEO from './seo.astro';
|
|
5
|
-
import EnvBadgeSpainBibliography from './bibliography.astro';
|
|
6
|
-
|
|
7
|
-
export const envBadgeSpain: ToolsToolEntry<EnvBadgeSpainUI> = {
|
|
8
|
-
id: 'env-badge-spain',
|
|
9
|
-
icons: { bg: 'mdi:car-info', fg: 'mdi:leaf' },
|
|
10
|
-
i18n: {
|
|
11
|
-
es: () => import('./i18n/es').then((m) => m.content),
|
|
12
|
-
en: () => import('./i18n/en').then((m) => m.content),
|
|
13
|
-
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
14
|
-
de: () => import('./i18n/de').then((m) => m.content),
|
|
15
|
-
it: () => import('./i18n/it').then((m) => m.content),
|
|
16
|
-
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
17
|
-
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
18
|
-
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
19
|
-
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
20
|
-
id: () => import('./i18n/id').then((m) => m.content),
|
|
21
|
-
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
22
|
-
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
23
|
-
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
24
|
-
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
25
|
-
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
|
|
1
|
+
import { envBadgeSpain } from './entry';
|
|
2
|
+
export * from './entry';
|
|
29
3
|
export const ENV_BADGE_SPAIN_TOOL: ToolDefinition = {
|
|
30
4
|
entry: envBadgeSpain,
|
|
31
|
-
Component:
|
|
32
|
-
SEOComponent:
|
|
33
|
-
BibliographyComponent:
|
|
5
|
+
Component: () => import('./component.astro'),
|
|
6
|
+
SEOComponent: () => import('./seo.astro'),
|
|
7
|
+
BibliographyComponent: () => import('./bibliography.astro'),
|
|
34
8
|
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ToolsToolEntry } from '../../types';
|
|
2
|
+
import type { MorseBeaconUI } from './ui';
|
|
3
|
+
|
|
4
|
+
export const morseBeacon: ToolsToolEntry<MorseBeaconUI> = {
|
|
5
|
+
id: 'morse-beacon',
|
|
6
|
+
icons: { bg: 'mdi:transmission-tower', fg: 'mdi:dots-horizontal' },
|
|
7
|
+
i18n: {
|
|
8
|
+
de: () => import('./i18n/de').then((m) => m.content),
|
|
9
|
+
en: () => import('./i18n/en').then((m) => m.content),
|
|
10
|
+
es: () => import('./i18n/es').then((m) => m.content),
|
|
11
|
+
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
12
|
+
id: () => import('./i18n/id').then((m) => m.content),
|
|
13
|
+
it: () => import('./i18n/it').then((m) => m.content),
|
|
14
|
+
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
15
|
+
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
16
|
+
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
17
|
+
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
18
|
+
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
19
|
+
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
20
|
+
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
21
|
+
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
22
|
+
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
23
|
+
},
|
|
24
|
+
};
|
|
@@ -1,34 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import MorseBeaconComponent from './component.astro';
|
|
4
|
-
import MorseBeaconSEO from './seo.astro';
|
|
5
|
-
import MorseBeaconBibliography from './bibliography.astro';
|
|
6
|
-
|
|
7
|
-
export const morseBeacon: ToolsToolEntry<MorseBeaconUI> = {
|
|
8
|
-
id: 'morse-beacon',
|
|
9
|
-
icons: { bg: 'mdi:transmission-tower', fg: 'mdi:dots-horizontal' },
|
|
10
|
-
i18n: {
|
|
11
|
-
de: () => import('./i18n/de').then((m) => m.content),
|
|
12
|
-
en: () => import('./i18n/en').then((m) => m.content),
|
|
13
|
-
es: () => import('./i18n/es').then((m) => m.content),
|
|
14
|
-
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
15
|
-
id: () => import('./i18n/id').then((m) => m.content),
|
|
16
|
-
it: () => import('./i18n/it').then((m) => m.content),
|
|
17
|
-
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
18
|
-
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
19
|
-
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
20
|
-
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
21
|
-
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
22
|
-
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
23
|
-
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
24
|
-
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
25
|
-
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
|
|
1
|
+
import { morseBeacon } from './entry';
|
|
2
|
+
export * from './entry';
|
|
29
3
|
export const MORSE_BEACON_TOOL: ToolDefinition = {
|
|
30
4
|
entry: morseBeacon,
|
|
31
|
-
Component:
|
|
32
|
-
SEOComponent:
|
|
33
|
-
BibliographyComponent:
|
|
5
|
+
Component: () => import('./component.astro'),
|
|
6
|
+
SEOComponent: () => import('./seo.astro'),
|
|
7
|
+
BibliographyComponent: () => import('./bibliography.astro'),
|
|
34
8
|
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ToolsToolEntry } from '../../types';
|
|
2
|
+
import type { PasswordGeneratorUI } from './ui';
|
|
3
|
+
|
|
4
|
+
export const passwordGenerator: ToolsToolEntry<PasswordGeneratorUI> = {
|
|
5
|
+
id: 'password-generator',
|
|
6
|
+
icons: { bg: 'mdi:shield-key', fg: 'mdi:lock-reset' },
|
|
7
|
+
i18n: {
|
|
8
|
+
de: () => import('./i18n/de').then((m) => m.content),
|
|
9
|
+
en: () => import('./i18n/en').then((m) => m.content),
|
|
10
|
+
es: () => import('./i18n/es').then((m) => m.content),
|
|
11
|
+
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
12
|
+
id: () => import('./i18n/id').then((m) => m.content),
|
|
13
|
+
it: () => import('./i18n/it').then((m) => m.content),
|
|
14
|
+
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
15
|
+
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
16
|
+
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
17
|
+
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
18
|
+
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
19
|
+
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
20
|
+
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
21
|
+
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
22
|
+
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
23
|
+
},
|
|
24
|
+
};
|
|
@@ -1,34 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import PasswordGeneratorComponent from './component.astro';
|
|
4
|
-
import PasswordGeneratorSEO from './seo.astro';
|
|
5
|
-
import PasswordGeneratorBibliography from './bibliography.astro';
|
|
6
|
-
|
|
7
|
-
export const passwordGenerator: ToolsToolEntry<PasswordGeneratorUI> = {
|
|
8
|
-
id: 'password-generator',
|
|
9
|
-
icons: { bg: 'mdi:shield-key', fg: 'mdi:lock-reset' },
|
|
10
|
-
i18n: {
|
|
11
|
-
de: () => import('./i18n/de').then((m) => m.content),
|
|
12
|
-
en: () => import('./i18n/en').then((m) => m.content),
|
|
13
|
-
es: () => import('./i18n/es').then((m) => m.content),
|
|
14
|
-
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
15
|
-
id: () => import('./i18n/id').then((m) => m.content),
|
|
16
|
-
it: () => import('./i18n/it').then((m) => m.content),
|
|
17
|
-
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
18
|
-
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
19
|
-
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
20
|
-
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
21
|
-
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
22
|
-
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
23
|
-
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
24
|
-
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
25
|
-
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
|
|
1
|
+
import { passwordGenerator } from './entry';
|
|
2
|
+
export * from './entry';
|
|
29
3
|
export const PASSWORD_GENERATOR_TOOL: ToolDefinition = {
|
|
30
4
|
entry: passwordGenerator,
|
|
31
|
-
Component:
|
|
32
|
-
SEOComponent:
|
|
33
|
-
BibliographyComponent:
|
|
5
|
+
Component: () => import('./component.astro'),
|
|
6
|
+
SEOComponent: () => import('./seo.astro'),
|
|
7
|
+
BibliographyComponent: () => import('./bibliography.astro'),
|
|
34
8
|
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ToolsToolEntry } from '../../types';
|
|
2
|
+
import type { RoutesUI } from './ui';
|
|
3
|
+
|
|
4
|
+
export const routes: ToolsToolEntry<RoutesUI> = {
|
|
5
|
+
id: 'routes',
|
|
6
|
+
icons: { bg: 'mdi:map-marker-path', fg: 'mdi:map-search' },
|
|
7
|
+
i18n: {
|
|
8
|
+
de: () => import('./i18n/de').then((m) => m.content),
|
|
9
|
+
en: () => import('./i18n/en').then((m) => m.content),
|
|
10
|
+
es: () => import('./i18n/es').then((m) => m.content),
|
|
11
|
+
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
12
|
+
id: () => import('./i18n/id').then((m) => m.content),
|
|
13
|
+
it: () => import('./i18n/it').then((m) => m.content),
|
|
14
|
+
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
15
|
+
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
16
|
+
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
17
|
+
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
18
|
+
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
19
|
+
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
20
|
+
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
21
|
+
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
22
|
+
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
23
|
+
},
|
|
24
|
+
};
|
package/src/tool/routes/index.ts
CHANGED
|
@@ -1,34 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import RoutesComponent from './component.astro';
|
|
4
|
-
import RoutesSEO from './seo.astro';
|
|
5
|
-
import RoutesBibliography from './bibliography.astro';
|
|
6
|
-
|
|
7
|
-
export const routes: ToolsToolEntry<RoutesUI> = {
|
|
8
|
-
id: 'routes',
|
|
9
|
-
icons: { bg: 'mdi:map-marker-path', fg: 'mdi:map-search' },
|
|
10
|
-
i18n: {
|
|
11
|
-
de: () => import('./i18n/de').then((m) => m.content),
|
|
12
|
-
en: () => import('./i18n/en').then((m) => m.content),
|
|
13
|
-
es: () => import('./i18n/es').then((m) => m.content),
|
|
14
|
-
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
15
|
-
id: () => import('./i18n/id').then((m) => m.content),
|
|
16
|
-
it: () => import('./i18n/it').then((m) => m.content),
|
|
17
|
-
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
18
|
-
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
19
|
-
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
20
|
-
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
21
|
-
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
22
|
-
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
23
|
-
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
24
|
-
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
25
|
-
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
|
|
1
|
+
import { routes } from './entry';
|
|
2
|
+
export * from './entry';
|
|
29
3
|
export const ROUTES_TOOL: ToolDefinition = {
|
|
30
4
|
entry: routes,
|
|
31
|
-
Component:
|
|
32
|
-
SEOComponent:
|
|
33
|
-
BibliographyComponent:
|
|
5
|
+
Component: () => import('./component.astro'),
|
|
6
|
+
SEOComponent: () => import('./seo.astro'),
|
|
7
|
+
BibliographyComponent: () => import('./bibliography.astro'),
|
|
34
8
|
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ToolsToolEntry } from '../../types';
|
|
2
|
+
import type { RuleOfThreeUI } from './ui';
|
|
3
|
+
|
|
4
|
+
export const ruleOfThree: ToolsToolEntry<RuleOfThreeUI> = {
|
|
5
|
+
id: 'rule-of-three',
|
|
6
|
+
icons: { bg: 'mdi:calculator-variant', fg: 'mdi:equal' },
|
|
7
|
+
i18n: {
|
|
8
|
+
de: () => import('./i18n/de').then((m) => m.content),
|
|
9
|
+
en: () => import('./i18n/en').then((m) => m.content),
|
|
10
|
+
es: () => import('./i18n/es').then((m) => m.content),
|
|
11
|
+
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
12
|
+
id: () => import('./i18n/id').then((m) => m.content),
|
|
13
|
+
it: () => import('./i18n/it').then((m) => m.content),
|
|
14
|
+
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
15
|
+
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
16
|
+
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
17
|
+
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
18
|
+
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
19
|
+
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
20
|
+
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
21
|
+
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
22
|
+
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
23
|
+
},
|
|
24
|
+
};
|
|
@@ -1,34 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import RuleOfThreeComponent from './component.astro';
|
|
4
|
-
import RuleOfThreeSEO from './seo.astro';
|
|
5
|
-
import RuleOfThreeBibliography from './bibliography.astro';
|
|
6
|
-
|
|
7
|
-
export const ruleOfThree: ToolsToolEntry<RuleOfThreeUI> = {
|
|
8
|
-
id: 'rule-of-three',
|
|
9
|
-
icons: { bg: 'mdi:calculator-variant', fg: 'mdi:equal' },
|
|
10
|
-
i18n: {
|
|
11
|
-
de: () => import('./i18n/de').then((m) => m.content),
|
|
12
|
-
en: () => import('./i18n/en').then((m) => m.content),
|
|
13
|
-
es: () => import('./i18n/es').then((m) => m.content),
|
|
14
|
-
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
15
|
-
id: () => import('./i18n/id').then((m) => m.content),
|
|
16
|
-
it: () => import('./i18n/it').then((m) => m.content),
|
|
17
|
-
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
18
|
-
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
19
|
-
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
20
|
-
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
21
|
-
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
22
|
-
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
23
|
-
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
24
|
-
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
25
|
-
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
|
|
1
|
+
import { ruleOfThree } from './entry';
|
|
2
|
+
export * from './entry';
|
|
29
3
|
export const RULE_OF_THREE_TOOL: ToolDefinition = {
|
|
30
4
|
entry: ruleOfThree,
|
|
31
|
-
Component:
|
|
32
|
-
SEOComponent:
|
|
33
|
-
BibliographyComponent:
|
|
5
|
+
Component: () => import('./component.astro'),
|
|
6
|
+
SEOComponent: () => import('./seo.astro'),
|
|
7
|
+
BibliographyComponent: () => import('./bibliography.astro'),
|
|
34
8
|
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ToolsToolEntry } from '../../types';
|
|
2
|
+
import type { SeoContentOptimizerUI } from './ui';
|
|
3
|
+
|
|
4
|
+
export const seoContentOptimizer: ToolsToolEntry<SeoContentOptimizerUI> = {
|
|
5
|
+
id: 'seo-content-optimizer',
|
|
6
|
+
icons: { bg: 'mdi:file-search', fg: 'mdi:shield-check-outline' },
|
|
7
|
+
i18n: {
|
|
8
|
+
es: () => import('./i18n/es').then((m) => m.content),
|
|
9
|
+
en: () => import('./i18n/en').then((m) => m.content),
|
|
10
|
+
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
11
|
+
de: () => import('./i18n/de').then((m) => m.content),
|
|
12
|
+
it: () => import('./i18n/it').then((m) => m.content),
|
|
13
|
+
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
14
|
+
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
15
|
+
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
16
|
+
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
17
|
+
id: () => import('./i18n/id').then((m) => m.content),
|
|
18
|
+
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
19
|
+
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
20
|
+
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
21
|
+
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
22
|
+
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
23
|
+
},
|
|
24
|
+
};
|
|
@@ -1,34 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import SeoContentOptimizerComponent from './component.astro';
|
|
4
|
-
import SeoContentOptimizerSEO from './seo.astro';
|
|
5
|
-
import SeoContentOptimizerBibliography from './bibliography.astro';
|
|
6
|
-
|
|
7
|
-
export const seoContentOptimizer: ToolsToolEntry<SeoContentOptimizerUI> = {
|
|
8
|
-
id: 'seo-content-optimizer',
|
|
9
|
-
icons: { bg: 'mdi:file-search', fg: 'mdi:shield-check-outline' },
|
|
10
|
-
i18n: {
|
|
11
|
-
es: () => import('./i18n/es').then((m) => m.content),
|
|
12
|
-
en: () => import('./i18n/en').then((m) => m.content),
|
|
13
|
-
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
14
|
-
de: () => import('./i18n/de').then((m) => m.content),
|
|
15
|
-
it: () => import('./i18n/it').then((m) => m.content),
|
|
16
|
-
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
17
|
-
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
18
|
-
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
19
|
-
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
20
|
-
id: () => import('./i18n/id').then((m) => m.content),
|
|
21
|
-
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
22
|
-
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
23
|
-
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
24
|
-
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
25
|
-
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
|
|
1
|
+
import { seoContentOptimizer } from './entry';
|
|
2
|
+
export * from './entry';
|
|
29
3
|
export const SEO_CONTENT_OPTIMIZER_TOOL: ToolDefinition = {
|
|
30
4
|
entry: seoContentOptimizer,
|
|
31
|
-
Component:
|
|
32
|
-
SEOComponent:
|
|
33
|
-
BibliographyComponent:
|
|
5
|
+
Component: () => import('./component.astro'),
|
|
6
|
+
SEOComponent: () => import('./seo.astro'),
|
|
7
|
+
BibliographyComponent: () => import('./bibliography.astro'),
|
|
34
8
|
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ToolsToolEntry } from '../../types';
|
|
2
|
+
import type { SpeedReaderUI } from './ui';
|
|
3
|
+
|
|
4
|
+
export const speedReader: ToolsToolEntry<SpeedReaderUI> = {
|
|
5
|
+
id: 'speed-reader',
|
|
6
|
+
icons: { bg: 'mdi:book-open-page-variant', fg: 'mdi:lightning-bolt' },
|
|
7
|
+
i18n: {
|
|
8
|
+
es: () => import('./i18n/es').then((m) => m.content),
|
|
9
|
+
en: () => import('./i18n/en').then((m) => m.content),
|
|
10
|
+
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
11
|
+
de: () => import('./i18n/de').then((m) => m.content),
|
|
12
|
+
it: () => import('./i18n/it').then((m) => m.content),
|
|
13
|
+
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
14
|
+
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
15
|
+
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
16
|
+
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
17
|
+
id: () => import('./i18n/id').then((m) => m.content),
|
|
18
|
+
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
19
|
+
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
20
|
+
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
21
|
+
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
22
|
+
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
23
|
+
},
|
|
24
|
+
};
|
|
@@ -1,34 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import SpeedReaderComponent from './component.astro';
|
|
4
|
-
import SpeedReaderSEO from './seo.astro';
|
|
5
|
-
import SpeedReaderBibliography from './bibliography.astro';
|
|
6
|
-
|
|
7
|
-
export const speedReader: ToolsToolEntry<SpeedReaderUI> = {
|
|
8
|
-
id: 'speed-reader',
|
|
9
|
-
icons: { bg: 'mdi:book-open-page-variant', fg: 'mdi:lightning-bolt' },
|
|
10
|
-
i18n: {
|
|
11
|
-
es: () => import('./i18n/es').then((m) => m.content),
|
|
12
|
-
en: () => import('./i18n/en').then((m) => m.content),
|
|
13
|
-
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
14
|
-
de: () => import('./i18n/de').then((m) => m.content),
|
|
15
|
-
it: () => import('./i18n/it').then((m) => m.content),
|
|
16
|
-
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
17
|
-
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
18
|
-
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
19
|
-
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
20
|
-
id: () => import('./i18n/id').then((m) => m.content),
|
|
21
|
-
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
22
|
-
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
23
|
-
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
24
|
-
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
25
|
-
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
|
|
1
|
+
import { speedReader } from './entry';
|
|
2
|
+
export * from './entry';
|
|
29
3
|
export const SPEED_READER_TOOL: ToolDefinition = {
|
|
30
4
|
entry: speedReader,
|
|
31
|
-
Component:
|
|
32
|
-
SEOComponent:
|
|
33
|
-
BibliographyComponent:
|
|
5
|
+
Component: () => import('./component.astro'),
|
|
6
|
+
SEOComponent: () => import('./seo.astro'),
|
|
7
|
+
BibliographyComponent: () => import('./bibliography.astro'),
|
|
34
8
|
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ToolsToolEntry } from '../../types';
|
|
2
|
+
import type { TextPixelCalculatorUI } from './ui';
|
|
3
|
+
|
|
4
|
+
export const textPixelCalculator: ToolsToolEntry<TextPixelCalculatorUI> = {
|
|
5
|
+
id: 'text-pixel-calculator',
|
|
6
|
+
icons: { bg: 'mdi:format-text', fg: 'mdi:ruler' },
|
|
7
|
+
i18n: {
|
|
8
|
+
es: () => import('./i18n/es').then((m) => m.content),
|
|
9
|
+
en: () => import('./i18n/en').then((m) => m.content),
|
|
10
|
+
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
11
|
+
de: () => import('./i18n/de').then((m) => m.content),
|
|
12
|
+
it: () => import('./i18n/it').then((m) => m.content),
|
|
13
|
+
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
14
|
+
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
15
|
+
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
16
|
+
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
17
|
+
id: () => import('./i18n/id').then((m) => m.content),
|
|
18
|
+
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
19
|
+
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
20
|
+
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
21
|
+
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
22
|
+
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
23
|
+
},
|
|
24
|
+
};
|
|
@@ -1,34 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import TextPixelCalculatorComponent from './component.astro';
|
|
4
|
-
import TextPixelCalculatorSEO from './seo.astro';
|
|
5
|
-
import TextPixelCalculatorBibliography from './bibliography.astro';
|
|
6
|
-
|
|
7
|
-
export const textPixelCalculator: ToolsToolEntry<TextPixelCalculatorUI> = {
|
|
8
|
-
id: 'text-pixel-calculator',
|
|
9
|
-
icons: { bg: 'mdi:format-text', fg: 'mdi:ruler' },
|
|
10
|
-
i18n: {
|
|
11
|
-
es: () => import('./i18n/es').then((m) => m.content),
|
|
12
|
-
en: () => import('./i18n/en').then((m) => m.content),
|
|
13
|
-
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
14
|
-
de: () => import('./i18n/de').then((m) => m.content),
|
|
15
|
-
it: () => import('./i18n/it').then((m) => m.content),
|
|
16
|
-
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
17
|
-
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
18
|
-
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
19
|
-
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
20
|
-
id: () => import('./i18n/id').then((m) => m.content),
|
|
21
|
-
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
22
|
-
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
23
|
-
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
24
|
-
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
25
|
-
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
|
|
1
|
+
import { textPixelCalculator } from './entry';
|
|
2
|
+
export * from './entry';
|
|
29
3
|
export const TEXT_PIXEL_CALCULATOR_TOOL: ToolDefinition = {
|
|
30
4
|
entry: textPixelCalculator,
|
|
31
|
-
Component:
|
|
32
|
-
SEOComponent:
|
|
33
|
-
BibliographyComponent:
|
|
5
|
+
Component: () => import('./component.astro'),
|
|
6
|
+
SEOComponent: () => import('./seo.astro'),
|
|
7
|
+
BibliographyComponent: () => import('./bibliography.astro'),
|
|
34
8
|
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ToolsToolEntry } from '../../types';
|
|
2
|
+
import type { WhatsappLinkUI } from './ui';
|
|
3
|
+
|
|
4
|
+
export const whatsappLink: ToolsToolEntry<WhatsappLinkUI> = {
|
|
5
|
+
id: 'whatsapp-link',
|
|
6
|
+
icons: { bg: 'mdi:whatsapp', fg: 'mdi:link-variant' },
|
|
7
|
+
i18n: {
|
|
8
|
+
es: () => import('./i18n/es').then((m) => m.content),
|
|
9
|
+
en: () => import('./i18n/en').then((m) => m.content),
|
|
10
|
+
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
11
|
+
de: () => import('./i18n/de').then((m) => m.content),
|
|
12
|
+
it: () => import('./i18n/it').then((m) => m.content),
|
|
13
|
+
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
14
|
+
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
15
|
+
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
16
|
+
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
17
|
+
id: () => import('./i18n/id').then((m) => m.content),
|
|
18
|
+
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
19
|
+
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
20
|
+
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
21
|
+
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
22
|
+
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
23
|
+
},
|
|
24
|
+
};
|
|
@@ -1,34 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import WhatsappLinkComponent from './component.astro';
|
|
4
|
-
import WhatsappLinkSEO from './seo.astro';
|
|
5
|
-
import WhatsappLinkBibliography from './bibliography.astro';
|
|
6
|
-
|
|
7
|
-
export const whatsappLink: ToolsToolEntry<WhatsappLinkUI> = {
|
|
8
|
-
id: 'whatsapp-link',
|
|
9
|
-
icons: { bg: 'mdi:whatsapp', fg: 'mdi:link-variant' },
|
|
10
|
-
i18n: {
|
|
11
|
-
es: () => import('./i18n/es').then((m) => m.content),
|
|
12
|
-
en: () => import('./i18n/en').then((m) => m.content),
|
|
13
|
-
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
14
|
-
de: () => import('./i18n/de').then((m) => m.content),
|
|
15
|
-
it: () => import('./i18n/it').then((m) => m.content),
|
|
16
|
-
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
17
|
-
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
18
|
-
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
19
|
-
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
20
|
-
id: () => import('./i18n/id').then((m) => m.content),
|
|
21
|
-
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
22
|
-
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
23
|
-
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
24
|
-
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
25
|
-
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
|
|
1
|
+
import { whatsappLink } from './entry';
|
|
2
|
+
export * from './entry';
|
|
29
3
|
export const WHATSAPP_LINK_TOOL: ToolDefinition = {
|
|
30
4
|
entry: whatsappLink,
|
|
31
|
-
Component:
|
|
32
|
-
SEOComponent:
|
|
33
|
-
BibliographyComponent:
|
|
5
|
+
Component: () => import('./component.astro'),
|
|
6
|
+
SEOComponent: () => import('./seo.astro'),
|
|
7
|
+
BibliographyComponent: () => import('./bibliography.astro'),
|
|
34
8
|
};
|
package/src/tools.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { ALL_ENTRIES } from './entries';
|
|
1
2
|
import type { ToolDefinition } from './types';
|
|
2
3
|
import { ROUTES_TOOL } from './tool/routes/index';
|
|
3
4
|
import { RULE_OF_THREE_TOOL } from './tool/rule-of-three/index';
|
|
@@ -14,4 +15,3 @@ import { SEO_CONTENT_OPTIMIZER_TOOL } from './tool/seo-content-optimizer/index';
|
|
|
14
15
|
|
|
15
16
|
export const ALL_TOOLS: ToolDefinition[] = [ROUTES_TOOL, RULE_OF_THREE_TOOL, PASSWORD_GENERATOR_TOOL, MORSE_BEACON_TOOL, SPEED_READER_TOOL, WHATSAPP_LINK_TOOL, TEXT_PIXEL_CALCULATOR_TOOL, DATE_DIFF_CALCULATOR_TOOL, EMAIL_LIST_CLEANER_TOOL, ENV_BADGE_SPAIN_TOOL, DRIVE_DIRECT_LINK_TOOL, SEO_CONTENT_OPTIMIZER_TOOL];
|
|
16
17
|
|
|
17
|
-
export const ALL_ENTRIES = ALL_TOOLS.map(t => t.entry);
|