fix: fixed deno types and build
This commit is contained in:
parent
2973cfe4d8
commit
c92f445da3
41 changed files with 173 additions and 336 deletions
|
@ -43,6 +43,7 @@ jobs:
|
|||
run: |
|
||||
git config user.name "mtcute-bot"
|
||||
git config user.email mtcute-bot@tei.su
|
||||
git remote add github git@github.com:mtcute/mtcute.git
|
||||
|
||||
- name: Run release
|
||||
env:
|
||||
|
@ -52,6 +53,9 @@ jobs:
|
|||
--kind=${{ github.event.inputs.kind }} \
|
||||
--with-npm \
|
||||
--npm-token=${{ secrets.NPM_TOKEN }} \
|
||||
--with-jsr \
|
||||
--jsr-token=${{ secrets.JSR_TOKEN }} \
|
||||
--git-extra-origins=github \
|
||||
--with-github-release \
|
||||
--github-repo=mtcute/mtcute \
|
||||
--github-token=${{ secrets.GH_PAT }}
|
||||
|
|
|
@ -11,16 +11,21 @@ on:
|
|||
jobs:
|
||||
lint:
|
||||
runs-on: node22
|
||||
if: github.actor != 'mtcute-bot' # do not run after release
|
||||
if: github.actor != 'desu-bot' # do not run after release
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: ./.forgejo/actions/init
|
||||
- uses: https://github.com/denoland/setup-deno@v1
|
||||
with:
|
||||
deno-version: '2.0'
|
||||
- name: 'TypeScript'
|
||||
run: pnpm run lint:tsc:ci
|
||||
- name: 'ESLint'
|
||||
run: pnpm run lint:ci
|
||||
- name: 'Circular dependencies'
|
||||
run: pnpm run lint:dpdm
|
||||
- name: 'deno publish --dry-run'
|
||||
run: pnpm exec fuman-build jsr gen-deno-workspace --with-dry-run
|
||||
|
||||
test-node:
|
||||
strategy:
|
||||
|
|
|
@ -4,51 +4,37 @@ export default {
|
|||
exclude: ['**/*.{test,bench,test-utils}.ts', '**/__fixtures__/**'],
|
||||
sourceDir: 'src',
|
||||
transformCode: (path, code) => {
|
||||
// add shims for node-specific APIs and replace NodeJS.* types
|
||||
// pretty fragile, but it works for now
|
||||
// todo: remove this god awfulness and use `declare const` in-place instead
|
||||
if (!path.endsWith('.ts')) return code
|
||||
if (!code.match('<deno-(insert|remove|tsignore)>')) return code
|
||||
|
||||
const typesToReplace = {
|
||||
'NodeJS\\.Timeout': 'number',
|
||||
'NodeJS\\.Immediate': 'number',
|
||||
}
|
||||
const nodeSpecificApis = {
|
||||
setImmediate: '(cb: (...args: any[]) => void, ...args: any[]) => number',
|
||||
clearImmediate: '(id: number) => void',
|
||||
Buffer:
|
||||
'{ '
|
||||
+ 'concat: (...args: any[]) => Uint8Array, '
|
||||
+ 'from: (data: any, encoding?: string) => { toString(encoding?: string): string }, '
|
||||
+ ' }',
|
||||
SharedWorker: ['type', 'never'],
|
||||
WorkerGlobalScope:
|
||||
'{ '
|
||||
+ ' new (): typeof WorkerGlobalScope, '
|
||||
+ ' postMessage: (message: any, transfer?: Transferable[]) => void, '
|
||||
+ ' addEventListener: (type: "message", listener: (ev: MessageEvent) => void) => void, '
|
||||
+ ' }',
|
||||
process: '{ ' + 'hrtime: { bigint: () => bigint }, ' + '}',
|
||||
// deno is missing some types, so we have to add them manually
|
||||
// i dont want to manually write types for them, so we just declare them as `any` in a comment
|
||||
// and un-comment them when building for deno
|
||||
//
|
||||
// this way we can still have proper types in the code, while also being able to build for deno
|
||||
// very much a crutch, but welp, deno sucks
|
||||
|
||||
let insertContent = code.match(/<deno-insert>(.*?)<\/deno-insert>/s)
|
||||
while (insertContent) {
|
||||
code = code.slice(0, insertContent.index)
|
||||
+ insertContent[1].replace(/\/\/\s*/g, '')
|
||||
+ code.slice(insertContent.index + insertContent[0].length)
|
||||
|
||||
insertContent = code.match(/<deno-insert>(.*?)<\/deno-insert>/s)
|
||||
}
|
||||
|
||||
for (const [name, decl_] of Object.entries(nodeSpecificApis)) {
|
||||
if (code.includes(name)) {
|
||||
if (name === 'Buffer' && code.includes('node:buffer')) continue
|
||||
let removeContent = code.match(/<deno-remove>(.*?)<\/deno-remove>/s)
|
||||
while (removeContent) {
|
||||
code = code.slice(0, removeContent.index) + code.slice(removeContent.index + removeContent[0].length)
|
||||
|
||||
const isType = Array.isArray(decl_) && decl_[0] === 'type'
|
||||
const decl = isType ? decl_[1] : decl_
|
||||
|
||||
if (isType) {
|
||||
code = `declare type ${name} = ${decl};\n${code}`
|
||||
} else {
|
||||
code = `declare const ${name}: ${decl};\n${code}`
|
||||
}
|
||||
}
|
||||
removeContent = code.match(/<deno-remove>(.*?)<\/deno-remove>/s)
|
||||
}
|
||||
|
||||
for (const [oldType, newType] of Object.entries(typesToReplace)) {
|
||||
if (code.match(oldType)) {
|
||||
code = code.replace(new RegExp(oldType, 'g'), newType)
|
||||
}
|
||||
let tsIgnoreContent = code.match(/\/\/\s*<deno-tsignore>/)
|
||||
while (tsIgnoreContent) {
|
||||
code = `${code.slice(0, tsIgnoreContent.index)}/* @ts-ignore */${code.slice(tsIgnoreContent.index + tsIgnoreContent[0].length)}`
|
||||
|
||||
tsIgnoreContent = code.match(/\/\/\s*<deno-tsignore>/)
|
||||
}
|
||||
|
||||
return code
|
||||
|
|
|
@ -168,7 +168,6 @@
|
|||
"npm:chai@^4.3.10",
|
||||
"npm:dotenv-cli@7.4.4",
|
||||
"npm:esbuild@0.24",
|
||||
"npm:globstar@1.0.0",
|
||||
"npm:tsx@^4.19.2"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
"devDependencies": {
|
||||
"@types/chai": "^4.3.8",
|
||||
"@types/mocha": "^10.0.2",
|
||||
"@types/node": "^20.8.10",
|
||||
"globstar": "1.0.0"
|
||||
"@types/node": "^20.8.10"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"@antfu/eslint-config": "^3.11.2",
|
||||
"@fuman/build": "https://pkg.pr.new/teidesu/fuman/@fuman/build@2a71d4a",
|
||||
"@fuman/build": "https://pkg.pr.new/teidesu/fuman/@fuman/build@c073041",
|
||||
"@fuman/utils": "0.0.4",
|
||||
"@types/deno": "npm:@teidesu/deno-types@1.46.3",
|
||||
"@types/node": "20.10.0",
|
||||
|
|
|
@ -91,13 +91,13 @@ export class TelegramClient extends TelegramClientBase {
|
|||
return new Promise(res => this._rl?.question(text, res))
|
||||
}
|
||||
|
||||
close(): Promise<void> {
|
||||
override close(): Promise<void> {
|
||||
this._rl?.close()
|
||||
|
||||
return super.close()
|
||||
}
|
||||
|
||||
start(params: Parameters<TelegramClientBase['start']>[0] = {}): Promise<User> {
|
||||
override start(params: Parameters<TelegramClientBase['start']>[0] = {}): Promise<User> {
|
||||
if (!params.botToken) {
|
||||
if (!params.phone) params.phone = () => this.input('phone > ')
|
||||
if (!params.code) params.code = () => this.input('code > ')
|
||||
|
@ -117,7 +117,7 @@ export class TelegramClient extends TelegramClientBase {
|
|||
})
|
||||
}
|
||||
|
||||
run(
|
||||
override run(
|
||||
params: Parameters<TelegramClient['start']>[0] | ((user: User) => void | Promise<void>),
|
||||
then?: (user: User) => void | Promise<void>,
|
||||
): void {
|
||||
|
@ -131,7 +131,7 @@ export class TelegramClient extends TelegramClientBase {
|
|||
.catch(err => this.onError.emit(unknownToError(err)))
|
||||
}
|
||||
|
||||
downloadToFile(
|
||||
override downloadToFile(
|
||||
filename: string,
|
||||
location: FileDownloadLocation,
|
||||
params?: FileDownloadParameters | undefined,
|
||||
|
@ -139,7 +139,10 @@ export class TelegramClient extends TelegramClientBase {
|
|||
return downloadToFile(this, filename, location, params)
|
||||
}
|
||||
|
||||
downloadAsNodeStream(location: FileDownloadLocation, params?: FileDownloadParameters | undefined): Readable {
|
||||
override downloadAsNodeStream(
|
||||
location: FileDownloadLocation,
|
||||
params?: FileDownloadParameters | undefined,
|
||||
): Readable {
|
||||
return downloadAsNodeStream(this, location, params)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ export async function getDefaultCryptoProvider(): Promise<IExtendedCryptoProvide
|
|||
const crypto = /* @vite-ignore */ await import('node:crypto')
|
||||
const { NodeCryptoProvider } = /* @vite-ignore */ await import('@mtcute/node/utils.js')
|
||||
|
||||
// <deno-tsignore>
|
||||
return new (class extends NodeCryptoProvider implements IExtendedCryptoProvider {
|
||||
createHash(algorithm: 'md5' | 'sha512') {
|
||||
const hasher = crypto.createHash(algorithm)
|
||||
|
|
|
@ -14,7 +14,7 @@ export class Audio extends RawDocument {
|
|||
readonly type = 'audio' as const
|
||||
|
||||
/** Type of the file for File ID generation */
|
||||
protected _fileIdType(): tdFileId.FileType {
|
||||
protected override _fileIdType(): tdFileId.FileType {
|
||||
return tdFileId.FileType.Audio
|
||||
}
|
||||
|
||||
|
|
|
@ -133,7 +133,7 @@ export class LiveLocation extends RawLocation {
|
|||
* independent live geolocation, which
|
||||
* will not be auto-updated with the current
|
||||
*/
|
||||
get inputMedia(): tl.TypeInputMedia {
|
||||
override get inputMedia(): tl.TypeInputMedia {
|
||||
return {
|
||||
_: 'inputMediaGeoLive',
|
||||
geoPoint: {
|
||||
|
|
|
@ -65,7 +65,7 @@ const MASK_POS = ['forehead', 'eyes', 'mouth', 'chin'] as const
|
|||
export class Sticker extends RawDocument {
|
||||
readonly type = 'sticker' as const
|
||||
|
||||
protected _fileIdType(): tdFileId.FileType {
|
||||
protected override _fileIdType(): tdFileId.FileType {
|
||||
return tdFileId.FileType.Sticker
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ import { RawDocument } from './document.js'
|
|||
export class Video extends RawDocument {
|
||||
readonly type = 'video' as const
|
||||
|
||||
protected _fileIdType(): tdFileId.FileType {
|
||||
protected override _fileIdType(): tdFileId.FileType {
|
||||
if (this.isRound) return tdFileId.FileType.VideoNote
|
||||
if (this.isAnimation) return tdFileId.FileType.Animation
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ import { RawDocument } from './document.js'
|
|||
export class Voice extends RawDocument {
|
||||
readonly type = 'voice' as const
|
||||
|
||||
protected _fileIdType(): tdFileId.FileType {
|
||||
protected override _fileIdType(): tdFileId.FileType {
|
||||
return tdFileId.FileType.VoiceNote
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ export class StoryInteractiveChannelPost extends StoryInteractiveArea {
|
|||
readonly type = 'channel_post' as const
|
||||
|
||||
constructor(
|
||||
readonly raw: tl.RawMediaAreaChannelPost,
|
||||
override readonly raw: tl.RawMediaAreaChannelPost,
|
||||
readonly _peers: PeersIndex,
|
||||
) {
|
||||
super(raw)
|
||||
|
|
|
@ -13,7 +13,7 @@ import { StoryInteractiveArea } from './base.js'
|
|||
export class StoryInteractiveLocation extends StoryInteractiveArea {
|
||||
readonly type = 'location' as const
|
||||
|
||||
constructor(readonly raw: tl.RawMediaAreaGeoPoint) {
|
||||
constructor(override readonly raw: tl.RawMediaAreaGeoPoint) {
|
||||
super(raw)
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ import { StoryInteractiveArea } from './base.js'
|
|||
export class StoryInteractiveReaction extends StoryInteractiveArea {
|
||||
readonly type = 'reaction' as const
|
||||
|
||||
constructor(readonly raw: tl.RawMediaAreaSuggestedReaction) {
|
||||
constructor(override readonly raw: tl.RawMediaAreaSuggestedReaction) {
|
||||
super(raw)
|
||||
}
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ import { StoryInteractiveArea } from './base.js'
|
|||
export class StoryInteractiveUrl extends StoryInteractiveArea {
|
||||
readonly type = 'url' as const
|
||||
|
||||
constructor(readonly raw: tl.RawMediaAreaUrl) {
|
||||
constructor(override readonly raw: tl.RawMediaAreaUrl) {
|
||||
super(raw)
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ import { StoryInteractiveArea } from './base.js'
|
|||
export class StoryInteractiveVenue extends StoryInteractiveArea {
|
||||
readonly type = 'venue' as const
|
||||
|
||||
constructor(readonly raw: tl.RawMediaAreaVenue) {
|
||||
constructor(override readonly raw: tl.RawMediaAreaVenue) {
|
||||
super(raw)
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ import { StoryInteractiveArea } from './base.js'
|
|||
export class StoryInteractiveWeather extends StoryInteractiveArea {
|
||||
readonly type = 'weather' as const
|
||||
|
||||
constructor(readonly raw: tl.RawMediaAreaWeather) {
|
||||
constructor(override readonly raw: tl.RawMediaAreaWeather) {
|
||||
super(raw)
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ import { Message } from '../messages/message.js'
|
|||
export class BusinessMessage extends Message {
|
||||
constructor(
|
||||
readonly update: tl.RawUpdateBotNewBusinessMessage | tl.RawUpdateBotEditBusinessMessage,
|
||||
readonly _peers: PeersIndex,
|
||||
_peers: PeersIndex,
|
||||
) {
|
||||
super(update.message, _peers)
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ export class BusinessMessage extends Message {
|
|||
return this.update.connectionId
|
||||
}
|
||||
|
||||
get groupedIdUnique(): string | null {
|
||||
override get groupedIdUnique(): string | null {
|
||||
const superGroupedIdUnique = super.groupedIdUnique
|
||||
|
||||
if (!superGroupedIdUnique) {
|
||||
|
|
|
@ -83,7 +83,7 @@ class BaseCallbackQuery {
|
|||
*/
|
||||
export class CallbackQuery extends BaseCallbackQuery {
|
||||
constructor(
|
||||
readonly raw: tl.RawUpdateBotCallbackQuery,
|
||||
override readonly raw: tl.RawUpdateBotCallbackQuery,
|
||||
_peers: PeersIndex,
|
||||
) {
|
||||
super(raw, _peers)
|
||||
|
@ -116,7 +116,7 @@ makeInspectable(CallbackQuery)
|
|||
*/
|
||||
export class InlineCallbackQuery extends BaseCallbackQuery {
|
||||
constructor(
|
||||
readonly raw: tl.RawUpdateInlineBotCallbackQuery,
|
||||
override readonly raw: tl.RawUpdateInlineBotCallbackQuery,
|
||||
_peers: PeersIndex,
|
||||
) {
|
||||
super(raw, _peers)
|
||||
|
@ -151,7 +151,7 @@ makeInspectable(InlineCallbackQuery)
|
|||
*/
|
||||
export class BusinessCallbackQuery extends BaseCallbackQuery {
|
||||
constructor(
|
||||
readonly raw: tl.RawUpdateBusinessBotCallbackQuery,
|
||||
override readonly raw: tl.RawUpdateBusinessBotCallbackQuery,
|
||||
_peers: PeersIndex,
|
||||
) {
|
||||
super(raw, _peers)
|
||||
|
|
|
@ -49,6 +49,10 @@ export type WorkerOutboundMessage =
|
|||
error?: SerializedError
|
||||
}
|
||||
|
||||
// <deno-insert>
|
||||
// declare type SharedWorker = never
|
||||
// </deno-insert>
|
||||
|
||||
export type SomeWorker = NodeWorker | Worker | SharedWorker
|
||||
|
||||
export type SendFn = (message: WorkerInboundMessage) => void
|
||||
|
|
|
@ -170,7 +170,7 @@ export class SessionConnection extends PersistentConnection {
|
|||
this.reset()
|
||||
}
|
||||
|
||||
async destroy(): Promise<void> {
|
||||
override async destroy(): Promise<void> {
|
||||
await super.destroy()
|
||||
this.reset(true)
|
||||
}
|
||||
|
@ -1542,7 +1542,7 @@ export class SessionConnection extends PersistentConnection {
|
|||
}
|
||||
}
|
||||
|
||||
protected _onInactivityTimeout(): void {
|
||||
protected override _onInactivityTimeout(): void {
|
||||
// we should send all pending acks and other service messages
|
||||
// before dropping the connection
|
||||
// additionally, if we are still waiting for some rpc results,
|
||||
|
|
|
@ -55,7 +55,7 @@ export class IntermediatePacketCodec implements IPacketCodec {
|
|||
* See https://core.telegram.org/mtproto/mtproto-transports#padded-intermediate
|
||||
*/
|
||||
export class PaddedIntermediatePacketCodec extends IntermediatePacketCodec implements IPacketCodec {
|
||||
tag(): Uint8Array {
|
||||
override tag(): Uint8Array {
|
||||
return PADDED_TAG
|
||||
}
|
||||
|
||||
|
@ -64,7 +64,7 @@ export class PaddedIntermediatePacketCodec extends IntermediatePacketCodec imple
|
|||
this._crypto = crypto
|
||||
}
|
||||
|
||||
encode(frame: Uint8Array, into: ISyncWritable): void {
|
||||
override encode(frame: Uint8Array, into: ISyncWritable): void {
|
||||
// padding size, 0-15
|
||||
const padSize = getRandomInt(16)
|
||||
|
||||
|
|
|
@ -8,6 +8,10 @@ import { isTlRpcError } from './type-assertions.js'
|
|||
const DEFAULT_LOG_LEVEL = 2
|
||||
const FORMATTER_RE = /%[a-z]/gi
|
||||
|
||||
// <deno-insert>
|
||||
// declare const Buffer: typeof import('node:buffer').Buffer
|
||||
// </deno-insert>
|
||||
|
||||
/**
|
||||
* Logger created by {@link LogManager}
|
||||
*/
|
||||
|
@ -179,7 +183,7 @@ export class LogManager extends Logger {
|
|||
*
|
||||
* @param tag Logger tag
|
||||
*/
|
||||
create(tag: string): Logger {
|
||||
override create(tag: string): Logger {
|
||||
return new Logger(this, tag)
|
||||
}
|
||||
|
||||
|
|
|
@ -2,11 +2,13 @@ import * as fs from 'node:fs'
|
|||
|
||||
/** @type {import('@fuman/build/vite').CustomBuildConfig} */
|
||||
export default () => ({
|
||||
finalizeJsr({ outDir }) {
|
||||
// jsr doesn't support symlinks, so we need to copy the files manually
|
||||
const real = fs.realpathSync(`${outDir}/common-internals-web`)
|
||||
fs.unlinkSync(`${outDir}/common-internals-web`)
|
||||
fs.cpSync(real, `${outDir}/common-internals-web`, { recursive: true })
|
||||
jsr: {
|
||||
finalize({ outDir }) {
|
||||
// jsr doesn't support symlinks, so we need to copy the files manually
|
||||
const real = fs.realpathSync(`${outDir}/common-internals-web`)
|
||||
fs.unlinkSync(`${outDir}/common-internals-web`)
|
||||
fs.cpSync(real, `${outDir}/common-internals-web`, { recursive: true })
|
||||
},
|
||||
},
|
||||
typedoc: {
|
||||
externalPattern: [
|
||||
|
|
|
@ -92,13 +92,13 @@ export class TelegramClient extends TelegramClientBase {
|
|||
return new Promise(res => this._rl?.question(text, res))
|
||||
}
|
||||
|
||||
close(): Promise<void> {
|
||||
override close(): Promise<void> {
|
||||
this._rl?.close()
|
||||
|
||||
return super.close()
|
||||
}
|
||||
|
||||
start(params: Parameters<TelegramClientBase['start']>[0] = {}): Promise<User> {
|
||||
override start(params: Parameters<TelegramClientBase['start']>[0] = {}): Promise<User> {
|
||||
if (!params.botToken) {
|
||||
if (!params.phone) params.phone = () => this.input('phone > ')
|
||||
if (!params.code) params.code = () => this.input('code > ')
|
||||
|
@ -118,7 +118,7 @@ export class TelegramClient extends TelegramClientBase {
|
|||
})
|
||||
}
|
||||
|
||||
run(
|
||||
override run(
|
||||
params: Parameters<TelegramClient['start']>[0] | ((user: User) => void | Promise<void>),
|
||||
then?: (user: User) => void | Promise<void>,
|
||||
): void {
|
||||
|
@ -132,7 +132,7 @@ export class TelegramClient extends TelegramClientBase {
|
|||
.catch(err => this.onError.emit(unknownToError(err)))
|
||||
}
|
||||
|
||||
downloadToFile(
|
||||
override downloadToFile(
|
||||
filename: string,
|
||||
location: FileDownloadLocation,
|
||||
params?: FileDownloadParameters | undefined,
|
||||
|
|
|
@ -88,7 +88,7 @@ export class SqliteStorageDriver extends BaseSqliteStorageDriver {
|
|||
super()
|
||||
}
|
||||
|
||||
async _load(): Promise<void> {
|
||||
override async _load(): Promise<void> {
|
||||
if (!Database) {
|
||||
// we load this lazily to avoid loading ffi if it's not needed,
|
||||
// in case the user doesn't use sqlite storage
|
||||
|
|
|
@ -14,6 +14,14 @@ import {
|
|||
|
||||
import { DenoPlatform } from './platform.js'
|
||||
|
||||
// <deno-insert>
|
||||
// declare const WorkerGlobalScope: any
|
||||
// declare const self: typeof globalThis & {
|
||||
// postMessage: Function,
|
||||
// addEventListener: (type: 'message', listener: (ev: { data: any }) => void) => void,
|
||||
// }
|
||||
// </deno-insert>
|
||||
|
||||
export type { TelegramWorkerOptions, WorkerCustomMethods }
|
||||
export interface TelegramWorkerPortOptions {
|
||||
worker: SomeWorker
|
||||
|
|
|
@ -103,13 +103,13 @@ export class TelegramClient extends TelegramClientBase {
|
|||
return new Promise(res => this._rl?.question(text, res))
|
||||
}
|
||||
|
||||
close(): Promise<void> {
|
||||
override close(): Promise<void> {
|
||||
this._rl?.close()
|
||||
|
||||
return super.close()
|
||||
}
|
||||
|
||||
start(params: Parameters<TelegramClientBase['start']>[0] = {}): Promise<User> {
|
||||
override start(params: Parameters<TelegramClientBase['start']>[0] = {}): Promise<User> {
|
||||
if (!params.botToken) {
|
||||
if (!params.phone) params.phone = () => this.input('phone > ')
|
||||
if (!params.code) params.code = () => this.input('code > ')
|
||||
|
@ -129,7 +129,7 @@ export class TelegramClient extends TelegramClientBase {
|
|||
})
|
||||
}
|
||||
|
||||
run(
|
||||
override run(
|
||||
params: Parameters<TelegramClient['start']>[0] | ((user: User) => void | Promise<void>),
|
||||
then?: (user: User) => void | Promise<void>,
|
||||
): void {
|
||||
|
@ -143,7 +143,7 @@ export class TelegramClient extends TelegramClientBase {
|
|||
.catch(err => this.onError.emit(unknownToError(err)))
|
||||
}
|
||||
|
||||
downloadToFile(
|
||||
override downloadToFile(
|
||||
filename: string,
|
||||
location: FileDownloadLocation,
|
||||
params?: FileDownloadParameters | undefined,
|
||||
|
@ -151,7 +151,10 @@ export class TelegramClient extends TelegramClientBase {
|
|||
return downloadToFile(this, filename, location, params)
|
||||
}
|
||||
|
||||
downloadAsNodeStream(location: FileDownloadLocation, params?: FileDownloadParameters | undefined): Readable {
|
||||
override downloadAsNodeStream(
|
||||
location: FileDownloadLocation,
|
||||
params?: FileDownloadParameters | undefined,
|
||||
): Readable {
|
||||
return downloadAsNodeStream(this, location, params)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -185,7 +185,7 @@ export class StubTelegramClient extends BaseTelegramClient {
|
|||
return response
|
||||
}
|
||||
|
||||
async call<T extends tl.RpcMethod>(
|
||||
override async call<T extends tl.RpcMethod>(
|
||||
message: MustEqual<T, tl.RpcMethod>,
|
||||
params?: RpcCallOptions,
|
||||
): Promise<tl.RpcCallReturn[T['_']]> {
|
||||
|
|
|
@ -5,6 +5,12 @@ import { txToPromise } from './utils.js'
|
|||
export type PostMigrationFunction = (db: IDBDatabase) => Promise<void>
|
||||
type MigrationFunction = (db: IDBDatabase) => void | PostMigrationFunction
|
||||
|
||||
// <deno-insert>
|
||||
// declare const indexedDB: any
|
||||
// declare type IDBDatabase = any
|
||||
// declare type IDBObjectStore = any
|
||||
// </deno-insert>
|
||||
|
||||
const REPO_VERSION_PREFIX = '__version:'
|
||||
|
||||
export class IdbStorageDriver extends BaseStorageDriver {
|
||||
|
|
|
@ -6,6 +6,13 @@ import { reqToPromise, txToPromise } from '../utils.js'
|
|||
const TABLE_AUTH_KEYS = 'authKeys'
|
||||
const TABLE_TEMP_AUTH_KEYS = 'tempAuthKeys'
|
||||
|
||||
// <deno-insert>
|
||||
// declare type IDBTransactionMode = any
|
||||
// declare type IDBObjectStore = any
|
||||
// declare type IDBValidKey = any
|
||||
// declare type IDBRequest<T> = { result: T }
|
||||
// </deno-insert>
|
||||
|
||||
interface AuthKeyDto {
|
||||
dc: number
|
||||
key: Uint8Array
|
||||
|
@ -76,7 +83,7 @@ export class IdbAuthKeysRepository implements IAuthKeysRepository {
|
|||
|
||||
// IndexedDB sucks
|
||||
const tempOs = tx.objectStore(TABLE_TEMP_AUTH_KEYS)
|
||||
const keys = await reqToPromise(tempOs.getAllKeys())
|
||||
const keys = await reqToPromise<IDBValidKey[]>(tempOs.getAllKeys())
|
||||
|
||||
for (const key of keys) {
|
||||
if ((key as [number, number])[0] === dc) {
|
||||
|
|
|
@ -9,6 +9,12 @@ interface KeyValueDto {
|
|||
value: Uint8Array
|
||||
}
|
||||
|
||||
// <deno-insert>
|
||||
// declare type IDBTransactionMode = any
|
||||
// declare type IDBObjectStore = any
|
||||
// declare type IDBRequest<T> = { result: T }
|
||||
// </deno-insert>
|
||||
|
||||
export class IdbKvRepository implements IKeyValueRepository {
|
||||
constructor(readonly _driver: IdbStorageDriver) {
|
||||
_driver.registerMigration(KV_TABLE, 1, (db) => {
|
||||
|
|
|
@ -5,6 +5,12 @@ import { reqToPromise } from '../utils.js'
|
|||
|
||||
const TABLE = 'peers'
|
||||
|
||||
// <deno-insert>
|
||||
// declare type IDBTransactionMode = any
|
||||
// declare type IDBObjectStore = any
|
||||
// declare type IDBRequest<T> = { result: T }
|
||||
// </deno-insert>
|
||||
|
||||
export class IdbPeersRepository implements IPeersRepository {
|
||||
constructor(readonly _driver: IdbStorageDriver) {
|
||||
_driver.registerMigration(TABLE, 1, (db) => {
|
||||
|
|
|
@ -11,6 +11,14 @@ interface MessageRefDto {
|
|||
msgId: number
|
||||
}
|
||||
|
||||
// <deno-insert>
|
||||
// declare type IDBTransactionMode = any
|
||||
// declare type IDBObjectStore = any
|
||||
// declare type IDBValidKey = any
|
||||
// declare type IDBRequest<T> = { result: T }
|
||||
// declare type IDBCursorWithValue = { delete: () => void, continue: () => void }
|
||||
// </deno-insert>
|
||||
|
||||
export class IdbRefMsgRepository implements IReferenceMessagesRepository {
|
||||
constructor(readonly _driver: IdbStorageDriver) {
|
||||
_driver.registerMigration(TABLE, 1, (db) => {
|
||||
|
@ -46,7 +54,7 @@ export class IdbRefMsgRepository implements IReferenceMessagesRepository {
|
|||
const index = os.index('by_msg')
|
||||
|
||||
for (const msgId of msgIds) {
|
||||
const keys = await reqToPromise(index.getAllKeys([chatId, msgId]))
|
||||
const keys = await reqToPromise<IDBValidKey[]>(index.getAllKeys([chatId, msgId]))
|
||||
|
||||
// there are never that many keys, so we can avoid using cursor
|
||||
for (const key of keys) {
|
||||
|
@ -64,12 +72,12 @@ export class IdbRefMsgRepository implements IReferenceMessagesRepository {
|
|||
|
||||
const req = index.openCursor(peerId)
|
||||
|
||||
let cursor = await reqToPromise(req)
|
||||
let cursor = await reqToPromise<IDBCursorWithValue | null>(req)
|
||||
|
||||
while (cursor) {
|
||||
cursor.delete()
|
||||
cursor.continue()
|
||||
cursor = await reqToPromise(req)
|
||||
cursor = await reqToPromise<IDBCursorWithValue | null>(req)
|
||||
}
|
||||
|
||||
return txToPromise(tx)
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
// <deno-insert>
|
||||
// declare type IDBTransaction = any
|
||||
// declare type IDBRequest<T> = { result: T, onsuccess?: (ev: any) => void, onerror?: (ev: any) => void, error?: any }
|
||||
// </deno-insert>
|
||||
|
||||
export function txToPromise(tx: IDBTransaction): Promise<void> {
|
||||
return new Promise((resolve, reject) => {
|
||||
tx.oncomplete = () => resolve()
|
||||
|
|
|
@ -3,6 +3,10 @@ import type { ICorePlatform } from '@mtcute/core'
|
|||
import { defaultLoggingHandler } from './common-internals-web/logging.js'
|
||||
import { beforeExit } from './exit-hook.js'
|
||||
|
||||
// <deno-insert>
|
||||
// declare const navigator: (typeof globalThis)['navigator'] & { onLine: boolean }
|
||||
// </deno-insert>
|
||||
|
||||
export class WebPlatform implements ICorePlatform {
|
||||
// ICorePlatform
|
||||
declare log: typeof defaultLoggingHandler
|
||||
|
@ -40,7 +44,7 @@ export class WebPlatform implements ICorePlatform {
|
|||
}
|
||||
|
||||
isOnline(): boolean {
|
||||
return navigator.onLine
|
||||
return navigator.onLine ?? false
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,14 @@ export interface TelegramWorkerPortOptions {
|
|||
}
|
||||
let _registered = false
|
||||
|
||||
// <deno-insert>
|
||||
// declare const WorkerGlobalScope: any
|
||||
// declare const self: typeof globalThis & {
|
||||
// postMessage: Function,
|
||||
// addEventListener: (type: 'message', listener: (ev: MessageEvent) => void) => void,
|
||||
// }
|
||||
// </deno-insert>
|
||||
|
||||
export class TelegramWorker<T extends WorkerCustomMethods> extends TelegramWorkerBase<T> {
|
||||
registerWorker(handler: WorkerMessageHandler): RespondFn {
|
||||
if (_registered) {
|
||||
|
@ -29,6 +37,7 @@ export class TelegramWorker<T extends WorkerCustomMethods> extends TelegramWorke
|
|||
|
||||
_registered = true
|
||||
|
||||
// <deno-remove>
|
||||
if (typeof SharedWorkerGlobalScope !== 'undefined' && self instanceof SharedWorkerGlobalScope) {
|
||||
const connections: MessagePort[] = []
|
||||
|
||||
|
@ -89,6 +98,7 @@ export class TelegramWorker<T extends WorkerCustomMethods> extends TelegramWorke
|
|||
|
||||
return broadcast
|
||||
}
|
||||
// </deno-remove>
|
||||
|
||||
if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) {
|
||||
const respond: RespondFn = self.postMessage.bind(self)
|
||||
|
@ -132,6 +142,7 @@ export class TelegramWorkerPort<T extends WorkerCustomMethods> extends TelegramW
|
|||
]
|
||||
}
|
||||
|
||||
// <deno-remove>
|
||||
if (worker instanceof SharedWorker) {
|
||||
const send: SendFn = worker.port.postMessage.bind(worker.port)
|
||||
|
||||
|
@ -171,6 +182,7 @@ export class TelegramWorkerPort<T extends WorkerCustomMethods> extends TelegramW
|
|||
|
||||
return [send, close]
|
||||
}
|
||||
// </deno-remove>
|
||||
|
||||
throw new Error('Only workers and shared workers are supported')
|
||||
}
|
||||
|
|
254
pnpm-lock.yaml
254
pnpm-lock.yaml
|
@ -15,8 +15,8 @@ importers:
|
|||
specifier: ^3.11.2
|
||||
version: 3.11.2(@typescript-eslint/utils@8.17.0(eslint@9.9.0)(typescript@5.5.4))(@vue/compiler-sfc@3.5.13)(eslint@9.9.0)(typescript@5.5.4)(vitest@2.0.5(@types/node@20.10.0)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5))
|
||||
'@fuman/build':
|
||||
specifier: https://pkg.pr.new/teidesu/fuman/@fuman/build@2a71d4a
|
||||
version: https://pkg.pr.new/teidesu/fuman/@fuman/build@2a71d4a(tough-cookie@4.1.4)(typedoc@0.27.6(typescript@5.5.4))(typescript@5.5.4)(vite@5.4.2(@types/node@20.10.0))
|
||||
specifier: https://pkg.pr.new/teidesu/fuman/@fuman/build@c073041
|
||||
version: https://pkg.pr.new/teidesu/fuman/@fuman/build@c073041(tough-cookie@4.1.4)(typedoc@0.27.6(typescript@5.5.4))(typescript@5.5.4)(vite@5.4.2(@types/node@20.10.0))
|
||||
'@fuman/utils':
|
||||
specifier: 0.0.4
|
||||
version: 0.0.4
|
||||
|
@ -135,9 +135,6 @@ importers:
|
|||
'@types/node':
|
||||
specifier: ^20.8.10
|
||||
version: 20.10.0
|
||||
globstar:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages/bun:
|
||||
dependencies:
|
||||
|
@ -1109,8 +1106,8 @@ packages:
|
|||
resolution: {integrity: sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@fuman/build@https://pkg.pr.new/teidesu/fuman/@fuman/build@2a71d4a':
|
||||
resolution: {tarball: https://pkg.pr.new/teidesu/fuman/@fuman/build@2a71d4a}
|
||||
'@fuman/build@https://pkg.pr.new/teidesu/fuman/@fuman/build@c073041':
|
||||
resolution: {tarball: https://pkg.pr.new/teidesu/fuman/@fuman/build@c073041}
|
||||
version: 0.0.7
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
|
@ -1144,8 +1141,8 @@ packages:
|
|||
zod:
|
||||
optional: true
|
||||
|
||||
'@fuman/fetch@https://pkg.pr.new/teidesu/fuman/@fuman/fetch@2a71d4a94740d27040f00010b8b830ccb7ca4ce3':
|
||||
resolution: {tarball: https://pkg.pr.new/teidesu/fuman/@fuman/fetch@2a71d4a94740d27040f00010b8b830ccb7ca4ce3}
|
||||
'@fuman/fetch@https://pkg.pr.new/teidesu/fuman/@fuman/fetch@c0730413e863fa6ba6c7f1750fbee3c018e8f610':
|
||||
resolution: {tarball: https://pkg.pr.new/teidesu/fuman/@fuman/fetch@c0730413e863fa6ba6c7f1750fbee3c018e8f610}
|
||||
version: 0.0.7
|
||||
peerDependencies:
|
||||
'@badrap/valita': '>=0.4.0'
|
||||
|
@ -1805,10 +1802,6 @@ packages:
|
|||
resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
ansi-regex@2.1.1:
|
||||
resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
ansi-regex@5.0.1:
|
||||
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
|
||||
engines: {node: '>=8'}
|
||||
|
@ -1829,17 +1822,10 @@ packages:
|
|||
resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
ansi@0.3.1:
|
||||
resolution: {integrity: sha512-iFY7JCgHbepc0b82yLaw4IMortylNb6wG4kL+4R0C3iv6i+RHGHux/yUX5BTiRvSX/shMnngjR1YyNMnXEFh5A==}
|
||||
|
||||
are-docs-informative@0.0.2:
|
||||
resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
are-we-there-yet@1.0.6:
|
||||
resolution: {integrity: sha512-Zfw6bteqM9gQXZ1BIWOgM8xEwMrUGoyL8nW13+O+OOgNX3YhuDN1GDgg1NzdTlmm3j+9sHy7uBZ12r+z9lXnZQ==}
|
||||
deprecated: This package is no longer supported.
|
||||
|
||||
argparse@1.0.10:
|
||||
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
|
||||
|
||||
|
@ -1962,10 +1948,6 @@ packages:
|
|||
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
camelcase@2.1.1:
|
||||
resolution: {integrity: sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
caniuse-lite@1.0.30001680:
|
||||
resolution: {integrity: sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==}
|
||||
|
||||
|
@ -2041,9 +2023,6 @@ packages:
|
|||
resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==}
|
||||
engines: {node: '>= 12'}
|
||||
|
||||
cliui@3.2.0:
|
||||
resolution: {integrity: sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==}
|
||||
|
||||
cliui@8.0.1:
|
||||
resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
|
||||
engines: {node: '>=12'}
|
||||
|
@ -2052,10 +2031,6 @@ packages:
|
|||
resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
|
||||
engines: {node: '>=0.8'}
|
||||
|
||||
code-point-at@1.1.0:
|
||||
resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
color-convert@2.0.1:
|
||||
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
|
||||
engines: {node: '>=7.0.0'}
|
||||
|
@ -2162,10 +2137,6 @@ packages:
|
|||
supports-color:
|
||||
optional: true
|
||||
|
||||
decamelize@1.2.0:
|
||||
resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
decode-named-character-reference@1.0.2:
|
||||
resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
|
||||
|
||||
|
@ -2199,9 +2170,6 @@ packages:
|
|||
resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
delegates@1.0.0:
|
||||
resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
|
||||
|
||||
dequal@2.0.3:
|
||||
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
|
||||
engines: {node: '>=6'}
|
||||
|
@ -2656,10 +2624,6 @@ packages:
|
|||
function-bind@1.1.2:
|
||||
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
|
||||
|
||||
gauge@1.2.7:
|
||||
resolution: {integrity: sha512-fVbU2wRE91yDvKUnrIaQlHKAWKY5e08PmztCrwuH5YVQ+Z/p3d0ny2T48o6uvAAXHIUnfaQdHkmxYbQft1eHVA==}
|
||||
deprecated: This package is no longer supported.
|
||||
|
||||
get-caller-file@2.0.5:
|
||||
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
|
||||
engines: {node: 6.* || 8.* || >= 10.*}
|
||||
|
@ -2698,10 +2662,6 @@ packages:
|
|||
engines: {node: 20 || >=22}
|
||||
hasBin: true
|
||||
|
||||
glob@5.0.15:
|
||||
resolution: {integrity: sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==}
|
||||
deprecated: Glob versions prior to v9 are no longer supported
|
||||
|
||||
globals@13.24.0:
|
||||
resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
|
||||
engines: {node: '>=8'}
|
||||
|
@ -2714,10 +2674,6 @@ packages:
|
|||
resolution: {integrity: sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
globstar@1.0.0:
|
||||
resolution: {integrity: sha512-UNXhfJYrwD6DNxMU4C9GJI1NhCMNvdsFnAGPLJHAeGW1io9l3N2FN7UUH76gQXhAUGNY+1rsVSkQnU59VRvxuQ==}
|
||||
hasBin: true
|
||||
|
||||
gopd@1.0.1:
|
||||
resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
|
||||
|
||||
|
@ -2755,9 +2711,6 @@ packages:
|
|||
resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
has-unicode@2.0.1:
|
||||
resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
|
||||
|
||||
hash-base@3.0.4:
|
||||
resolution: {integrity: sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==}
|
||||
engines: {node: '>=4'}
|
||||
|
@ -2825,10 +2778,6 @@ packages:
|
|||
resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
inflight@1.0.6:
|
||||
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
|
||||
deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
|
||||
|
||||
inherits@2.0.4:
|
||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||
|
||||
|
@ -2839,10 +2788,6 @@ packages:
|
|||
resolution: {integrity: sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g==}
|
||||
engines: {node: '>=14.18.0'}
|
||||
|
||||
invert-kv@1.0.0:
|
||||
resolution: {integrity: sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
is-arguments@1.1.1:
|
||||
resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
@ -2866,10 +2811,6 @@ packages:
|
|||
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
is-fullwidth-code-point@1.0.0:
|
||||
resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
is-fullwidth-code-point@3.0.0:
|
||||
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
|
||||
engines: {node: '>=8'}
|
||||
|
@ -3004,10 +2945,6 @@ packages:
|
|||
kolorist@1.8.0:
|
||||
resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==}
|
||||
|
||||
lcid@1.0.0:
|
||||
resolution: {integrity: sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
levn@0.4.1:
|
||||
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
|
||||
engines: {node: '>= 0.8.0'}
|
||||
|
@ -3037,15 +2974,6 @@ packages:
|
|||
lodash.merge@4.6.2:
|
||||
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
|
||||
|
||||
lodash.pad@4.5.1:
|
||||
resolution: {integrity: sha512-mvUHifnLqM+03YNzeTBS1/Gr6JRFjd3rRx88FHWUvamVaT9k2O/kXha3yBSOwB9/DTQrSTLJNHvLBBt2FdX7Mg==}
|
||||
|
||||
lodash.padend@4.6.1:
|
||||
resolution: {integrity: sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==}
|
||||
|
||||
lodash.padstart@4.6.1:
|
||||
resolution: {integrity: sha512-sW73O6S8+Tg66eY56DBk85aQzzUJDtpoXFBgELMd5P/SotAguo+1kYO6RuYgXxA4HJH3LFTFPASX6ET6bjfriw==}
|
||||
|
||||
lodash@4.17.21:
|
||||
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
|
||||
|
||||
|
@ -3355,21 +3283,9 @@ packages:
|
|||
resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==}
|
||||
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
||||
|
||||
npmlog@1.2.1:
|
||||
resolution: {integrity: sha512-1J5KqSRvESP6XbjPaXt2H6qDzgizLTM7x0y1cXIjP2PpvdCqyNC7TO3cPRKsuYlElbi/DwkzRRdG2zpmE0IktQ==}
|
||||
deprecated: This package is no longer supported.
|
||||
|
||||
nth-check@2.1.1:
|
||||
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
|
||||
|
||||
number-is-nan@1.0.1:
|
||||
resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
object-assign@2.1.1:
|
||||
resolution: {integrity: sha512-CdsOUYIh5wIiozhJ3rLQgmUTgcyzFwZZrqhkKhODMoGtPKM+wt0h0CNIoauJWMsS9822EdzPsF/6mb4nLvPN5g==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
object-inspect@1.13.3:
|
||||
resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
@ -3389,10 +3305,6 @@ packages:
|
|||
once@1.4.0:
|
||||
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
|
||||
|
||||
onetime@1.1.0:
|
||||
resolution: {integrity: sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
onetime@5.1.2:
|
||||
resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
|
||||
engines: {node: '>=6'}
|
||||
|
@ -3415,10 +3327,6 @@ packages:
|
|||
os-browserify@0.3.0:
|
||||
resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==}
|
||||
|
||||
os-locale@1.4.0:
|
||||
resolution: {integrity: sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
os-tmpdir@1.0.2:
|
||||
resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
@ -3488,10 +3396,6 @@ packages:
|
|||
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
path-is-absolute@1.0.1:
|
||||
resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
path-key@3.1.1:
|
||||
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
|
||||
engines: {node: '>=8'}
|
||||
|
@ -3870,10 +3774,6 @@ packages:
|
|||
resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
|
||||
engines: {node: '>=0.6.19'}
|
||||
|
||||
string-width@1.0.2:
|
||||
resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
string-width@4.2.3:
|
||||
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
|
||||
engines: {node: '>=8'}
|
||||
|
@ -3888,10 +3788,6 @@ packages:
|
|||
string_decoder@1.3.0:
|
||||
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
|
||||
|
||||
strip-ansi@3.0.1:
|
||||
resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
strip-ansi@6.0.1:
|
||||
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
|
||||
engines: {node: '>=8'}
|
||||
|
@ -4239,11 +4135,6 @@ packages:
|
|||
engines: {node: '>=8'}
|
||||
hasBin: true
|
||||
|
||||
window-size@0.1.4:
|
||||
resolution: {integrity: sha512-2thx4pB0cV3h+Bw7QmMXcEbdmOzv9t0HFplJH/Lz6yu60hXYy5RT8rUu+wlIreVxWsGN20mo+MHeCSfUpQBwPw==}
|
||||
engines: {node: '>= 0.10.0'}
|
||||
hasBin: true
|
||||
|
||||
word-wrap@1.2.5:
|
||||
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
@ -4251,10 +4142,6 @@ packages:
|
|||
wordwrap@1.0.0:
|
||||
resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
|
||||
|
||||
wrap-ansi@2.1.0:
|
||||
resolution: {integrity: sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
wrap-ansi@6.2.0:
|
||||
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
|
||||
engines: {node: '>=8'}
|
||||
|
@ -4302,9 +4189,6 @@ packages:
|
|||
resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
|
||||
engines: {node: '>=0.4'}
|
||||
|
||||
y18n@3.2.2:
|
||||
resolution: {integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==}
|
||||
|
||||
y18n@5.0.8:
|
||||
resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
|
||||
engines: {node: '>=10'}
|
||||
|
@ -4334,9 +4218,6 @@ packages:
|
|||
resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
yargs@3.32.0:
|
||||
resolution: {integrity: sha512-ONJZiimStfZzhKamYvR/xvmgW3uEkAUFSP91y2caTEPhzF6uP2JfPiVZcq66b/YR0C3uitxSV7+T1x8p5bkmMg==}
|
||||
|
||||
yocto-queue@0.1.0:
|
||||
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
|
||||
engines: {node: '>=10'}
|
||||
|
@ -4743,10 +4624,10 @@ snapshots:
|
|||
dependencies:
|
||||
levn: 0.4.1
|
||||
|
||||
'@fuman/build@https://pkg.pr.new/teidesu/fuman/@fuman/build@2a71d4a(tough-cookie@4.1.4)(typedoc@0.27.6(typescript@5.5.4))(typescript@5.5.4)(vite@5.4.2(@types/node@20.10.0))':
|
||||
'@fuman/build@https://pkg.pr.new/teidesu/fuman/@fuman/build@c073041(tough-cookie@4.1.4)(typedoc@0.27.6(typescript@5.5.4))(typescript@5.5.4)(vite@5.4.2(@types/node@20.10.0))':
|
||||
dependencies:
|
||||
'@drizzle-team/brocli': 0.10.2
|
||||
'@fuman/fetch': https://pkg.pr.new/teidesu/fuman/@fuman/fetch@2a71d4a94740d27040f00010b8b830ccb7ca4ce3(tough-cookie@4.1.4)(zod@3.23.8)
|
||||
'@fuman/fetch': https://pkg.pr.new/teidesu/fuman/@fuman/fetch@c0730413e863fa6ba6c7f1750fbee3c018e8f610(tough-cookie@4.1.4)(zod@3.23.8)
|
||||
'@fuman/io': 0.0.4
|
||||
'@fuman/node': 0.0.4
|
||||
'@fuman/utils': 0.0.4
|
||||
|
@ -4780,7 +4661,7 @@ snapshots:
|
|||
tough-cookie: 4.1.4
|
||||
zod: 3.23.8
|
||||
|
||||
'@fuman/fetch@https://pkg.pr.new/teidesu/fuman/@fuman/fetch@2a71d4a94740d27040f00010b8b830ccb7ca4ce3(tough-cookie@4.1.4)(zod@3.23.8)':
|
||||
'@fuman/fetch@https://pkg.pr.new/teidesu/fuman/@fuman/fetch@c0730413e863fa6ba6c7f1750fbee3c018e8f610(tough-cookie@4.1.4)(zod@3.23.8)':
|
||||
dependencies:
|
||||
'@fuman/utils': 0.0.4
|
||||
optionalDependencies:
|
||||
|
@ -5562,8 +5443,6 @@ snapshots:
|
|||
dependencies:
|
||||
type-fest: 0.21.3
|
||||
|
||||
ansi-regex@2.1.1: {}
|
||||
|
||||
ansi-regex@5.0.1: {}
|
||||
|
||||
ansi-regex@6.1.0: {}
|
||||
|
@ -5576,15 +5455,8 @@ snapshots:
|
|||
|
||||
ansi-styles@6.2.1: {}
|
||||
|
||||
ansi@0.3.1: {}
|
||||
|
||||
are-docs-informative@0.0.2: {}
|
||||
|
||||
are-we-there-yet@1.0.6:
|
||||
dependencies:
|
||||
delegates: 1.0.0
|
||||
readable-stream: 2.3.8
|
||||
|
||||
argparse@1.0.10:
|
||||
dependencies:
|
||||
sprintf-js: 1.0.3
|
||||
|
@ -5746,8 +5618,6 @@ snapshots:
|
|||
|
||||
callsites@3.1.0: {}
|
||||
|
||||
camelcase@2.1.1: {}
|
||||
|
||||
caniuse-lite@1.0.30001680: {}
|
||||
|
||||
ccount@2.0.1: {}
|
||||
|
@ -5837,12 +5707,6 @@ snapshots:
|
|||
|
||||
cli-width@4.1.0: {}
|
||||
|
||||
cliui@3.2.0:
|
||||
dependencies:
|
||||
string-width: 1.0.2
|
||||
strip-ansi: 3.0.1
|
||||
wrap-ansi: 2.1.0
|
||||
|
||||
cliui@8.0.1:
|
||||
dependencies:
|
||||
string-width: 4.2.3
|
||||
|
@ -5851,8 +5715,6 @@ snapshots:
|
|||
|
||||
clone@1.0.4: {}
|
||||
|
||||
code-point-at@1.1.0: {}
|
||||
|
||||
color-convert@2.0.1:
|
||||
dependencies:
|
||||
color-name: 1.1.4
|
||||
|
@ -5963,8 +5825,6 @@ snapshots:
|
|||
dependencies:
|
||||
ms: 2.1.3
|
||||
|
||||
decamelize@1.2.0: {}
|
||||
|
||||
decode-named-character-reference@1.0.2:
|
||||
dependencies:
|
||||
character-entities: 2.0.2
|
||||
|
@ -5999,8 +5859,6 @@ snapshots:
|
|||
has-property-descriptors: 1.0.2
|
||||
object-keys: 1.1.1
|
||||
|
||||
delegates@1.0.0: {}
|
||||
|
||||
dequal@2.0.3: {}
|
||||
|
||||
des.js@1.1.0:
|
||||
|
@ -6625,14 +6483,6 @@ snapshots:
|
|||
|
||||
function-bind@1.1.2: {}
|
||||
|
||||
gauge@1.2.7:
|
||||
dependencies:
|
||||
ansi: 0.3.1
|
||||
has-unicode: 2.0.1
|
||||
lodash.pad: 4.5.1
|
||||
lodash.padend: 4.6.1
|
||||
lodash.padstart: 4.6.1
|
||||
|
||||
get-caller-file@2.0.5: {}
|
||||
|
||||
get-func-name@2.0.2: {}
|
||||
|
@ -6679,14 +6529,6 @@ snapshots:
|
|||
package-json-from-dist: 1.0.1
|
||||
path-scurry: 2.0.0
|
||||
|
||||
glob@5.0.15:
|
||||
dependencies:
|
||||
inflight: 1.0.6
|
||||
inherits: 2.0.4
|
||||
minimatch: 3.1.2
|
||||
once: 1.4.0
|
||||
path-is-absolute: 1.0.1
|
||||
|
||||
globals@13.24.0:
|
||||
dependencies:
|
||||
type-fest: 0.20.2
|
||||
|
@ -6695,14 +6537,6 @@ snapshots:
|
|||
|
||||
globals@15.12.0: {}
|
||||
|
||||
globstar@1.0.0:
|
||||
dependencies:
|
||||
glob: 5.0.15
|
||||
npmlog: 1.2.1
|
||||
object-assign: 2.1.1
|
||||
onetime: 1.1.0
|
||||
yargs: 3.32.0
|
||||
|
||||
gopd@1.0.1:
|
||||
dependencies:
|
||||
get-intrinsic: 1.2.4
|
||||
|
@ -6736,8 +6570,6 @@ snapshots:
|
|||
dependencies:
|
||||
has-symbols: 1.0.3
|
||||
|
||||
has-unicode@2.0.1: {}
|
||||
|
||||
hash-base@3.0.4:
|
||||
dependencies:
|
||||
inherits: 2.0.4
|
||||
|
@ -6803,11 +6635,6 @@ snapshots:
|
|||
|
||||
indent-string@4.0.0: {}
|
||||
|
||||
inflight@1.0.6:
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
|
||||
inherits@2.0.4: {}
|
||||
|
||||
ini@1.3.8: {}
|
||||
|
@ -6830,8 +6657,6 @@ snapshots:
|
|||
strip-ansi: 6.0.1
|
||||
wrap-ansi: 6.2.0
|
||||
|
||||
invert-kv@1.0.0: {}
|
||||
|
||||
is-arguments@1.1.1:
|
||||
dependencies:
|
||||
call-bind: 1.0.7
|
||||
|
@ -6851,10 +6676,6 @@ snapshots:
|
|||
|
||||
is-extglob@2.1.1: {}
|
||||
|
||||
is-fullwidth-code-point@1.0.0:
|
||||
dependencies:
|
||||
number-is-nan: 1.0.1
|
||||
|
||||
is-fullwidth-code-point@3.0.0: {}
|
||||
|
||||
is-generator-function@1.0.10:
|
||||
|
@ -6972,10 +6793,6 @@ snapshots:
|
|||
|
||||
kolorist@1.8.0: {}
|
||||
|
||||
lcid@1.0.0:
|
||||
dependencies:
|
||||
invert-kv: 1.0.0
|
||||
|
||||
levn@0.4.1:
|
||||
dependencies:
|
||||
prelude-ls: 1.2.1
|
||||
|
@ -7007,12 +6824,6 @@ snapshots:
|
|||
|
||||
lodash.merge@4.6.2: {}
|
||||
|
||||
lodash.pad@4.5.1: {}
|
||||
|
||||
lodash.padend@4.6.1: {}
|
||||
|
||||
lodash.padstart@4.6.1: {}
|
||||
|
||||
lodash@4.17.21: {}
|
||||
|
||||
log-symbols@4.1.0:
|
||||
|
@ -7517,20 +7328,10 @@ snapshots:
|
|||
dependencies:
|
||||
path-key: 4.0.0
|
||||
|
||||
npmlog@1.2.1:
|
||||
dependencies:
|
||||
ansi: 0.3.1
|
||||
are-we-there-yet: 1.0.6
|
||||
gauge: 1.2.7
|
||||
|
||||
nth-check@2.1.1:
|
||||
dependencies:
|
||||
boolbase: 1.0.0
|
||||
|
||||
number-is-nan@1.0.1: {}
|
||||
|
||||
object-assign@2.1.1: {}
|
||||
|
||||
object-inspect@1.13.3: {}
|
||||
|
||||
object-is@1.1.6:
|
||||
|
@ -7551,8 +7352,6 @@ snapshots:
|
|||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
|
||||
onetime@1.1.0: {}
|
||||
|
||||
onetime@5.1.2:
|
||||
dependencies:
|
||||
mimic-fn: 2.1.0
|
||||
|
@ -7586,10 +7385,6 @@ snapshots:
|
|||
|
||||
os-browserify@0.3.0: {}
|
||||
|
||||
os-locale@1.4.0:
|
||||
dependencies:
|
||||
lcid: 1.0.0
|
||||
|
||||
os-tmpdir@1.0.2: {}
|
||||
|
||||
outvariant@1.4.3: {}
|
||||
|
@ -7658,8 +7453,6 @@ snapshots:
|
|||
|
||||
path-exists@4.0.0: {}
|
||||
|
||||
path-is-absolute@1.0.1: {}
|
||||
|
||||
path-key@3.1.1: {}
|
||||
|
||||
path-key@4.0.0: {}
|
||||
|
@ -8055,12 +7848,6 @@ snapshots:
|
|||
|
||||
string-argv@0.3.2: {}
|
||||
|
||||
string-width@1.0.2:
|
||||
dependencies:
|
||||
code-point-at: 1.1.0
|
||||
is-fullwidth-code-point: 1.0.0
|
||||
strip-ansi: 3.0.1
|
||||
|
||||
string-width@4.2.3:
|
||||
dependencies:
|
||||
emoji-regex: 8.0.0
|
||||
|
@ -8081,10 +7868,6 @@ snapshots:
|
|||
dependencies:
|
||||
safe-buffer: 5.2.1
|
||||
|
||||
strip-ansi@3.0.1:
|
||||
dependencies:
|
||||
ansi-regex: 2.1.1
|
||||
|
||||
strip-ansi@6.0.1:
|
||||
dependencies:
|
||||
ansi-regex: 5.0.1
|
||||
|
@ -8444,17 +8227,10 @@ snapshots:
|
|||
siginfo: 2.0.0
|
||||
stackback: 0.0.2
|
||||
|
||||
window-size@0.1.4: {}
|
||||
|
||||
word-wrap@1.2.5: {}
|
||||
|
||||
wordwrap@1.0.0: {}
|
||||
|
||||
wrap-ansi@2.1.0:
|
||||
dependencies:
|
||||
string-width: 1.0.2
|
||||
strip-ansi: 3.0.1
|
||||
|
||||
wrap-ansi@6.2.0:
|
||||
dependencies:
|
||||
ansi-styles: 4.3.0
|
||||
|
@ -8483,8 +8259,6 @@ snapshots:
|
|||
|
||||
xtend@4.0.2: {}
|
||||
|
||||
y18n@3.2.2: {}
|
||||
|
||||
y18n@5.0.8: {}
|
||||
|
||||
yallist@4.0.0: {}
|
||||
|
@ -8511,16 +8285,6 @@ snapshots:
|
|||
y18n: 5.0.8
|
||||
yargs-parser: 21.1.1
|
||||
|
||||
yargs@3.32.0:
|
||||
dependencies:
|
||||
camelcase: 2.1.1
|
||||
cliui: 3.2.0
|
||||
decamelize: 1.2.0
|
||||
os-locale: 1.4.0
|
||||
string-width: 1.0.2
|
||||
window-size: 0.1.4
|
||||
y18n: 3.2.2
|
||||
|
||||
yocto-queue@0.1.0: {}
|
||||
|
||||
yoctocolors-cjs@2.1.2: {}
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
"strict": true,
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"noImplicitOverride": true,
|
||||
"declaration": true,
|
||||
"inlineSources": true,
|
||||
"noEmit": true,
|
||||
|
|
Loading…
Reference in a new issue