perf: 支持google dns插件

This commit is contained in:
xiaojunnuo
2026-04-26 01:56:08 +08:00
parent 7b6b3aa293
commit edc7bfc230
5 changed files with 555 additions and 114 deletions
+2 -2
View File
@@ -70,9 +70,9 @@ version: 1.0.0
#### 你的回答 #### 你的回答
```typescript ```typescript
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions, PageSearch, PageRes, DomainRecord } from '@certd/plugin-cert'; import { Pager, PageRes, PageSearch } from "@certd/pipeline";
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions, DomainRecord } from '@certd/plugin-cert';
import { DemoAccess } from './access.js'; import { DemoAccess } from './access.js';
import { Pager } from '@certd/pipeline';
type DemoRecord = { type DemoRecord = {
// 这里定义 Record 记录的数据结构,跟对应云平台接口返回值一样即可 // 这里定义 Record 记录的数据结构,跟对应云平台接口返回值一样即可
+1
View File
@@ -64,6 +64,7 @@
"@certd/plugin-lib": "^1.39.10", "@certd/plugin-lib": "^1.39.10",
"@certd/plugin-plus": "^1.39.10", "@certd/plugin-plus": "^1.39.10",
"@certd/plus-core": "^1.39.10", "@certd/plus-core": "^1.39.10",
"@google-cloud/dns": "^5.3.1",
"@google-cloud/publicca": "^1.3.0", "@google-cloud/publicca": "^1.3.0",
"@huaweicloud/huaweicloud-sdk-cdn": "^3.1.185", "@huaweicloud/huaweicloud-sdk-cdn": "^3.1.185",
"@huaweicloud/huaweicloud-sdk-core": "^3.1.185", "@huaweicloud/huaweicloud-sdk-core": "^3.1.185",
@@ -0,0 +1,281 @@
import { Pager, PageRes, PageSearch } from "@certd/pipeline";
import {
AbstractDnsProvider,
CreateRecordOptions,
DomainRecord,
IsDnsProvider,
RemoveRecordOptions,
} from "@certd/plugin-cert";
import { GoogleAccess } from "../plugin-cert/access/index.js";
// TODO: 接口待明确 - 需要确认Google Cloud DNS API的具体参数和返回值格式
export type GoogleCloudDnsRecord = {
name: string;
type: string;
ttl: number;
rrdatas: string[];
zoneId: string;
projectId: string;
};
@IsDnsProvider({
name: "google-cloud-dns",
title: "Google Cloud DNS",
desc: "Google Cloud DNS提供商",
icon: "flat-color-icons:google",
accessType: "google",
order: 50,
})
export class GoogleCloudDnsProvider extends AbstractDnsProvider<GoogleCloudDnsRecord> {
access!: GoogleAccess;
projectId!: string;
credentials!: any;
envHttpsProxy: string = "";
async onInstance() {
this.access = this.ctx.access as GoogleAccess;
if (!this.access.serviceAccountSecret) {
throw new Error("服务账号密钥不能为空");
}
this.credentials = JSON.parse(this.access.serviceAccountSecret);
this.projectId = this.credentials.project_id;
this.logger.debug("Google Cloud DNS Provider 初始化成功");
}
private async setupProxy() {
if (this.access.httpsProxy) {
this.envHttpsProxy = process.env.HTTPS_PROXY || "";
process.env.HTTPS_PROXY = this.access.httpsProxy;
}
}
private async restoreProxy() {
if (this.envHttpsProxy) {
process.env.HTTPS_PROXY = this.envHttpsProxy;
this.envHttpsProxy = "";
}
}
private async getGoogleDnsClient() {
const { DNS } = await import("@google-cloud/dns");
return new DNS({ credentials: this.credentials });
}
private async findManagedZone(domain: string): Promise<any> {
const dns = await this.getGoogleDnsClient();
const [zones] = await dns.getZones();
// 查找匹配的托管区域
const normalizedDomain = domain.endsWith(".") ? domain : domain + ".";
for (const zone of zones) {
const zoneDnsName = zone.metadata.dnsName;
if (normalizedDomain.endsWith(zoneDnsName) || zoneDnsName === normalizedDomain) {
return zone;
}
}
throw new Error(`未找到域名 ${domain} 对应的托管区域`);
}
private async getExistingRecord(zone: any, recordName: string, type: string): Promise<any> {
const [records] = await zone.getRecords({
name: recordName,
type: type,
});
return records.length > 0 ? records[0] : null;
}
// 去掉引号的辅助函数
private stripQuotes(str: string): string {
return str.replace(/^"|"$/g, "");
}
// 添加引号的辅助函数(如果没有的话)
private addQuotes(str: string): string {
if (str.startsWith('"') && str.endsWith('"')) {
return str;
}
return `"${str}"`;
}
// 比较值是否相等(忽略引号)
private valuesEqual(a: string, b: string): boolean {
return this.stripQuotes(a) === this.stripQuotes(b);
}
async createRecord(options: CreateRecordOptions): Promise<GoogleCloudDnsRecord> {
const { fullRecord, value, type, domain } = options;
this.logger.info("Google Cloud DNS: 添加解析记录", fullRecord, value, type, domain);
await this.setupProxy();
try {
const zone = await this.findManagedZone(domain);
const recordName = fullRecord.endsWith(".") ? fullRecord : fullRecord + ".";
// 检查是否已存在该记录集
const existingRecord = await this.getExistingRecord(zone, recordName, type);
let newRrdatas: string[];
let ttl: number;
if (existingRecord) {
// 记录已存在,追加新值
this.logger.info("Google Cloud DNS: 记录已存在,追加新值");
const existingRrdatas = existingRecord.metadata.rrdatas || [];
// 检查值是否已存在(忽略引号)
const valueExists = existingRrdatas.some((existing: string) =>
this.valuesEqual(existing, value)
);
if (valueExists) {
this.logger.info("Google Cloud DNS: 值已存在,无需重复添加", fullRecord, value);
return {
name: recordName,
type: type,
ttl: existingRecord.metadata.ttl,
rrdatas: existingRrdatas,
zoneId: zone.metadata.name,
projectId: this.projectId,
};
}
newRrdatas = [...existingRrdatas, this.addQuotes(value)];
ttl = existingRecord.metadata.ttl;
} else {
// 创建新记录,加上引号
newRrdatas = [this.addQuotes(value)];
ttl = 60;
}
const changeConfig: any = {};
// 如果存在旧记录,需要先删除
if (existingRecord) {
// 使用Record对象格式
changeConfig.delete = existingRecord;
}
// 创建新的Record对象
const newRecord = zone.record(type, {
name: recordName,
data: newRrdatas,
ttl: ttl,
});
changeConfig.add = newRecord;
await zone.createChange(changeConfig);
this.logger.info("Google Cloud DNS: 解析记录创建成功", fullRecord);
return {
name: recordName,
type: type,
ttl: ttl,
rrdatas: newRrdatas, // 已经包含引号了
zoneId: zone.metadata.name,
projectId: this.projectId,
};
} finally {
await this.restoreProxy();
}
}
async removeRecord(options: RemoveRecordOptions<GoogleCloudDnsRecord>): Promise<void> {
const { fullRecord, value } = options.recordReq;
const record = options.recordRes;
this.logger.info("Google Cloud DNS: 删除解析记录", fullRecord, value);
if (!record) {
this.logger.info("记录为空,不执行删除");
return;
}
await this.setupProxy();
try {
const dns = await this.getGoogleDnsClient();
const zone = dns.zone(record.zoneId);
const recordName = record.name;
// 先获取服务器最新的记录状态
const existingRecord = await this.getExistingRecord(zone, recordName, record.type);
if (!existingRecord) {
this.logger.info("Google Cloud DNS: 记录已不存在,无需删除", fullRecord);
return;
}
const currentRrdatas = existingRecord.metadata.rrdatas || [];
// 检查要删除的值是否存在(忽略引号)
const valueIndex = currentRrdatas.findIndex((existing: string) =>
this.valuesEqual(existing, value)
);
if (valueIndex === -1) {
this.logger.info("Google Cloud DNS: 要删除的值不存在", fullRecord, value);
return;
}
// 过滤掉要删除的值(精确匹配找到的那个,保持其他记录的原样)
const newRrdatas = currentRrdatas.filter((_: string, i: number) => i !== valueIndex);
const changeConfig: any = {
delete: existingRecord,
};
if (newRrdatas.length > 0) {
// 还有剩余值,添加更新后的记录
const newRecord = zone.record(record.type, {
name: recordName,
data: newRrdatas,
ttl: existingRecord.metadata.ttl,
});
changeConfig.add = newRecord;
this.logger.info("Google Cloud DNS: 记录值已移除,剩余值", fullRecord, newRrdatas);
} else {
this.logger.info("Google Cloud DNS: 记录集已删除(无剩余值)", fullRecord);
}
await zone.createChange(changeConfig);
} catch (error: any) {
this.logger.error("Google Cloud DNS: 删除解析记录失败", error.message);
// 即使删除失败也不抛出异常,避免影响整个证书申请流程
} finally {
await this.restoreProxy();
}
}
async getDomainListPage(req: PageSearch): Promise<PageRes<DomainRecord>> {
await this.setupProxy();
try {
const pager = new Pager(req);
const dns = await this.getGoogleDnsClient();
const [zones] = await dns.getZones({
maxResults: pager.pageSize,
pageToken: pager.pageNo > 1 ? String(pager.pageNo) : undefined,
});
const list: DomainRecord[] = zones.map((zone: any) => ({
id: zone.metadata.name,
domain: zone.metadata.dnsName.replace(/\.$/, ""), // 去掉结尾的点
}));
// 简单的搜索过滤
let filteredList = list;
if (req.searchKey) {
filteredList = list.filter((item) =>
item.domain.toLowerCase().includes(req.searchKey.toLowerCase())
);
}
return {
list: filteredList,
total: zones.length,
};
} finally {
await this.restoreProxy();
}
}
}
// 实例化插件
new GoogleCloudDnsProvider();
@@ -0,0 +1 @@
export * from "./dns-provider.js";
+270 -112
View File
@@ -49,7 +49,7 @@ importers:
packages/core/acme-client: packages/core/acme-client:
dependencies: dependencies:
'@certd/basic': '@certd/basic':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../basic version: link:../basic
'@peculiar/x509': '@peculiar/x509':
specifier: ^1.11.0 specifier: ^1.11.0
@@ -213,11 +213,11 @@ importers:
packages/core/pipeline: packages/core/pipeline:
dependencies: dependencies:
'@certd/basic': '@certd/basic':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../basic version: link:../basic
'@certd/plus-core': '@certd/plus-core':
specifier: ^1.39.9 specifier: ^1.39.10
version: 1.39.9 version: link:../../pro/plus-core
dayjs: dayjs:
specifier: ^1.11.7 specifier: ^1.11.7
version: 1.11.13 version: 1.11.13
@@ -412,7 +412,7 @@ importers:
packages/libs/lib-k8s: packages/libs/lib-k8s:
dependencies: dependencies:
'@certd/basic': '@certd/basic':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../../core/basic version: link:../../core/basic
'@kubernetes/client-node': '@kubernetes/client-node':
specifier: 0.21.0 specifier: 0.21.0
@@ -452,20 +452,20 @@ importers:
packages/libs/lib-server: packages/libs/lib-server:
dependencies: dependencies:
'@certd/acme-client': '@certd/acme-client':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../../core/acme-client version: link:../../core/acme-client
'@certd/basic': '@certd/basic':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../../core/basic version: link:../../core/basic
'@certd/pipeline': '@certd/pipeline':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../../core/pipeline version: link:../../core/pipeline
'@certd/plugin-lib': '@certd/plugin-lib':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../../plugins/plugin-lib version: link:../../plugins/plugin-lib
'@certd/plus-core': '@certd/plus-core':
specifier: ^1.39.9 specifier: ^1.39.10
version: 1.39.9 version: link:../../pro/plus-core
'@midwayjs/cache': '@midwayjs/cache':
specifier: 3.14.0 specifier: 3.14.0
version: 3.14.0 version: 3.14.0
@@ -610,16 +610,16 @@ importers:
packages/plugins/plugin-cert: packages/plugins/plugin-cert:
dependencies: dependencies:
'@certd/acme-client': '@certd/acme-client':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../../core/acme-client version: link:../../core/acme-client
'@certd/basic': '@certd/basic':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../../core/basic version: link:../../core/basic
'@certd/pipeline': '@certd/pipeline':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../../core/pipeline version: link:../../core/pipeline
'@certd/plugin-lib': '@certd/plugin-lib':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../plugin-lib version: link:../plugin-lib
psl: psl:
specifier: ^1.9.0 specifier: ^1.9.0
@@ -683,17 +683,17 @@ importers:
specifier: ^3.964.0 specifier: ^3.964.0
version: 3.964.0(aws-crt@1.26.2) version: 3.964.0(aws-crt@1.26.2)
'@certd/acme-client': '@certd/acme-client':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../../core/acme-client version: link:../../core/acme-client
'@certd/basic': '@certd/basic':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../../core/basic version: link:../../core/basic
'@certd/pipeline': '@certd/pipeline':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../../core/pipeline version: link:../../core/pipeline
'@certd/plus-core': '@certd/plus-core':
specifier: ^1.39.9 specifier: ^1.39.10
version: 1.39.9 version: link:../../pro/plus-core
'@kubernetes/client-node': '@kubernetes/client-node':
specifier: 0.21.0 specifier: 0.21.0
version: 0.21.0 version: 0.21.0
@@ -783,16 +783,16 @@ importers:
packages/pro/commercial-core: packages/pro/commercial-core:
dependencies: dependencies:
'@certd/basic': '@certd/basic':
specifier: ^1.39.7 specifier: ^1.39.10
version: link:../../core/basic version: link:../../core/basic
'@certd/lib-server': '@certd/lib-server':
specifier: ^1.39.7 specifier: ^1.39.10
version: link:../../libs/lib-server version: link:../../libs/lib-server
'@certd/pipeline': '@certd/pipeline':
specifier: ^1.39.7 specifier: ^1.39.10
version: link:../../core/pipeline version: link:../../core/pipeline
'@certd/plus-core': '@certd/plus-core':
specifier: ^1.39.7 specifier: ^1.39.10
version: link:../plus-core version: link:../plus-core
'@midwayjs/core': '@midwayjs/core':
specifier: 3.20.11 specifier: 3.20.11
@@ -868,16 +868,16 @@ importers:
packages/pro/plugin-plus: packages/pro/plugin-plus:
dependencies: dependencies:
'@certd/basic': '@certd/basic':
specifier: ^1.39.7 specifier: ^1.39.10
version: link:../../core/basic version: link:../../core/basic
'@certd/pipeline': '@certd/pipeline':
specifier: ^1.39.7 specifier: ^1.39.10
version: link:../../core/pipeline version: link:../../core/pipeline
'@certd/plugin-lib': '@certd/plugin-lib':
specifier: ^1.39.7 specifier: ^1.39.10
version: link:../../plugins/plugin-lib version: link:../../plugins/plugin-lib
'@certd/plus-core': '@certd/plus-core':
specifier: ^1.39.7 specifier: ^1.39.10
version: link:../plus-core version: link:../plus-core
crypto-js: crypto-js:
specifier: ^4.2.0 specifier: ^4.2.0
@@ -953,7 +953,7 @@ importers:
packages/pro/plus-core: packages/pro/plus-core:
dependencies: dependencies:
'@certd/basic': '@certd/basic':
specifier: ^1.39.7 specifier: ^1.39.10
version: link:../../core/basic version: link:../../core/basic
dayjs: dayjs:
specifier: ^1.11.7 specifier: ^1.11.7
@@ -1249,10 +1249,10 @@ importers:
version: 0.1.3(zod@3.24.4) version: 0.1.3(zod@3.24.4)
devDependencies: devDependencies:
'@certd/lib-iframe': '@certd/lib-iframe':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../../libs/lib-iframe version: link:../../libs/lib-iframe
'@certd/pipeline': '@certd/pipeline':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../../core/pipeline version: link:../../core/pipeline
'@rollup/plugin-commonjs': '@rollup/plugin-commonjs':
specifier: ^25.0.7 specifier: ^25.0.7
@@ -1447,47 +1447,50 @@ importers:
specifier: ^3.990.0 specifier: ^3.990.0
version: 3.990.0(aws-crt@1.26.2) version: 3.990.0(aws-crt@1.26.2)
'@certd/acme-client': '@certd/acme-client':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../../core/acme-client version: link:../../core/acme-client
'@certd/basic': '@certd/basic':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../../core/basic version: link:../../core/basic
'@certd/commercial-core': '@certd/commercial-core':
specifier: ^1.39.9 specifier: ^1.39.10
version: 1.39.9(better-sqlite3@11.10.0)(mysql2@3.14.1)(pg@8.16.0)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@18.19.100)(typescript@5.9.3)) version: link:../../pro/commercial-core
'@certd/cv4pve-api-javascript': '@certd/cv4pve-api-javascript':
specifier: ^8.4.2 specifier: ^8.4.2
version: 8.4.2 version: 8.4.2
'@certd/jdcloud': '@certd/jdcloud':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../../libs/lib-jdcloud version: link:../../libs/lib-jdcloud
'@certd/lib-huawei': '@certd/lib-huawei':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../../libs/lib-huawei version: link:../../libs/lib-huawei
'@certd/lib-k8s': '@certd/lib-k8s':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../../libs/lib-k8s version: link:../../libs/lib-k8s
'@certd/lib-server': '@certd/lib-server':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../../libs/lib-server version: link:../../libs/lib-server
'@certd/midway-flyway-js': '@certd/midway-flyway-js':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../../libs/midway-flyway-js version: link:../../libs/midway-flyway-js
'@certd/pipeline': '@certd/pipeline':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../../core/pipeline version: link:../../core/pipeline
'@certd/plugin-cert': '@certd/plugin-cert':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../../plugins/plugin-cert version: link:../../plugins/plugin-cert
'@certd/plugin-lib': '@certd/plugin-lib':
specifier: ^1.39.9 specifier: ^1.39.10
version: link:../../plugins/plugin-lib version: link:../../plugins/plugin-lib
'@certd/plugin-plus': '@certd/plugin-plus':
specifier: ^1.39.9 specifier: ^1.39.10
version: 1.39.9 version: link:../../pro/plugin-plus
'@certd/plus-core': '@certd/plus-core':
specifier: ^1.39.9 specifier: ^1.39.10
version: 1.39.9 version: link:../../pro/plus-core
'@google-cloud/dns':
specifier: ^5.3.1
version: 5.3.1
'@google-cloud/publicca': '@google-cloud/publicca':
specifier: ^1.3.0 specifier: ^1.3.0
version: 1.3.0(encoding@0.1.13) version: 1.3.0(encoding@0.1.13)
@@ -2838,18 +2841,9 @@ packages:
'@better-scroll/zoom@2.5.1': '@better-scroll/zoom@2.5.1':
resolution: {integrity: sha512-aGvFY5ooeZWS4RcxQLD+pGLpQHQxpPy0sMZV3yadcd2QK53PK9gS4Dp+BYfRv8lZ4/P2LoNEhr6Wq1DN6+uPlA==} resolution: {integrity: sha512-aGvFY5ooeZWS4RcxQLD+pGLpQHQxpPy0sMZV3yadcd2QK53PK9gS4Dp+BYfRv8lZ4/P2LoNEhr6Wq1DN6+uPlA==}
'@certd/commercial-core@1.39.9':
resolution: {integrity: sha512-oq4rWrK6Xxy9hkxZaUbQbZ2pFgtRcPuqlg9Ud1vtzO8zmFkZY48j+vsUH0V32k1dNr75BIl9r9RFY2Vwc6rcVg==}
'@certd/cv4pve-api-javascript@8.4.2': '@certd/cv4pve-api-javascript@8.4.2':
resolution: {integrity: sha512-udGce7ewrVl4DmZvX+17PjsnqsdDIHEDatr8QP0AVrY2p+8JkaSPW4mXCKiLGf82C9K2+GXgT+qNIqgW7tfF9Q==} resolution: {integrity: sha512-udGce7ewrVl4DmZvX+17PjsnqsdDIHEDatr8QP0AVrY2p+8JkaSPW4mXCKiLGf82C9K2+GXgT+qNIqgW7tfF9Q==}
'@certd/plugin-plus@1.39.9':
resolution: {integrity: sha512-OdY0glIHQeaGUYwH8KvN++go4QB5KUBmRvw1jzIDKu5pHZEKkEij0UBfeDv8a5CC9ynA+4/aoNPCvB0tncNuCg==}
'@certd/plus-core@1.39.9':
resolution: {integrity: sha512-75Wo4KQoHFxhWwLB3XjRC+ihButagGiaxiwS1u4oVzESW9EqQ+XKcGEw/WJF3oh81dE7orexo2nA4p/PdoTSlg==}
'@certd/vue-js-cron-core@6.0.3': '@certd/vue-js-cron-core@6.0.3':
resolution: {integrity: sha512-kqzoAMhYz9j6FGNWEODRYtt4NpUEUwjpkU89z5WVg2tCtOcI5VhwyUGOd8AxiBCRfd6PtXvzuqw85PaOps9wrQ==} resolution: {integrity: sha512-kqzoAMhYz9j6FGNWEODRYtt4NpUEUwjpkU89z5WVg2tCtOcI5VhwyUGOd8AxiBCRfd6PtXvzuqw85PaOps9wrQ==}
@@ -3524,6 +3518,30 @@ packages:
'@floating-ui/vue@1.1.6': '@floating-ui/vue@1.1.6':
resolution: {integrity: sha512-XFlUzGHGv12zbgHNk5FN2mUB7ROul3oG2ENdTpWdE+qMFxyNxWSRmsoyhiEnpmabNm6WnUvR1OvJfUfN4ojC1A==} resolution: {integrity: sha512-XFlUzGHGv12zbgHNk5FN2mUB7ROul3oG2ENdTpWdE+qMFxyNxWSRmsoyhiEnpmabNm6WnUvR1OvJfUfN4ojC1A==}
'@google-cloud/common@6.0.0':
resolution: {integrity: sha512-IXh04DlkLMxWgYLIUYuHHKXKOUwPDzDgke1ykkkJPe48cGIS9kkL2U/o0pm4ankHLlvzLF/ma1eO86n/bkumIA==}
engines: {node: '>=18'}
'@google-cloud/dns@5.3.1':
resolution: {integrity: sha512-1kkLU/si7zpIZpY2yg3pXZ1LH8Ifl/ujhxvxd/1d5e8qQ2pcyrobaxqlCekKltjBA24s/o3Up7Cl9pqj4elxdg==}
engines: {node: '>=18'}
'@google-cloud/paginator@6.0.0':
resolution: {integrity: sha512-g5nmMnzC+94kBxOKkLGpK1ikvolTFCC3s2qtE4F+1EuArcJ7HHC23RDQVt3Ra3CqpUYZ+oXNKZ8n5Cn5yug8DA==}
engines: {node: '>=18'}
'@google-cloud/projectify@4.0.0':
resolution: {integrity: sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA==}
engines: {node: '>=14.0.0'}
'@google-cloud/promisify@4.1.0':
resolution: {integrity: sha512-G/FQx5cE/+DqBbOpA5jKsegGwdPniU6PuIEMt+qxWgFxvxuFOzVmp6zYchtYuwAWV5/8Dgs0yAmjvNZv3uXLQg==}
engines: {node: '>=18'}
'@google-cloud/promisify@5.0.0':
resolution: {integrity: sha512-N8qS6dlORGHwk7WjGXKOSsLjIjNINCPicsOX6gyyLiYk7mq3MtII96NZ9N2ahwA2vnkLmZODOIH9rlNniYWvCQ==}
engines: {node: '>=18'}
'@google-cloud/publicca@1.3.0': '@google-cloud/publicca@1.3.0':
resolution: {integrity: sha512-Uaqrzs6N8O3lGZx+r9aOxW1KCtE3BBNZEewhcX2UvKW/2CEAV2HmW0bFVYwtiu3zGppkVMz9pXZInz/Q1qOwvQ==} resolution: {integrity: sha512-Uaqrzs6N8O3lGZx+r9aOxW1KCtE3BBNZEewhcX2UvKW/2CEAV2HmW0bFVYwtiu3zGppkVMz9pXZInz/Q1qOwvQ==}
engines: {node: '>=14.0.0'} engines: {node: '>=14.0.0'}
@@ -3537,6 +3555,11 @@ packages:
engines: {node: '>=6'} engines: {node: '>=6'}
hasBin: true hasBin: true
'@grpc/proto-loader@0.8.0':
resolution: {integrity: sha512-rc1hOQtjIWGxcxpb9aHAfLpIctjEnsDehj0DAiVfBlmT84uvR0uUtN2hEi/ecvWVjXUGf5qPF4qEgiLOx1YIMQ==}
engines: {node: '>=6'}
hasBin: true
'@hapi/bourne@3.0.0': '@hapi/bourne@3.0.0':
resolution: {integrity: sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==} resolution: {integrity: sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==}
@@ -5800,6 +5823,10 @@ packages:
resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
arrify@2.0.1:
resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==}
engines: {node: '>=8'}
asap@2.0.6: asap@2.0.6:
resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
@@ -5958,7 +5985,7 @@ packages:
basic-ftp@5.0.5: basic-ftp@5.0.5:
resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==}
engines: {node: '>=10.0.0'} engines: {node: '>=10.0.0'}
deprecated: Security vulnerability fixed in 5.2.0, please upgrade deprecated: Security vulnerability fixed in 5.2.1, please upgrade
bcrypt-pbkdf@1.0.2: bcrypt-pbkdf@1.0.2:
resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==}
@@ -7041,6 +7068,10 @@ packages:
resolution: {integrity: sha512-SIEkjrG7cZ9GWZQYk/mH+mWtcRPly/3ibVuXO/tP/MFoWz6KiRK77tSMq6YQBPl7RljPtXPQ/JhxbNuCdi1bNw==} resolution: {integrity: sha512-SIEkjrG7cZ9GWZQYk/mH+mWtcRPly/3ibVuXO/tP/MFoWz6KiRK77tSMq6YQBPl7RljPtXPQ/JhxbNuCdi1bNw==}
engines: {node: '>=12'} engines: {node: '>=12'}
dns-zonefile@0.2.10:
resolution: {integrity: sha512-YXs0T8EjhwI3YFpL4l7n9Uy+g/ufmd3WyDSQsI4mrMNlrrdgK6aN0AbNjOkKoHyF59l/x4Y3/z64F3aJWCKWpg==}
hasBin: true
doctrine@2.1.0: doctrine@2.1.0:
resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
@@ -7806,10 +7837,18 @@ packages:
resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==}
engines: {node: '>=14'} engines: {node: '>=14'}
gaxios@7.1.4:
resolution: {integrity: sha512-bTIgTsM2bWn3XklZISBTQX7ZSddGW+IO3bMdGaemHZ3tbqExMENHLx6kKZ/KlejgrMtj8q7wBItt51yegqalrA==}
engines: {node: '>=18'}
gcp-metadata@6.1.1: gcp-metadata@6.1.1:
resolution: {integrity: sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==} resolution: {integrity: sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==}
engines: {node: '>=14'} engines: {node: '>=14'}
gcp-metadata@8.1.2:
resolution: {integrity: sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==}
engines: {node: '>=18'}
generate-function@2.3.1: generate-function@2.3.1:
resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==}
@@ -7966,6 +8005,10 @@ packages:
good-listener@1.2.2: good-listener@1.2.2:
resolution: {integrity: sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==} resolution: {integrity: sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==}
google-auth-library@10.6.2:
resolution: {integrity: sha512-e27Z6EThmVNNvtYASwQxose/G57rkRuaRbQyxM2bvYLLX/GqWZ5chWq2EBoUchJbCc57eC9ArzO5wMsEmWftCw==}
engines: {node: '>=18'}
google-auth-library@9.15.1: google-auth-library@9.15.1:
resolution: {integrity: sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==} resolution: {integrity: sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==}
engines: {node: '>=14'} engines: {node: '>=14'}
@@ -7974,10 +8017,18 @@ packages:
resolution: {integrity: sha512-zKKLeLfcYBVOzzM48Brtn4EQkKcTli9w6c1ilzFK2NbJvcd4ATD8/XqFExImvE/W5IwMlKKwa5qqVufji3ioNQ==} resolution: {integrity: sha512-zKKLeLfcYBVOzzM48Brtn4EQkKcTli9w6c1ilzFK2NbJvcd4ATD8/XqFExImvE/W5IwMlKKwa5qqVufji3ioNQ==}
engines: {node: '>=14'} engines: {node: '>=14'}
google-gax@5.0.6:
resolution: {integrity: sha512-1kGbqVQBZPAAu4+/R1XxPQKP0ydbNYoLAr4l0ZO2bMV0kLyLW4I1gAk++qBLWt7DPORTzmWRMsCZe86gDjShJA==}
engines: {node: '>=18'}
google-logging-utils@0.0.2: google-logging-utils@0.0.2:
resolution: {integrity: sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==} resolution: {integrity: sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==}
engines: {node: '>=14'} engines: {node: '>=14'}
google-logging-utils@1.1.3:
resolution: {integrity: sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==}
engines: {node: '>=14'}
gopd@1.2.0: gopd@1.2.0:
resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
@@ -8103,6 +8154,9 @@ packages:
resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==}
engines: {node: ^16.14.0 || >=18.0.0} engines: {node: ^16.14.0 || >=18.0.0}
html-entities@2.6.0:
resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==}
html-escaper@2.0.2: html-escaper@2.0.2:
resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
@@ -9042,6 +9096,9 @@ packages:
resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
deprecated: This package is deprecated. Use the optional chaining (?.) operator instead. deprecated: This package is deprecated. Use the optional chaining (?.) operator instead.
lodash.groupby@4.6.0:
resolution: {integrity: sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==}
lodash.includes@4.3.0: lodash.includes@4.3.0:
resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==}
@@ -10732,6 +10789,10 @@ packages:
resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==}
engines: {node: '>=14.0.0'} engines: {node: '>=14.0.0'}
proto3-json-serializer@3.0.4:
resolution: {integrity: sha512-E1sbAYg3aEbXrq0n1ojJkRHQJGE1kaE/O6GLA94y8rnJBfgvOPTOd1b9hOceQK1FFZI9qMh1vBERCyO2ifubcw==}
engines: {node: '>=18'}
protobufjs@7.2.5: protobufjs@7.2.5:
resolution: {integrity: sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==} resolution: {integrity: sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==}
engines: {node: '>=12.0.0'} engines: {node: '>=12.0.0'}
@@ -10740,6 +10801,10 @@ packages:
resolution: {integrity: sha512-f2ls6rpO6G153Cy+o2XQ+Y0sARLOZ17+OGVLHrc3VUKcLHYKEKWbkSujdBWQXM7gKn5NTfp0XnRPZn1MIu8n9w==} resolution: {integrity: sha512-f2ls6rpO6G153Cy+o2XQ+Y0sARLOZ17+OGVLHrc3VUKcLHYKEKWbkSujdBWQXM7gKn5NTfp0XnRPZn1MIu8n9w==}
engines: {node: '>=12.0.0'} engines: {node: '>=12.0.0'}
protobufjs@7.5.5:
resolution: {integrity: sha512-3wY1AxV+VBNW8Yypfd1yQY9pXnqTAN+KwQxL8iYm3/BjKYMNg4i0owhEe26PWDOMaIrzeeF98Lqd5NGz4omiIg==}
engines: {node: '>=12.0.0'}
protocols@2.0.2: protocols@2.0.2:
resolution: {integrity: sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==} resolution: {integrity: sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==}
@@ -11086,6 +11151,10 @@ packages:
resolution: {integrity: sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==} resolution: {integrity: sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==}
engines: {node: '>=14'} engines: {node: '>=14'}
retry-request@8.0.2:
resolution: {integrity: sha512-JzFPAfklk1kjR1w76f0QOIhoDkNkSqW8wYKT08n9yysTmZfB+RQ2QoXoTAeOi1HD9ZipTyTAZg3c4pM/jeqgSw==}
engines: {node: '>=18'}
retry@0.12.0: retry@0.12.0:
resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
engines: {node: '>= 4'} engines: {node: '>= 4'}
@@ -11536,6 +11605,9 @@ packages:
resolution: {integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==} resolution: {integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==}
engines: {node: '>=8.0'} engines: {node: '>=8.0'}
string-format-obj@1.1.1:
resolution: {integrity: sha512-Mm+sROy+pHJmx0P/0Bs1uxIX6UhGJGj6xDGQZ5zh9v/SZRmLGevp+p0VJxV7lirrkAmQ2mvva/gHKpnF/pTb+Q==}
string-width@4.2.3: string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'} engines: {node: '>=8'}
@@ -11779,6 +11851,10 @@ packages:
teamcity-service-messages@0.1.14: teamcity-service-messages@0.1.14:
resolution: {integrity: sha512-29aQwaHqm8RMX74u2o/h1KbMLP89FjNiMxD9wbF2BbWOnbM+q+d1sCEC+MqCc4QW3NJykn77OMpTFw/xTHIc0w==} resolution: {integrity: sha512-29aQwaHqm8RMX74u2o/h1KbMLP89FjNiMxD9wbF2BbWOnbM+q+d1sCEC+MqCc4QW3NJykn77OMpTFw/xTHIc0w==}
teeny-request@10.1.2:
resolution: {integrity: sha512-Xj0ZAQ0CeuQn6UxCDPLbFRlgcSTUEyO3+wiepr2grjIjyL/lMMs1Z4OwXn8kLvn/V1OuaEP0UY7Na6UDNNsYrQ==}
engines: {node: '>=18'}
teeny-request@9.0.0: teeny-request@9.0.0:
resolution: {integrity: sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==} resolution: {integrity: sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==}
engines: {node: '>=14'} engines: {node: '>=14'}
@@ -15155,64 +15231,12 @@ snapshots:
dependencies: dependencies:
'@better-scroll/core': 2.5.1 '@better-scroll/core': 2.5.1
'@certd/commercial-core@1.39.9(better-sqlite3@11.10.0)(mysql2@3.14.1)(pg@8.16.0)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@18.19.100)(typescript@5.9.3))':
dependencies:
'@certd/basic': link:packages/core/basic
'@certd/lib-server': link:packages/libs/lib-server
'@certd/pipeline': link:packages/core/pipeline
'@certd/plus-core': 1.39.9
'@midwayjs/core': 3.20.11
'@midwayjs/koa': 3.20.13
'@midwayjs/logger': 3.4.2
'@midwayjs/swagger': 3.20.11
'@midwayjs/typeorm': 3.20.11
dayjs: 1.11.13
typeorm: 0.3.24(better-sqlite3@11.10.0)(mysql2@3.14.1)(pg@8.16.0)(reflect-metadata@0.2.2)(ts-node@10.9.2(@types/node@18.19.100)(typescript@5.9.3))
transitivePeerDependencies:
- '@google-cloud/spanner'
- '@sap/hana-client'
- babel-plugin-macros
- better-sqlite3
- hdb-pool
- ioredis
- mongodb
- mssql
- mysql2
- oracledb
- pg
- pg-native
- pg-query-stream
- redis
- reflect-metadata
- sql.js
- sqlite3
- supports-color
- ts-node
- typeorm-aurora-data-api-driver
'@certd/cv4pve-api-javascript@8.4.2': '@certd/cv4pve-api-javascript@8.4.2':
dependencies: dependencies:
debug: 4.4.3(supports-color@8.1.1) debug: 4.4.3(supports-color@8.1.1)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@certd/plugin-plus@1.39.9':
dependencies:
'@certd/basic': link:packages/core/basic
'@certd/pipeline': link:packages/core/pipeline
'@certd/plugin-lib': link:packages/plugins/plugin-lib
'@certd/plus-core': 1.39.9
crypto-js: 4.2.0
dayjs: 1.11.13
form-data: 4.0.2
jsrsasign: 11.1.0
querystring: 0.2.1
'@certd/plus-core@1.39.9':
dependencies:
'@certd/basic': link:packages/core/basic
dayjs: 1.11.13
'@certd/vue-js-cron-core@6.0.3': '@certd/vue-js-cron-core@6.0.3':
dependencies: dependencies:
mustache: 4.2.0 mustache: 4.2.0
@@ -15804,6 +15828,43 @@ snapshots:
- '@vue/composition-api' - '@vue/composition-api'
- vue - vue
'@google-cloud/common@6.0.0':
dependencies:
'@google-cloud/projectify': 4.0.0
'@google-cloud/promisify': 4.1.0
arrify: 2.0.1
duplexify: 4.1.3
extend: 3.0.2
google-auth-library: 10.6.2
html-entities: 2.6.0
retry-request: 8.0.2
teeny-request: 10.1.2
transitivePeerDependencies:
- supports-color
'@google-cloud/dns@5.3.1':
dependencies:
'@google-cloud/common': 6.0.0
'@google-cloud/paginator': 6.0.0
'@google-cloud/promisify': 5.0.0
arrify: 2.0.1
dns-zonefile: 0.2.10
google-gax: 5.0.6
lodash.groupby: 4.6.0
string-format-obj: 1.1.1
transitivePeerDependencies:
- supports-color
'@google-cloud/paginator@6.0.0':
dependencies:
extend: 3.0.2
'@google-cloud/projectify@4.0.0': {}
'@google-cloud/promisify@4.1.0': {}
'@google-cloud/promisify@5.0.0': {}
'@google-cloud/publicca@1.3.0(encoding@0.1.13)': '@google-cloud/publicca@1.3.0(encoding@0.1.13)':
dependencies: dependencies:
google-gax: 4.6.0(encoding@0.1.13) google-gax: 4.6.0(encoding@0.1.13)
@@ -15823,6 +15884,13 @@ snapshots:
protobufjs: 7.5.2 protobufjs: 7.5.2
yargs: 17.7.2 yargs: 17.7.2
'@grpc/proto-loader@0.8.0':
dependencies:
lodash.camelcase: 4.3.0
long: 5.3.2
protobufjs: 7.5.5
yargs: 17.7.2
'@hapi/bourne@3.0.0': {} '@hapi/bourne@3.0.0': {}
'@hapi/hoek@9.3.0': {} '@hapi/hoek@9.3.0': {}
@@ -19035,6 +19103,8 @@ snapshots:
arrify@1.0.1: {} arrify@1.0.1: {}
arrify@2.0.1: {}
asap@2.0.6: {} asap@2.0.6: {}
asn1@0.2.6: asn1@0.2.6:
@@ -20436,6 +20506,8 @@ snapshots:
test-value: 3.0.0 test-value: 3.0.0
walk-back: 5.1.1 walk-back: 5.1.1
dns-zonefile@0.2.10: {}
doctrine@2.1.0: doctrine@2.1.0:
dependencies: dependencies:
esutils: 2.0.3 esutils: 2.0.3
@@ -20925,13 +20997,13 @@ snapshots:
resolve: 1.22.10 resolve: 1.22.10
semver: 6.3.1 semver: 6.3.1
eslint-plugin-prettier@3.4.1(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@7.32.0)(prettier@2.8.8): eslint-plugin-prettier@3.4.1(eslint-config-prettier@8.10.0(eslint@7.32.0))(eslint@7.32.0)(prettier@2.8.8):
dependencies: dependencies:
eslint: 7.32.0 eslint: 7.32.0
prettier: 2.8.8 prettier: 2.8.8
prettier-linter-helpers: 1.0.0 prettier-linter-helpers: 1.0.0
optionalDependencies: optionalDependencies:
eslint-config-prettier: 8.10.0(eslint@8.57.0) eslint-config-prettier: 8.10.0(eslint@7.32.0)
eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8): eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.8):
dependencies: dependencies:
@@ -21463,6 +21535,14 @@ snapshots:
- encoding - encoding
- supports-color - supports-color
gaxios@7.1.4:
dependencies:
extend: 3.0.2
https-proxy-agent: 7.0.6
node-fetch: 3.3.2
transitivePeerDependencies:
- supports-color
gcp-metadata@6.1.1(encoding@0.1.13): gcp-metadata@6.1.1(encoding@0.1.13):
dependencies: dependencies:
gaxios: 6.7.1(encoding@0.1.13) gaxios: 6.7.1(encoding@0.1.13)
@@ -21472,6 +21552,14 @@ snapshots:
- encoding - encoding
- supports-color - supports-color
gcp-metadata@8.1.2:
dependencies:
gaxios: 7.1.4
google-logging-utils: 1.1.3
json-bigint: 1.0.0
transitivePeerDependencies:
- supports-color
generate-function@2.3.1: generate-function@2.3.1:
dependencies: dependencies:
is-property: 1.0.2 is-property: 1.0.2
@@ -21664,6 +21752,17 @@ snapshots:
dependencies: dependencies:
delegate: 3.2.0 delegate: 3.2.0
google-auth-library@10.6.2:
dependencies:
base64-js: 1.5.1
ecdsa-sig-formatter: 1.0.11
gaxios: 7.1.4
gcp-metadata: 8.1.2
google-logging-utils: 1.1.3
jws: 4.0.0
transitivePeerDependencies:
- supports-color
google-auth-library@9.15.1(encoding@0.1.13): google-auth-library@9.15.1(encoding@0.1.13):
dependencies: dependencies:
base64-js: 1.5.1 base64-js: 1.5.1
@@ -21694,8 +21793,26 @@ snapshots:
- encoding - encoding
- supports-color - supports-color
google-gax@5.0.6:
dependencies:
'@grpc/grpc-js': 1.13.3
'@grpc/proto-loader': 0.8.0
duplexify: 4.1.3
google-auth-library: 10.6.2
google-logging-utils: 1.1.3
node-fetch: 3.3.2
object-hash: 3.0.0
proto3-json-serializer: 3.0.4
protobufjs: 7.5.5
retry-request: 8.0.2
rimraf: 5.0.10
transitivePeerDependencies:
- supports-color
google-logging-utils@0.0.2: {} google-logging-utils@0.0.2: {}
google-logging-utils@1.1.3: {}
gopd@1.2.0: {} gopd@1.2.0: {}
got@9.6.0: got@9.6.0:
@@ -21830,6 +21947,8 @@ snapshots:
dependencies: dependencies:
lru-cache: 10.4.3 lru-cache: 10.4.3
html-entities@2.6.0: {}
html-escaper@2.0.2: {} html-escaper@2.0.2: {}
html-minifier-terser@6.1.0: html-minifier-terser@6.1.0:
@@ -22824,6 +22943,8 @@ snapshots:
lodash.get@4.4.2: {} lodash.get@4.4.2: {}
lodash.groupby@4.6.0: {}
lodash.includes@4.3.0: {} lodash.includes@4.3.0: {}
lodash.isboolean@3.0.3: {} lodash.isboolean@3.0.3: {}
@@ -23357,7 +23478,7 @@ snapshots:
eslint: 7.32.0 eslint: 7.32.0
eslint-config-prettier: 8.10.0(eslint@7.32.0) eslint-config-prettier: 8.10.0(eslint@7.32.0)
eslint-plugin-node: 11.1.0(eslint@7.32.0) eslint-plugin-node: 11.1.0(eslint@7.32.0)
eslint-plugin-prettier: 3.4.1(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@7.32.0)(prettier@2.8.8) eslint-plugin-prettier: 3.4.1(eslint-config-prettier@8.10.0(eslint@7.32.0))(eslint@7.32.0)(prettier@2.8.8)
execa: 5.1.1 execa: 5.1.1
inquirer: 7.3.3 inquirer: 7.3.3
json5: 2.2.3 json5: 2.2.3
@@ -24586,6 +24707,10 @@ snapshots:
dependencies: dependencies:
protobufjs: 7.5.2 protobufjs: 7.5.2
proto3-json-serializer@3.0.4:
dependencies:
protobufjs: 7.5.5
protobufjs@7.2.5: protobufjs@7.2.5:
dependencies: dependencies:
'@protobufjs/aspromise': 1.1.2 '@protobufjs/aspromise': 1.1.2
@@ -24616,6 +24741,21 @@ snapshots:
'@types/node': 20.17.47 '@types/node': 20.17.47
long: 5.3.2 long: 5.3.2
protobufjs@7.5.5:
dependencies:
'@protobufjs/aspromise': 1.1.2
'@protobufjs/base64': 1.1.2
'@protobufjs/codegen': 2.0.4
'@protobufjs/eventemitter': 1.1.0
'@protobufjs/fetch': 1.1.0
'@protobufjs/float': 1.0.2
'@protobufjs/inquire': 1.1.0
'@protobufjs/path': 1.1.2
'@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.0
'@types/node': 20.17.47
long: 5.3.2
protocols@2.0.2: {} protocols@2.0.2: {}
proxy-from-env@1.1.0: {} proxy-from-env@1.1.0: {}
@@ -25041,6 +25181,13 @@ snapshots:
- encoding - encoding
- supports-color - supports-color
retry-request@8.0.2:
dependencies:
extend: 3.0.2
teeny-request: 10.1.2
transitivePeerDependencies:
- supports-color
retry@0.12.0: {} retry@0.12.0: {}
reusify@1.1.0: {} reusify@1.1.0: {}
@@ -25510,6 +25657,8 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
string-format-obj@1.1.1: {}
string-width@4.2.3: string-width@4.2.3:
dependencies: dependencies:
emoji-regex: 8.0.0 emoji-regex: 8.0.0
@@ -25875,6 +26024,15 @@ snapshots:
teamcity-service-messages@0.1.14: {} teamcity-service-messages@0.1.14: {}
teeny-request@10.1.2:
dependencies:
http-proxy-agent: 7.0.2
https-proxy-agent: 7.0.6
node-fetch: 3.3.2
stream-events: 1.0.5
transitivePeerDependencies:
- supports-color
teeny-request@9.0.0(encoding@0.1.13): teeny-request@9.0.0(encoding@0.1.13):
dependencies: dependencies:
http-proxy-agent: 5.0.0 http-proxy-agent: 5.0.0