diff --git a/backend/data.ts b/backend/data.ts index 6ead181..b62a391 100644 --- a/backend/data.ts +++ b/backend/data.ts @@ -1,6 +1,6 @@ import fs from 'fs-extra'; import { path } from '@tycrek/joint'; -import { nanoid } from 'nanoid'; +import { nanoid } from './generators'; import { log } from './log'; import { AssFile, AssUser, NID, FilesSchema, UsersSchema } from 'ass'; import { UserConfig } from './UserConfig'; diff --git a/backend/generators.ts b/backend/generators.ts index e966cc9..51e144f 100644 --- a/backend/generators.ts +++ b/backend/generators.ts @@ -1,5 +1,5 @@ import fs from 'fs-extra'; -import { randomBytes } from 'crypto'; +import { randomBytes, getRandomValues } from 'crypto'; import cryptoRandomString from 'crypto-random-string'; import { path } from '@tycrek/joint'; @@ -47,3 +47,4 @@ export const gfycat = ({ gfyLength }: Length) => { return gfycat.concat(getWord(animals)); }; +export const nanoid = (size = 21) => getRandomValues(new Uint8Array(size)).reduce(((t, e) => t += (e &= 63) < 36 ? e.toString(36) : e < 62 ? (e - 26).toString(36).toUpperCase() : e > 62 ? "-" : "_"), ""); \ No newline at end of file diff --git a/backend/routers/api.ts b/backend/routers/api.ts index cc239c1..a91da49 100644 --- a/backend/routers/api.ts +++ b/backend/routers/api.ts @@ -4,7 +4,7 @@ import { log } from '../log'; import { UserConfig } from '../UserConfig'; import * as data from '../data'; import { AssUser, AssUserNewReq } from 'ass'; -import { nanoid } from 'nanoid'; +import { nanoid } from '../generators'; const router = Router({ caseSensitive: true });