clean up
This commit is contained in:
parent
5b198be952
commit
9303cb07c4
|
|
@ -57,11 +57,9 @@
|
||||||
"punycode": "2.3.0",
|
"punycode": "2.3.0",
|
||||||
"querystring": "0.2.1",
|
"querystring": "0.2.1",
|
||||||
"rollup": "3.29.1",
|
"rollup": "3.29.1",
|
||||||
"s-age": "1.1.2",
|
|
||||||
"sanitize-html": "2.11.0",
|
"sanitize-html": "2.11.0",
|
||||||
"sass": "1.67.0",
|
"sass": "1.67.0",
|
||||||
"strict-event-emitter-types": "2.0.0",
|
"strict-event-emitter-types": "2.0.0",
|
||||||
"syuilo-password-strength": "0.0.1",
|
|
||||||
"textarea-caret": "3.1.0",
|
"textarea-caret": "3.1.0",
|
||||||
"three": "0.156.1",
|
"three": "0.156.1",
|
||||||
"throttle-debounce": "5.0.0",
|
"throttle-debounce": "5.0.0",
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,6 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { } from 'vue';
|
import { } from 'vue';
|
||||||
import getPasswordStrength from 'syuilo-password-strength';
|
|
||||||
import { toUnicode } from 'punycode/';
|
import { toUnicode } from 'punycode/';
|
||||||
import MkButton from './MkButton.vue';
|
import MkButton from './MkButton.vue';
|
||||||
import MkInput from './MkInput.vue';
|
import MkInput from './MkInput.vue';
|
||||||
|
|
@ -132,6 +131,30 @@ const shouldDisableSubmitting = $computed((): boolean => {
|
||||||
passwordRetypeState !== 'match';
|
passwordRetypeState !== 'match';
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function getPasswordStrength(source: string): number {
|
||||||
|
let strength = 0;
|
||||||
|
let power = 0.018;
|
||||||
|
|
||||||
|
// 英数字
|
||||||
|
if (/[a-zA-Z]/.test(source) && /[0-9]/.test(source)) {
|
||||||
|
power += 0.020;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 大文字と小文字が混ざってたら
|
||||||
|
if (/[a-z]/.test(source) && /[A-Z]/.test(source)) {
|
||||||
|
power += 0.015;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 記号が混ざってたら
|
||||||
|
if (/[!\x22\#$%&@'()*+,-./_]/.test(source)) {
|
||||||
|
power += 0.02;
|
||||||
|
}
|
||||||
|
|
||||||
|
strength = power * source.length;
|
||||||
|
|
||||||
|
return Math.max(0, Math.min(1, strength));
|
||||||
|
}
|
||||||
|
|
||||||
function onChangeUsername(): void {
|
function onChangeUsername(): void {
|
||||||
if (username === '') {
|
if (username === '') {
|
||||||
usernameState = null;
|
usernameState = null;
|
||||||
|
|
|
||||||
|
|
@ -143,7 +143,6 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { defineAsyncComponent, computed, onMounted, onUnmounted, nextTick, watch } from 'vue';
|
import { defineAsyncComponent, computed, onMounted, onUnmounted, nextTick, watch } from 'vue';
|
||||||
import calcAge from 's-age';
|
|
||||||
import * as Misskey from 'misskey-js';
|
import * as Misskey from 'misskey-js';
|
||||||
import MkNote from '@/components/MkNote.vue';
|
import MkNote from '@/components/MkNote.vue';
|
||||||
import MkFollowButton from '@/components/MkFollowButton.vue';
|
import MkFollowButton from '@/components/MkFollowButton.vue';
|
||||||
|
|
@ -167,6 +166,21 @@ import MkNotes from '@/components/MkNotes.vue';
|
||||||
import { api } from '@/os';
|
import { api } from '@/os';
|
||||||
import { isFfVisibleForMe } from '@/scripts/isFfVisibleForMe';
|
import { isFfVisibleForMe } from '@/scripts/isFfVisibleForMe';
|
||||||
|
|
||||||
|
function calcAge(birthdate: string): number {
|
||||||
|
const date = new Date(birthdate);
|
||||||
|
const now = new Date();
|
||||||
|
|
||||||
|
let yearDiff = now.getFullYear() - date.getFullYear();
|
||||||
|
const monthDiff = now.getMonth() - date.getMonth();
|
||||||
|
const pastDate = now.getDate() < date.getDate();
|
||||||
|
|
||||||
|
if (monthDiff < 0 || (monthDiff === 0 && pastDate)) {
|
||||||
|
yearDiff--;
|
||||||
|
}
|
||||||
|
|
||||||
|
return yearDiff;
|
||||||
|
}
|
||||||
|
|
||||||
const XPhotos = defineAsyncComponent(() => import('./index.photos.vue'));
|
const XPhotos = defineAsyncComponent(() => import('./index.photos.vue'));
|
||||||
const XActivity = defineAsyncComponent(() => import('./index.activity.vue'));
|
const XActivity = defineAsyncComponent(() => import('./index.activity.vue'));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -766,9 +766,6 @@ importers:
|
||||||
rollup:
|
rollup:
|
||||||
specifier: 3.29.1
|
specifier: 3.29.1
|
||||||
version: 3.29.1
|
version: 3.29.1
|
||||||
s-age:
|
|
||||||
specifier: 1.1.2
|
|
||||||
version: 1.1.2
|
|
||||||
sanitize-html:
|
sanitize-html:
|
||||||
specifier: 2.11.0
|
specifier: 2.11.0
|
||||||
version: 2.11.0
|
version: 2.11.0
|
||||||
|
|
@ -778,9 +775,6 @@ importers:
|
||||||
strict-event-emitter-types:
|
strict-event-emitter-types:
|
||||||
specifier: 2.0.0
|
specifier: 2.0.0
|
||||||
version: 2.0.0
|
version: 2.0.0
|
||||||
syuilo-password-strength:
|
|
||||||
specifier: 0.0.1
|
|
||||||
version: 0.0.1
|
|
||||||
textarea-caret:
|
textarea-caret:
|
||||||
specifier: 3.1.0
|
specifier: 3.1.0
|
||||||
version: 3.1.0
|
version: 3.1.0
|
||||||
|
|
@ -17327,10 +17321,6 @@ packages:
|
||||||
dependencies:
|
dependencies:
|
||||||
tslib: 2.5.0
|
tslib: 2.5.0
|
||||||
|
|
||||||
/s-age@1.1.2:
|
|
||||||
resolution: {integrity: sha512-aSN2TlF39WLoZA/6cgYSJZhKt63kJ4EaadejPWjWY9/h4rksIqvfWY3gfd+3uAegSM1IXsA9aWeEhJtkxkFQtA==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/safe-array-concat@1.0.0:
|
/safe-array-concat@1.0.0:
|
||||||
resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==}
|
resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==}
|
||||||
engines: {node: '>=0.4'}
|
engines: {node: '>=0.4'}
|
||||||
|
|
@ -18274,10 +18264,6 @@ packages:
|
||||||
hasBin: true
|
hasBin: true
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/syuilo-password-strength@0.0.1:
|
|
||||||
resolution: {integrity: sha512-g9rPT3V1Q4WjWFZ/t5BdGC1mT/FpYnsLdBl+M5e6MlRkuE1RSR+R43wcY/3mKI59B9KEr+vxdWCuWNMD3oNHKA==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/tar-fs@2.1.1:
|
/tar-fs@2.1.1:
|
||||||
resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==}
|
resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==}
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue