mirror of
https://github.com/kokonect-link/cherrypick
synced 2024-11-27 06:18:46 +09:00
Add Cloud Logging Support
This commit is contained in:
parent
3b7fe6bafd
commit
d04df47f7d
@ -147,6 +147,12 @@ id: 'aid'
|
|||||||
# IP address family used for outgoing request (ipv4, ipv6 or dual)
|
# IP address family used for outgoing request (ipv4, ipv6 or dual)
|
||||||
#outgoingAddressFamily: ipv4
|
#outgoingAddressFamily: ipv4
|
||||||
|
|
||||||
|
# Cloud Logging
|
||||||
|
#cloudLogging:
|
||||||
|
# projectId: example-project-id
|
||||||
|
# saKeyPath: /path/to/service-account-key.json
|
||||||
|
# logName: misskey
|
||||||
|
|
||||||
# Proxy for HTTP/HTTPS
|
# Proxy for HTTP/HTTPS
|
||||||
#proxy: http://127.0.0.1:3128
|
#proxy: http://127.0.0.1:3128
|
||||||
|
|
||||||
|
@ -151,6 +151,12 @@ id: 'aid'
|
|||||||
# IP address family used for outgoing request (ipv4, ipv6 or dual)
|
# IP address family used for outgoing request (ipv4, ipv6 or dual)
|
||||||
#outgoingAddressFamily: ipv4
|
#outgoingAddressFamily: ipv4
|
||||||
|
|
||||||
|
# Cloud Logging
|
||||||
|
#cloudLogging:
|
||||||
|
# projectId: example-project-id
|
||||||
|
# saKeyPath: /path/to/service-account-key.json
|
||||||
|
# logName: misskey
|
||||||
|
|
||||||
# Proxy for HTTP/HTTPS
|
# Proxy for HTTP/HTTPS
|
||||||
#proxy: http://127.0.0.1:3128
|
#proxy: http://127.0.0.1:3128
|
||||||
|
|
||||||
|
@ -147,6 +147,12 @@ id: 'aid'
|
|||||||
# IP address family used for outgoing request (ipv4, ipv6 or dual)
|
# IP address family used for outgoing request (ipv4, ipv6 or dual)
|
||||||
#outgoingAddressFamily: ipv4
|
#outgoingAddressFamily: ipv4
|
||||||
|
|
||||||
|
# Cloud Logging
|
||||||
|
#cloudLogging:
|
||||||
|
# projectId: example-project-id
|
||||||
|
# saKeyPath: /path/to/service-account-key.json
|
||||||
|
# logName: misskey
|
||||||
|
|
||||||
# Proxy for HTTP/HTTPS
|
# Proxy for HTTP/HTTPS
|
||||||
#proxy: http://127.0.0.1:3128
|
#proxy: http://127.0.0.1:3128
|
||||||
|
|
||||||
|
@ -167,6 +167,12 @@ id: "aid"
|
|||||||
# IP address family used for outgoing request (ipv4, ipv6 or dual)
|
# IP address family used for outgoing request (ipv4, ipv6 or dual)
|
||||||
#outgoingAddressFamily: ipv4
|
#outgoingAddressFamily: ipv4
|
||||||
|
|
||||||
|
# Cloud Logging
|
||||||
|
#cloudLogging:
|
||||||
|
# projectId: example-project-id
|
||||||
|
# saKeyPath: /path/to/service-account-key.json
|
||||||
|
# logName: misskey
|
||||||
|
|
||||||
# Proxy for HTTP/HTTPS
|
# Proxy for HTTP/HTTPS
|
||||||
#proxy: http://127.0.0.1:3128
|
#proxy: http://127.0.0.1:3128
|
||||||
|
|
||||||
|
@ -65,6 +65,7 @@
|
|||||||
"@fastify/multipart": "7.6.0",
|
"@fastify/multipart": "7.6.0",
|
||||||
"@fastify/static": "6.10.2",
|
"@fastify/static": "6.10.2",
|
||||||
"@fastify/view": "7.4.1",
|
"@fastify/view": "7.4.1",
|
||||||
|
"@google-cloud/logging": "^10.5.0",
|
||||||
"@google-cloud/translate": "^7.2.1",
|
"@google-cloud/translate": "^7.2.1",
|
||||||
"@nestjs/common": "9.4.2",
|
"@nestjs/common": "9.4.2",
|
||||||
"@nestjs/core": "9.4.2",
|
"@nestjs/core": "9.4.2",
|
||||||
@ -147,6 +148,7 @@
|
|||||||
"slacc": "0.0.9",
|
"slacc": "0.0.9",
|
||||||
"strict-event-emitter-types": "2.0.0",
|
"strict-event-emitter-types": "2.0.0",
|
||||||
"stringz": "2.1.0",
|
"stringz": "2.1.0",
|
||||||
|
"strip-ansi": "^7.1.0",
|
||||||
"summaly": "github:misskey-dev/summaly",
|
"summaly": "github:misskey-dev/summaly",
|
||||||
"systeminformation": "5.17.16",
|
"systeminformation": "5.17.16",
|
||||||
"tinycolor2": "1.6.0",
|
"tinycolor2": "1.6.0",
|
||||||
|
@ -90,6 +90,12 @@ export type Source = {
|
|||||||
deliverJobMaxAttempts?: number;
|
deliverJobMaxAttempts?: number;
|
||||||
inboxJobMaxAttempts?: number;
|
inboxJobMaxAttempts?: number;
|
||||||
|
|
||||||
|
cloudLogging?: {
|
||||||
|
projectId: string;
|
||||||
|
saKeyPath: string;
|
||||||
|
logName?: string;
|
||||||
|
}
|
||||||
|
|
||||||
mediaProxy?: string;
|
mediaProxy?: string;
|
||||||
proxyRemoteFiles?: boolean;
|
proxyRemoteFiles?: boolean;
|
||||||
videoThumbnailGenerator?: string;
|
videoThumbnailGenerator?: string;
|
||||||
|
@ -7,14 +7,18 @@ import type { KEYWORD } from 'color-convert/conversions';
|
|||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class LoggerService {
|
export class LoggerService {
|
||||||
|
private cloudLogging;
|
||||||
constructor(
|
constructor(
|
||||||
@Inject(DI.config)
|
@Inject(DI.config)
|
||||||
private config: Config,
|
private config: Config,
|
||||||
) {
|
) {
|
||||||
|
if (this.config.cloudLogging) {
|
||||||
|
this.cloudLogging = this.config.cloudLogging;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@bindThis
|
@bindThis
|
||||||
public getLogger(domain: string, color?: KEYWORD | undefined, store?: boolean) {
|
public getLogger(domain: string, color?: KEYWORD | undefined, store?: boolean) {
|
||||||
return new Logger(domain, color, store);
|
return new Logger(domain, color, store, this.cloudLogging);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
import cluster from 'node:cluster';
|
import cluster from 'node:cluster';
|
||||||
|
import util from 'util';
|
||||||
import chalk from 'chalk';
|
import chalk from 'chalk';
|
||||||
import { default as convertColor } from 'color-convert';
|
import { default as convertColor } from 'color-convert';
|
||||||
import { format as dateFormat } from 'date-fns';
|
import { format as dateFormat } from 'date-fns';
|
||||||
|
import { Logging } from '@google-cloud/logging';
|
||||||
|
import stripAnsi from 'strip-ansi';
|
||||||
import { bindThis } from '@/decorators.js';
|
import { bindThis } from '@/decorators.js';
|
||||||
import { envOption } from './env.js';
|
import { envOption } from './env.js';
|
||||||
import type { KEYWORD } from 'color-convert/conversions';
|
import type { KEYWORD } from 'color-convert/conversions';
|
||||||
@ -12,18 +15,21 @@ type Context = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
type Level = 'error' | 'success' | 'warning' | 'debug' | 'info';
|
type Level = 'error' | 'success' | 'warning' | 'debug' | 'info';
|
||||||
|
type CloudLogging = any | undefined;
|
||||||
|
|
||||||
export default class Logger {
|
export default class Logger {
|
||||||
private context: Context;
|
private context: Context;
|
||||||
private parentLogger: Logger | null = null;
|
private parentLogger: Logger | null = null;
|
||||||
private store: boolean;
|
private store: boolean;
|
||||||
|
private clConfig?: CloudLogging;
|
||||||
|
|
||||||
constructor(context: string, color?: KEYWORD, store = true) {
|
constructor(context: string, color?: KEYWORD, store = true, clConfig?: CloudLogging) {
|
||||||
this.context = {
|
this.context = {
|
||||||
name: context,
|
name: context,
|
||||||
color: color,
|
color: color,
|
||||||
};
|
};
|
||||||
this.store = store;
|
this.store = store;
|
||||||
|
this.clConfig = clConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
@bindThis
|
@bindThis
|
||||||
@ -44,7 +50,8 @@ export default class Logger {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const time = dateFormat(new Date(), 'HH:mm:ss');
|
const timestamp = new Date();
|
||||||
|
const time = dateFormat(timestamp, 'HH:mm:ss');
|
||||||
const worker = cluster.isPrimary ? '*' : cluster.worker!.id;
|
const worker = cluster.isPrimary ? '*' : cluster.worker!.id;
|
||||||
const l =
|
const l =
|
||||||
level === 'error' ? important ? chalk.bgRed.white('ERR ') : chalk.red('ERR ') :
|
level === 'error' ? important ? chalk.bgRed.white('ERR ') : chalk.red('ERR ') :
|
||||||
@ -66,7 +73,43 @@ export default class Logger {
|
|||||||
if (envOption.withLogTime) log = chalk.gray(time) + ' ' + log;
|
if (envOption.withLogTime) log = chalk.gray(time) + ' ' + log;
|
||||||
|
|
||||||
console.log(important ? chalk.bold(log) : log);
|
console.log(important ? chalk.bold(log) : log);
|
||||||
if (level === 'error' && data) console.log(data);
|
if (level === 'error' && data) {
|
||||||
|
console.log(data);
|
||||||
|
this.writeCloudLogging(level, log, timestamp, data);
|
||||||
|
} else {
|
||||||
|
this.writeCloudLogging(level, log, timestamp, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private async writeCloudLogging(level: Level, message: string, time: Date, data?: Record<string, any> | null) {
|
||||||
|
if (!this.clConfig) return;
|
||||||
|
if (!this.clConfig.projectId || !this.clConfig.saKeyPath) return;
|
||||||
|
|
||||||
|
let lv = level;
|
||||||
|
if (level === 'success') lv = 'info';
|
||||||
|
|
||||||
|
const projectId = this.clConfig.projectId;
|
||||||
|
const logging = new Logging({ projectId: projectId, keyFilename: this.clConfig.saKeyPath });
|
||||||
|
const logName = this.clConfig.logName ?? 'misskey';
|
||||||
|
const log = logging.log(logName);
|
||||||
|
const logMessage = stripAnsi(message);
|
||||||
|
|
||||||
|
const metadata = {
|
||||||
|
severity: lv.toUpperCase(),
|
||||||
|
resource: {
|
||||||
|
type: 'global',
|
||||||
|
timestamp: time,
|
||||||
|
},
|
||||||
|
labels: {
|
||||||
|
name: `${this.context.name}`,
|
||||||
|
color: `${this.context.color}`,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const dataString = data ? '\n' + util.inspect(data, { depth: null }) : '';
|
||||||
|
const entry = log.entry(metadata, logMessage + dataString);
|
||||||
|
|
||||||
|
await log.write(entry);
|
||||||
}
|
}
|
||||||
|
|
||||||
@bindThis
|
@bindThis
|
||||||
|
104
pnpm-lock.yaml
104
pnpm-lock.yaml
@ -110,6 +110,9 @@ importers:
|
|||||||
'@fastify/view':
|
'@fastify/view':
|
||||||
specifier: 7.4.1
|
specifier: 7.4.1
|
||||||
version: 7.4.1
|
version: 7.4.1
|
||||||
|
'@google-cloud/logging':
|
||||||
|
specifier: ^10.5.0
|
||||||
|
version: 10.5.0
|
||||||
'@google-cloud/translate':
|
'@google-cloud/translate':
|
||||||
specifier: ^7.2.1
|
specifier: ^7.2.1
|
||||||
version: 7.2.1
|
version: 7.2.1
|
||||||
@ -356,6 +359,9 @@ importers:
|
|||||||
stringz:
|
stringz:
|
||||||
specifier: 2.1.0
|
specifier: 2.1.0
|
||||||
version: 2.1.0
|
version: 2.1.0
|
||||||
|
strip-ansi:
|
||||||
|
specifier: ^7.1.0
|
||||||
|
version: 7.1.0
|
||||||
summaly:
|
summaly:
|
||||||
specifier: github:misskey-dev/summaly
|
specifier: github:misskey-dev/summaly
|
||||||
version: github.com/misskey-dev/summaly/77dd5654bb82280b38c1f50e51a771c33f3df503
|
version: github.com/misskey-dev/summaly/77dd5654bb82280b38c1f50e51a771c33f3df503
|
||||||
@ -4934,6 +4940,38 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/@google-cloud/logging@10.5.0:
|
||||||
|
resolution: {integrity: sha512-XmlNs6B8lDZvFwFB5M55g9ch873AA2rXSuFOczQ3FOAzuyd/qksf18suFJfcrLMu8lYSr3SQhTE45FlXz4p9pg==}
|
||||||
|
engines: {node: '>=12.0.0'}
|
||||||
|
dependencies:
|
||||||
|
'@google-cloud/common': 4.0.3
|
||||||
|
'@google-cloud/paginator': 4.0.1
|
||||||
|
'@google-cloud/projectify': 3.0.0
|
||||||
|
'@google-cloud/promisify': 3.0.1
|
||||||
|
arrify: 2.0.1
|
||||||
|
dot-prop: 6.0.1
|
||||||
|
eventid: 2.0.1
|
||||||
|
extend: 3.0.2
|
||||||
|
gcp-metadata: 4.3.1
|
||||||
|
google-auth-library: 8.8.0
|
||||||
|
google-gax: 3.6.0
|
||||||
|
on-finished: 2.4.1
|
||||||
|
pumpify: 2.0.1
|
||||||
|
stream-events: 1.0.5
|
||||||
|
uuid: 9.0.0
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- encoding
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@google-cloud/paginator@4.0.1:
|
||||||
|
resolution: {integrity: sha512-6G1ui6bWhNyHjmbYwavdN7mpVPRBtyDg/bfqBTAlwr413On2TnFNfDxc9UhTJctkgoCDgQXEKiRPLPR9USlkbQ==}
|
||||||
|
engines: {node: '>=12.0.0'}
|
||||||
|
dependencies:
|
||||||
|
arrify: 2.0.1
|
||||||
|
extend: 3.0.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@google-cloud/projectify@3.0.0:
|
/@google-cloud/projectify@3.0.0:
|
||||||
resolution: {integrity: sha512-HRkZsNmjScY6Li8/kb70wjGlDDyLkVk3KvoEo9uIoxSjYLJasGiCch9+PqRVDOCGUFvEIqyogl+BeqILL4OJHA==}
|
resolution: {integrity: sha512-HRkZsNmjScY6Li8/kb70wjGlDDyLkVk3KvoEo9uIoxSjYLJasGiCch9+PqRVDOCGUFvEIqyogl+BeqILL4OJHA==}
|
||||||
engines: {node: '>=12.0.0'}
|
engines: {node: '>=12.0.0'}
|
||||||
@ -9095,6 +9133,11 @@ packages:
|
|||||||
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
|
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
/ansi-regex@6.0.1:
|
||||||
|
resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/ansi-styles@2.2.1:
|
/ansi-styles@2.2.1:
|
||||||
resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==}
|
resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@ -11549,6 +11592,13 @@ packages:
|
|||||||
domelementtype: 2.3.0
|
domelementtype: 2.3.0
|
||||||
domhandler: 5.0.3
|
domhandler: 5.0.3
|
||||||
|
|
||||||
|
/dot-prop@6.0.1:
|
||||||
|
resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
dependencies:
|
||||||
|
is-obj: 2.0.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
/dotenv-expand@10.0.0:
|
/dotenv-expand@10.0.0:
|
||||||
resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==}
|
resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@ -11616,7 +11666,6 @@ packages:
|
|||||||
|
|
||||||
/ee-first@1.1.1:
|
/ee-first@1.1.1:
|
||||||
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
|
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
|
||||||
dev: true
|
|
||||||
|
|
||||||
/ejs@3.1.8:
|
/ejs@3.1.8:
|
||||||
resolution: {integrity: sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==}
|
resolution: {integrity: sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==}
|
||||||
@ -12328,6 +12377,13 @@ packages:
|
|||||||
resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
|
resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/eventid@2.0.1:
|
||||||
|
resolution: {integrity: sha512-sPNTqiMokAvV048P2c9+foqVJzk49o6d4e0D/sq5jog3pw+4kBgyR0gaM1FM7Mx6Kzd9dztesh9oYz1LWWOpzw==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
dependencies:
|
||||||
|
uuid: 8.3.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
/events@3.3.0:
|
/events@3.3.0:
|
||||||
resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
|
resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
|
||||||
engines: {node: '>=0.8.x'}
|
engines: {node: '>=0.8.x'}
|
||||||
@ -13174,6 +13230,20 @@ packages:
|
|||||||
wide-align: 1.1.5
|
wide-align: 1.1.5
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/gaxios@4.3.3:
|
||||||
|
resolution: {integrity: sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
dependencies:
|
||||||
|
abort-controller: 3.0.0
|
||||||
|
extend: 3.0.2
|
||||||
|
https-proxy-agent: 5.0.1
|
||||||
|
is-stream: 2.0.1
|
||||||
|
node-fetch: 2.6.11
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- encoding
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
/gaxios@5.1.0:
|
/gaxios@5.1.0:
|
||||||
resolution: {integrity: sha512-aezGIjb+/VfsJtIcHGcBSerNEDdfdHeMros+RbYbGpmonKWQCOVOes0LVZhn1lDtIgq55qq0HaxymIoae3Fl/A==}
|
resolution: {integrity: sha512-aezGIjb+/VfsJtIcHGcBSerNEDdfdHeMros+RbYbGpmonKWQCOVOes0LVZhn1lDtIgq55qq0HaxymIoae3Fl/A==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@ -13187,6 +13257,17 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/gcp-metadata@4.3.1:
|
||||||
|
resolution: {integrity: sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
dependencies:
|
||||||
|
gaxios: 4.3.3
|
||||||
|
json-bigint: 1.0.0
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- encoding
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
/gcp-metadata@5.2.0:
|
/gcp-metadata@5.2.0:
|
||||||
resolution: {integrity: sha512-aFhhvvNycky2QyhG+dcfEdHBF0FRbYcf39s6WNHUDysKSrbJ5vuFbjydxBcmewtXeV248GP8dWT3ByPNxsyHCw==}
|
resolution: {integrity: sha512-aFhhvvNycky2QyhG+dcfEdHBF0FRbYcf39s6WNHUDysKSrbJ5vuFbjydxBcmewtXeV248GP8dWT3ByPNxsyHCw==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@ -14521,6 +14602,11 @@ packages:
|
|||||||
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
|
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
|
||||||
engines: {node: '>=0.12.0'}
|
engines: {node: '>=0.12.0'}
|
||||||
|
|
||||||
|
/is-obj@2.0.0:
|
||||||
|
resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/is-path-cwd@2.2.0:
|
/is-path-cwd@2.2.0:
|
||||||
resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
|
resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
@ -17196,7 +17282,6 @@ packages:
|
|||||||
engines: {node: '>= 0.8'}
|
engines: {node: '>= 0.8'}
|
||||||
dependencies:
|
dependencies:
|
||||||
ee-first: 1.1.1
|
ee-first: 1.1.1
|
||||||
dev: true
|
|
||||||
|
|
||||||
/on-headers@1.0.2:
|
/on-headers@1.0.2:
|
||||||
resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==}
|
resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==}
|
||||||
@ -18514,6 +18599,14 @@ packages:
|
|||||||
inherits: 2.0.4
|
inherits: 2.0.4
|
||||||
pump: 2.0.1
|
pump: 2.0.1
|
||||||
|
|
||||||
|
/pumpify@2.0.1:
|
||||||
|
resolution: {integrity: sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw==}
|
||||||
|
dependencies:
|
||||||
|
duplexify: 4.1.2
|
||||||
|
inherits: 2.0.4
|
||||||
|
pump: 3.0.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
/punycode@2.3.0:
|
/punycode@2.3.0:
|
||||||
resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
|
resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
@ -20349,6 +20442,13 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
ansi-regex: 5.0.1
|
ansi-regex: 5.0.1
|
||||||
|
|
||||||
|
/strip-ansi@7.1.0:
|
||||||
|
resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
dependencies:
|
||||||
|
ansi-regex: 6.0.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
/strip-bom@2.0.0:
|
/strip-bom@2.0.0:
|
||||||
resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==}
|
resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
Loading…
Reference in New Issue
Block a user