Skip to content

Commit 8c6be6d

Browse files
author
VPKSoft
committed
Initial commit.
1 parent 989cf8f commit 8c6be6d

36 files changed

+11667
-0
lines changed

.gitignore

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
yarn-debug.log*
6+
yarn-error.log*
7+
pnpm-debug.log*
8+
lerna-debug.log*
9+
10+
node_modules
11+
dist
12+
dist-ssr
13+
dev-dist
14+
*.local
15+
16+
# Editor directories and files
17+
.vscode/*
18+
!.vscode/extensions.json
19+
.idea
20+
.DS_Store
21+
*.suo
22+
*.ntvs*
23+
*.njsproj
24+
*.sln
25+
*.sw?

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 Petteri Kautonen
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

biome.json

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
{
2+
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
3+
"vcs": {
4+
"enabled": false,
5+
"clientKind": "git",
6+
"useIgnoreFile": false
7+
},
8+
"files": {
9+
"include": ["src/**/*.ts", "src/**/*.tsx"],
10+
"ignoreUnknown": false,
11+
"ignore": ["vite-env.d.ts", "PasswordKeeper-help"]
12+
},
13+
"formatter": {
14+
"enabled": true,
15+
"indentStyle": "space",
16+
"lineWidth": 120,
17+
"indentWidth": 4,
18+
"lineEnding": "lf"
19+
},
20+
"organizeImports": {
21+
"enabled": true
22+
},
23+
"linter": {
24+
"enabled": true,
25+
"rules": {
26+
"nursery": {
27+
"useConsistentCurlyBraces": "error"
28+
},
29+
"recommended": false,
30+
"a11y": {
31+
"noBlankTarget": "error"
32+
},
33+
"complexity": {
34+
"noExtraBooleanCast": "error",
35+
"noForEach": "error",
36+
"noMultipleSpacesInRegularExpressionLiterals": "error",
37+
"noStaticOnlyClass": "error",
38+
"noUselessCatch": "error",
39+
"noUselessSwitchCase": "error",
40+
"noUselessThisAlias": "error",
41+
"noUselessTypeConstraint": "error",
42+
"noWith": "error",
43+
"useArrowFunction": "error",
44+
"useDateNow": "error",
45+
"useFlatMap": "error"
46+
},
47+
"correctness": {
48+
"noChildrenProp": "error",
49+
"noConstAssign": "error",
50+
"noConstantCondition": "error",
51+
"noEmptyCharacterClassInRegex": "error",
52+
"noEmptyPattern": "error",
53+
"noGlobalObjectCalls": "error",
54+
"noInnerDeclarations": "error",
55+
"noInvalidBuiltinInstantiation": "error",
56+
"noInvalidConstructorSuper": "error",
57+
"noNewSymbol": "error",
58+
"noNonoctalDecimalEscape": "error",
59+
"noPrecisionLoss": "error",
60+
"noSelfAssign": "error",
61+
"noSetterReturn": "error",
62+
"noSwitchDeclarations": "error",
63+
"noUndeclaredVariables": "off",
64+
"noUnreachable": "error",
65+
"noUnreachableSuper": "error",
66+
"noUnsafeFinally": "error",
67+
"noUnsafeOptionalChaining": "error",
68+
"noUnusedLabels": "error",
69+
"noUnusedVariables": "warn",
70+
"useArrayLiterals": "off",
71+
"useExhaustiveDependencies": "warn",
72+
"useHookAtTopLevel": "error",
73+
"useIsNan": "error",
74+
"useJsxKeyInIterable": "error",
75+
"useValidForDirection": "error",
76+
"useYield": "error"
77+
},
78+
"security": {
79+
"noDangerouslySetInnerHtmlWithChildren": "error"
80+
},
81+
"style": {
82+
"noNamespace": "error",
83+
"noNegationElse": "off",
84+
"useAsConstAssertion": "error",
85+
"useBlockStatements": "error",
86+
"useExplicitLengthCheck": "error",
87+
"useImportType": "error",
88+
"useFilenamingConvention": {
89+
"level": "error",
90+
"options": {
91+
"requireAscii": true,
92+
"filenameCases": ["PascalCase"]
93+
}
94+
},
95+
"useForOf": "error",
96+
"useNodejsImportProtocol": "error",
97+
"useNumberNamespace": "error",
98+
"useThrowNewError": "error"
99+
},
100+
"suspicious": {
101+
"noAssignInExpressions": "error",
102+
"noAsyncPromiseExecutor": "error",
103+
"noCatchAssign": "error",
104+
"noClassAssign": "error",
105+
"noCommentText": "error",
106+
"noCompareNegZero": "error",
107+
"noConsole": "warn",
108+
"noControlCharactersInRegex": "error",
109+
"noDebugger": "error",
110+
"noDoubleEquals": "error",
111+
"noDuplicateCase": "error",
112+
"noDuplicateClassMembers": "error",
113+
"noDuplicateJsxProps": "error",
114+
"noDuplicateObjectKeys": "error",
115+
"noDuplicateParameters": "error",
116+
"noEmptyBlockStatements": "error",
117+
"noExplicitAny": "warn",
118+
"noExtraNonNullAssertion": "error",
119+
"noFallthroughSwitchClause": "error",
120+
"noFunctionAssign": "error",
121+
"noGlobalAssign": "error",
122+
"noImportAssign": "error",
123+
"noMisleadingCharacterClass": "error",
124+
"noMisleadingInstantiator": "error",
125+
"noPrototypeBuiltins": "error",
126+
"noRedeclare": "error",
127+
"noShadowRestrictedNames": "error",
128+
"noSparseArray": "error",
129+
"noThenProperty": "error",
130+
"noUnsafeDeclarationMerging": "error",
131+
"noUnsafeNegation": "error",
132+
"useErrorMessage": "error",
133+
"useGetterReturn": "error",
134+
"useIsArray": "error",
135+
"useNamespaceKeyword": "error",
136+
"useNumberToFixedDigitsArgument": "error",
137+
"useValidTypeof": "error"
138+
}
139+
},
140+
"ignore": ["**/.eslintrc.cjs", "src/localization/rust_i18n_transform", "**/vite.config.ts", "main.tsx"]
141+
},
142+
"javascript": {
143+
"formatter": {
144+
"quoteStyle": "double",
145+
"arrowParentheses": "asNeeded",
146+
"trailingCommas": "es5",
147+
"lineEnding": "lf"
148+
}
149+
},
150+
"json": {
151+
"formatter": {
152+
"lineEnding": "lf",
153+
"enabled": true,
154+
"indentStyle": "space",
155+
"indentWidth": 4,
156+
"trailingCommas": "none"
157+
}
158+
},
159+
"css": {
160+
"formatter": {
161+
"lineEnding": "lf",
162+
"enabled": true,
163+
"indentStyle": "space",
164+
"indentWidth": 2
165+
}
166+
}
167+
}

index.html

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7+
<title>JSON Dictionary Browser</title>
8+
</head>
9+
<body>
10+
<div id="root"></div>
11+
<script type="module" src="/src/main.tsx"></script>
12+
</body>
13+
</html>

0 commit comments

Comments
 (0)