From 99d9ad3f953ca9395ef76dc44652838a8c775abc Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sun, 17 Mar 2024 12:39:55 +0800 Subject: [PATCH 01/47] add sqlite plugin(with typeorm and sqlite) and business entities --- packages/sqlite-plugin/.gitignore | 4 + packages/sqlite-plugin/package.json | 17 + packages/sqlite-plugin/src/entity/BossInfo.ts | 19 + .../src/entity/BossInfoChangeLog.ts | 16 + .../src/entity/ChatStartupLog.ts | 13 + .../sqlite-plugin/src/entity/CompanyInfo.ts | 28 + .../src/entity/CompanyInfoChangeLog.ts | 16 + packages/sqlite-plugin/src/entity/JobInfo.ts | 49 + .../src/entity/JobInfoChangeLog.ts | 16 + packages/sqlite-plugin/src/index.ts | 35 + packages/sqlite-plugin/tsconfig.json | 12 + pnpm-lock.yaml | 837 +++++++++++++++++- 12 files changed, 1014 insertions(+), 48 deletions(-) create mode 100644 packages/sqlite-plugin/.gitignore create mode 100644 packages/sqlite-plugin/package.json create mode 100644 packages/sqlite-plugin/src/entity/BossInfo.ts create mode 100644 packages/sqlite-plugin/src/entity/BossInfoChangeLog.ts create mode 100644 packages/sqlite-plugin/src/entity/ChatStartupLog.ts create mode 100644 packages/sqlite-plugin/src/entity/CompanyInfo.ts create mode 100644 packages/sqlite-plugin/src/entity/CompanyInfoChangeLog.ts create mode 100644 packages/sqlite-plugin/src/entity/JobInfo.ts create mode 100644 packages/sqlite-plugin/src/entity/JobInfoChangeLog.ts create mode 100644 packages/sqlite-plugin/src/index.ts create mode 100644 packages/sqlite-plugin/tsconfig.json diff --git a/packages/sqlite-plugin/.gitignore b/packages/sqlite-plugin/.gitignore new file mode 100644 index 0000000..0d1e48f --- /dev/null +++ b/packages/sqlite-plugin/.gitignore @@ -0,0 +1,4 @@ +node_modules +src/**/*.js +src/**/*.js.map +database.sqlite diff --git a/packages/sqlite-plugin/package.json b/packages/sqlite-plugin/package.json new file mode 100644 index 0000000..8a7f034 --- /dev/null +++ b/packages/sqlite-plugin/package.json @@ -0,0 +1,17 @@ +{ + "name": "@geekgeekrun/sqlite-plugin", + "version": "0.0.1", + "description": "", + "dependencies": { + "reflect-metadata": "^0.2.1", + "sqlite3": "^5.1.7", + "typeorm": "^0.3.20" + }, + "devDependencies": { + "ts-node": "^10.9.2", + "typescript": "^5.3.3" + }, + "scripts": { + "dev": "NODE_OPTIONS=\"-r ts-node/register --no-warnings\" node ./src/index" + } +} diff --git a/packages/sqlite-plugin/src/entity/BossInfo.ts b/packages/sqlite-plugin/src/entity/BossInfo.ts new file mode 100644 index 0000000..c547ccd --- /dev/null +++ b/packages/sqlite-plugin/src/entity/BossInfo.ts @@ -0,0 +1,19 @@ +import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"; + +@Entity() +export class BossInfo { + @PrimaryGeneratedColumn() + id: number; + + @Column() + encryptedBossId: string; + + @Column() + encryptedCompanyId: string; + + @Column() + date: Date; + + @Column() + title: Date; +} diff --git a/packages/sqlite-plugin/src/entity/BossInfoChangeLog.ts b/packages/sqlite-plugin/src/entity/BossInfoChangeLog.ts new file mode 100644 index 0000000..0255e56 --- /dev/null +++ b/packages/sqlite-plugin/src/entity/BossInfoChangeLog.ts @@ -0,0 +1,16 @@ +import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"; + +@Entity() +export class BossInfoChangeLog { + @PrimaryGeneratedColumn() + id: number; + + @Column() + encryptedBossId: string; + + @Column() + updateTime: Date; + + @Column() + dataAsJson: string; +} diff --git a/packages/sqlite-plugin/src/entity/ChatStartupLog.ts b/packages/sqlite-plugin/src/entity/ChatStartupLog.ts new file mode 100644 index 0000000..a658ebc --- /dev/null +++ b/packages/sqlite-plugin/src/entity/ChatStartupLog.ts @@ -0,0 +1,13 @@ +import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"; + +@Entity() +export class ChatStartupLog { + @PrimaryGeneratedColumn() + id: number; + + @Column() + encryptedPositionId: string; + + @Column() + date: Date; +} diff --git a/packages/sqlite-plugin/src/entity/CompanyInfo.ts b/packages/sqlite-plugin/src/entity/CompanyInfo.ts new file mode 100644 index 0000000..fb7d2c0 --- /dev/null +++ b/packages/sqlite-plugin/src/entity/CompanyInfo.ts @@ -0,0 +1,28 @@ +import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"; + +@Entity() +export class CompanyInfo { + @PrimaryGeneratedColumn() + id: number; + + @Column() + encryptCompanyId: string; + + @Column() + name: string; + + @Column() + brandName: string; + + @Column() + scaleLow?: string; + + @Column() + scaleHeight?: string; + + @Column() + stageName?: string; + + @Column() + industryName?: string; +} diff --git a/packages/sqlite-plugin/src/entity/CompanyInfoChangeLog.ts b/packages/sqlite-plugin/src/entity/CompanyInfoChangeLog.ts new file mode 100644 index 0000000..8684573 --- /dev/null +++ b/packages/sqlite-plugin/src/entity/CompanyInfoChangeLog.ts @@ -0,0 +1,16 @@ +import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"; + +@Entity() +export class CompanyInfoChangeLog { + @PrimaryGeneratedColumn() + id: number; + + @Column() + encryptedCompanyId: string; + + @Column() + updateTime: Date; + + @Column() + dataAsJson: string; +} diff --git a/packages/sqlite-plugin/src/entity/JobInfo.ts b/packages/sqlite-plugin/src/entity/JobInfo.ts new file mode 100644 index 0000000..5f8b107 --- /dev/null +++ b/packages/sqlite-plugin/src/entity/JobInfo.ts @@ -0,0 +1,49 @@ +import { Entity, PrimaryGeneratedColumn, Column, Unique } from "typeorm"; + +@Entity() +export class JobInfo { + @PrimaryGeneratedColumn() + id: number; + + @Column() + encryptedJobId: string; + + @Column() + jobName: string; + + @Column() + positionName: string; + + @Column() + salaryLow?: number; + + @Column() + salaryHeight?: number; + + @Column() + salaryMonth?: number; + + @Column() + experienceYearLow?: number; + + @Column() + experienceYearHigh?: number; + + @Column() + publishDate: Date; + + @Column() + degreeName?: string; + + @Column() + address: string; + + @Column() + description: string; + + @Column() + encryptedBossId: string; + + @Column() + encryptedCompanyId: string; +} diff --git a/packages/sqlite-plugin/src/entity/JobInfoChangeLog.ts b/packages/sqlite-plugin/src/entity/JobInfoChangeLog.ts new file mode 100644 index 0000000..b8e3362 --- /dev/null +++ b/packages/sqlite-plugin/src/entity/JobInfoChangeLog.ts @@ -0,0 +1,16 @@ +import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"; + +@Entity() +export class JobInfoChangeLog { + @PrimaryGeneratedColumn() + id: number; + + @Column() + encryptedJobId: string; + + @Column() + updateTime: Date; + + @Column() + dataAsJson: string; +} diff --git a/packages/sqlite-plugin/src/index.ts b/packages/sqlite-plugin/src/index.ts new file mode 100644 index 0000000..4af7d3b --- /dev/null +++ b/packages/sqlite-plugin/src/index.ts @@ -0,0 +1,35 @@ +import "reflect-metadata"; +import { DataSource } from "typeorm"; + +import { BossInfo } from "./entity/BossInfo"; +import { BossInfoChangeLog } from "./entity/BossInfoChangeLog"; +import { ChatStartupLog } from "./entity/ChatStartupLog"; +import { CompanyInfoChangeLog } from "./entity/CompanyInfoChangeLog"; +import { CompanyInfo } from "./entity/CompanyInfo"; +import { JobInfo } from "./entity/JobInfo"; +import { JobInfoChangeLog } from "./entity/JobInfoChangeLog"; + +async function initDb() { + const appDataSource = new DataSource({ + type: "sqlite", + synchronize: true, + logging: true, + logger: "simple-console", + database: "database.sqlite", + entities: [ + ChatStartupLog, + BossInfo, + BossInfoChangeLog, + CompanyInfo, + CompanyInfoChangeLog, + JobInfo, + JobInfoChangeLog, + ], + }); + return appDataSource.initialize(); +} + +(async () => { + const a = await initDb(); + console.log(a); +})(); diff --git a/packages/sqlite-plugin/tsconfig.json b/packages/sqlite-plugin/tsconfig.json new file mode 100644 index 0000000..3cefb6b --- /dev/null +++ b/packages/sqlite-plugin/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "lib": ["es5", "es2015.promise", "dom", "es2015"], + "target": "es5", + "module": "commonjs", + "moduleResolution": "node", + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "sourceMap": true, + }, + "exclude": ["node_modules"], +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 32da681..fab4f7d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,5 +1,9 @@ lockfileVersion: '6.0' +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + importers: .: @@ -58,6 +62,25 @@ importers: specifier: workspace:* version: link:../utils + packages/sqlite-plugin: + dependencies: + reflect-metadata: + specifier: ^0.2.1 + version: 0.2.1 + sqlite3: + specifier: ^5.1.7 + version: 5.1.7 + typeorm: + specifier: ^0.3.20 + version: 0.3.20(sqlite3@5.1.7)(ts-node@10.9.2) + devDependencies: + ts-node: + specifier: ^10.9.2 + version: 10.9.2(@types/node@18.19.15)(typescript@5.3.3) + typescript: + specifier: ^5.3.3 + version: 5.3.3 + packages/ui: dependencies: '@electron-toolkit/preload': @@ -528,6 +551,12 @@ packages: '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 + /@cspotcode/source-map-support@0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + /@ctrl/tinycolor@3.6.1: resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} engines: {node: '>=10'} @@ -926,6 +955,11 @@ packages: resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} dev: false + /@gar/promisify@1.1.3: + resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} + dev: false + optional: true + /@humanwhocodes/config-array@0.11.14: resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} @@ -974,7 +1008,6 @@ packages: strip-ansi-cjs: /strip-ansi@6.0.1 wrap-ansi: 8.1.0 wrap-ansi-cjs: /wrap-ansi@7.0.0 - dev: true /@jridgewell/gen-mapping@0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} @@ -988,7 +1021,6 @@ packages: /@jridgewell/resolve-uri@3.1.1: resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} - dev: true /@jridgewell/set-array@1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} @@ -1005,6 +1037,12 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true + /@jridgewell/trace-mapping@0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + /@malept/cross-spawn-promise@1.1.1: resolution: {integrity: sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==} engines: {node: '>= 10'} @@ -1045,11 +1083,28 @@ packages: fastq: 1.17.1 dev: true + /@npmcli/fs@1.1.1: + resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} + dependencies: + '@gar/promisify': 1.1.3 + semver: 7.6.0 + dev: false + optional: true + + /@npmcli/move-file@1.1.2: + resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} + engines: {node: '>=10'} + deprecated: This functionality has been moved to @npmcli/fs + dependencies: + mkdirp: 1.0.4 + rimraf: 3.0.2 + dev: false + optional: true + /@pkgjs/parseargs@0.11.0: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} requiresBuild: true - dev: true optional: true /@pkgr/core@0.1.1: @@ -1246,6 +1301,10 @@ packages: resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} + /@sqltools/formatter@1.2.5: + resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==} + dev: false + /@sxzz/popperjs-es@2.11.7: resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==} dev: false @@ -1256,6 +1315,12 @@ packages: dependencies: defer-to-connect: 2.0.1 + /@tootallnate/once@1.1.2: + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} + engines: {node: '>= 6'} + dev: false + optional: true + /@tootallnate/once@2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} @@ -1265,6 +1330,18 @@ packages: resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} dev: false + /@tsconfig/node10@1.0.9: + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + + /@tsconfig/node12@1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + /@tsconfig/node14@1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + /@tsconfig/node16@1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + /@types/cacheable-request@6.0.3: resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} dependencies: @@ -1921,6 +1998,11 @@ packages: through: 2.3.8 dev: false + /abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + dev: false + optional: true + /acorn-jsx@5.3.2(acorn@8.11.3): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -1929,11 +2011,14 @@ packages: acorn: 8.11.3 dev: true + /acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + /acorn@8.11.3: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} hasBin: true - dev: true /agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} @@ -1952,6 +2037,23 @@ packages: - supports-color dev: false + /agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + engines: {node: '>= 8.0.0'} + dependencies: + humanize-ms: 1.2.1 + dev: false + optional: true + + /aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: false + optional: true + /ajv-keywords@3.5.2(ajv@6.12.6): resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} peerDependencies: @@ -1976,7 +2078,6 @@ packages: /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} - dev: true /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} @@ -1993,7 +2094,10 @@ packages: /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} - dev: true + + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: false /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} @@ -2043,6 +2147,28 @@ packages: - supports-color dev: true + /app-root-path@3.1.0: + resolution: {integrity: sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==} + engines: {node: '>= 6.0.0'} + dev: false + + /aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + dev: false + optional: true + + /are-we-there-yet@3.0.1: + resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + dev: false + optional: true + + /arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -2120,6 +2246,12 @@ packages: engines: {node: '>=8'} dev: true + /bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + dependencies: + file-uri-to-path: 1.0.0 + dev: false + /bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: @@ -2156,7 +2288,6 @@ packages: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 - dev: true /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} @@ -2194,6 +2325,13 @@ packages: base64-js: 1.5.1 ieee754: 1.2.1 + /buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: false + /builder-util-runtime@9.2.3: resolution: {integrity: sha512-FGhkqXdFFZ5dNC4C+yuQB9ak311rpGAw+/ASz8ZdxwODCv1GGMWgLDeofRkdi0F3VCHQEWy/aXcJQozx2nOPiw==} engines: {node: '>=12.0.0'} @@ -2231,6 +2369,33 @@ packages: engines: {node: '>=8'} dev: true + /cacache@15.3.0: + resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} + engines: {node: '>= 10'} + dependencies: + '@npmcli/fs': 1.1.1 + '@npmcli/move-file': 1.1.2 + chownr: 2.0.0 + fs-minipass: 2.1.0 + glob: 7.2.3 + infer-owner: 1.0.4 + lru-cache: 6.0.0 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + mkdirp: 1.0.4 + p-map: 4.0.0 + promise-inflight: 1.0.1 + rimraf: 3.0.2 + ssri: 8.0.1 + tar: 6.2.0 + unique-filename: 1.1.1 + transitivePeerDependencies: + - bluebird + dev: false + optional: true + /cacheable-lookup@5.0.4: resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} engines: {node: '>=10.6.0'} @@ -2269,7 +2434,6 @@ packages: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - dev: true /chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} @@ -2293,7 +2457,6 @@ packages: /chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} - dev: true /chromium-bidi@0.4.7(devtools-protocol@0.0.1120988): resolution: {integrity: sha512-6+mJuFXwTMU6I3vYLs6IL8A1DyQTPjCfIL971X0aMPVGRbGnNfl6i6Cl0NMbxi2bRYLGESt9T2ZIMRM5PAEcIQ==} @@ -2313,6 +2476,25 @@ packages: engines: {node: '>=8'} dev: true + /clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + dev: false + optional: true + + /cli-highlight@2.1.11: + resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} + engines: {node: '>=8.0.0', npm: '>=5.0.0'} + hasBin: true + dependencies: + chalk: 4.1.2 + highlight.js: 10.7.3 + mz: 2.7.0 + parse5: 5.1.1 + parse5-htmlparser2-tree-adapter: 6.0.1 + yargs: 16.2.0 + dev: false + /cli-truncate@2.1.0: resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} engines: {node: '>=8'} @@ -2323,6 +2505,14 @@ packages: dev: true optional: true + /cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: false + /cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -2364,6 +2554,12 @@ packages: /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + /color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + dev: false + optional: true + /colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: true @@ -2404,6 +2600,11 @@ packages: engines: {node: ^14.18.0 || >=16.10.0} dev: true + /console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + dev: false + optional: true + /convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true @@ -2432,6 +2633,9 @@ packages: dev: true optional: true + /create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + /cross-env@7.0.3: resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} @@ -2455,7 +2659,6 @@ packages: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - dev: true /css-tree@2.3.1: resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} @@ -2509,6 +2712,11 @@ packages: dependencies: mimic-response: 3.1.0 + /deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + dev: false + /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true @@ -2559,10 +2767,20 @@ packages: engines: {node: '>=0.4.0'} dev: true + /delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + dev: false + optional: true + /destr@2.0.3: resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} dev: true + /detect-libc@2.0.2: + resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} + engines: {node: '>=8'} + dev: false + /detect-node@2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} optional: true @@ -2571,6 +2789,10 @@ packages: resolution: {integrity: sha512-39fCpE3Z78IaIPChJsP6Lhmkbf4dWXOmzLk/KFTdRkNk/0JymRIfUynDVRndV9HoDz8PyalK1UH21ST/ivwW5Q==} dev: false + /diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + /dir-compare@3.3.0: resolution: {integrity: sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==} dependencies: @@ -2629,6 +2851,11 @@ packages: resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} dev: true + /dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + dev: false + /dotenv@9.0.2: resolution: {integrity: sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==} engines: {node: '>=10'} @@ -2640,7 +2867,6 @@ packages: /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: true /ejs@3.1.9: resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} @@ -2767,7 +2993,14 @@ packages: /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true + + /encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + requiresBuild: true + dependencies: + iconv-lite: 0.6.3 + dev: false + optional: true /end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -2784,7 +3017,6 @@ packages: /err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - dev: true /error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -3034,6 +3266,11 @@ packages: strip-final-newline: 2.0.0 dev: true + /expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + dev: false + /extract-zip@2.0.1: resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} engines: {node: '>= 10.17.0'} @@ -3111,6 +3348,10 @@ packages: flat-cache: 3.2.0 dev: true + /file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + dev: false + /filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} dependencies: @@ -3177,7 +3418,6 @@ packages: dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 - dev: true /form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} @@ -3230,7 +3470,6 @@ packages: engines: {node: '>= 8'} dependencies: minipass: 3.3.6 - dev: true /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -3246,6 +3485,21 @@ packages: /function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + /gauge@4.0.4: + resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + dev: false + optional: true + /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -3289,6 +3543,10 @@ packages: - supports-color dev: false + /github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + dev: false + /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -3313,7 +3571,6 @@ packages: minimatch: 9.0.3 minipass: 7.0.4 path-scurry: 1.10.1 - dev: true /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} @@ -3412,7 +3669,6 @@ packages: /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - dev: true /has-property-descriptors@1.0.1: resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} @@ -3430,6 +3686,11 @@ packages: engines: {node: '>= 0.4'} optional: true + /has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + dev: false + optional: true + /hasown@2.0.1: resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} engines: {node: '>= 0.4'} @@ -3441,6 +3702,10 @@ packages: hasBin: true dev: true + /highlight.js@10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + dev: false + /hosted-git-info@4.1.0: resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} engines: {node: '>=10'} @@ -3451,6 +3716,18 @@ packages: /http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + /http-proxy-agent@4.0.1: + resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 1.1.2 + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + /http-proxy-agent@5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} @@ -3503,6 +3780,13 @@ packages: engines: {node: '>=10.17.0'} dev: true + /humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + dependencies: + ms: 2.1.2 + dev: false + optional: true + /iconv-corefoundation@1.1.7: resolution: {integrity: sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==} engines: {node: ^8.11.2 || >=10} @@ -3519,7 +3803,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 - dev: true /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -3544,7 +3827,17 @@ packages: /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - dev: true + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: false + optional: true + + /infer-owner@1.0.4: + resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + dev: false + optional: true /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} @@ -3555,6 +3848,10 @@ packages: /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: false + /ip@1.1.8: resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} dev: false @@ -3612,6 +3909,11 @@ packages: is-extglob: 2.1.1 dev: true + /is-lambda@1.0.1: + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + dev: false + optional: true + /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -3646,7 +3948,6 @@ packages: /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: true /isobject@3.0.1: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} @@ -3660,7 +3961,6 @@ packages: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 - dev: true /jake@10.8.7: resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} @@ -3844,7 +4144,6 @@ packages: /lru-cache@10.2.0: resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} engines: {node: 14 || >=16.14} - dev: true /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -3869,6 +4168,35 @@ packages: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 + /make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + /make-fetch-happen@9.1.0: + resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} + engines: {node: '>= 10'} + dependencies: + agentkeepalive: 4.5.0 + cacache: 15.3.0 + http-cache-semantics: 4.1.1 + http-proxy-agent: 4.0.1 + https-proxy-agent: 5.0.1 + is-lambda: 1.0.1 + lru-cache: 6.0.0 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-fetch: 1.4.1 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 0.6.3 + promise-retry: 2.0.1 + socks-proxy-agent: 6.2.1 + ssri: 8.0.1 + transitivePeerDependencies: + - bluebird + - supports-color + dev: false + optional: true + /matcher@3.0.0: resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} engines: {node: '>=10'} @@ -3958,28 +4286,67 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 - dev: true /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: true + + /minipass-collect@1.0.2: + resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: false + optional: true + + /minipass-fetch@1.4.1: + resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} + engines: {node: '>=8'} + dependencies: + minipass: 3.3.6 + minipass-sized: 1.0.3 + minizlib: 2.1.2 + optionalDependencies: + encoding: 0.1.13 + dev: false + optional: true + + /minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: false + optional: true + + /minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + dependencies: + minipass: 3.3.6 + dev: false + optional: true + + /minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} + dependencies: + minipass: 3.3.6 + dev: false + optional: true /minipass@3.3.6: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} dependencies: yallist: 4.0.0 - dev: true /minipass@5.0.0: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} - dev: true /minipass@7.0.4: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} - dev: true /minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} @@ -3987,7 +4354,6 @@ packages: dependencies: minipass: 3.3.6 yallist: 4.0.0 - dev: true /mitt@3.0.0: resolution: {integrity: sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==} @@ -4009,7 +4375,12 @@ packages: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} hasBin: true - dev: true + + /mkdirp@2.1.6: + resolution: {integrity: sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==} + engines: {node: '>=10'} + hasBin: true + dev: false /mlly@1.5.0: resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==} @@ -4032,26 +4403,56 @@ packages: resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} dev: true + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: false + /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + /napi-build-utils@1.0.2: + resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + dev: false + /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + dev: false + optional: true + /netmask@2.0.2: resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} engines: {node: '>= 0.4.0'} dev: false + /node-abi@3.56.0: + resolution: {integrity: sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q==} + engines: {node: '>=10'} + dependencies: + semver: 7.6.0 + dev: false + /node-addon-api@1.7.2: resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} requiresBuild: true dev: true optional: true + /node-addon-api@7.1.0: + resolution: {integrity: sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==} + engines: {node: ^16 || ^18 || >= 20} + dev: false + /node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} @@ -4082,10 +4483,41 @@ packages: formdata-polyfill: 4.0.10 dev: false + /node-gyp@8.4.1: + resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==} + engines: {node: '>= 10.12.0'} + hasBin: true + requiresBuild: true + dependencies: + env-paths: 2.2.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + make-fetch-happen: 9.1.0 + nopt: 5.0.0 + npmlog: 6.0.2 + rimraf: 3.0.2 + semver: 7.6.0 + tar: 6.2.0 + which: 2.0.2 + transitivePeerDependencies: + - bluebird + - supports-color + dev: false + optional: true + /node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} dev: true + /nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true + dependencies: + abbrev: 1.1.1 + dev: false + optional: true + /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -4110,12 +4542,28 @@ packages: path-key: 3.1.1 dev: true + /npmlog@6.0.2: + resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + are-we-there-yet: 3.0.1 + console-control-strings: 1.1.0 + gauge: 4.0.4 + set-blocking: 2.0.0 + dev: false + optional: true + /nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: boolbase: 1.0.0 dev: true + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: false + /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} @@ -4171,6 +4619,14 @@ packages: p-limit: 3.1.0 dev: true + /p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + dev: false + optional: true + /pac-proxy-agent@7.0.1: resolution: {integrity: sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==} engines: {node: '>= 14'} @@ -4212,6 +4668,20 @@ packages: lines-and-columns: 1.2.4 dev: false + /parse5-htmlparser2-tree-adapter@6.0.1: + resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} + dependencies: + parse5: 6.0.1 + dev: false + + /parse5@5.1.1: + resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} + dev: false + + /parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + dev: false + /path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} dev: true @@ -4228,7 +4698,6 @@ packages: /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - dev: true /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -4240,7 +4709,6 @@ packages: dependencies: lru-cache: 10.2.0 minipass: 7.0.4 - dev: true /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} @@ -4298,6 +4766,25 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 + /prebuild-install@7.1.2: + resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + detect-libc: 2.0.2 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 3.56.0 + pump: 3.0.0 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + dev: false + /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -4320,13 +4807,22 @@ packages: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} + /promise-inflight@1.0.1: + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + dev: false + optional: true + /promise-retry@2.0.1: resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} engines: {node: '>=10'} dependencies: err-code: 2.0.3 retry: 0.12.0 - dev: true /proxy-agent@6.3.1: resolution: {integrity: sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==} @@ -4522,6 +5018,16 @@ packages: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} + /rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + dev: false + /read-config-file@6.3.2: resolution: {integrity: sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==} engines: {node: '>=12.0.0'} @@ -4550,6 +5056,10 @@ packages: picomatch: 2.3.1 dev: true + /reflect-metadata@0.2.1: + resolution: {integrity: sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==} + dev: false + /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -4578,7 +5088,6 @@ packages: /retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} - dev: true /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} @@ -4638,7 +5147,6 @@ packages: /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: true /sanitize-filename@1.6.3: resolution: {integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==} @@ -4685,6 +5193,19 @@ packages: type-fest: 0.13.1 optional: true + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: false + optional: true + + /sha.js@2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + hasBin: true + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: false + /shallow-clone@0.1.2: resolution: {integrity: sha512-J1zdXCky5GmNnuauESROVu31MQSnLoYvlyEn6j2Ztk6Q5EHFIhxkMhYcv6vuDzl2XEzoRr856QwzMgWM/TmZgw==} engines: {node: '>=0.10.0'} @@ -4700,21 +5221,29 @@ packages: engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 - dev: true /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - dev: true /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: true /signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - dev: true + + /simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + dev: false + + /simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + dev: false /simple-update-notifier@2.0.0: resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} @@ -4752,6 +5281,18 @@ packages: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + /socks-proxy-agent@6.2.1: + resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} + engines: {node: '>= 10'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + socks: 2.7.1 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + /socks-proxy-agent@8.0.2: resolution: {integrity: sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==} engines: {node: '>= 14'} @@ -4791,6 +5332,32 @@ packages: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} optional: true + /sqlite3@5.1.7: + resolution: {integrity: sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==} + requiresBuild: true + peerDependenciesMeta: + node-gyp: + optional: true + dependencies: + bindings: 1.5.0 + node-addon-api: 7.1.0 + prebuild-install: 7.1.2 + tar: 6.2.0 + optionalDependencies: + node-gyp: 8.4.1 + transitivePeerDependencies: + - bluebird + - supports-color + dev: false + + /ssri@8.0.1: + resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: false + optional: true + /stat-mode@1.0.0: resolution: {integrity: sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==} engines: {node: '>= 6'} @@ -4818,7 +5385,6 @@ packages: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 - dev: true /string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -4837,13 +5403,17 @@ packages: engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 - dev: true /strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} dev: true + /strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + dev: false + /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -4874,7 +5444,6 @@ packages: engines: {node: '>=8'} dependencies: has-flag: 4.0.0 - dev: true /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} @@ -4940,7 +5509,6 @@ packages: minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 - dev: true /temp-file@3.4.0: resolution: {integrity: sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==} @@ -4953,6 +5521,19 @@ packages: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: false + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: false + /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: false @@ -5009,9 +5590,45 @@ packages: typescript: 5.3.3 dev: true + /ts-node@10.9.2(@types/node@18.19.15)(typescript@5.3.3): + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 18.19.15 + acorn: 8.11.3 + acorn-walk: 8.3.2 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.3.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + /tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + dependencies: + safe-buffer: 5.2.1 + dev: false + /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -5029,6 +5646,85 @@ packages: engines: {node: '>=10'} dev: true + /typeorm@0.3.20(sqlite3@5.1.7)(ts-node@10.9.2): + resolution: {integrity: sha512-sJ0T08dV5eoZroaq9uPKBoNcGslHBR4E4y+EBHs//SiGbblGe7IeduP/IH4ddCcj0qp3PHwDwGnuvqEAnKlq/Q==} + engines: {node: '>=16.13.0'} + hasBin: true + peerDependencies: + '@google-cloud/spanner': ^5.18.0 + '@sap/hana-client': ^2.12.25 + better-sqlite3: ^7.1.2 || ^8.0.0 || ^9.0.0 + hdb-pool: ^0.1.6 + ioredis: ^5.0.4 + mongodb: ^5.8.0 + mssql: ^9.1.1 || ^10.0.1 + mysql2: ^2.2.5 || ^3.0.1 + oracledb: ^6.3.0 + pg: ^8.5.1 + pg-native: ^3.0.0 + pg-query-stream: ^4.0.0 + redis: ^3.1.1 || ^4.0.0 + sql.js: ^1.4.0 + sqlite3: ^5.0.3 + ts-node: ^10.7.0 + typeorm-aurora-data-api-driver: ^2.0.0 + peerDependenciesMeta: + '@google-cloud/spanner': + optional: true + '@sap/hana-client': + optional: true + better-sqlite3: + optional: true + hdb-pool: + optional: true + ioredis: + optional: true + mongodb: + optional: true + mssql: + optional: true + mysql2: + optional: true + oracledb: + optional: true + pg: + optional: true + pg-native: + optional: true + pg-query-stream: + optional: true + redis: + optional: true + sql.js: + optional: true + sqlite3: + optional: true + ts-node: + optional: true + typeorm-aurora-data-api-driver: + optional: true + dependencies: + '@sqltools/formatter': 1.2.5 + app-root-path: 3.1.0 + buffer: 6.0.3 + chalk: 4.1.2 + cli-highlight: 2.1.11 + dayjs: 1.11.10 + debug: 4.3.4 + dotenv: 16.4.5 + glob: 10.3.10 + mkdirp: 2.1.6 + reflect-metadata: 0.2.1 + sha.js: 2.4.11 + sqlite3: 5.1.7 + ts-node: 10.9.2(@types/node@18.19.15)(typescript@5.3.3) + tslib: 2.6.2 + uuid: 9.0.1 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + dev: false + /typescript@5.3.3: resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} engines: {node: '>=14.17'} @@ -5077,6 +5773,20 @@ packages: - rollup dev: true + /unique-filename@1.1.1: + resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} + dependencies: + unique-slug: 2.0.2 + dev: false + optional: true + + /unique-slug@2.0.2: + resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} + dependencies: + imurmurhash: 0.1.4 + dev: false + optional: true + /universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} @@ -5210,6 +5920,14 @@ packages: /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + /uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + dev: false + + /v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + /verror@1.10.1: resolution: {integrity: sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==} engines: {node: '>=0.6.0'} @@ -5365,7 +6083,13 @@ packages: hasBin: true dependencies: isexe: 2.0.0 - dev: true + + /wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + dependencies: + string-width: 4.2.3 + dev: false + optional: true /wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} @@ -5382,7 +6106,6 @@ packages: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 - dev: true /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -5422,10 +6145,28 @@ packages: /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: false + /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + /yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.2 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + dev: false + /yargs@17.7.1: resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==} engines: {node: '>=12'} @@ -5457,11 +6198,11 @@ packages: buffer-crc32: 0.2.13 fd-slicer: 1.1.0 + /yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + /yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false From 0446f886c4b1f5f4fd9cd9426c14c64040e9f5ea Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sun, 17 Mar 2024 13:16:48 +0800 Subject: [PATCH 02/47] enhance the build script of sqlite-plugin; --- package.json | 1 + packages/sqlite-plugin/.gitignore | 1 + packages/sqlite-plugin/.npmignore | 1 + packages/sqlite-plugin/package.json | 8 ++++---- packages/sqlite-plugin/tsconfig.json | 2 +- pnpm-lock.yaml | 11 +++++++++++ 6 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 packages/sqlite-plugin/.npmignore diff --git a/package.json b/package.json index ced2889..db01a48 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "puppeteer": "20.1.0", "puppeteer-extra": "3.3.6", "puppeteer-extra-plugin-stealth": "2.11.2", + "rimraf": "^5.0.5", "tapable": "^2.2.1" } } diff --git a/packages/sqlite-plugin/.gitignore b/packages/sqlite-plugin/.gitignore index 0d1e48f..6ee7af7 100644 --- a/packages/sqlite-plugin/.gitignore +++ b/packages/sqlite-plugin/.gitignore @@ -2,3 +2,4 @@ node_modules src/**/*.js src/**/*.js.map database.sqlite +dist diff --git a/packages/sqlite-plugin/.npmignore b/packages/sqlite-plugin/.npmignore new file mode 100644 index 0000000..e831038 --- /dev/null +++ b/packages/sqlite-plugin/.npmignore @@ -0,0 +1 @@ +src \ No newline at end of file diff --git a/packages/sqlite-plugin/package.json b/packages/sqlite-plugin/package.json index 8a7f034..c4be0dc 100644 --- a/packages/sqlite-plugin/package.json +++ b/packages/sqlite-plugin/package.json @@ -5,13 +5,13 @@ "dependencies": { "reflect-metadata": "^0.2.1", "sqlite3": "^5.1.7", - "typeorm": "^0.3.20" - }, - "devDependencies": { + "typeorm": "^0.3.20", "ts-node": "^10.9.2", "typescript": "^5.3.3" }, "scripts": { - "dev": "NODE_OPTIONS=\"-r ts-node/register --no-warnings\" node ./src/index" + "dev": "NODE_OPTIONS=\"-r ts-node/register --no-warnings\" node ./src/index", + "build": "rimraf dist && tsc --outDir dist", + "postinstall": "npm run build" } } diff --git a/packages/sqlite-plugin/tsconfig.json b/packages/sqlite-plugin/tsconfig.json index 3cefb6b..6967397 100644 --- a/packages/sqlite-plugin/tsconfig.json +++ b/packages/sqlite-plugin/tsconfig.json @@ -6,7 +6,7 @@ "moduleResolution": "node", "emitDecoratorMetadata": true, "experimentalDecorators": true, - "sourceMap": true, + "sourceMap": false, }, "exclude": ["node_modules"], } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fab4f7d..44ba3f0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,6 +23,9 @@ importers: puppeteer-extra-plugin-stealth: specifier: 2.11.2 version: 2.11.2(puppeteer-extra@3.3.6) + rimraf: + specifier: ^5.0.5 + version: 5.0.5 tapable: specifier: ^2.2.1 version: 2.2.1 @@ -5100,6 +5103,14 @@ packages: dependencies: glob: 7.2.3 + /rimraf@5.0.5: + resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} + engines: {node: '>=14'} + hasBin: true + dependencies: + glob: 10.3.10 + dev: false + /roarr@2.15.4: resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} engines: {node: '>=8.0'} From b68455d094788f5e729b91b0bb06c18d8e6f52bc Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sun, 17 Mar 2024 14:30:22 +0800 Subject: [PATCH 03/47] add BossActiveStatusRecord, ChatStartupLog, UserInfo entities to distinguish login user and record boss active status. --- .../src/entity/BossActiveStatusRecord.ts | 16 ++++++++++++++++ .../sqlite-plugin/src/entity/ChatStartupLog.ts | 3 +++ packages/sqlite-plugin/src/entity/UserInfo.ts | 13 +++++++++++++ packages/sqlite-plugin/src/index.ts | 4 ++++ 4 files changed, 36 insertions(+) create mode 100644 packages/sqlite-plugin/src/entity/BossActiveStatusRecord.ts create mode 100644 packages/sqlite-plugin/src/entity/UserInfo.ts diff --git a/packages/sqlite-plugin/src/entity/BossActiveStatusRecord.ts b/packages/sqlite-plugin/src/entity/BossActiveStatusRecord.ts new file mode 100644 index 0000000..91894be --- /dev/null +++ b/packages/sqlite-plugin/src/entity/BossActiveStatusRecord.ts @@ -0,0 +1,16 @@ +import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"; + +@Entity() +export class BossActiveStatusRecord { + @PrimaryGeneratedColumn() + id: number; + + @Column() + encryptedBossId: string; + + @Column() + lastActiveStatus: string; + + @Column() + updateDate: Date; +} \ No newline at end of file diff --git a/packages/sqlite-plugin/src/entity/ChatStartupLog.ts b/packages/sqlite-plugin/src/entity/ChatStartupLog.ts index a658ebc..11035e1 100644 --- a/packages/sqlite-plugin/src/entity/ChatStartupLog.ts +++ b/packages/sqlite-plugin/src/entity/ChatStartupLog.ts @@ -8,6 +8,9 @@ export class ChatStartupLog { @Column() encryptedPositionId: string; + @Column() + encryptedCurrentUserId: string; + @Column() date: Date; } diff --git a/packages/sqlite-plugin/src/entity/UserInfo.ts b/packages/sqlite-plugin/src/entity/UserInfo.ts new file mode 100644 index 0000000..5fd7c9d --- /dev/null +++ b/packages/sqlite-plugin/src/entity/UserInfo.ts @@ -0,0 +1,13 @@ +import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"; + +@Entity() +export class UserInfo { + @PrimaryGeneratedColumn() + id: number; + + @Column() + encryptedUserId: string; + + @Column() + name: string; +} diff --git a/packages/sqlite-plugin/src/index.ts b/packages/sqlite-plugin/src/index.ts index 4af7d3b..d0825f6 100644 --- a/packages/sqlite-plugin/src/index.ts +++ b/packages/sqlite-plugin/src/index.ts @@ -8,6 +8,8 @@ import { CompanyInfoChangeLog } from "./entity/CompanyInfoChangeLog"; import { CompanyInfo } from "./entity/CompanyInfo"; import { JobInfo } from "./entity/JobInfo"; import { JobInfoChangeLog } from "./entity/JobInfoChangeLog"; +import { BossActiveStatusRecord } from "./entity/BossActiveStatusRecord"; +import { UserInfo } from "./entity/UserInfo"; async function initDb() { const appDataSource = new DataSource({ @@ -24,6 +26,8 @@ async function initDb() { CompanyInfoChangeLog, JobInfo, JobInfoChangeLog, + BossActiveStatusRecord, + UserInfo ], }); return appDataSource.initialize(); From fdc0dcfc84eddd2f9e9cfe339977781ccbceb391 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sun, 17 Mar 2024 14:33:41 +0800 Subject: [PATCH 04/47] add index for BossInfo, CompanyInfo, JobInfo, UserInfo --- packages/sqlite-plugin/src/entity/BossInfo.ts | 3 ++- packages/sqlite-plugin/src/entity/CompanyInfo.ts | 3 ++- packages/sqlite-plugin/src/entity/JobInfo.ts | 3 ++- packages/sqlite-plugin/src/entity/UserInfo.ts | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/sqlite-plugin/src/entity/BossInfo.ts b/packages/sqlite-plugin/src/entity/BossInfo.ts index c547ccd..fdffe3f 100644 --- a/packages/sqlite-plugin/src/entity/BossInfo.ts +++ b/packages/sqlite-plugin/src/entity/BossInfo.ts @@ -1,10 +1,11 @@ -import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"; +import { Entity, PrimaryGeneratedColumn, Column, Index } from "typeorm"; @Entity() export class BossInfo { @PrimaryGeneratedColumn() id: number; + @Index("e-boss-id-idx", { unique: true }) @Column() encryptedBossId: string; diff --git a/packages/sqlite-plugin/src/entity/CompanyInfo.ts b/packages/sqlite-plugin/src/entity/CompanyInfo.ts index fb7d2c0..9080f8e 100644 --- a/packages/sqlite-plugin/src/entity/CompanyInfo.ts +++ b/packages/sqlite-plugin/src/entity/CompanyInfo.ts @@ -1,10 +1,11 @@ -import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"; +import { Entity, PrimaryGeneratedColumn, Column, Index } from "typeorm"; @Entity() export class CompanyInfo { @PrimaryGeneratedColumn() id: number; + @Index("e-company-id-idx", { unique: true }) @Column() encryptCompanyId: string; diff --git a/packages/sqlite-plugin/src/entity/JobInfo.ts b/packages/sqlite-plugin/src/entity/JobInfo.ts index 5f8b107..d866912 100644 --- a/packages/sqlite-plugin/src/entity/JobInfo.ts +++ b/packages/sqlite-plugin/src/entity/JobInfo.ts @@ -1,10 +1,11 @@ -import { Entity, PrimaryGeneratedColumn, Column, Unique } from "typeorm"; +import { Entity, PrimaryGeneratedColumn, Column, Unique, Index } from "typeorm"; @Entity() export class JobInfo { @PrimaryGeneratedColumn() id: number; + @Index("e-job-id-idx", { unique: true }) @Column() encryptedJobId: string; diff --git a/packages/sqlite-plugin/src/entity/UserInfo.ts b/packages/sqlite-plugin/src/entity/UserInfo.ts index 5fd7c9d..2342a91 100644 --- a/packages/sqlite-plugin/src/entity/UserInfo.ts +++ b/packages/sqlite-plugin/src/entity/UserInfo.ts @@ -1,10 +1,11 @@ -import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"; +import { Entity, PrimaryGeneratedColumn, Column, Index } from "typeorm"; @Entity() export class UserInfo { @PrimaryGeneratedColumn() id: number; + @Index("e-user-id-idx", { unique: true }) @Column() encryptedUserId: string; From 6a6169ec11dd2e52dadea8d537965ce8aa7c6306 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sun, 17 Mar 2024 14:54:30 +0800 Subject: [PATCH 05/47] make some column nullable; add name column for BossInfo --- packages/sqlite-plugin/src/entity/BossInfo.ts | 3 +++ .../sqlite-plugin/src/entity/CompanyInfo.ts | 16 +++++++++---- packages/sqlite-plugin/src/entity/JobInfo.ts | 24 ++++++++++++++----- 3 files changed, 33 insertions(+), 10 deletions(-) diff --git a/packages/sqlite-plugin/src/entity/BossInfo.ts b/packages/sqlite-plugin/src/entity/BossInfo.ts index fdffe3f..8282e19 100644 --- a/packages/sqlite-plugin/src/entity/BossInfo.ts +++ b/packages/sqlite-plugin/src/entity/BossInfo.ts @@ -12,6 +12,9 @@ export class BossInfo { @Column() encryptedCompanyId: string; + @Column() + name: string; + @Column() date: Date; diff --git a/packages/sqlite-plugin/src/entity/CompanyInfo.ts b/packages/sqlite-plugin/src/entity/CompanyInfo.ts index 9080f8e..d3d145c 100644 --- a/packages/sqlite-plugin/src/entity/CompanyInfo.ts +++ b/packages/sqlite-plugin/src/entity/CompanyInfo.ts @@ -15,15 +15,23 @@ export class CompanyInfo { @Column() brandName: string; - @Column() + @Column({ + nullable: true + }) scaleLow?: string; - @Column() + @Column({ + nullable: true + }) scaleHeight?: string; - @Column() + @Column({ + nullable: true + }) stageName?: string; - @Column() + @Column({ + nullable: true + }) industryName?: string; } diff --git a/packages/sqlite-plugin/src/entity/JobInfo.ts b/packages/sqlite-plugin/src/entity/JobInfo.ts index d866912..47823a6 100644 --- a/packages/sqlite-plugin/src/entity/JobInfo.ts +++ b/packages/sqlite-plugin/src/entity/JobInfo.ts @@ -15,25 +15,37 @@ export class JobInfo { @Column() positionName: string; - @Column() + @Column({ + nullable: true + }) salaryLow?: number; - @Column() + @Column({ + nullable: true + }) salaryHeight?: number; - @Column() + @Column({ + nullable: true + }) salaryMonth?: number; - @Column() + @Column({ + nullable: true + }) experienceYearLow?: number; - @Column() + @Column({ + nullable: true + }) experienceYearHigh?: number; @Column() publishDate: Date; - @Column() + @Column({ + nullable: true + }) degreeName?: string; @Column() From 66496910253586566f2bc281a2aba107f6864167 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sun, 17 Mar 2024 15:08:47 +0800 Subject: [PATCH 06/47] kill browser when internal exception is caught in core auto chat flow --- packages/run-core-of-geek-auto-start-chat-with-boss/main.mjs | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/run-core-of-geek-auto-start-chat-with-boss/main.mjs b/packages/run-core-of-geek-auto-start-chat-with-boss/main.mjs index 84521ce..7e4c965 100644 --- a/packages/run-core-of-geek-auto-start-chat-with-boss/main.mjs +++ b/packages/run-core-of-geek-auto-start-chat-with-boss/main.mjs @@ -68,6 +68,7 @@ const main = async () => { break } } + closeBrowserWindow?.() console.error(err) console.log(`[Run core main] An internal is caught, and browser will be restarted in ${rerunInterval}ms.`) await sleep(rerunInterval) From ed822d7cc420b27a40d6debda2fc400f270473cf Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sun, 17 Mar 2024 16:15:31 +0800 Subject: [PATCH 07/47] call sqlite-plugin in run-core --- .../geek-auto-start-chat-with-boss/index.mjs | 3 +-- .../main.mjs | 11 ++++++++- .../package.json | 3 ++- packages/sqlite-plugin/package.json | 1 + packages/sqlite-plugin/src/index.ts | 19 +++++++++++---- pnpm-lock.yaml | 24 +++++++++++++++---- 6 files changed, 49 insertions(+), 12 deletions(-) diff --git a/packages/geek-auto-start-chat-with-boss/index.mjs b/packages/geek-auto-start-chat-with-boss/index.mjs index 7468db6..0401f87 100644 --- a/packages/geek-auto-start-chat-with-boss/index.mjs +++ b/packages/geek-auto-start-chat-with-boss/index.mjs @@ -113,8 +113,6 @@ export async function mainLoop (hooks) { hooks.pageLoaded?.call() let userInfoResponse = await userInfoPromise - hooks.userInfoResponse?.call(userInfoResponse) - if (userInfoResponse.code !== 0) { autoStartChatEventBus.emit('LOGIN_STATUS_INVALID', { userInfoResponse @@ -123,6 +121,7 @@ export async function mainLoop (hooks) { throw new Error("LOGIN_STATUS_INVALID") } else { await storeStorage(page).catch(() => void 0) + await hooks.userInfoResponse?.promise(userInfoResponse) } // check set security question tip modal diff --git a/packages/run-core-of-geek-auto-start-chat-with-boss/main.mjs b/packages/run-core-of-geek-auto-start-chat-with-boss/main.mjs index 7e4c965..70b8314 100644 --- a/packages/run-core-of-geek-auto-start-chat-with-boss/main.mjs +++ b/packages/run-core-of-geek-auto-start-chat-with-boss/main.mjs @@ -14,6 +14,11 @@ import { AUTO_CHAT_ERROR_EXIT_CODE } from './enums.mjs' +import SqlitePluginModule from '@geekgeekrun/sqlite-plugin' +const { + default: SqlitePlugin +} = SqlitePluginModule + const rerunInterval = (() => { let v = Number(process.env.MAIN_BOSSGEEKGO_RERUN_INTERVAL) if (isNaN(v)) { @@ -32,6 +37,7 @@ const { groupRobotAccessToken: dingTalkAccessToken } = readConfigFile('dingtalk. const initPlugins = (hooks) => { new DingtalkPlugin(dingTalkAccessToken).apply(hooks) + new SqlitePlugin().apply(hooks) } const main = async () => { @@ -43,6 +49,7 @@ const main = async () => { puppeteerLaunched: new SyncHook(), pageLoaded: new SyncHook(), cookieWillSet: new SyncHook(['cookies']), + userInfoResponse: new AsyncSeriesHook(['userInfo']), newChatWillStartup: new AsyncSeriesHook(['positionInfoDetail']), newChatStartup: new SyncHook(['positionInfoDetail']), noPositionFoundForCurrentJob: new SyncHook(), @@ -79,5 +86,7 @@ const main = async () => { (async () => { try { await main() - } catch {} + } catch(err) { + console.error(err) + } })() \ No newline at end of file diff --git a/packages/run-core-of-geek-auto-start-chat-with-boss/package.json b/packages/run-core-of-geek-auto-start-chat-with-boss/package.json index cb779df..6e2eff9 100644 --- a/packages/run-core-of-geek-auto-start-chat-with-boss/package.json +++ b/packages/run-core-of-geek-auto-start-chat-with-boss/package.json @@ -14,6 +14,7 @@ "dependencies": { "@geekgeekrun/dingtalk-plugin": "workspace:*", "@geekgeekrun/geek-auto-start-chat-with-boss": "workspace:*", - "@geekgeekrun/utils": "workspace:*" + "@geekgeekrun/utils": "workspace:*", + "@geekgeekrun/sqlite-plugin": "workspace:*" } } diff --git a/packages/sqlite-plugin/package.json b/packages/sqlite-plugin/package.json index c4be0dc..40518f0 100644 --- a/packages/sqlite-plugin/package.json +++ b/packages/sqlite-plugin/package.json @@ -2,6 +2,7 @@ "name": "@geekgeekrun/sqlite-plugin", "version": "0.0.1", "description": "", + "main": "dist/index.js", "dependencies": { "reflect-metadata": "^0.2.1", "sqlite3": "^5.1.7", diff --git a/packages/sqlite-plugin/src/index.ts b/packages/sqlite-plugin/src/index.ts index d0825f6..5edd06a 100644 --- a/packages/sqlite-plugin/src/index.ts +++ b/packages/sqlite-plugin/src/index.ts @@ -33,7 +33,18 @@ async function initDb() { return appDataSource.initialize(); } -(async () => { - const a = await initDb(); - console.log(a); -})(); +export default class SqlitePlugin { + initPromise: Promise + + constructor () { + this.initPromise = initDb() + } + apply (hooks) { + hooks.userInfoResponse.tapPromise( + 'SqlitePlugin', + (userInfo) => new Promise((resolve, reject) => { + console.log(userInfo) + }) + ) + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 44ba3f0..ffb9158 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -61,6 +61,9 @@ importers: '@geekgeekrun/geek-auto-start-chat-with-boss': specifier: workspace:* version: link:../geek-auto-start-chat-with-boss + '@geekgeekrun/sqlite-plugin': + specifier: workspace:* + version: link:../sqlite-plugin '@geekgeekrun/utils': specifier: workspace:* version: link:../utils @@ -73,13 +76,12 @@ importers: sqlite3: specifier: ^5.1.7 version: 5.1.7 - typeorm: - specifier: ^0.3.20 - version: 0.3.20(sqlite3@5.1.7)(ts-node@10.9.2) - devDependencies: ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@18.19.15)(typescript@5.3.3) + typeorm: + specifier: ^0.3.20 + version: 0.3.20(sqlite3@5.1.7)(ts-node@10.9.2) typescript: specifier: ^5.3.3 version: 5.3.3 @@ -559,6 +561,7 @@ packages: engines: {node: '>=12'} dependencies: '@jridgewell/trace-mapping': 0.3.9 + dev: false /@ctrl/tinycolor@3.6.1: resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} @@ -1045,6 +1048,7 @@ packages: dependencies: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 + dev: false /@malept/cross-spawn-promise@1.1.1: resolution: {integrity: sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==} @@ -1335,15 +1339,19 @@ packages: /@tsconfig/node10@1.0.9: resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + dev: false /@tsconfig/node12@1.0.11: resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + dev: false /@tsconfig/node14@1.0.3: resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + dev: false /@tsconfig/node16@1.0.4: resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + dev: false /@types/cacheable-request@6.0.3: resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} @@ -2017,6 +2025,7 @@ packages: /acorn-walk@8.3.2: resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} + dev: false /acorn@8.11.3: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} @@ -2171,6 +2180,7 @@ packages: /arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: false /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -2638,6 +2648,7 @@ packages: /create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: false /cross-env@7.0.3: resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} @@ -2795,6 +2806,7 @@ packages: /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} + dev: false /dir-compare@3.3.0: resolution: {integrity: sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==} @@ -4173,6 +4185,7 @@ packages: /make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: false /make-fetch-happen@9.1.0: resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} @@ -5630,6 +5643,7 @@ packages: typescript: 5.3.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + dev: false /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} @@ -5938,6 +5952,7 @@ packages: /v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + dev: false /verror@1.10.1: resolution: {integrity: sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==} @@ -6212,6 +6227,7 @@ packages: /yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} + dev: false /yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} From 65a5f0f96f012ddbda2b38284395ccc2a9a80d11 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sun, 17 Mar 2024 16:49:53 +0800 Subject: [PATCH 08/47] adjust primaryColumn of some column --- packages/sqlite-plugin/src/entity/BossInfo.ts | 8 ++------ packages/sqlite-plugin/src/entity/CompanyInfo.ts | 10 +++------- packages/sqlite-plugin/src/entity/JobInfo.ts | 8 ++------ packages/sqlite-plugin/src/entity/UserInfo.ts | 8 ++------ 4 files changed, 9 insertions(+), 25 deletions(-) diff --git a/packages/sqlite-plugin/src/entity/BossInfo.ts b/packages/sqlite-plugin/src/entity/BossInfo.ts index 8282e19..5e71cff 100644 --- a/packages/sqlite-plugin/src/entity/BossInfo.ts +++ b/packages/sqlite-plugin/src/entity/BossInfo.ts @@ -1,12 +1,8 @@ -import { Entity, PrimaryGeneratedColumn, Column, Index } from "typeorm"; +import { Entity, PrimaryGeneratedColumn, Column, Index, PrimaryColumn } from "typeorm"; @Entity() export class BossInfo { - @PrimaryGeneratedColumn() - id: number; - - @Index("e-boss-id-idx", { unique: true }) - @Column() + @PrimaryColumn() encryptedBossId: string; @Column() diff --git a/packages/sqlite-plugin/src/entity/CompanyInfo.ts b/packages/sqlite-plugin/src/entity/CompanyInfo.ts index d3d145c..40c0fb4 100644 --- a/packages/sqlite-plugin/src/entity/CompanyInfo.ts +++ b/packages/sqlite-plugin/src/entity/CompanyInfo.ts @@ -1,13 +1,9 @@ -import { Entity, PrimaryGeneratedColumn, Column, Index } from "typeorm"; +import { Entity, PrimaryGeneratedColumn, Column, Index, PrimaryColumn } from "typeorm"; @Entity() export class CompanyInfo { - @PrimaryGeneratedColumn() - id: number; - - @Index("e-company-id-idx", { unique: true }) - @Column() - encryptCompanyId: string; + @PrimaryColumn() + encryptedCompanyId: string; @Column() name: string; diff --git a/packages/sqlite-plugin/src/entity/JobInfo.ts b/packages/sqlite-plugin/src/entity/JobInfo.ts index 47823a6..e7086e1 100644 --- a/packages/sqlite-plugin/src/entity/JobInfo.ts +++ b/packages/sqlite-plugin/src/entity/JobInfo.ts @@ -1,12 +1,8 @@ -import { Entity, PrimaryGeneratedColumn, Column, Unique, Index } from "typeorm"; +import { Entity, PrimaryGeneratedColumn, Column, Unique, Index, PrimaryColumn } from "typeorm"; @Entity() export class JobInfo { - @PrimaryGeneratedColumn() - id: number; - - @Index("e-job-id-idx", { unique: true }) - @Column() + @PrimaryColumn() encryptedJobId: string; @Column() diff --git a/packages/sqlite-plugin/src/entity/UserInfo.ts b/packages/sqlite-plugin/src/entity/UserInfo.ts index 2342a91..a6c8bf0 100644 --- a/packages/sqlite-plugin/src/entity/UserInfo.ts +++ b/packages/sqlite-plugin/src/entity/UserInfo.ts @@ -1,12 +1,8 @@ -import { Entity, PrimaryGeneratedColumn, Column, Index } from "typeorm"; +import { Entity, PrimaryGeneratedColumn, Column, Index, PrimaryColumn } from "typeorm"; @Entity() export class UserInfo { - @PrimaryGeneratedColumn() - id: number; - - @Index("e-user-id-idx", { unique: true }) - @Column() + @PrimaryColumn() encryptedUserId: string; @Column() From 981d0981c6515b19a408c96a987a8499d13f4f1f Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sun, 17 Mar 2024 16:52:45 +0800 Subject: [PATCH 09/47] adjust some column - remove -ed in 'encrypted' --- packages/sqlite-plugin/src/entity/BossActiveStatusRecord.ts | 2 +- packages/sqlite-plugin/src/entity/BossInfo.ts | 4 ++-- packages/sqlite-plugin/src/entity/BossInfoChangeLog.ts | 2 +- packages/sqlite-plugin/src/entity/ChatStartupLog.ts | 4 ++-- packages/sqlite-plugin/src/entity/CompanyInfo.ts | 2 +- packages/sqlite-plugin/src/entity/CompanyInfoChangeLog.ts | 2 +- packages/sqlite-plugin/src/entity/JobInfo.ts | 6 +++--- packages/sqlite-plugin/src/entity/JobInfoChangeLog.ts | 2 +- packages/sqlite-plugin/src/entity/UserInfo.ts | 2 +- 9 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/sqlite-plugin/src/entity/BossActiveStatusRecord.ts b/packages/sqlite-plugin/src/entity/BossActiveStatusRecord.ts index 91894be..d7b398e 100644 --- a/packages/sqlite-plugin/src/entity/BossActiveStatusRecord.ts +++ b/packages/sqlite-plugin/src/entity/BossActiveStatusRecord.ts @@ -6,7 +6,7 @@ export class BossActiveStatusRecord { id: number; @Column() - encryptedBossId: string; + encryptBossId: string; @Column() lastActiveStatus: string; diff --git a/packages/sqlite-plugin/src/entity/BossInfo.ts b/packages/sqlite-plugin/src/entity/BossInfo.ts index 5e71cff..7317872 100644 --- a/packages/sqlite-plugin/src/entity/BossInfo.ts +++ b/packages/sqlite-plugin/src/entity/BossInfo.ts @@ -3,10 +3,10 @@ import { Entity, PrimaryGeneratedColumn, Column, Index, PrimaryColumn } from "ty @Entity() export class BossInfo { @PrimaryColumn() - encryptedBossId: string; + encryptBossId: string; @Column() - encryptedCompanyId: string; + encryptCompanyId: string; @Column() name: string; diff --git a/packages/sqlite-plugin/src/entity/BossInfoChangeLog.ts b/packages/sqlite-plugin/src/entity/BossInfoChangeLog.ts index 0255e56..d4fd9f4 100644 --- a/packages/sqlite-plugin/src/entity/BossInfoChangeLog.ts +++ b/packages/sqlite-plugin/src/entity/BossInfoChangeLog.ts @@ -6,7 +6,7 @@ export class BossInfoChangeLog { id: number; @Column() - encryptedBossId: string; + encryptBossId: string; @Column() updateTime: Date; diff --git a/packages/sqlite-plugin/src/entity/ChatStartupLog.ts b/packages/sqlite-plugin/src/entity/ChatStartupLog.ts index 11035e1..4c64209 100644 --- a/packages/sqlite-plugin/src/entity/ChatStartupLog.ts +++ b/packages/sqlite-plugin/src/entity/ChatStartupLog.ts @@ -6,10 +6,10 @@ export class ChatStartupLog { id: number; @Column() - encryptedPositionId: string; + encryptPositionId: string; @Column() - encryptedCurrentUserId: string; + encryptCurrentUserId: string; @Column() date: Date; diff --git a/packages/sqlite-plugin/src/entity/CompanyInfo.ts b/packages/sqlite-plugin/src/entity/CompanyInfo.ts index 40c0fb4..064caef 100644 --- a/packages/sqlite-plugin/src/entity/CompanyInfo.ts +++ b/packages/sqlite-plugin/src/entity/CompanyInfo.ts @@ -3,7 +3,7 @@ import { Entity, PrimaryGeneratedColumn, Column, Index, PrimaryColumn } from "ty @Entity() export class CompanyInfo { @PrimaryColumn() - encryptedCompanyId: string; + encryptCompanyId: string; @Column() name: string; diff --git a/packages/sqlite-plugin/src/entity/CompanyInfoChangeLog.ts b/packages/sqlite-plugin/src/entity/CompanyInfoChangeLog.ts index 8684573..daaa4c6 100644 --- a/packages/sqlite-plugin/src/entity/CompanyInfoChangeLog.ts +++ b/packages/sqlite-plugin/src/entity/CompanyInfoChangeLog.ts @@ -6,7 +6,7 @@ export class CompanyInfoChangeLog { id: number; @Column() - encryptedCompanyId: string; + encryptCompanyId: string; @Column() updateTime: Date; diff --git a/packages/sqlite-plugin/src/entity/JobInfo.ts b/packages/sqlite-plugin/src/entity/JobInfo.ts index e7086e1..2fa5ab6 100644 --- a/packages/sqlite-plugin/src/entity/JobInfo.ts +++ b/packages/sqlite-plugin/src/entity/JobInfo.ts @@ -3,7 +3,7 @@ import { Entity, PrimaryGeneratedColumn, Column, Unique, Index, PrimaryColumn } @Entity() export class JobInfo { @PrimaryColumn() - encryptedJobId: string; + encryptJobId: string; @Column() jobName: string; @@ -51,8 +51,8 @@ export class JobInfo { description: string; @Column() - encryptedBossId: string; + encryptBossId: string; @Column() - encryptedCompanyId: string; + encryptCompanyId: string; } diff --git a/packages/sqlite-plugin/src/entity/JobInfoChangeLog.ts b/packages/sqlite-plugin/src/entity/JobInfoChangeLog.ts index b8e3362..85c1264 100644 --- a/packages/sqlite-plugin/src/entity/JobInfoChangeLog.ts +++ b/packages/sqlite-plugin/src/entity/JobInfoChangeLog.ts @@ -6,7 +6,7 @@ export class JobInfoChangeLog { id: number; @Column() - encryptedJobId: string; + encryptJobId: string; @Column() updateTime: Date; diff --git a/packages/sqlite-plugin/src/entity/UserInfo.ts b/packages/sqlite-plugin/src/entity/UserInfo.ts index a6c8bf0..89c8112 100644 --- a/packages/sqlite-plugin/src/entity/UserInfo.ts +++ b/packages/sqlite-plugin/src/entity/UserInfo.ts @@ -3,7 +3,7 @@ import { Entity, PrimaryGeneratedColumn, Column, Index, PrimaryColumn } from "ty @Entity() export class UserInfo { @PrimaryColumn() - encryptedUserId: string; + encryptUserId: string; @Column() name: string; From 6737fff0a7e387f2948fee9ed180e29cd21e8b0d Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sun, 17 Mar 2024 17:19:55 +0800 Subject: [PATCH 10/47] adjust sequence of hooks.userInfoResponse?.promise(userInfoResponse) - regardless whether it's error or not --- packages/geek-auto-start-chat-with-boss/index.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/geek-auto-start-chat-with-boss/index.mjs b/packages/geek-auto-start-chat-with-boss/index.mjs index 0401f87..92aeca3 100644 --- a/packages/geek-auto-start-chat-with-boss/index.mjs +++ b/packages/geek-auto-start-chat-with-boss/index.mjs @@ -113,6 +113,7 @@ export async function mainLoop (hooks) { hooks.pageLoaded?.call() let userInfoResponse = await userInfoPromise + await hooks.userInfoResponse?.promise(userInfoResponse) if (userInfoResponse.code !== 0) { autoStartChatEventBus.emit('LOGIN_STATUS_INVALID', { userInfoResponse @@ -121,7 +122,6 @@ export async function mainLoop (hooks) { throw new Error("LOGIN_STATUS_INVALID") } else { await storeStorage(page).catch(() => void 0) - await hooks.userInfoResponse?.promise(userInfoResponse) } // check set security question tip modal From 37917b30ca901b489e623bedacf4cf8e65492211 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sun, 17 Mar 2024 17:20:46 +0800 Subject: [PATCH 11/47] adjust run dev script of sqlite-plugin --- packages/sqlite-plugin/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sqlite-plugin/package.json b/packages/sqlite-plugin/package.json index 40518f0..bd83a8f 100644 --- a/packages/sqlite-plugin/package.json +++ b/packages/sqlite-plugin/package.json @@ -11,7 +11,7 @@ "typescript": "^5.3.3" }, "scripts": { - "dev": "NODE_OPTIONS=\"-r ts-node/register --no-warnings\" node ./src/index", + "dev": "rimraf dist && tsc --outDir dist --watch true", "build": "rimraf dist && tsc --outDir dist", "postinstall": "npm run build" } From 883e443e618900b734ee0745ff16b13d7729a2b1 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sun, 17 Mar 2024 17:23:41 +0800 Subject: [PATCH 12/47] add the logic in userInfoResponse hook to update user info in db --- packages/sqlite-plugin/src/index.ts | 31 +++++++++++++++++++---------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/packages/sqlite-plugin/src/index.ts b/packages/sqlite-plugin/src/index.ts index 5edd06a..b847b95 100644 --- a/packages/sqlite-plugin/src/index.ts +++ b/packages/sqlite-plugin/src/index.ts @@ -27,24 +27,33 @@ async function initDb() { JobInfo, JobInfoChangeLog, BossActiveStatusRecord, - UserInfo + UserInfo, ], }); return appDataSource.initialize(); } export default class SqlitePlugin { - initPromise: Promise + initPromise: Promise; - constructor () { - this.initPromise = initDb() + constructor() { + this.initPromise = initDb(); } - apply (hooks) { - hooks.userInfoResponse.tapPromise( - 'SqlitePlugin', - (userInfo) => new Promise((resolve, reject) => { - console.log(userInfo) - }) - ) + apply(hooks) { + hooks.userInfoResponse.tapPromise("SqlitePlugin", async (userInfoResponse) => { + if (userInfoResponse.code !== 0) { + return + } + const { zpData: userInfo } = userInfoResponse + console.log(userInfo); + const ds = await this.initPromise; + const userInfoRepository = ds.getRepository(UserInfo); + + const user = new UserInfo(); + user.encryptUserId = userInfo.encryptUserId + user.name = userInfo.name + + return await userInfoRepository.save(user) + }); } } From 3c3d8f2bf2eb75d78a91e1c1514832da87c12775 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sun, 17 Mar 2024 21:57:05 +0800 Subject: [PATCH 13/47] enhance run core - add the logic to save the start chat logic to db; modify some entity with wrong type. --- .../geek-auto-start-chat-with-boss/index.mjs | 2 +- .../main.mjs | 2 +- packages/sqlite-plugin/src/entity/BossInfo.ts | 2 +- .../src/entity/ChatStartupLog.ts | 2 +- .../sqlite-plugin/src/entity/CompanyInfo.ts | 4 +- packages/sqlite-plugin/src/entity/JobInfo.ts | 17 +-- packages/sqlite-plugin/src/index.ts | 103 ++++++++++++++++-- packages/sqlite-plugin/src/utils/parser.ts | 67 ++++++++++++ 8 files changed, 171 insertions(+), 28 deletions(-) create mode 100644 packages/sqlite-plugin/src/utils/parser.ts diff --git a/packages/geek-auto-start-chat-with-boss/index.mjs b/packages/geek-auto-start-chat-with-boss/index.mjs index 92aeca3..dfa3a81 100644 --- a/packages/geek-auto-start-chat-with-boss/index.mjs +++ b/packages/geek-auto-start-chat-with-boss/index.mjs @@ -296,7 +296,7 @@ export async function mainLoop (hooks) { throw new Error('STARTUP_CHAT_ERROR_WITH_UNKNOWN_ERROR') } } else { - hooks.newChatStartup?.call(jobData) + await hooks.newChatStartup?.promise(jobData) blockBossNotNewChat.add(jobData.jobInfo.encryptUserId) await storeStorage(page).catch(() => void 0) diff --git a/packages/run-core-of-geek-auto-start-chat-with-boss/main.mjs b/packages/run-core-of-geek-auto-start-chat-with-boss/main.mjs index 70b8314..9e6d247 100644 --- a/packages/run-core-of-geek-auto-start-chat-with-boss/main.mjs +++ b/packages/run-core-of-geek-auto-start-chat-with-boss/main.mjs @@ -51,7 +51,7 @@ const main = async () => { cookieWillSet: new SyncHook(['cookies']), userInfoResponse: new AsyncSeriesHook(['userInfo']), newChatWillStartup: new AsyncSeriesHook(['positionInfoDetail']), - newChatStartup: new SyncHook(['positionInfoDetail']), + newChatStartup: new AsyncSeriesHook(['positionInfoDetail']), noPositionFoundForCurrentJob: new SyncHook(), noPositionFoundAfterTraverseAllJob: new SyncHook(), errorEncounter: new SyncHook(['errorInfo']) diff --git a/packages/sqlite-plugin/src/entity/BossInfo.ts b/packages/sqlite-plugin/src/entity/BossInfo.ts index 7317872..c72ddc0 100644 --- a/packages/sqlite-plugin/src/entity/BossInfo.ts +++ b/packages/sqlite-plugin/src/entity/BossInfo.ts @@ -15,5 +15,5 @@ export class BossInfo { date: Date; @Column() - title: Date; + title: string; } diff --git a/packages/sqlite-plugin/src/entity/ChatStartupLog.ts b/packages/sqlite-plugin/src/entity/ChatStartupLog.ts index 4c64209..37d4595 100644 --- a/packages/sqlite-plugin/src/entity/ChatStartupLog.ts +++ b/packages/sqlite-plugin/src/entity/ChatStartupLog.ts @@ -6,7 +6,7 @@ export class ChatStartupLog { id: number; @Column() - encryptPositionId: string; + encryptJobId: string; @Column() encryptCurrentUserId: string; diff --git a/packages/sqlite-plugin/src/entity/CompanyInfo.ts b/packages/sqlite-plugin/src/entity/CompanyInfo.ts index 064caef..361ed56 100644 --- a/packages/sqlite-plugin/src/entity/CompanyInfo.ts +++ b/packages/sqlite-plugin/src/entity/CompanyInfo.ts @@ -14,12 +14,12 @@ export class CompanyInfo { @Column({ nullable: true }) - scaleLow?: string; + scaleLow?: number; @Column({ nullable: true }) - scaleHeight?: string; + scaleHeight?: number; @Column({ nullable: true diff --git a/packages/sqlite-plugin/src/entity/JobInfo.ts b/packages/sqlite-plugin/src/entity/JobInfo.ts index 2fa5ab6..f664b5c 100644 --- a/packages/sqlite-plugin/src/entity/JobInfo.ts +++ b/packages/sqlite-plugin/src/entity/JobInfo.ts @@ -26,18 +26,13 @@ export class JobInfo { }) salaryMonth?: number; - @Column({ - nullable: true - }) - experienceYearLow?: number; - - @Column({ - nullable: true - }) - experienceYearHigh?: number; - @Column() - publishDate: Date; + experienceName: string; + + @Column({ + nullable: true + }) + publishDate?: Date; @Column({ nullable: true diff --git a/packages/sqlite-plugin/src/index.ts b/packages/sqlite-plugin/src/index.ts index b847b95..5b3843f 100644 --- a/packages/sqlite-plugin/src/index.ts +++ b/packages/sqlite-plugin/src/index.ts @@ -3,13 +3,14 @@ import { DataSource } from "typeorm"; import { BossInfo } from "./entity/BossInfo"; import { BossInfoChangeLog } from "./entity/BossInfoChangeLog"; -import { ChatStartupLog } from "./entity/ChatStartupLog"; +import { ChatStartupLog } from './entity/ChatStartupLog'; import { CompanyInfoChangeLog } from "./entity/CompanyInfoChangeLog"; import { CompanyInfo } from "./entity/CompanyInfo"; import { JobInfo } from "./entity/JobInfo"; import { JobInfoChangeLog } from "./entity/JobInfoChangeLog"; import { BossActiveStatusRecord } from "./entity/BossActiveStatusRecord"; import { UserInfo } from "./entity/UserInfo"; +import { parseCompanyScale, parseSalary } from "./utils/parser"; async function initDb() { const appDataSource = new DataSource({ @@ -39,21 +40,101 @@ export default class SqlitePlugin { constructor() { this.initPromise = initDb(); } + + userInfo = null + apply(hooks) { - hooks.userInfoResponse.tapPromise("SqlitePlugin", async (userInfoResponse) => { - if (userInfoResponse.code !== 0) { - return + hooks.userInfoResponse.tapPromise( + "SqlitePlugin", + async (userInfoResponse) => { + if (userInfoResponse.code !== 0) { + return; + } + const { zpData: userInfo } = userInfoResponse; + this.userInfo = userInfo + console.log(userInfo); + + const ds = await this.initPromise; + const userInfoRepository = ds.getRepository(UserInfo); + + const user = new UserInfo(); + user.encryptUserId = userInfo.encryptUserId; + user.name = userInfo.name; + + return await userInfoRepository.save(user); } - const { zpData: userInfo } = userInfoResponse - console.log(userInfo); + ); + + hooks.newChatStartup.tapPromise("SqlitePlugin", async (_jobInfo) => { + console.log(_jobInfo); + debugger; const ds = await this.initPromise; - const userInfoRepository = ds.getRepository(UserInfo); - const user = new UserInfo(); - user.encryptUserId = userInfo.encryptUserId - user.name = userInfo.name + const { bossInfo, brandComInfo, jobInfo } = _jobInfo; - return await userInfoRepository.save(user) + //#region boss + const boss = new BossInfo(); + boss.encryptBossId = jobInfo.encryptUserId; + boss.encryptCompanyId = brandComInfo.encryptBrandId; + boss.name = bossInfo.name; + boss.title = bossInfo.title; + boss.date = new Date(); + const bossInfoRepository = ds.getRepository(BossInfo); + await bossInfoRepository.save(boss); + //#endregion + + //#region company + const company = new CompanyInfo(); + company.encryptCompanyId = brandComInfo.encryptBrandId; + company.brandName = brandComInfo.brandName; + company.name = brandComInfo.customerBrandName; + company.industryName = brandComInfo.industryName; + company.stageName = brandComInfo.stageName; + const companyScale = parseCompanyScale(brandComInfo.scaleName) + company.scaleLow = companyScale[0] + company.scaleHeight = companyScale[1] + + const companyInfoRepository = ds.getRepository(CompanyInfo); + await companyInfoRepository.save(company); + //#endregion + + //#region job + const job = new JobInfo(); + const jobSalary = parseSalary(jobInfo.salaryDesc) + const jobUpdatePayload: JobInfo = { + address: jobInfo.address, + degreeName: jobInfo.degreeName, + description: jobInfo.postDescription, + encryptBossId: jobInfo.encryptUserId, + encryptCompanyId: brandComInfo.encryptBrandId, + encryptJobId: jobInfo.encryptId, + jobName: jobInfo.jobName, + positionName: jobInfo.positionName, + experienceName: jobInfo.experienceName, + salaryHeight: jobSalary.heigh, + salaryLow: jobSalary.low, + salaryMonth: jobSalary.month, + }; + + Object.assign(job, jobUpdatePayload); + + const jobInfoRepository = ds.getRepository(JobInfo); + await jobInfoRepository.save(job); + //#endregion + + //#region chat-startup-log + const chatStartupLog = new ChatStartupLog() + const chatStartupLogPayload: Partial = { + date: new Date(), + encryptCurrentUserId: this.userInfo.encryptUserId, + encryptJobId: jobInfo.encryptId, + } + Object.assign(chatStartupLog, chatStartupLogPayload) + + const chatStartupLogRepository = ds.getRepository(ChatStartupLog); + await chatStartupLogRepository.save(chatStartupLog); + //#endregion + return }); } } diff --git a/packages/sqlite-plugin/src/utils/parser.ts b/packages/sqlite-plugin/src/utils/parser.ts new file mode 100644 index 0000000..16544bb --- /dev/null +++ b/packages/sqlite-plugin/src/utils/parser.ts @@ -0,0 +1,67 @@ +export const parseCompanyScale = (str: string): [number| null, number | null] => { + if (!str) { + return [null, null] + } + + const betweenRangeMatchResult = str.match( + /(\d+)-(\d+)人/ + ); + if (betweenRangeMatchResult) { + const arr = [...betweenRangeMatchResult]; + arr.shift(); + return arr.map(Number) as [number, number] + } + + const gtRangeMatchResult = str.match( + /(\d+)人以上/ + ); + if (gtRangeMatchResult) { + const arr = [...gtRangeMatchResult]; + arr.shift(); + return [Number(arr[0]), null] + } + + return [null, null] +} + +export const parseSalary = (str: string): { low: null | number, heigh: null | number, month: null | number } => { + const result = { + heigh: null, + low: null, + month: null + } + if (!str) { + return result + } + + const baseMatchResult = str.match( + /([\.\d]+)-([\.\d]+)k/i + ); + if (baseMatchResult) { + const arr = [...baseMatchResult]; + arr.shift(); + Object.assign( + result, + { + low: Number(arr[0]), + heigh: Number(arr[1]), + } + ) + } + + const month = str.match( + /([\.\d]+)薪/ + ) + if (month) { + const arr = [...month]; + arr.shift(); + Object.assign( + result, + { + month: Number(arr[0]) + } + ) + } + + return result +} From 2377507e43c40f12332436b2dd0b6e812140dddb Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sun, 17 Mar 2024 21:58:02 +0800 Subject: [PATCH 14/47] ignore any db file --- .gitignore | 1 + packages/sqlite-plugin/.gitignore | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 3c3629e..0714c6d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ node_modules +database.sqlite diff --git a/packages/sqlite-plugin/.gitignore b/packages/sqlite-plugin/.gitignore index 6ee7af7..6b0e0cf 100644 --- a/packages/sqlite-plugin/.gitignore +++ b/packages/sqlite-plugin/.gitignore @@ -1,5 +1,4 @@ node_modules src/**/*.js src/**/*.js.map -database.sqlite dist From 26cf20addb7730cc00a76f34eb72c9e4c2214f28 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sun, 17 Mar 2024 23:14:31 +0800 Subject: [PATCH 15/47] set a higher target for sqlite-plugin --- packages/sqlite-plugin/tsconfig.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/sqlite-plugin/tsconfig.json b/packages/sqlite-plugin/tsconfig.json index 6967397..a28490c 100644 --- a/packages/sqlite-plugin/tsconfig.json +++ b/packages/sqlite-plugin/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { - "lib": ["es5", "es2015.promise", "dom", "es2015"], - "target": "es5", + "lib": ["ES2020"], + "target": "ES2020", "module": "commonjs", "moduleResolution": "node", "emitDecoratorMetadata": true, From 3967c26ebc0d568a6c2b328f4192b4edcae663e0 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sun, 17 Mar 2024 23:45:04 +0800 Subject: [PATCH 16/47] import db in ui project --- packages/ui/package.json | 1 + .../flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts | 2 -- .../main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts | 7 ++++++- pnpm-lock.yaml | 3 +++ 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/ui/package.json b/packages/ui/package.json index cfa2717..1a1dbd2 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -30,6 +30,7 @@ "@geekgeekrun/dingtalk-plugin": "workspace:*", "@geekgeekrun/geek-auto-start-chat-with-boss": "workspace:*", "@geekgeekrun/launch-bosszhipin-login-page-with-preload-extension": "workspace:*", + "@geekgeekrun/sqlite-plugin": "workspace:*", "@geekgeekrun/utils": "workspace:*", "@puppeteer/browsers": "^2.0.0", "JSONStream": "^1.3.5", diff --git a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts index 055a157..4d4feab 100644 --- a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts +++ b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts @@ -1,5 +1,3 @@ -import path from 'node:path' -import * as url from 'url' import { sleep } from '@geekgeekrun/utils/sleep.mjs' import childProcess from 'node:child_process' import { AUTO_CHAT_ERROR_EXIT_CODE } from '../../../common/enums/auto-start-chat' diff --git a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts index 79f3f6f..1b44e74 100644 --- a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts +++ b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts @@ -8,10 +8,14 @@ import { getAnyAvailablePuppeteerExecutable } from '../CHECK_AND_DOWNLOAD_DEPEND import { sleep } from '@geekgeekrun/utils/sleep.mjs' import { AUTO_CHAT_ERROR_EXIT_CODE } from '../../../common/enums/auto-start-chat' +import SqlitePluginModule from '@geekgeekrun/sqlite-plugin' +const { default: SqlitePlugin } = SqlitePluginModule + const { groupRobotAccessToken: dingTalkAccessToken } = readConfigFile('dingtalk.json') const initPlugins = (hooks) => { new DingtalkPlugin(dingTalkAccessToken).apply(hooks) + new SqlitePlugin().apply(hooks) } let isParentProcessDisconnect = false @@ -62,8 +66,9 @@ export const runAutoChat = async () => { puppeteerLaunched: new SyncHook(), pageLoaded: new SyncHook(), cookieWillSet: new SyncHook(['cookies']), + userInfoResponse: new AsyncSeriesHook(['userInfo']), newChatWillStartup: new AsyncSeriesHook(['positionInfoDetail']), - newChatStartup: new SyncHook(['positionInfoDetail']), + newChatStartup: new AsyncSeriesHook(['positionInfoDetail']), noPositionFoundForCurrentJob: new SyncHook(), noPositionFoundAfterTraverseAllJob: new SyncHook(), errorEncounter: new SyncHook(['errorInfo']) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ffb9158..12278ee 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -103,6 +103,9 @@ importers: '@geekgeekrun/launch-bosszhipin-login-page-with-preload-extension': specifier: workspace:* version: link:../launch-bosszhipin-login-page-with-preload-extension + '@geekgeekrun/sqlite-plugin': + specifier: workspace:* + version: link:../sqlite-plugin '@geekgeekrun/utils': specifier: workspace:* version: link:../utils From a717328eadb9ea0d083fe704e7f700a86ffdb4f1 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Mon, 18 Mar 2024 00:03:13 +0800 Subject: [PATCH 17/47] migrate db file to runtimeFolder --- .../geek-auto-start-chat-with-boss/runtime-file-utils.mjs | 4 ++++ .../run-core-of-geek-auto-start-chat-with-boss/main.mjs | 4 ++-- packages/sqlite-plugin/src/index.ts | 8 ++++---- .../flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts | 8 ++++++-- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/packages/geek-auto-start-chat-with-boss/runtime-file-utils.mjs b/packages/geek-auto-start-chat-with-boss/runtime-file-utils.mjs index 311a767..dcb31e2 100644 --- a/packages/geek-auto-start-chat-with-boss/runtime-file-utils.mjs +++ b/packages/geek-auto-start-chat-with-boss/runtime-file-utils.mjs @@ -141,3 +141,7 @@ export const writeStorageFile = async (fileName, content) => { fileContent ) } + +export const getPublicDbFilePath = () => { + return path.join(storageFilePath, 'public.db') +} \ No newline at end of file diff --git a/packages/run-core-of-geek-auto-start-chat-with-boss/main.mjs b/packages/run-core-of-geek-auto-start-chat-with-boss/main.mjs index 9e6d247..5462d07 100644 --- a/packages/run-core-of-geek-auto-start-chat-with-boss/main.mjs +++ b/packages/run-core-of-geek-auto-start-chat-with-boss/main.mjs @@ -8,7 +8,7 @@ import fs from 'node:fs' import path from 'node:path' import { get__dirname } from '@geekgeekrun/utils/legacy-path.mjs'; import JSON5 from 'json5' -import { readConfigFile, readStorageFile } from '@geekgeekrun/geek-auto-start-chat-with-boss/runtime-file-utils.mjs' +import { readConfigFile, readStorageFile, getPublicDbFilePath } from '@geekgeekrun/geek-auto-start-chat-with-boss/runtime-file-utils.mjs' import { sleep } from '@geekgeekrun/utils/sleep.mjs' import { AUTO_CHAT_ERROR_EXIT_CODE @@ -37,7 +37,7 @@ const { groupRobotAccessToken: dingTalkAccessToken } = readConfigFile('dingtalk. const initPlugins = (hooks) => { new DingtalkPlugin(dingTalkAccessToken).apply(hooks) - new SqlitePlugin().apply(hooks) + new SqlitePlugin(getPublicDbFilePath()).apply(hooks) } const main = async () => { diff --git a/packages/sqlite-plugin/src/index.ts b/packages/sqlite-plugin/src/index.ts index 5b3843f..816bc6f 100644 --- a/packages/sqlite-plugin/src/index.ts +++ b/packages/sqlite-plugin/src/index.ts @@ -12,13 +12,13 @@ import { BossActiveStatusRecord } from "./entity/BossActiveStatusRecord"; import { UserInfo } from "./entity/UserInfo"; import { parseCompanyScale, parseSalary } from "./utils/parser"; -async function initDb() { +async function initDb(dbFilePath) { const appDataSource = new DataSource({ type: "sqlite", synchronize: true, logging: true, logger: "simple-console", - database: "database.sqlite", + database: dbFilePath, entities: [ ChatStartupLog, BossInfo, @@ -37,8 +37,8 @@ async function initDb() { export default class SqlitePlugin { initPromise: Promise; - constructor() { - this.initPromise = initDb(); + constructor(dbFilePath) { + this.initPromise = initDb(dbFilePath); } userInfo = null diff --git a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts index 1b44e74..4f67e78 100644 --- a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts +++ b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts @@ -1,7 +1,11 @@ import DingtalkPlugin from '@geekgeekrun/dingtalk-plugin/index.mjs' import { app } from 'electron' import { SyncHook, AsyncSeriesHook } from 'tapable' -import { readConfigFile } from '@geekgeekrun/geek-auto-start-chat-with-boss/runtime-file-utils.mjs' +import { + readConfigFile, + getPublicDbFilePath +} from '@geekgeekrun/geek-auto-start-chat-with-boss/runtime-file-utils.mjs' + import * as fs from 'fs' import { pipeWriteRegardlessError } from '../utils/pipe' import { getAnyAvailablePuppeteerExecutable } from '../CHECK_AND_DOWNLOAD_DEPENDENCIES/utils/puppeteer-executable' @@ -15,7 +19,7 @@ const { groupRobotAccessToken: dingTalkAccessToken } = readConfigFile('dingtalk. const initPlugins = (hooks) => { new DingtalkPlugin(dingTalkAccessToken).apply(hooks) - new SqlitePlugin().apply(hooks) + new SqlitePlugin(getPublicDbFilePath()).apply(hooks) } let isParentProcessDisconnect = false From a002c5c9123b29901cf57b7b44022be3b3dd8136 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Mon, 18 Mar 2024 00:55:32 +0800 Subject: [PATCH 18/47] add log for dingtalk robot response --- packages/dingtalk-plugin/index.mjs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/dingtalk-plugin/index.mjs b/packages/dingtalk-plugin/index.mjs index c91e836..dda45c2 100644 --- a/packages/dingtalk-plugin/index.mjs +++ b/packages/dingtalk-plugin/index.mjs @@ -17,7 +17,9 @@ export default class DingtalkPlugin { collectedMessageList[0].dingtalkRequestBody.text.content += `\n${dayjs(collectedMessageList[0].insertedTime).format('MM-DD HH:mm:ss')}\n\n【geekgeekrun】` requestDingtalkNotify( _this.dingtalkAccessToken, JSON.stringify(collectedMessageList[0].dingtalkRequestBody) - ) + ).then(res => res.json()).then((res) => { + console.log('[DingtalkPlugin] Response: ', res) + }, () => void 0) } else { requestDingtalkNotify( _this.dingtalkAccessToken, JSON.stringify((createTextMessage( @@ -25,7 +27,9 @@ export default class DingtalkPlugin { return `${it.dingtalkRequestBody.text.content}\n${dayjs(it.insertedTime).format('MM-DD HH:mm:ss')}\n` }).join('-----\n') + '\n【geekgeekrun】' )).dingtalkRequestBody) - ) + ).then(res => res.json()).then((res) => { + console.log('[DingtalkPlugin] Response: ', res) + }, () => void 0) } collectedMessageList.length = 0 sendQueueTimer = setTimeout(sendMergedMessage, interval) From 628387bd0c332bf3ab1e39c8422c0bd05d3365f3 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Mon, 18 Mar 2024 01:22:33 +0800 Subject: [PATCH 19/47] WIP: migrate the logic to handle exception from run-core to ui TODO: test the changes --- .../index.ts | 34 +++++++++++++++---- 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts index 4f67e78..ad2e977 100644 --- a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts +++ b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts @@ -15,6 +15,15 @@ import { AUTO_CHAT_ERROR_EXIT_CODE } from '../../../common/enums/auto-start-chat import SqlitePluginModule from '@geekgeekrun/sqlite-plugin' const { default: SqlitePlugin } = SqlitePluginModule +const rerunInterval = (() => { + let v = Number(process.env.MAIN_BOSSGEEKGO_RERUN_INTERVAL) + if (isNaN(v)) { + v = 3000 + } + + return v +})() + const { groupRobotAccessToken: dingTalkAccessToken } = readConfigFile('dingtalk.json') const initPlugins = (hooks) => { @@ -98,13 +107,26 @@ export const runAutoChat = async () => { try { await mainLoop(hooks) } catch (err) { - console.log(err) - if (err instanceof Error && err.message.includes('LOGIN_STATUS_INVALID')) { - process.exit(AUTO_CHAT_ERROR_EXIT_CODE.LOGIN_STATUS_INVALID) - break + if (err instanceof Error) { + if (err.message.includes('LOGIN_STATUS_INVALID')) { + process.exit(AUTO_CHAT_ERROR_EXIT_CODE.LOGIN_STATUS_INVALID) + break + } + if (err.message.includes('ERR_INTERNET_DISCONNECTED')) { + process.exit(AUTO_CHAT_ERROR_EXIT_CODE.ERR_INTERNET_DISCONNECTED) + break + } + if (err.message.includes('ACCESS_IS_DENIED')) { + process.exit(AUTO_CHAT_ERROR_EXIT_CODE.ACCESS_IS_DENIED) + break + } } - await sleep(3000) + closeBrowserWindow?.() + console.error(err) + console.log( + `[Run core main] An internal is caught, and browser will be restarted in ${rerunInterval}ms.` + ) + await sleep(rerunInterval) } } - closeBrowserWindow() } From d70073d9e1e9011d12db0da2e76f469626018601 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Mon, 18 Mar 2024 09:50:40 +0800 Subject: [PATCH 20/47] adjust ui text --- .../run-core-of-geek-auto-start-chat-with-boss/daemon-main.mjs | 2 +- packages/run-core-of-geek-auto-start-chat-with-boss/main.mjs | 2 +- .../main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts | 2 +- .../src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/run-core-of-geek-auto-start-chat-with-boss/daemon-main.mjs b/packages/run-core-of-geek-auto-start-chat-with-boss/daemon-main.mjs index 1d71b57..d2b2293 100644 --- a/packages/run-core-of-geek-auto-start-chat-with-boss/daemon-main.mjs +++ b/packages/run-core-of-geek-auto-start-chat-with-boss/daemon-main.mjs @@ -41,7 +41,7 @@ function runWithDaemon () { process.exit(exitCode) return } - console.log(`[Run core daemon] Child process exit with code ${exitCode}, an internal may not be caught, and will be restarted in ${rerunInterval}ms.`) + console.log(`[Run core daemon] Child process exit with code ${exitCode}, an internal error may not be caught, and will be restarted in ${rerunInterval}ms.`) await sleep(rerunInterval) runWithDaemon() } diff --git a/packages/run-core-of-geek-auto-start-chat-with-boss/main.mjs b/packages/run-core-of-geek-auto-start-chat-with-boss/main.mjs index 5462d07..5ff4726 100644 --- a/packages/run-core-of-geek-auto-start-chat-with-boss/main.mjs +++ b/packages/run-core-of-geek-auto-start-chat-with-boss/main.mjs @@ -77,7 +77,7 @@ const main = async () => { } closeBrowserWindow?.() console.error(err) - console.log(`[Run core main] An internal is caught, and browser will be restarted in ${rerunInterval}ms.`) + console.log(`[Run core main] An internal error is caught, and browser will be restarted in ${rerunInterval}ms.`) await sleep(rerunInterval) } } diff --git a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts index 4d4feab..0a015b3 100644 --- a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts +++ b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts @@ -33,7 +33,7 @@ function runWithDaemon() { return } console.log( - `[Run core daemon] Child process exit with code ${exitCode}, an internal may not be caught, and will be restarted in ${rerunInterval}ms.` + `[Run core daemon] Child process exit with code ${exitCode}, an internal error may not be caught, and will be restarted in ${rerunInterval}ms.` ) await sleep(rerunInterval) runWithDaemon() diff --git a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts index ad2e977..42cbdbc 100644 --- a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts +++ b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts @@ -124,7 +124,7 @@ export const runAutoChat = async () => { closeBrowserWindow?.() console.error(err) console.log( - `[Run core main] An internal is caught, and browser will be restarted in ${rerunInterval}ms.` + `[Run core main] An internal error is caught, and browser will be restarted in ${rerunInterval}ms.` ) await sleep(rerunInterval) } From 0c556fd790d02780421eac9aba46e54efef583e9 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Tue, 19 Mar 2024 09:57:05 +0800 Subject: [PATCH 21/47] add the promise wait for the next page of recommend job list load --- .../geek-auto-start-chat-with-boss/index.mjs | 49 ++++++++++++++++--- 1 file changed, 41 insertions(+), 8 deletions(-) diff --git a/packages/geek-auto-start-chat-with-boss/index.mjs b/packages/geek-auto-start-chat-with-boss/index.mjs index dfa3a81..5b21460 100644 --- a/packages/geek-auto-start-chat-with-boss/index.mjs +++ b/packages/geek-auto-start-chat-with-boss/index.mjs @@ -192,6 +192,34 @@ export async function mainLoop (hooks) { let hasReachLastPage = false + let requestNextPagePromiseWithResolver = null + page.on( + 'request', + function reqHandler (request) { + if (request.url().startsWith('https://www.zhipin.com/wapi/zpgeek/pc/recommend/job/list.json')) { + requestNextPagePromiseWithResolver = (() => { + const o = {} + o.promise = new Promise((resolve, reject) => { + o.resolve = resolve + o.reject = reject + }) + return o + })() + page.off(reqHandler) + + page.on( + 'response', + function resHandler (response) { + if (response.request() === request) { + requestNextPagePromiseWithResolver?.resolve() + page.off(resHandler) + } + } + ) + } + } + ) + while (targetJobIndex < 0 && !hasReachLastPage) { // fetch new const recommendJobListElBBox = await recommendJobListElProxy.boundingBox() @@ -201,19 +229,24 @@ export async function mainLoop (hooks) { windowInnerHeight / 2 ) let scrolledHeight = 0 - const targetHeight = 3000 const increase = 40 + Math.floor(30 * Math.random()) - while (scrolledHeight < targetHeight) { + + while ( + !requestNextPagePromiseWithResolver && + !hasReachLastPage + ) { scrolledHeight += increase await page.mouse.wheel({deltaY: increase}); await sleep(1) + await requestNextPagePromiseWithResolver?.promise + hasReachLastPage = await page.evaluate(` + !(document.querySelector('.job-recommend-main')?.__vue__?.hasMore) + `) + if (hasReachLastPage) { + console.log(`Arrive the terminal of the job list.`) + } } - hasReachLastPage = await page.evaluate(` - !(document.querySelector('.job-recommend-main')?.__vue__?.hasMore) - `) - if (hasReachLastPage) { - console.log(`Arrive the terminal of the job list.`) - } + requestNextPagePromiseWithResolver = null await sleep(3000) jobListData = await page.evaluate( From 4f7e748a190f986361cb9b32a4ea21d6a623ca2a Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Wed, 20 Mar 2024 01:16:14 +0800 Subject: [PATCH 22/47] adjust event handle when encounter error NEED_TO_CHECK_RUNTIME_DEPENDENCIES in RunningStatus - go to '/' immediately --- .../src/page/GeekAutoStartChatWithBoss/RunningStatus.vue | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/packages/ui/src/renderer/src/page/GeekAutoStartChatWithBoss/RunningStatus.vue b/packages/ui/src/renderer/src/page/GeekAutoStartChatWithBoss/RunningStatus.vue index 039ab8c..43129a6 100644 --- a/packages/ui/src/renderer/src/page/GeekAutoStartChatWithBoss/RunningStatus.vue +++ b/packages/ui/src/renderer/src/page/GeekAutoStartChatWithBoss/RunningStatus.vue @@ -50,11 +50,7 @@ onMounted(async () => { ElMessage.error({ message: `核心组件损坏,正在尝试修复` }) - const checkDependenciesResult = await electron.ipcRenderer.invoke('check-dependencies') - if (Object.values(checkDependenciesResult).includes(false)) { - router.replace('/') - // TODO: should continue interrupted task - } + router.replace('/') } console.error(err) } From af92ef67187a32598b668d9cd7cae4837225629f Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Wed, 20 Mar 2024 09:42:32 +0800 Subject: [PATCH 23/47] add typeorm in external-node-runtime-dependencies --- .../index.cjs | 3 +- .../index.mjs | 1 + .../package-lock.json | 728 +++++++++++++++++- .../package.json | 6 +- 4 files changed, 733 insertions(+), 5 deletions(-) diff --git a/packages/ui/external-node-runtime-dependencies/index.cjs b/packages/ui/external-node-runtime-dependencies/index.cjs index 9a27075..fe15580 100644 --- a/packages/ui/external-node-runtime-dependencies/index.cjs +++ b/packages/ui/external-node-runtime-dependencies/index.cjs @@ -2,5 +2,6 @@ Object.assign(module.exports, { puppeteerExtra: require('puppeteer-extra'), PuppeteerExtraPluginStealth: require('puppeteer-extra-plugin-stealth'), puppeteerManager: require('@puppeteer/browsers'), - findChromeBin: require('find-chrome-bin') + findChromeBin: require('find-chrome-bin'), + typeorm: require('typeorm') }) diff --git a/packages/ui/external-node-runtime-dependencies/index.mjs b/packages/ui/external-node-runtime-dependencies/index.mjs index 844b33d..e1f4ce4 100644 --- a/packages/ui/external-node-runtime-dependencies/index.mjs +++ b/packages/ui/external-node-runtime-dependencies/index.mjs @@ -2,3 +2,4 @@ export * as puppeteerExtra from 'puppeteer-extra' export * as PuppeteerExtraPluginStealth from 'puppeteer-extra-plugin-stealth' export * as puppeteerManager from '@puppeteer/browsers' export * as findChromeBin from 'find-chrome-bin' +export * as typeorm from 'typeorm' diff --git a/packages/ui/external-node-runtime-dependencies/package-lock.json b/packages/ui/external-node-runtime-dependencies/package-lock.json index e324eb9..7a5256e 100644 --- a/packages/ui/external-node-runtime-dependencies/package-lock.json +++ b/packages/ui/external-node-runtime-dependencies/package-lock.json @@ -13,7 +13,8 @@ "find-chrome-bin": "^2.0.1", "puppeteer": "20.1.0", "puppeteer-extra": "3.3.6", - "puppeteer-extra-plugin-stealth": "2.11.2" + "puppeteer-extra-plugin-stealth": "2.11.2", + "typeorm": "^0.3.20" } }, "node_modules/@babel/code-frame": { @@ -49,6 +50,89 @@ "node": ">=6.9.0" } }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmmirror.com/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmmirror.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@puppeteer/browsers": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/@puppeteer/browsers/-/browsers-2.0.0.tgz", @@ -69,6 +153,11 @@ "node": ">=18" } }, + "node_modules/@sqltools/formatter": { + "version": "1.2.5", + "resolved": "https://registry.npmmirror.com/@sqltools/formatter/-/formatter-1.2.5.tgz", + "integrity": "sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==" + }, "node_modules/@tootallnate/quickjs-emscripten": { "version": "0.23.0", "resolved": "https://registry.npmmirror.com/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", @@ -135,6 +224,19 @@ "node": ">=4" } }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/app-root-path": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/app-root-path/-/app-root-path-3.1.0.tgz", + "integrity": "sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==", + "engines": { + "node": ">= 6.0.0" + } + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", @@ -264,6 +366,119 @@ "devtools-protocol": "*" } }, + "node_modules/cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmmirror.com/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "dependencies": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "bin": { + "highlight": "bin/highlight" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/cli-highlight/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cli-highlight/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cli-highlight/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cli-highlight/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/cli-highlight/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cli-highlight/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "engines": { + "node": ">=10" + } + }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmmirror.com/cliui/-/cliui-8.0.1.tgz", @@ -334,6 +549,19 @@ "node-fetch": "^2.6.12" } }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/data-uri-to-buffer": { "version": "6.0.2", "resolved": "https://registry.npmmirror.com/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", @@ -342,6 +570,11 @@ "node": ">= 14" } }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", @@ -386,6 +619,19 @@ "optional": true, "peer": true }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmmirror.com/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -553,6 +799,18 @@ "node": ">=0.10.0" } }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/fs-constants/-/fs-constants-1.0.0.tgz", @@ -638,6 +896,14 @@ "node": ">=4" } }, + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "engines": { + "node": "*" + } + }, "node_modules/http-proxy-agent": { "version": "7.0.1", "resolved": "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-7.0.1.tgz", @@ -742,6 +1008,11 @@ "node": ">=0.10.0" } }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", @@ -750,6 +1021,20 @@ "node": ">=0.10.0" } }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmmirror.com/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", @@ -843,6 +1128,14 @@ "node": "*" } }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmmirror.com/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/mitt": { "version": "3.0.1", "resolved": "https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz", @@ -870,6 +1163,17 @@ "node": ">=0.10.0" } }, + "node_modules/mkdirp": { + "version": "2.1.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-2.1.6.tgz", + "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmmirror.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", @@ -880,6 +1184,16 @@ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "node_modules/netmask": { "version": "2.0.2", "resolved": "https://registry.npmmirror.com/netmask/-/netmask-2.0.2.tgz", @@ -909,6 +1223,14 @@ } } }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", @@ -972,6 +1294,24 @@ "node": ">=8" } }, + "node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -980,6 +1320,34 @@ "node": ">=0.10.0" } }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmmirror.com/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "engines": { + "node": "14 || >=16.14" + } + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz", @@ -1420,6 +1788,11 @@ "node": ">= 6" } }, + "node_modules/reflect-metadata": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/reflect-metadata/-/reflect-metadata-0.2.1.tgz", + "integrity": "sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==" + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", @@ -1452,6 +1825,18 @@ "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmmirror.com/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, "node_modules/shallow-clone": { "version": "0.1.2", "resolved": "https://registry.npmmirror.com/shallow-clone/-/shallow-clone-0.1.2.tgz", @@ -1485,6 +1870,33 @@ "node": ">=0.10.0" } }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + } + }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmmirror.com/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -1567,6 +1979,20 @@ "node": ">=8" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -1578,6 +2004,18 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", @@ -1609,6 +2047,25 @@ "streamx": "^2.15.0" } }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmmirror.com/through/-/through-2.3.8.tgz", @@ -1624,6 +2081,212 @@ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "node_modules/typeorm": { + "version": "0.3.20", + "resolved": "https://registry.npmmirror.com/typeorm/-/typeorm-0.3.20.tgz", + "integrity": "sha512-sJ0T08dV5eoZroaq9uPKBoNcGslHBR4E4y+EBHs//SiGbblGe7IeduP/IH4ddCcj0qp3PHwDwGnuvqEAnKlq/Q==", + "dependencies": { + "@sqltools/formatter": "^1.2.5", + "app-root-path": "^3.1.0", + "buffer": "^6.0.3", + "chalk": "^4.1.2", + "cli-highlight": "^2.1.11", + "dayjs": "^1.11.9", + "debug": "^4.3.4", + "dotenv": "^16.0.3", + "glob": "^10.3.10", + "mkdirp": "^2.1.3", + "reflect-metadata": "^0.2.1", + "sha.js": "^2.4.11", + "tslib": "^2.5.0", + "uuid": "^9.0.0", + "yargs": "^17.6.2" + }, + "bin": { + "typeorm": "cli.js", + "typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js", + "typeorm-ts-node-esm": "cli-ts-node-esm.js" + }, + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "@google-cloud/spanner": "^5.18.0", + "@sap/hana-client": "^2.12.25", + "better-sqlite3": "^7.1.2 || ^8.0.0 || ^9.0.0", + "hdb-pool": "^0.1.6", + "ioredis": "^5.0.4", + "mongodb": "^5.8.0", + "mssql": "^9.1.1 || ^10.0.1", + "mysql2": "^2.2.5 || ^3.0.1", + "oracledb": "^6.3.0", + "pg": "^8.5.1", + "pg-native": "^3.0.0", + "pg-query-stream": "^4.0.0", + "redis": "^3.1.1 || ^4.0.0", + "sql.js": "^1.4.0", + "sqlite3": "^5.0.3", + "ts-node": "^10.7.0", + "typeorm-aurora-data-api-driver": "^2.0.0" + }, + "peerDependenciesMeta": { + "@google-cloud/spanner": { + "optional": true + }, + "@sap/hana-client": { + "optional": true + }, + "better-sqlite3": { + "optional": true + }, + "hdb-pool": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "mongodb": { + "optional": true + }, + "mssql": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "oracledb": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-native": { + "optional": true + }, + "pg-query-stream": { + "optional": true + }, + "redis": { + "optional": true + }, + "sql.js": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "ts-node": { + "optional": true + }, + "typeorm-aurora-data-api-driver": { + "optional": true + } + } + }, + "node_modules/typeorm/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/typeorm/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/typeorm/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/typeorm/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/typeorm/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/typeorm/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/typeorm/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmmirror.com/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/typeorm/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/typeorm/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/typeorm/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/unbzip2-stream": { "version": "1.4.3", "resolved": "https://registry.npmmirror.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", @@ -1659,6 +2322,14 @@ "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -1673,6 +2344,20 @@ "webidl-conversions": "^3.0.0" } }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -1686,6 +2371,47 @@ "node": ">=10" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", diff --git a/packages/ui/external-node-runtime-dependencies/package.json b/packages/ui/external-node-runtime-dependencies/package.json index 9ade453..bc5d7e5 100644 --- a/packages/ui/external-node-runtime-dependencies/package.json +++ b/packages/ui/external-node-runtime-dependencies/package.json @@ -4,8 +4,7 @@ "description": "", "main": "index.cjs", "module": "index.mjs", - "scripts": { - }, + "scripts": {}, "author": "", "license": "ISC", "dependencies": { @@ -13,7 +12,8 @@ "find-chrome-bin": "^2.0.1", "puppeteer": "20.1.0", "puppeteer-extra": "3.3.6", - "puppeteer-extra-plugin-stealth": "2.11.2" + "puppeteer-extra-plugin-stealth": "2.11.2", + "typeorm": "^0.3.20" }, "packageManager": "npm" } From 3f6a4615e37a2cf4e3b39183cc50151f4934d82a Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Thu, 21 Mar 2024 01:24:42 +0800 Subject: [PATCH 24/47] fix the production package cannot run issue caused by glob(path-scurry) module error - maybe the version of glob is too new, and there exists different version of glob, so download rimraf and typeorm to makes major version of glob at 7 --- package.json | 2 +- packages/sqlite-plugin/package.json | 4 +- .../src/entity/BossActiveStatusRecord.ts | 3 +- packages/sqlite-plugin/src/entity/BossInfo.ts | 3 +- .../src/entity/BossInfoChangeLog.ts | 3 +- .../src/entity/ChatStartupLog.ts | 3 +- .../sqlite-plugin/src/entity/CompanyInfo.ts | 3 +- .../src/entity/CompanyInfoChangeLog.ts | 3 +- packages/sqlite-plugin/src/entity/JobInfo.ts | 3 +- .../src/entity/JobInfoChangeLog.ts | 3 +- packages/sqlite-plugin/src/entity/UserInfo.ts | 3 +- packages/sqlite-plugin/src/index.ts | 8 +- .../sqlite-plugin/src/utils/module-loader.ts | 27 ++ packages/sqlite-plugin/tsconfig.json | 4 +- packages/ui/electron.vite.config.ts | 2 +- .../package-lock.json | 424 ++++-------------- .../package.json | 2 +- pnpm-lock.yaml | 111 +++-- 18 files changed, 215 insertions(+), 396 deletions(-) create mode 100644 packages/sqlite-plugin/src/utils/module-loader.ts diff --git a/package.json b/package.json index db01a48..4019ccc 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "puppeteer": "20.1.0", "puppeteer-extra": "3.3.6", "puppeteer-extra-plugin-stealth": "2.11.2", - "rimraf": "^5.0.5", + "rimraf": "^3.0.2", "tapable": "^2.2.1" } } diff --git a/packages/sqlite-plugin/package.json b/packages/sqlite-plugin/package.json index bd83a8f..981a192 100644 --- a/packages/sqlite-plugin/package.json +++ b/packages/sqlite-plugin/package.json @@ -6,13 +6,13 @@ "dependencies": { "reflect-metadata": "^0.2.1", "sqlite3": "^5.1.7", - "typeorm": "^0.3.20", + "typeorm": "0.3.11", "ts-node": "^10.9.2", "typescript": "^5.3.3" }, "scripts": { "dev": "rimraf dist && tsc --outDir dist --watch true", "build": "rimraf dist && tsc --outDir dist", - "postinstall": "npm run build" + "postinstall": "npm run build || exit 0;" } } diff --git a/packages/sqlite-plugin/src/entity/BossActiveStatusRecord.ts b/packages/sqlite-plugin/src/entity/BossActiveStatusRecord.ts index d7b398e..f8890dc 100644 --- a/packages/sqlite-plugin/src/entity/BossActiveStatusRecord.ts +++ b/packages/sqlite-plugin/src/entity/BossActiveStatusRecord.ts @@ -1,4 +1,5 @@ -import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"; +import { requireTypeorm } from "../utils/module-loader"; +const { Entity, Column, PrimaryGeneratedColumn } = requireTypeorm(); @Entity() export class BossActiveStatusRecord { diff --git a/packages/sqlite-plugin/src/entity/BossInfo.ts b/packages/sqlite-plugin/src/entity/BossInfo.ts index c72ddc0..f7eea6c 100644 --- a/packages/sqlite-plugin/src/entity/BossInfo.ts +++ b/packages/sqlite-plugin/src/entity/BossInfo.ts @@ -1,4 +1,5 @@ -import { Entity, PrimaryGeneratedColumn, Column, Index, PrimaryColumn } from "typeorm"; +import { requireTypeorm } from "../utils/module-loader"; +const { Entity, Column, PrimaryColumn } = requireTypeorm(); @Entity() export class BossInfo { diff --git a/packages/sqlite-plugin/src/entity/BossInfoChangeLog.ts b/packages/sqlite-plugin/src/entity/BossInfoChangeLog.ts index d4fd9f4..48173dc 100644 --- a/packages/sqlite-plugin/src/entity/BossInfoChangeLog.ts +++ b/packages/sqlite-plugin/src/entity/BossInfoChangeLog.ts @@ -1,4 +1,5 @@ -import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"; +import { requireTypeorm } from "../utils/module-loader"; +const { Entity, Column, PrimaryGeneratedColumn } = requireTypeorm() @Entity() export class BossInfoChangeLog { diff --git a/packages/sqlite-plugin/src/entity/ChatStartupLog.ts b/packages/sqlite-plugin/src/entity/ChatStartupLog.ts index 37d4595..e451c99 100644 --- a/packages/sqlite-plugin/src/entity/ChatStartupLog.ts +++ b/packages/sqlite-plugin/src/entity/ChatStartupLog.ts @@ -1,4 +1,5 @@ -import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"; +import { requireTypeorm } from "../utils/module-loader"; +const { Entity, Column, PrimaryGeneratedColumn } = requireTypeorm() @Entity() export class ChatStartupLog { diff --git a/packages/sqlite-plugin/src/entity/CompanyInfo.ts b/packages/sqlite-plugin/src/entity/CompanyInfo.ts index 361ed56..b8d61fd 100644 --- a/packages/sqlite-plugin/src/entity/CompanyInfo.ts +++ b/packages/sqlite-plugin/src/entity/CompanyInfo.ts @@ -1,4 +1,5 @@ -import { Entity, PrimaryGeneratedColumn, Column, Index, PrimaryColumn } from "typeorm"; +import { requireTypeorm } from "../utils/module-loader"; +const { Entity, Column, PrimaryColumn } = requireTypeorm() @Entity() export class CompanyInfo { diff --git a/packages/sqlite-plugin/src/entity/CompanyInfoChangeLog.ts b/packages/sqlite-plugin/src/entity/CompanyInfoChangeLog.ts index daaa4c6..4d226ce 100644 --- a/packages/sqlite-plugin/src/entity/CompanyInfoChangeLog.ts +++ b/packages/sqlite-plugin/src/entity/CompanyInfoChangeLog.ts @@ -1,4 +1,5 @@ -import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"; +import { requireTypeorm } from "../utils/module-loader"; +const { Entity, PrimaryGeneratedColumn, Column } = requireTypeorm() @Entity() export class CompanyInfoChangeLog { diff --git a/packages/sqlite-plugin/src/entity/JobInfo.ts b/packages/sqlite-plugin/src/entity/JobInfo.ts index f664b5c..48562de 100644 --- a/packages/sqlite-plugin/src/entity/JobInfo.ts +++ b/packages/sqlite-plugin/src/entity/JobInfo.ts @@ -1,4 +1,5 @@ -import { Entity, PrimaryGeneratedColumn, Column, Unique, Index, PrimaryColumn } from "typeorm"; +import { requireTypeorm } from "../utils/module-loader"; +const { Entity, Column, PrimaryColumn } = requireTypeorm() @Entity() export class JobInfo { diff --git a/packages/sqlite-plugin/src/entity/JobInfoChangeLog.ts b/packages/sqlite-plugin/src/entity/JobInfoChangeLog.ts index 85c1264..a90190f 100644 --- a/packages/sqlite-plugin/src/entity/JobInfoChangeLog.ts +++ b/packages/sqlite-plugin/src/entity/JobInfoChangeLog.ts @@ -1,4 +1,5 @@ -import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"; +import { requireTypeorm } from "../utils/module-loader"; +const { Entity, PrimaryGeneratedColumn, Column } = requireTypeorm() @Entity() export class JobInfoChangeLog { diff --git a/packages/sqlite-plugin/src/entity/UserInfo.ts b/packages/sqlite-plugin/src/entity/UserInfo.ts index 89c8112..665f1f7 100644 --- a/packages/sqlite-plugin/src/entity/UserInfo.ts +++ b/packages/sqlite-plugin/src/entity/UserInfo.ts @@ -1,4 +1,5 @@ -import { Entity, PrimaryGeneratedColumn, Column, Index, PrimaryColumn } from "typeorm"; +import { requireTypeorm } from "../utils/module-loader"; +const { Entity, Column, PrimaryColumn } = requireTypeorm() @Entity() export class UserInfo { diff --git a/packages/sqlite-plugin/src/index.ts b/packages/sqlite-plugin/src/index.ts index 816bc6f..44a8f1a 100644 --- a/packages/sqlite-plugin/src/index.ts +++ b/packages/sqlite-plugin/src/index.ts @@ -1,5 +1,7 @@ import "reflect-metadata"; -import { DataSource } from "typeorm"; +import { type DataSource } from "typeorm"; +import { parseCompanyScale, parseSalary } from "./utils/parser"; +import { requireTypeorm } from "./utils/module-loader"; import { BossInfo } from "./entity/BossInfo"; import { BossInfoChangeLog } from "./entity/BossInfoChangeLog"; @@ -10,9 +12,9 @@ import { JobInfo } from "./entity/JobInfo"; import { JobInfoChangeLog } from "./entity/JobInfoChangeLog"; import { BossActiveStatusRecord } from "./entity/BossActiveStatusRecord"; import { UserInfo } from "./entity/UserInfo"; -import { parseCompanyScale, parseSalary } from "./utils/parser"; -async function initDb(dbFilePath) { +function initDb(dbFilePath) { + const { DataSource } = requireTypeorm() const appDataSource = new DataSource({ type: "sqlite", synchronize: true, diff --git a/packages/sqlite-plugin/src/utils/module-loader.ts b/packages/sqlite-plugin/src/utils/module-loader.ts new file mode 100644 index 0000000..32521e4 --- /dev/null +++ b/packages/sqlite-plugin/src/utils/module-loader.ts @@ -0,0 +1,27 @@ +import * as path from 'node:path'; +import type typeormType from 'typeorm' +const isRunFromUi = Boolean(process.env.MAIN_BOSSGEEKGO_UI_RUN_MODE) +const isUiDev = process.env.NODE_ENV === 'development' + +export function requireTypeorm () { + let typeorm: typeof typeormType + // production + if ( + isRunFromUi && !isUiDev + ) { + const electron = require('electron') + const runtimeDependencies = require( + path.resolve( + electron.app.getAppPath(), + '..', + 'external-node-runtime-dependencies/index.cjs' + ) + ) + typeorm = runtimeDependencies.typeorm + } else { + const importResult = require('typeorm') + typeorm = importResult + } + + return typeorm +} \ No newline at end of file diff --git a/packages/sqlite-plugin/tsconfig.json b/packages/sqlite-plugin/tsconfig.json index a28490c..db7cde2 100644 --- a/packages/sqlite-plugin/tsconfig.json +++ b/packages/sqlite-plugin/tsconfig.json @@ -2,8 +2,8 @@ "compilerOptions": { "lib": ["ES2020"], "target": "ES2020", - "module": "commonjs", - "moduleResolution": "node", + "module": "Node16", + "moduleResolution": "Node16", "emitDecoratorMetadata": true, "experimentalDecorators": true, "sourceMap": false, diff --git a/packages/ui/electron.vite.config.ts b/packages/ui/electron.vite.config.ts index 2209bb8..e1c5d08 100644 --- a/packages/ui/electron.vite.config.ts +++ b/packages/ui/electron.vite.config.ts @@ -9,7 +9,7 @@ export default defineConfig({ main: { build: { rollupOptions: { - external: ['puppeteer', 'puppeteer-extra', 'puppeteer-extra-plugin-stealth', '@puppeteer/browsers', 'find-chrome-bin'] + external: ['puppeteer', 'puppeteer-extra', 'puppeteer-extra-plugin-stealth', '@puppeteer/browsers', 'find-chrome-bin', 'typeorm'] } }, plugins: [ diff --git a/packages/ui/external-node-runtime-dependencies/package-lock.json b/packages/ui/external-node-runtime-dependencies/package-lock.json index 7a5256e..7d8b6e8 100644 --- a/packages/ui/external-node-runtime-dependencies/package-lock.json +++ b/packages/ui/external-node-runtime-dependencies/package-lock.json @@ -14,7 +14,7 @@ "puppeteer": "20.1.0", "puppeteer-extra": "3.3.6", "puppeteer-extra-plugin-stealth": "2.11.2", - "typeorm": "^0.3.20" + "typeorm": "0.3.11" } }, "node_modules/@babel/code-frame": { @@ -50,87 +50,15 @@ "node": ">=6.9.0" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmmirror.com/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "node_modules/@babel/runtime": { + "version": "7.24.1", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.24.1.tgz", + "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==", "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + "regenerator-runtime": "^0.14.0" }, "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmmirror.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, - "engines": { - "node": ">=14" + "node": ">=6.9.0" } }, "node_modules/@puppeteer/browsers": { @@ -549,19 +477,6 @@ "node-fetch": "^2.6.12" } }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/data-uri-to-buffer": { "version": "6.0.2", "resolved": "https://registry.npmmirror.com/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", @@ -570,10 +485,16 @@ "node": ">= 14" } }, - "node_modules/dayjs": { - "version": "1.11.10", - "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + "node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmmirror.com/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + } }, "node_modules/debug": { "version": "4.3.4", @@ -627,11 +548,6 @@ "node": ">=12" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -799,18 +715,6 @@ "node": ">=0.10.0" } }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - } - }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/fs-constants/-/fs-constants-1.0.0.tgz", @@ -1008,11 +912,6 @@ "node": ">=0.10.0" } }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", @@ -1021,20 +920,6 @@ "node": ">=0.10.0" } }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmmirror.com/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", @@ -1128,14 +1013,6 @@ "node": "*" } }, - "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmmirror.com/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/mitt": { "version": "3.0.1", "resolved": "https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz", @@ -1164,11 +1041,11 @@ } }, "node_modules/mkdirp": { - "version": "2.1.6", - "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-2.1.6.tgz", - "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "bin": { - "mkdirp": "dist/cjs/src/bin.js" + "mkdirp": "bin/cmd.js" }, "engines": { "node": ">=10" @@ -1320,34 +1197,6 @@ "node": ">=0.10.0" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmmirror.com/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", - "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz", @@ -1789,9 +1638,14 @@ } }, "node_modules/reflect-metadata": { - "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/reflect-metadata/-/reflect-metadata-0.2.1.tgz", - "integrity": "sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==" + "version": "0.1.14", + "resolved": "https://registry.npmmirror.com/reflect-metadata/-/reflect-metadata-0.1.14.tgz", + "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==" + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "node_modules/require-directory": { "version": "2.1.1", @@ -1825,6 +1679,11 @@ "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" + }, "node_modules/sha.js": { "version": "2.4.11", "resolved": "https://registry.npmmirror.com/sha.js/-/sha.js-2.4.11.tgz", @@ -1870,33 +1729,6 @@ "node": ">=0.10.0" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "engines": { - "node": ">=14" - } - }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmmirror.com/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -1979,20 +1811,6 @@ "node": ">=8" } }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -2004,18 +1822,6 @@ "node": ">=8" } }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", @@ -2082,25 +1888,27 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/typeorm": { - "version": "0.3.20", - "resolved": "https://registry.npmmirror.com/typeorm/-/typeorm-0.3.20.tgz", - "integrity": "sha512-sJ0T08dV5eoZroaq9uPKBoNcGslHBR4E4y+EBHs//SiGbblGe7IeduP/IH4ddCcj0qp3PHwDwGnuvqEAnKlq/Q==", + "version": "0.3.11", + "resolved": "https://registry.npmmirror.com/typeorm/-/typeorm-0.3.11.tgz", + "integrity": "sha512-pzdOyWbVuz/z8Ww6gqvBW4nylsM0KLdUCDExr2gR20/x1khGSVxQkjNV/3YqliG90jrWzrknYbYscpk8yxFJVg==", "dependencies": { - "@sqltools/formatter": "^1.2.5", - "app-root-path": "^3.1.0", + "@sqltools/formatter": "^1.2.2", + "app-root-path": "^3.0.0", "buffer": "^6.0.3", - "chalk": "^4.1.2", + "chalk": "^4.1.0", "cli-highlight": "^2.1.11", - "dayjs": "^1.11.9", - "debug": "^4.3.4", - "dotenv": "^16.0.3", - "glob": "^10.3.10", - "mkdirp": "^2.1.3", - "reflect-metadata": "^0.2.1", + "date-fns": "^2.28.0", + "debug": "^4.3.3", + "dotenv": "^16.0.0", + "glob": "^7.2.0", + "js-yaml": "^4.1.0", + "mkdirp": "^1.0.4", + "reflect-metadata": "^0.1.13", "sha.js": "^2.4.11", - "tslib": "^2.5.0", - "uuid": "^9.0.0", - "yargs": "^17.6.2" + "tslib": "^2.3.1", + "uuid": "^8.3.2", + "xml2js": "^0.4.23", + "yargs": "^17.3.1" }, "bin": { "typeorm": "cli.js", @@ -2108,18 +1916,18 @@ "typeorm-ts-node-esm": "cli-ts-node-esm.js" }, "engines": { - "node": ">=16.13.0" + "node": ">= 12.9.0" }, "peerDependencies": { "@google-cloud/spanner": "^5.18.0", "@sap/hana-client": "^2.12.25", - "better-sqlite3": "^7.1.2 || ^8.0.0 || ^9.0.0", + "better-sqlite3": "^7.1.2 || ^8.0.0", "hdb-pool": "^0.1.6", "ioredis": "^5.0.4", - "mongodb": "^5.8.0", - "mssql": "^9.1.1 || ^10.0.1", - "mysql2": "^2.2.5 || ^3.0.1", - "oracledb": "^6.3.0", + "mongodb": "^3.6.0", + "mssql": "^7.3.0", + "mysql2": "^2.2.5", + "oracledb": "^5.1.0", "pg": "^8.5.1", "pg-native": "^3.0.0", "pg-query-stream": "^4.0.0", @@ -2194,14 +2002,6 @@ "node": ">=8" } }, - "node_modules/typeorm/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/typeorm/node_modules/buffer": { "version": "6.0.3", "resolved": "https://registry.npmmirror.com/buffer/-/buffer-6.0.3.tgz", @@ -2239,24 +2039,6 @@ "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/typeorm/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmmirror.com/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/typeorm/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", @@ -2265,17 +2047,6 @@ "node": ">=8" } }, - "node_modules/typeorm/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/typeorm/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", @@ -2323,9 +2094,9 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmmirror.com/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "version": "8.3.2", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "bin": { "uuid": "dist/bin/uuid" } @@ -2344,20 +2115,6 @@ "webidl-conversions": "^3.0.0" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -2371,47 +2128,6 @@ "node": ">=10" } }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -2466,6 +2182,26 @@ } } }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmmirror.com/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz", diff --git a/packages/ui/external-node-runtime-dependencies/package.json b/packages/ui/external-node-runtime-dependencies/package.json index bc5d7e5..19f5c07 100644 --- a/packages/ui/external-node-runtime-dependencies/package.json +++ b/packages/ui/external-node-runtime-dependencies/package.json @@ -13,7 +13,7 @@ "puppeteer": "20.1.0", "puppeteer-extra": "3.3.6", "puppeteer-extra-plugin-stealth": "2.11.2", - "typeorm": "^0.3.20" + "typeorm": "0.3.11" }, "packageManager": "npm" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 12278ee..ba58509 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,8 +24,8 @@ importers: specifier: 2.11.2 version: 2.11.2(puppeteer-extra@3.3.6) rimraf: - specifier: ^5.0.5 - version: 5.0.5 + specifier: ^3.0.2 + version: 3.0.2 tapable: specifier: ^2.2.1 version: 2.2.1 @@ -80,8 +80,8 @@ importers: specifier: ^10.9.2 version: 10.9.2(@types/node@18.19.15)(typescript@5.3.3) typeorm: - specifier: ^0.3.20 - version: 0.3.20(sqlite3@5.1.7)(ts-node@10.9.2) + specifier: 0.3.11 + version: 0.3.11(sqlite3@5.1.7)(ts-node@10.9.2) typescript: specifier: ^5.3.3 version: 5.3.3 @@ -524,6 +524,13 @@ packages: '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.9) dev: true + /@babel/runtime@7.24.1: + resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 + dev: false + /@babel/template@7.23.9: resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==} engines: {node: '>=6.9.0'} @@ -1017,6 +1024,7 @@ packages: strip-ansi-cjs: /strip-ansi@6.0.1 wrap-ansi: 8.1.0 wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: true /@jridgewell/gen-mapping@0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} @@ -1115,6 +1123,7 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} requiresBuild: true + dev: true optional: true /@pkgr/core@0.1.1: @@ -2093,6 +2102,7 @@ packages: /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} + dev: true /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} @@ -2109,6 +2119,7 @@ packages: /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} + dev: true /any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} @@ -2304,6 +2315,7 @@ packages: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 + dev: true /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} @@ -2676,6 +2688,7 @@ packages: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 + dev: true /css-tree@2.3.1: resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} @@ -2704,6 +2717,13 @@ packages: engines: {node: '>= 14'} dev: false + /date-fns@2.30.0: + resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} + engines: {node: '>=0.11'} + dependencies: + '@babel/runtime': 7.24.1 + dev: false + /dayjs@1.11.10: resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} dev: false @@ -2885,6 +2905,7 @@ packages: /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true /ejs@3.1.9: resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} @@ -3011,6 +3032,7 @@ packages: /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true /encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} @@ -3436,6 +3458,7 @@ packages: dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 + dev: true /form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} @@ -3589,6 +3612,7 @@ packages: minimatch: 9.0.3 minipass: 7.0.4 path-scurry: 1.10.1 + dev: true /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} @@ -3979,6 +4003,7 @@ packages: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 + dev: true /jake@10.8.7: resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} @@ -4162,6 +4187,7 @@ packages: /lru-cache@10.2.0: resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} engines: {node: 14 || >=16.14} + dev: true /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -4305,6 +4331,7 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 + dev: true /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -4366,6 +4393,7 @@ packages: /minipass@7.0.4: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} + dev: true /minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} @@ -4395,12 +4423,6 @@ packages: engines: {node: '>=10'} hasBin: true - /mkdirp@2.1.6: - resolution: {integrity: sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==} - engines: {node: '>=10'} - hasBin: true - dev: false - /mlly@1.5.0: resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==} dependencies: @@ -4717,6 +4739,7 @@ packages: /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + dev: true /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -4728,6 +4751,7 @@ packages: dependencies: lru-cache: 10.2.0 minipass: 7.0.4 + dev: true /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} @@ -5075,10 +5099,18 @@ packages: picomatch: 2.3.1 dev: true + /reflect-metadata@0.1.14: + resolution: {integrity: sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==} + dev: false + /reflect-metadata@0.2.1: resolution: {integrity: sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==} dev: false + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + dev: false + /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -5119,14 +5151,6 @@ packages: dependencies: glob: 7.2.3 - /rimraf@5.0.5: - resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} - engines: {node: '>=14'} - hasBin: true - dependencies: - glob: 10.3.10 - dev: false - /roarr@2.15.4: resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} engines: {node: '>=8.0'} @@ -5248,10 +5272,12 @@ packages: engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 + dev: true /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + dev: true /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -5259,6 +5285,7 @@ packages: /signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + dev: true /simple-concat@1.0.1: resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} @@ -5412,6 +5439,7 @@ packages: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 + dev: true /string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -5430,6 +5458,7 @@ packages: engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 + dev: true /strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} @@ -5674,20 +5703,20 @@ packages: engines: {node: '>=10'} dev: true - /typeorm@0.3.20(sqlite3@5.1.7)(ts-node@10.9.2): - resolution: {integrity: sha512-sJ0T08dV5eoZroaq9uPKBoNcGslHBR4E4y+EBHs//SiGbblGe7IeduP/IH4ddCcj0qp3PHwDwGnuvqEAnKlq/Q==} - engines: {node: '>=16.13.0'} + /typeorm@0.3.11(sqlite3@5.1.7)(ts-node@10.9.2): + resolution: {integrity: sha512-pzdOyWbVuz/z8Ww6gqvBW4nylsM0KLdUCDExr2gR20/x1khGSVxQkjNV/3YqliG90jrWzrknYbYscpk8yxFJVg==} + engines: {node: '>= 12.9.0'} hasBin: true peerDependencies: '@google-cloud/spanner': ^5.18.0 '@sap/hana-client': ^2.12.25 - better-sqlite3: ^7.1.2 || ^8.0.0 || ^9.0.0 + better-sqlite3: ^7.1.2 || ^8.0.0 hdb-pool: ^0.1.6 ioredis: ^5.0.4 - mongodb: ^5.8.0 - mssql: ^9.1.1 || ^10.0.1 - mysql2: ^2.2.5 || ^3.0.1 - oracledb: ^6.3.0 + mongodb: ^3.6.0 + mssql: ^7.3.0 + mysql2: ^2.2.5 + oracledb: ^5.1.0 pg: ^8.5.1 pg-native: ^3.0.0 pg-query-stream: ^4.0.0 @@ -5737,17 +5766,19 @@ packages: buffer: 6.0.3 chalk: 4.1.2 cli-highlight: 2.1.11 - dayjs: 1.11.10 + date-fns: 2.30.0 debug: 4.3.4 dotenv: 16.4.5 - glob: 10.3.10 - mkdirp: 2.1.6 - reflect-metadata: 0.2.1 + glob: 7.2.3 + js-yaml: 4.1.0 + mkdirp: 1.0.4 + reflect-metadata: 0.1.14 sha.js: 2.4.11 sqlite3: 5.1.7 ts-node: 10.9.2(@types/node@18.19.15)(typescript@5.3.3) tslib: 2.6.2 - uuid: 9.0.1 + uuid: 8.3.2 + xml2js: 0.4.23 yargs: 17.7.2 transitivePeerDependencies: - supports-color @@ -5948,8 +5979,8 @@ packages: /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - /uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true dev: false @@ -6135,6 +6166,7 @@ packages: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 + dev: true /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -6157,6 +6189,19 @@ packages: engines: {node: '>=12'} dev: true + /xml2js@0.4.23: + resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==} + engines: {node: '>=4.0.0'} + dependencies: + sax: 1.3.0 + xmlbuilder: 11.0.1 + dev: false + + /xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + dev: false + /xmlbuilder@15.1.1: resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} engines: {node: '>=8.0'} From 64d2ef4efe4c3b269ac320435895aa2cddf23c97 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Thu, 21 Mar 2024 01:49:37 +0800 Subject: [PATCH 25/47] fix the issue that findChromeBin not support commonjs so when import a error is thrown so that app cannot launch --- packages/ui/external-node-runtime-dependencies/index.cjs | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/ui/external-node-runtime-dependencies/index.cjs b/packages/ui/external-node-runtime-dependencies/index.cjs index fe15580..3e7323b 100644 --- a/packages/ui/external-node-runtime-dependencies/index.cjs +++ b/packages/ui/external-node-runtime-dependencies/index.cjs @@ -2,6 +2,5 @@ Object.assign(module.exports, { puppeteerExtra: require('puppeteer-extra'), PuppeteerExtraPluginStealth: require('puppeteer-extra-plugin-stealth'), puppeteerManager: require('@puppeteer/browsers'), - findChromeBin: require('find-chrome-bin'), typeorm: require('typeorm') }) From a06a3a7203cc59208c2de0db8b5736326a6dfaaf Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Thu, 21 Mar 2024 02:07:56 +0800 Subject: [PATCH 26/47] adjust `stdio: ['inherit', 'inherit', 'inherit',...]` to `stdio: [process.stdin, process.stdout, process.stderr,...]` --- .../run-core-of-geek-auto-start-chat-with-boss/daemon-main.mjs | 2 +- .../main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts | 2 +- packages/ui/src/main/window/mainWindow.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/run-core-of-geek-auto-start-chat-with-boss/daemon-main.mjs b/packages/run-core-of-geek-auto-start-chat-with-boss/daemon-main.mjs index d2b2293..8c50203 100644 --- a/packages/run-core-of-geek-auto-start-chat-with-boss/daemon-main.mjs +++ b/packages/run-core-of-geek-auto-start-chat-with-boss/daemon-main.mjs @@ -21,7 +21,7 @@ function runWithDaemon () { 'main.mjs' )], { - stdio: ['inherit', 'inherit', 'inherit', 'pipe', 'ipc'], + stdio: [process.stdin, process.stdout, process.stderr, 'pipe', 'ipc'], env: { ...process.env, MAIN_BOSSGEEKGO_RERUN_INTERVAL: rerunInterval diff --git a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts index 0a015b3..537a56d 100644 --- a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts +++ b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts @@ -13,7 +13,7 @@ const rerunInterval = (() => { })() function runWithDaemon() { const subProcessOfCore = childProcess.spawn(process.argv[0], process.argv.slice(1), { - stdio: ['inherit', 'inherit', 'inherit', 'pipe', 'ipc'], + stdio: [process.stdin, process.stdout, process.stderr, 'pipe', 'ipc'], env: { ...process.env, MAIN_BOSSGEEKGO_UI_RUN_MODE: 'geekAutoStartWithBossMain' diff --git a/packages/ui/src/main/window/mainWindow.ts b/packages/ui/src/main/window/mainWindow.ts index 4bfc48c..a0f5ae0 100644 --- a/packages/ui/src/main/window/mainWindow.ts +++ b/packages/ui/src/main/window/mainWindow.ts @@ -128,7 +128,7 @@ export function createMainWindow(): void { } subProcessOfPuppeteer = childProcess.spawn(process.argv[0], process.argv.slice(1), { env: subProcessEnv, - stdio: [null, null, null, 'pipe', 'ipc'] + stdio: [process.stdin, process.stdout, process.stderr, 'pipe', 'ipc'] }) console.log(subProcessOfPuppeteer) return new Promise((resolve, reject) => { From 1df215abb33b473a90a03cc8959a2a64a3191a56 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Thu, 21 Mar 2024 10:03:33 +0800 Subject: [PATCH 27/47] remove useless package-lock.json --- .../package-lock.json | 351 ------------------ 1 file changed, 351 deletions(-) delete mode 100644 packages/launch-bosszhipin-login-page-with-preload-extension/package-lock.json diff --git a/packages/launch-bosszhipin-login-page-with-preload-extension/package-lock.json b/packages/launch-bosszhipin-login-page-with-preload-extension/package-lock.json deleted file mode 100644 index dea2a94..0000000 --- a/packages/launch-bosszhipin-login-page-with-preload-extension/package-lock.json +++ /dev/null @@ -1,351 +0,0 @@ -{ - "name": "@geekgeekrun/launch-browser-with-preload-extension", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@geekgeekrun/launch-browser-with-preload-extension", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "node-fetch": "^3.3.2", - "unzipper": "^0.10.14" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/big-integer": { - "version": "1.6.52", - "resolved": "https://registry.npmmirror.com/big-integer/-/big-integer-1.6.52.tgz", - "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/binary": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/binary/-/binary-0.3.0.tgz", - "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", - "dependencies": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmmirror.com/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", - "engines": { - "node": ">=0.2.0" - } - }, - "node_modules/chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmmirror.com/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", - "dependencies": { - "traverse": ">=0.3.0 <0.4" - }, - "engines": { - "node": "*" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "engines": { - "node": ">= 12" - } - }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmmirror.com/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmmirror.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmmirror.com/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmmirror.com/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", - "engines": { - "node": "*" - } - }, - "node_modules/unzipper": { - "version": "0.10.14", - "resolved": "https://registry.npmmirror.com/unzipper/-/unzipper-0.10.14.tgz", - "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==", - "dependencies": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/web-streams-polyfill": { - "version": "3.3.3", - "resolved": "https://registry.npmmirror.com/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", - "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - } - } -} From 646045fad5fd99f870de9e8fddcf4f43aee7f7bf Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Thu, 21 Mar 2024 10:06:44 +0800 Subject: [PATCH 28/47] downgrade sqlite patch version to solve `I couldn't build successfully in electron` TryGhost/node-sqlite3 #1746 --- packages/sqlite-plugin/package.json | 2 +- packages/sqlite-plugin/src/index.ts | 3 + pnpm-lock.yaml | 183 +++++++++++----------------- 3 files changed, 74 insertions(+), 114 deletions(-) diff --git a/packages/sqlite-plugin/package.json b/packages/sqlite-plugin/package.json index 981a192..6a7ca41 100644 --- a/packages/sqlite-plugin/package.json +++ b/packages/sqlite-plugin/package.json @@ -5,7 +5,7 @@ "main": "dist/index.js", "dependencies": { "reflect-metadata": "^0.2.1", - "sqlite3": "^5.1.7", + "sqlite3": "5.1.6", "typeorm": "0.3.11", "ts-node": "^10.9.2", "typescript": "^5.3.3" diff --git a/packages/sqlite-plugin/src/index.ts b/packages/sqlite-plugin/src/index.ts index 44a8f1a..0ad3edf 100644 --- a/packages/sqlite-plugin/src/index.ts +++ b/packages/sqlite-plugin/src/index.ts @@ -13,6 +13,8 @@ import { JobInfoChangeLog } from "./entity/JobInfoChangeLog"; import { BossActiveStatusRecord } from "./entity/BossActiveStatusRecord"; import { UserInfo } from "./entity/UserInfo"; +import sqlite3 from 'sqlite3'; + function initDb(dbFilePath) { const { DataSource } = requireTypeorm() const appDataSource = new DataSource({ @@ -21,6 +23,7 @@ function initDb(dbFilePath) { logging: true, logger: "simple-console", database: dbFilePath, + driver: sqlite3, // The important line entities: [ ChatStartupLog, BossInfo, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ba58509..58696ba 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -74,14 +74,14 @@ importers: specifier: ^0.2.1 version: 0.2.1 sqlite3: - specifier: ^5.1.7 - version: 5.1.7 + specifier: 5.1.6 + version: 5.1.6 ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@18.19.15)(typescript@5.3.3) typeorm: specifier: 0.3.11 - version: 0.3.11(sqlite3@5.1.7)(ts-node@10.9.2) + version: 0.3.11(sqlite3@5.1.6)(ts-node@10.9.2) typescript: specifier: ^5.3.3 version: 5.3.3 @@ -1080,6 +1080,24 @@ packages: - supports-color dev: true + /@mapbox/node-pre-gyp@1.0.11: + resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} + hasBin: true + dependencies: + detect-libc: 2.0.2 + https-proxy-agent: 5.0.1 + make-dir: 3.1.0 + node-fetch: 2.6.7 + nopt: 5.0.0 + npmlog: 5.0.1 + rimraf: 3.0.2 + semver: 7.6.0 + tar: 6.2.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -2024,7 +2042,6 @@ packages: /abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} dev: false - optional: true /acorn-jsx@5.3.2(acorn@8.11.3): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -2181,7 +2198,14 @@ packages: /aproba@2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} dev: false - optional: true + + /are-we-there-yet@2.0.0: + resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} + engines: {node: '>=10'} + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + dev: false /are-we-there-yet@3.0.1: resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} @@ -2273,12 +2297,6 @@ packages: engines: {node: '>=8'} dev: true - /bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - dependencies: - file-uri-to-path: 1.0.0 - dev: false - /bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: @@ -2586,7 +2604,6 @@ packages: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} hasBin: true dev: false - optional: true /colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} @@ -2631,7 +2648,6 @@ packages: /console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} dev: false - optional: true /convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -2749,11 +2765,6 @@ packages: dependencies: mimic-response: 3.1.0 - /deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - dev: false - /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true @@ -2807,7 +2818,6 @@ packages: /delegates@1.0.0: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} dev: false - optional: true /destr@2.0.3: resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} @@ -3306,11 +3316,6 @@ packages: strip-final-newline: 2.0.0 dev: true - /expand-template@2.0.3: - resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} - engines: {node: '>=6'} - dev: false - /extract-zip@2.0.1: resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} engines: {node: '>= 10.17.0'} @@ -3388,10 +3393,6 @@ packages: flat-cache: 3.2.0 dev: true - /file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - dev: false - /filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} dependencies: @@ -3526,6 +3527,21 @@ packages: /function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + /gauge@3.0.2: + resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} + engines: {node: '>=10'} + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + dev: false + /gauge@4.0.4: resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -3584,10 +3600,6 @@ packages: - supports-color dev: false - /github-from-package@0.0.0: - resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} - dev: false - /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -3731,7 +3743,6 @@ packages: /has-unicode@2.0.1: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} dev: false - optional: true /hasown@2.0.1: resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} @@ -3890,10 +3901,6 @@ packages: /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - /ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: false - /ip@1.1.8: resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} dev: false @@ -4212,6 +4219,13 @@ packages: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 + /make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.1 + dev: false + /make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} dev: false @@ -4335,6 +4349,7 @@ packages: /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true /minipass-collect@1.0.2: resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} @@ -4457,10 +4472,6 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - /napi-build-utils@1.0.2: - resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} - dev: false - /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -4476,22 +4487,14 @@ packages: engines: {node: '>= 0.4.0'} dev: false - /node-abi@3.56.0: - resolution: {integrity: sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q==} - engines: {node: '>=10'} - dependencies: - semver: 7.6.0 - dev: false - /node-addon-api@1.7.2: resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} requiresBuild: true dev: true optional: true - /node-addon-api@7.1.0: - resolution: {integrity: sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==} - engines: {node: ^16 || ^18 || >= 20} + /node-addon-api@4.3.0: + resolution: {integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==} dev: false /node-domexception@1.0.0: @@ -4557,7 +4560,6 @@ packages: dependencies: abbrev: 1.1.1 dev: false - optional: true /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} @@ -4583,6 +4585,15 @@ packages: path-key: 3.1.1 dev: true + /npmlog@5.0.1: + resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + dependencies: + are-we-there-yet: 2.0.0 + console-control-strings: 1.1.0 + gauge: 3.0.2 + set-blocking: 2.0.0 + dev: false + /npmlog@6.0.2: resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -4809,25 +4820,6 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 - /prebuild-install@7.1.2: - resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} - engines: {node: '>=10'} - hasBin: true - dependencies: - detect-libc: 2.0.2 - expand-template: 2.0.3 - github-from-package: 0.0.0 - minimist: 1.2.8 - mkdirp-classic: 0.5.3 - napi-build-utils: 1.0.2 - node-abi: 3.56.0 - pump: 3.0.0 - rc: 1.2.8 - simple-get: 4.0.1 - tar-fs: 2.1.1 - tunnel-agent: 0.6.0 - dev: false - /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -5061,16 +5053,6 @@ packages: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} - /rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.8 - strip-json-comments: 2.0.1 - dev: false - /read-config-file@6.3.2: resolution: {integrity: sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==} engines: {node: '>=12.0.0'} @@ -5247,7 +5229,6 @@ packages: /set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: false - optional: true /sha.js@2.4.11: resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} @@ -5287,18 +5268,6 @@ packages: engines: {node: '>=14'} dev: true - /simple-concat@1.0.1: - resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} - dev: false - - /simple-get@4.0.1: - resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} - dependencies: - decompress-response: 6.0.0 - once: 1.4.0 - simple-concat: 1.0.1 - dev: false - /simple-update-notifier@2.0.0: resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} engines: {node: '>=10'} @@ -5386,21 +5355,21 @@ packages: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} optional: true - /sqlite3@5.1.7: - resolution: {integrity: sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==} + /sqlite3@5.1.6: + resolution: {integrity: sha512-olYkWoKFVNSSSQNvxVUfjiVbz3YtBwTJj+mfV5zpHmqW3sELx2Cf4QCdirMelhM5Zh+KDVaKgQHqCxrqiWHybw==} requiresBuild: true peerDependenciesMeta: node-gyp: optional: true dependencies: - bindings: 1.5.0 - node-addon-api: 7.1.0 - prebuild-install: 7.1.2 + '@mapbox/node-pre-gyp': 1.0.11 + node-addon-api: 4.3.0 tar: 6.2.0 optionalDependencies: node-gyp: 8.4.1 transitivePeerDependencies: - bluebird + - encoding - supports-color dev: false @@ -5465,11 +5434,6 @@ packages: engines: {node: '>=6'} dev: true - /strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - dev: false - /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -5680,12 +5644,6 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - dependencies: - safe-buffer: 5.2.1 - dev: false - /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -5703,7 +5661,7 @@ packages: engines: {node: '>=10'} dev: true - /typeorm@0.3.11(sqlite3@5.1.7)(ts-node@10.9.2): + /typeorm@0.3.11(sqlite3@5.1.6)(ts-node@10.9.2): resolution: {integrity: sha512-pzdOyWbVuz/z8Ww6gqvBW4nylsM0KLdUCDExr2gR20/x1khGSVxQkjNV/3YqliG90jrWzrknYbYscpk8yxFJVg==} engines: {node: '>= 12.9.0'} hasBin: true @@ -5774,7 +5732,7 @@ packages: mkdirp: 1.0.4 reflect-metadata: 0.1.14 sha.js: 2.4.11 - sqlite3: 5.1.7 + sqlite3: 5.1.6 ts-node: 10.9.2(@types/node@18.19.15)(typescript@5.3.3) tslib: 2.6.2 uuid: 8.3.2 @@ -6149,7 +6107,6 @@ packages: dependencies: string-width: 4.2.3 dev: false - optional: true /wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} From c33eed82f6057d7a2167f165d9d339e65aaabae0 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Fri, 22 Mar 2024 08:31:50 +0800 Subject: [PATCH 29/47] do not make typeorm as external --- .../sqlite-plugin/src/utils/module-loader.ts | 22 +- packages/ui/electron.vite.config.ts | 2 +- .../index.cjs | 3 +- .../index.mjs | 1 - .../package-lock.json | 464 +----------------- .../package.json | 3 +- 6 files changed, 6 insertions(+), 489 deletions(-) diff --git a/packages/sqlite-plugin/src/utils/module-loader.ts b/packages/sqlite-plugin/src/utils/module-loader.ts index 32521e4..d6e1135 100644 --- a/packages/sqlite-plugin/src/utils/module-loader.ts +++ b/packages/sqlite-plugin/src/utils/module-loader.ts @@ -4,24 +4,6 @@ const isRunFromUi = Boolean(process.env.MAIN_BOSSGEEKGO_UI_RUN_MODE) const isUiDev = process.env.NODE_ENV === 'development' export function requireTypeorm () { - let typeorm: typeof typeormType - // production - if ( - isRunFromUi && !isUiDev - ) { - const electron = require('electron') - const runtimeDependencies = require( - path.resolve( - electron.app.getAppPath(), - '..', - 'external-node-runtime-dependencies/index.cjs' - ) - ) - typeorm = runtimeDependencies.typeorm - } else { - const importResult = require('typeorm') - typeorm = importResult - } - - return typeorm + const importResult = require('typeorm') + return importResult } \ No newline at end of file diff --git a/packages/ui/electron.vite.config.ts b/packages/ui/electron.vite.config.ts index e1c5d08..2209bb8 100644 --- a/packages/ui/electron.vite.config.ts +++ b/packages/ui/electron.vite.config.ts @@ -9,7 +9,7 @@ export default defineConfig({ main: { build: { rollupOptions: { - external: ['puppeteer', 'puppeteer-extra', 'puppeteer-extra-plugin-stealth', '@puppeteer/browsers', 'find-chrome-bin', 'typeorm'] + external: ['puppeteer', 'puppeteer-extra', 'puppeteer-extra-plugin-stealth', '@puppeteer/browsers', 'find-chrome-bin'] } }, plugins: [ diff --git a/packages/ui/external-node-runtime-dependencies/index.cjs b/packages/ui/external-node-runtime-dependencies/index.cjs index 3e7323b..c91f535 100644 --- a/packages/ui/external-node-runtime-dependencies/index.cjs +++ b/packages/ui/external-node-runtime-dependencies/index.cjs @@ -1,6 +1,5 @@ Object.assign(module.exports, { puppeteerExtra: require('puppeteer-extra'), PuppeteerExtraPluginStealth: require('puppeteer-extra-plugin-stealth'), - puppeteerManager: require('@puppeteer/browsers'), - typeorm: require('typeorm') + puppeteerManager: require('@puppeteer/browsers') }) diff --git a/packages/ui/external-node-runtime-dependencies/index.mjs b/packages/ui/external-node-runtime-dependencies/index.mjs index e1f4ce4..844b33d 100644 --- a/packages/ui/external-node-runtime-dependencies/index.mjs +++ b/packages/ui/external-node-runtime-dependencies/index.mjs @@ -2,4 +2,3 @@ export * as puppeteerExtra from 'puppeteer-extra' export * as PuppeteerExtraPluginStealth from 'puppeteer-extra-plugin-stealth' export * as puppeteerManager from '@puppeteer/browsers' export * as findChromeBin from 'find-chrome-bin' -export * as typeorm from 'typeorm' diff --git a/packages/ui/external-node-runtime-dependencies/package-lock.json b/packages/ui/external-node-runtime-dependencies/package-lock.json index 7d8b6e8..e324eb9 100644 --- a/packages/ui/external-node-runtime-dependencies/package-lock.json +++ b/packages/ui/external-node-runtime-dependencies/package-lock.json @@ -13,8 +13,7 @@ "find-chrome-bin": "^2.0.1", "puppeteer": "20.1.0", "puppeteer-extra": "3.3.6", - "puppeteer-extra-plugin-stealth": "2.11.2", - "typeorm": "0.3.11" + "puppeteer-extra-plugin-stealth": "2.11.2" } }, "node_modules/@babel/code-frame": { @@ -50,17 +49,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/runtime": { - "version": "7.24.1", - "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.24.1.tgz", - "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@puppeteer/browsers": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/@puppeteer/browsers/-/browsers-2.0.0.tgz", @@ -81,11 +69,6 @@ "node": ">=18" } }, - "node_modules/@sqltools/formatter": { - "version": "1.2.5", - "resolved": "https://registry.npmmirror.com/@sqltools/formatter/-/formatter-1.2.5.tgz", - "integrity": "sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==" - }, "node_modules/@tootallnate/quickjs-emscripten": { "version": "0.23.0", "resolved": "https://registry.npmmirror.com/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", @@ -152,19 +135,6 @@ "node": ">=4" } }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" - }, - "node_modules/app-root-path": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/app-root-path/-/app-root-path-3.1.0.tgz", - "integrity": "sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==", - "engines": { - "node": ">= 6.0.0" - } - }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", @@ -294,119 +264,6 @@ "devtools-protocol": "*" } }, - "node_modules/cli-highlight": { - "version": "2.1.11", - "resolved": "https://registry.npmmirror.com/cli-highlight/-/cli-highlight-2.1.11.tgz", - "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", - "dependencies": { - "chalk": "^4.0.0", - "highlight.js": "^10.7.1", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^16.0.0" - }, - "bin": { - "highlight": "bin/highlight" - }, - "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" - } - }, - "node_modules/cli-highlight/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-highlight/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cli-highlight/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cli-highlight/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/cli-highlight/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/cli-highlight/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-highlight/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-highlight/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cli-highlight/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "engines": { - "node": ">=10" - } - }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmmirror.com/cliui/-/cliui-8.0.1.tgz", @@ -485,17 +342,6 @@ "node": ">= 14" } }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmmirror.com/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - } - }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", @@ -540,14 +386,6 @@ "optional": true, "peer": true }, - "node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmmirror.com/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", - "engines": { - "node": ">=12" - } - }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -800,14 +638,6 @@ "node": ">=4" } }, - "node_modules/highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", - "engines": { - "node": "*" - } - }, "node_modules/http-proxy-agent": { "version": "7.0.1", "resolved": "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-7.0.1.tgz", @@ -1040,17 +870,6 @@ "node": ">=0.10.0" } }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmmirror.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", @@ -1061,16 +880,6 @@ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, "node_modules/netmask": { "version": "2.0.2", "resolved": "https://registry.npmmirror.com/netmask/-/netmask-2.0.2.tgz", @@ -1100,14 +909,6 @@ } } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", @@ -1171,24 +972,6 @@ "node": ">=8" } }, - "node_modules/parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "dependencies": { - "parse5": "^6.0.1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -1637,16 +1420,6 @@ "node": ">= 6" } }, - "node_modules/reflect-metadata": { - "version": "0.1.14", - "resolved": "https://registry.npmmirror.com/reflect-metadata/-/reflect-metadata-0.1.14.tgz", - "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==" - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", @@ -1679,23 +1452,6 @@ "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, - "node_modules/sax": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmmirror.com/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, "node_modules/shallow-clone": { "version": "0.1.2", "resolved": "https://registry.npmmirror.com/shallow-clone/-/shallow-clone-0.1.2.tgz", @@ -1853,25 +1609,6 @@ "streamx": "^2.15.0" } }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmmirror.com/through/-/through-2.3.8.tgz", @@ -1887,177 +1624,6 @@ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, - "node_modules/typeorm": { - "version": "0.3.11", - "resolved": "https://registry.npmmirror.com/typeorm/-/typeorm-0.3.11.tgz", - "integrity": "sha512-pzdOyWbVuz/z8Ww6gqvBW4nylsM0KLdUCDExr2gR20/x1khGSVxQkjNV/3YqliG90jrWzrknYbYscpk8yxFJVg==", - "dependencies": { - "@sqltools/formatter": "^1.2.2", - "app-root-path": "^3.0.0", - "buffer": "^6.0.3", - "chalk": "^4.1.0", - "cli-highlight": "^2.1.11", - "date-fns": "^2.28.0", - "debug": "^4.3.3", - "dotenv": "^16.0.0", - "glob": "^7.2.0", - "js-yaml": "^4.1.0", - "mkdirp": "^1.0.4", - "reflect-metadata": "^0.1.13", - "sha.js": "^2.4.11", - "tslib": "^2.3.1", - "uuid": "^8.3.2", - "xml2js": "^0.4.23", - "yargs": "^17.3.1" - }, - "bin": { - "typeorm": "cli.js", - "typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js", - "typeorm-ts-node-esm": "cli-ts-node-esm.js" - }, - "engines": { - "node": ">= 12.9.0" - }, - "peerDependencies": { - "@google-cloud/spanner": "^5.18.0", - "@sap/hana-client": "^2.12.25", - "better-sqlite3": "^7.1.2 || ^8.0.0", - "hdb-pool": "^0.1.6", - "ioredis": "^5.0.4", - "mongodb": "^3.6.0", - "mssql": "^7.3.0", - "mysql2": "^2.2.5", - "oracledb": "^5.1.0", - "pg": "^8.5.1", - "pg-native": "^3.0.0", - "pg-query-stream": "^4.0.0", - "redis": "^3.1.1 || ^4.0.0", - "sql.js": "^1.4.0", - "sqlite3": "^5.0.3", - "ts-node": "^10.7.0", - "typeorm-aurora-data-api-driver": "^2.0.0" - }, - "peerDependenciesMeta": { - "@google-cloud/spanner": { - "optional": true - }, - "@sap/hana-client": { - "optional": true - }, - "better-sqlite3": { - "optional": true - }, - "hdb-pool": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "mongodb": { - "optional": true - }, - "mssql": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "oracledb": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-native": { - "optional": true - }, - "pg-query-stream": { - "optional": true - }, - "redis": { - "optional": true - }, - "sql.js": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "ts-node": { - "optional": true - }, - "typeorm-aurora-data-api-driver": { - "optional": true - } - } - }, - "node_modules/typeorm/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/typeorm/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmmirror.com/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/typeorm/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/typeorm/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/typeorm/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/typeorm/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/typeorm/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/unbzip2-stream": { "version": "1.4.3", "resolved": "https://registry.npmmirror.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", @@ -2093,14 +1659,6 @@ "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -2182,26 +1740,6 @@ } } }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmmirror.com/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "engines": { - "node": ">=4.0" - } - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz", diff --git a/packages/ui/external-node-runtime-dependencies/package.json b/packages/ui/external-node-runtime-dependencies/package.json index 19f5c07..8cc47a8 100644 --- a/packages/ui/external-node-runtime-dependencies/package.json +++ b/packages/ui/external-node-runtime-dependencies/package.json @@ -12,8 +12,7 @@ "find-chrome-bin": "^2.0.1", "puppeteer": "20.1.0", "puppeteer-extra": "3.3.6", - "puppeteer-extra-plugin-stealth": "2.11.2", - "typeorm": "0.3.11" + "puppeteer-extra-plugin-stealth": "2.11.2" }, "packageManager": "npm" } From f69b597cd729c1f731c1bf744a14c2461c3b99ed Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Fri, 22 Mar 2024 09:10:35 +0800 Subject: [PATCH 30/47] try to fix production package cannot run due to `cannot find module cli-highlight` --- packages/sqlite-plugin/package.json | 3 ++- packages/sqlite-plugin/src/index.ts | 2 ++ pnpm-lock.yaml | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/sqlite-plugin/package.json b/packages/sqlite-plugin/package.json index 6a7ca41..f2f2336 100644 --- a/packages/sqlite-plugin/package.json +++ b/packages/sqlite-plugin/package.json @@ -4,10 +4,11 @@ "description": "", "main": "dist/index.js", "dependencies": { + "cli-highlight": "^2.1.11", "reflect-metadata": "^0.2.1", "sqlite3": "5.1.6", - "typeorm": "0.3.11", "ts-node": "^10.9.2", + "typeorm": "0.3.11", "typescript": "^5.3.3" }, "scripts": { diff --git a/packages/sqlite-plugin/src/index.ts b/packages/sqlite-plugin/src/index.ts index 0ad3edf..2381f86 100644 --- a/packages/sqlite-plugin/src/index.ts +++ b/packages/sqlite-plugin/src/index.ts @@ -14,6 +14,8 @@ import { BossActiveStatusRecord } from "./entity/BossActiveStatusRecord"; import { UserInfo } from "./entity/UserInfo"; import sqlite3 from 'sqlite3'; +import * as cliHighlight from 'cli-highlight'; +void cliHighlight; function initDb(dbFilePath) { const { DataSource } = requireTypeorm() diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 58696ba..340ff28 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -70,6 +70,9 @@ importers: packages/sqlite-plugin: dependencies: + cli-highlight: + specifier: ^2.1.11 + version: 2.1.11 reflect-metadata: specifier: ^0.2.1 version: 0.2.1 From ca333ce2dab02b19a751eacdca6eb16a09e62672 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Fri, 22 Mar 2024 09:14:18 +0800 Subject: [PATCH 31/47] fix stdio is invalid issue on Windows --- .../run-core-of-geek-auto-start-chat-with-boss/daemon-main.mjs | 2 +- .../main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts | 2 +- packages/ui/src/main/window/mainWindow.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/run-core-of-geek-auto-start-chat-with-boss/daemon-main.mjs b/packages/run-core-of-geek-auto-start-chat-with-boss/daemon-main.mjs index 8c50203..d2b2293 100644 --- a/packages/run-core-of-geek-auto-start-chat-with-boss/daemon-main.mjs +++ b/packages/run-core-of-geek-auto-start-chat-with-boss/daemon-main.mjs @@ -21,7 +21,7 @@ function runWithDaemon () { 'main.mjs' )], { - stdio: [process.stdin, process.stdout, process.stderr, 'pipe', 'ipc'], + stdio: ['inherit', 'inherit', 'inherit', 'pipe', 'ipc'], env: { ...process.env, MAIN_BOSSGEEKGO_RERUN_INTERVAL: rerunInterval diff --git a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts index 537a56d..0a015b3 100644 --- a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts +++ b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts @@ -13,7 +13,7 @@ const rerunInterval = (() => { })() function runWithDaemon() { const subProcessOfCore = childProcess.spawn(process.argv[0], process.argv.slice(1), { - stdio: [process.stdin, process.stdout, process.stderr, 'pipe', 'ipc'], + stdio: ['inherit', 'inherit', 'inherit', 'pipe', 'ipc'], env: { ...process.env, MAIN_BOSSGEEKGO_UI_RUN_MODE: 'geekAutoStartWithBossMain' diff --git a/packages/ui/src/main/window/mainWindow.ts b/packages/ui/src/main/window/mainWindow.ts index a0f5ae0..624dc29 100644 --- a/packages/ui/src/main/window/mainWindow.ts +++ b/packages/ui/src/main/window/mainWindow.ts @@ -128,7 +128,7 @@ export function createMainWindow(): void { } subProcessOfPuppeteer = childProcess.spawn(process.argv[0], process.argv.slice(1), { env: subProcessEnv, - stdio: [process.stdin, process.stdout, process.stderr, 'pipe', 'ipc'] + stdio: ['inherit', 'inherit', 'inherit', 'pipe', 'ipc'] }) console.log(subProcessOfPuppeteer) return new Promise((resolve, reject) => { From 3ea1f2e22ca698b03d29628d5639854e08e46b8c Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Fri, 22 Mar 2024 09:45:26 +0800 Subject: [PATCH 32/47] use cliHighlight to prevent it being removed by compiler --- packages/sqlite-plugin/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sqlite-plugin/src/index.ts b/packages/sqlite-plugin/src/index.ts index 2381f86..f7ad19e 100644 --- a/packages/sqlite-plugin/src/index.ts +++ b/packages/sqlite-plugin/src/index.ts @@ -15,7 +15,7 @@ import { UserInfo } from "./entity/UserInfo"; import sqlite3 from 'sqlite3'; import * as cliHighlight from 'cli-highlight'; -void cliHighlight; +Boolean(cliHighlight); function initDb(dbFilePath) { const { DataSource } = requireTypeorm() From ebf7d18a10b82c4bb4f3c40c553bfd64bfc33a8a Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sat, 23 Mar 2024 08:59:34 +0800 Subject: [PATCH 33/47] fix some error cannot be caught due to error throw by async promise executor cannot cause promise transition to rejected status --- .../geek-auto-start-chat-with-boss/index.mjs | 182 +++++++++--------- 1 file changed, 93 insertions(+), 89 deletions(-) diff --git a/packages/geek-auto-start-chat-with-boss/index.mjs b/packages/geek-auto-start-chat-with-boss/index.mjs index 5b21460..8d37672 100644 --- a/packages/geek-auto-start-chat-with-boss/index.mjs +++ b/packages/geek-auto-start-chat-with-boss/index.mjs @@ -175,101 +175,105 @@ export async function mainLoop (hooks) { try { const { targetJobElProxy, targetJobIndex } = await new Promise(async (resolve, reject) => { - // job list - const recommendJobListElProxy = await page.$('.job-list-container .rec-job-list') - - let jobListData = await page.evaluate( - ` - document.querySelector('.job-recommend-main')?.__vue__?.jobList - ` - ) - // when disable company allow list, we will believe that the first one in the list is your expect job. - let targetJobIndex = enableCompanyAllowList ? jobListData.findIndex( - it => !blockBossNotNewChat.has(it.encryptBossId) && [...expectCompanySet].find(name => it.brandName.includes(name)) - ) : jobListData.findIndex( - it => !blockBossNotNewChat.has(it.encryptBossId) - ) - - let hasReachLastPage = false - - let requestNextPagePromiseWithResolver = null - page.on( - 'request', - function reqHandler (request) { - if (request.url().startsWith('https://www.zhipin.com/wapi/zpgeek/pc/recommend/job/list.json')) { - requestNextPagePromiseWithResolver = (() => { - const o = {} - o.promise = new Promise((resolve, reject) => { - o.resolve = resolve - o.reject = reject - }) - return o - })() - page.off(reqHandler) - - page.on( - 'response', - function resHandler (response) { - if (response.request() === request) { - requestNextPagePromiseWithResolver?.resolve() - page.off(resHandler) - } - } - ) - } - } - ) - - while (targetJobIndex < 0 && !hasReachLastPage) { - // fetch new - const recommendJobListElBBox = await recommendJobListElProxy.boundingBox() - const windowInnerHeight = await page.evaluate('window.innerHeight') - await page.mouse.move( - recommendJobListElBBox.x + recommendJobListElBBox.width / 2, - windowInnerHeight / 2 - ) - let scrolledHeight = 0 - const increase = 40 + Math.floor(30 * Math.random()) - - while ( - !requestNextPagePromiseWithResolver && - !hasReachLastPage - ) { - scrolledHeight += increase - await page.mouse.wheel({deltaY: increase}); - await sleep(1) - await requestNextPagePromiseWithResolver?.promise - hasReachLastPage = await page.evaluate(` - !(document.querySelector('.job-recommend-main')?.__vue__?.hasMore) - `) - if (hasReachLastPage) { - console.log(`Arrive the terminal of the job list.`) - } - } - requestNextPagePromiseWithResolver = null - - await sleep(3000) - jobListData = await page.evaluate( + try { + // job list + const recommendJobListElProxy = await page.$('.job-list-container .rec-job-list') + + let jobListData = await page.evaluate( ` document.querySelector('.job-recommend-main')?.__vue__?.jobList ` ) - targetJobIndex = jobListData.findIndex(it => !blockBossNotNewChat.has(it.encryptBossId) && [...expectCompanySet].find(name => it.brandName.includes(name))) - } + // when disable company allow list, we will believe that the first one in the list is your expect job. + let targetJobIndex = enableCompanyAllowList ? jobListData.findIndex( + it => !blockBossNotNewChat.has(it.encryptBossId) && [...expectCompanySet].find(name => it.brandName.includes(name)) + ) : jobListData.findIndex( + it => !blockBossNotNewChat.has(it.encryptBossId) + ) - if (targetJobIndex < 0 && hasReachLastPage) { - // has reach last page and not find target job - reject(new Error('CANNOT_FIND_EXCEPT_JOB')) - return - } - - const recommendJobItemList = await recommendJobListElProxy.$$('ul.rec-job-list > li') - resolve( - { - targetJobElProxy: recommendJobItemList[targetJobIndex], - targetJobIndex + let hasReachLastPage = false + + let requestNextPagePromiseWithResolver = null + page.on( + 'request', + function reqHandler (request) { + if (request.url().startsWith('https://www.zhipin.com/wapi/zpgeek/pc/recommend/job/list.json')) { + requestNextPagePromiseWithResolver = (() => { + const o = {} + o.promise = new Promise((resolve, reject) => { + o.resolve = resolve + o.reject = reject + }) + return o + })() + page.off(reqHandler) + + page.on( + 'response', + function resHandler (response) { + if (response.request() === request) { + requestNextPagePromiseWithResolver?.resolve() + page.off(resHandler) + } + } + ) + } + } + ) + + while (targetJobIndex < 0 && !hasReachLastPage) { + // fetch new + const recommendJobListElBBox = await recommendJobListElProxy.boundingBox() + const windowInnerHeight = await page.evaluate('window.innerHeight') + await page.mouse.move( + recommendJobListElBBox.x + recommendJobListElBBox.width / 2, + windowInnerHeight / 2 + ) + let scrolledHeight = 0 + const increase = 40 + Math.floor(30 * Math.random()) + + while ( + !requestNextPagePromiseWithResolver && + !hasReachLastPage + ) { + scrolledHeight += increase + await page.mouse.wheel({deltaY: increase}); + await sleep(1) + await requestNextPagePromiseWithResolver?.promise + hasReachLastPage = await page.evaluate(` + !(document.querySelector('.job-recommend-main')?.__vue__?.hasMore) + `) + if (hasReachLastPage) { + console.log(`Arrive the terminal of the job list.`) + } + } + requestNextPagePromiseWithResolver = null + + await sleep(3000) + jobListData = await page.evaluate( + ` + document.querySelector('.job-recommend-main')?.__vue__?.jobList + ` + ) + targetJobIndex = jobListData.findIndex(it => !blockBossNotNewChat.has(it.encryptBossId) && [...expectCompanySet].find(name => it.brandName.includes(name))) } - ) + + if (targetJobIndex < 0 && hasReachLastPage) { + // has reach last page and not find target job + reject(new Error('CANNOT_FIND_EXCEPT_JOB')) + return + } + + const recommendJobItemList = await recommendJobListElProxy.$$('ul.rec-job-list > li') + resolve( + { + targetJobElProxy: recommendJobItemList[targetJobIndex], + targetJobIndex + } + ) + } catch(err) { + reject(err) + } }) if (targetJobIndex >= 0) { // scroll that target element into view From 466ea57fd97675df789c99f016d5ae3e20b62fab Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sat, 23 Mar 2024 09:07:39 +0800 Subject: [PATCH 34/47] remove useless debugger --- packages/sqlite-plugin/src/index.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/sqlite-plugin/src/index.ts b/packages/sqlite-plugin/src/index.ts index f7ad19e..ff07b44 100644 --- a/packages/sqlite-plugin/src/index.ts +++ b/packages/sqlite-plugin/src/index.ts @@ -74,7 +74,6 @@ export default class SqlitePlugin { hooks.newChatStartup.tapPromise("SqlitePlugin", async (_jobInfo) => { console.log(_jobInfo); - debugger; const ds = await this.initPromise; const { bossInfo, brandComInfo, jobInfo } = _jobInfo; From 778943a572c20712f64e0fa4c8f4079d0d37e1f8 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sun, 24 Mar 2024 10:51:45 +0800 Subject: [PATCH 35/47] add suicide timer in auto chat daemon for parent and child process don't have any communication after child process spawned in 10s. --- .../ui/src/common/enums/auto-start-chat.ts | 3 +- .../index.ts | 50 ++++++++++++++++++- packages/ui/src/main/window/mainWindow.ts | 10 +++- 3 files changed, 60 insertions(+), 3 deletions(-) diff --git a/packages/ui/src/common/enums/auto-start-chat.ts b/packages/ui/src/common/enums/auto-start-chat.ts index 78cbfc0..5be6e34 100644 --- a/packages/ui/src/common/enums/auto-start-chat.ts +++ b/packages/ui/src/common/enums/auto-start-chat.ts @@ -4,5 +4,6 @@ export enum AUTO_CHAT_ERROR_EXIT_CODE { LOGIN_STATUS_INVALID = 82, ERR_INTERNET_DISCONNECTED = 83, ACCESS_IS_DENIED = 84, - PUPPETEER_IS_NOT_EXECUTABLE = 85 + PUPPETEER_IS_NOT_EXECUTABLE = 85, + DAEMON_PROCESS_SUICIDE = 86 } diff --git a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts index 0a015b3..35cc3bc 100644 --- a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts +++ b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts @@ -2,6 +2,9 @@ import { sleep } from '@geekgeekrun/utils/sleep.mjs' import childProcess from 'node:child_process' import { AUTO_CHAT_ERROR_EXIT_CODE } from '../../../common/enums/auto-start-chat' import { app } from 'electron' +import fs from 'node:fs' +import { pipeWriteRegardlessError } from '../utils/pipe' +import * as JSONStream from 'JSONStream' const rerunInterval = (() => { let v = Number(process.env.MAIN_BOSSGEEKGO_RERUN_INTERVAL) @@ -39,10 +42,55 @@ function runWithDaemon() { runWithDaemon() }) } + +// suicide timer for parent and child process don't have any communication after child process spawned. +let suicideTimer: NodeJS.Timeout | null = null +const setSuicideTimer = () => + (suicideTimer = setTimeout(() => { + app.exit(AUTO_CHAT_ERROR_EXIT_CODE.DAEMON_PROCESS_SUICIDE) + }, 10000)) +const clearSuicideTimer = () => { + if (suicideTimer) { + clearTimeout(suicideTimer) + } + suicideTimer = null +} + export function runAutoChatWithDaemon() { app.dock?.hide() process.on('disconnect', () => { app.exit() }) - runWithDaemon() + setSuicideTimer() + + let pipe: null | fs.WriteStream = null + try { + pipe = fs.createWriteStream(null, { fd: 3 }) + } catch { + console.error('pipe is not available') + app.exit(1) + } + + const pipeForRead: fs.ReadStream = fs.createReadStream(null, { fd: 3 }) + const pipeForReadWithJsonParser = pipeForRead.pipe(JSONStream.parse()) + pipeForReadWithJsonParser?.on('data', function waitForCanRun(data) { + if (data.type === 'GEEK_AUTO_START_CHAT_CAN_BE_RUN') { + pipeForReadWithJsonParser.off('data', waitForCanRun) + clearSuicideTimer() + runWithDaemon() + + // if don't call close, when kill child process, child process will ANR. + pipeForRead.close() + } + }) + process.on('SIGINT', () => { + process.exit() + }) + + pipeWriteRegardlessError( + pipe, + JSON.stringify({ + type: 'DAEMON_PROCESS_STARTUP' + }) + ) } diff --git a/packages/ui/src/main/window/mainWindow.ts b/packages/ui/src/main/window/mainWindow.ts index 624dc29..6850a2d 100644 --- a/packages/ui/src/main/window/mainWindow.ts +++ b/packages/ui/src/main/window/mainWindow.ts @@ -135,6 +135,14 @@ export function createMainWindow(): void { subProcessOfPuppeteer!.stdio[3]!.pipe(JSONStream.parse()).on('data', async (raw) => { const data = raw switch (data.type) { + case 'DAEMON_PROCESS_STARTUP': { + subProcessOfPuppeteer!.stdio[3]!.write( + JSON.stringify({ + type: 'GEEK_AUTO_START_CHAT_CAN_BE_RUN' + }) + ) + break + } case 'GEEK_AUTO_START_CHAT_WITH_BOSS_STARTED': { resolve(data) break @@ -228,7 +236,7 @@ export function createMainWindow(): void { ipcMain.handle('stop-geek-auto-start-chat-with-boss', async () => { mainWindow?.webContents.send('geek-auto-start-chat-with-boss-stopping') - subProcessOfPuppeteer?.kill('SIGINT') + subProcessOfPuppeteer?.kill() }) let subProcessOfBossZhipinLoginPageWithPreloadExtension: ChildProcess | null = null From a72fcaf00f567743fddb8aeee5a701fa6de0e9a4 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sun, 24 Mar 2024 11:17:03 +0800 Subject: [PATCH 36/47] refactor all import in src/main to async import --- packages/ui/src/main/index.ts | 62 ++++++++++++++++++++--------------- 1 file changed, 35 insertions(+), 27 deletions(-) diff --git a/packages/ui/src/main/index.ts b/packages/ui/src/main/index.ts index c6e1020..e5f00a0 100644 --- a/packages/ui/src/main/index.ts +++ b/packages/ui/src/main/index.ts @@ -1,29 +1,37 @@ -import { runAutoChat } from './flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index' -import { runAutoChatWithDaemon } from './flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index' -import { openSettingWindow } from './flow/OPEN_SETTING_WINDOW' -import { checkAndDownloadDependenciesForInit } from './flow/CHECK_AND_DOWNLOAD_DEPENDENCIES/index' -import { launchBossZhipinLoginPageWithPreloadExtension } from './flow/LAUNCH_BOSS_ZHIPIN_LOGIN_PAGE_WITH_PRELOAD_EXTENSION' - const runMode = process.env.MAIN_BOSSGEEKGO_UI_RUN_MODE -switch (runMode) { - case 'geekAutoStartWithBossMain': { - runAutoChat() - break + +;(async () => { + switch (runMode) { + case 'geekAutoStartWithBossMain': { + const { runAutoChat } = await import('./flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index') + runAutoChat() + break + } + case 'geekAutoStartWithBossDaemon': { + const { runAutoChatWithDaemon } = await import( + './flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index' + ) + runAutoChatWithDaemon() + break + } + case 'checkAndDownloadDependenciesForInit': { + const { checkAndDownloadDependenciesForInit } = await import( + './flow/CHECK_AND_DOWNLOAD_DEPENDENCIES/index' + ) + checkAndDownloadDependenciesForInit() + break + } + case 'launchBossZhipinLoginPageWithPreloadExtension': { + const { launchBossZhipinLoginPageWithPreloadExtension } = await import( + './flow/LAUNCH_BOSS_ZHIPIN_LOGIN_PAGE_WITH_PRELOAD_EXTENSION' + ) + launchBossZhipinLoginPageWithPreloadExtension() + break + } + default: { + const { openSettingWindow } = await import('./flow/OPEN_SETTING_WINDOW') + openSettingWindow() + break + } } - case 'geekAutoStartWithBossDaemon': { - runAutoChatWithDaemon() - break - } - case 'checkAndDownloadDependenciesForInit': { - checkAndDownloadDependenciesForInit() - break - } - case 'launchBossZhipinLoginPageWithPreloadExtension': { - launchBossZhipinLoginPageWithPreloadExtension() - break - } - default: { - openSettingWindow() - break - } -} +})() From 3a31f7d1863042dc78b245d2c6c65d101f5559c1 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sun, 24 Mar 2024 13:36:27 +0800 Subject: [PATCH 37/47] add suicide timer in auto chat main for parent and child process don't have any communication after child process spawned in 10s. --- .../ui/src/common/enums/auto-start-chat.ts | 3 +- .../index.ts | 24 +++++++-- .../index.ts | 50 ++++++++++++++++++- packages/ui/src/main/index.ts | 6 ++- packages/ui/src/main/window/mainWindow.ts | 2 +- 5 files changed, 76 insertions(+), 9 deletions(-) diff --git a/packages/ui/src/common/enums/auto-start-chat.ts b/packages/ui/src/common/enums/auto-start-chat.ts index 5be6e34..a0e001a 100644 --- a/packages/ui/src/common/enums/auto-start-chat.ts +++ b/packages/ui/src/common/enums/auto-start-chat.ts @@ -5,5 +5,6 @@ export enum AUTO_CHAT_ERROR_EXIT_CODE { ERR_INTERNET_DISCONNECTED = 83, ACCESS_IS_DENIED = 84, PUPPETEER_IS_NOT_EXECUTABLE = 85, - DAEMON_PROCESS_SUICIDE = 86 + AUTO_START_CHAT_DAEMON_PROCESS_SUICIDE = 86, + AUTO_START_CHAT_MAIN_PROCESS_SUICIDE = 87, } diff --git a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts index 35cc3bc..a98aae4 100644 --- a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts +++ b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_DAEMON/index.ts @@ -2,7 +2,7 @@ import { sleep } from '@geekgeekrun/utils/sleep.mjs' import childProcess from 'node:child_process' import { AUTO_CHAT_ERROR_EXIT_CODE } from '../../../common/enums/auto-start-chat' import { app } from 'electron' -import fs from 'node:fs' +import fs, { WriteStream } from 'node:fs' import { pipeWriteRegardlessError } from '../utils/pipe' import * as JSONStream from 'JSONStream' @@ -23,6 +23,24 @@ function runWithDaemon() { } }) + subProcessOfCore!.stdio[3]!.pipe(JSONStream.parse()).on('data', async (raw) => { + const data = raw + switch (data.type) { + case 'AUTO_START_CHAT_MAIN_PROCESS_STARTUP': { + pipeWriteRegardlessError( + subProcessOfCore!.stdio[3]! as WriteStream, + JSON.stringify({ + type: 'GEEK_AUTO_START_CHAT_CAN_BE_RUN' + }) + ) + break + } + default: { + return + } + } + }) + subProcessOfCore.once('exit', async (exitCode: number) => { if ( [...Object.values(AUTO_CHAT_ERROR_EXIT_CODE)] @@ -47,7 +65,7 @@ function runWithDaemon() { let suicideTimer: NodeJS.Timeout | null = null const setSuicideTimer = () => (suicideTimer = setTimeout(() => { - app.exit(AUTO_CHAT_ERROR_EXIT_CODE.DAEMON_PROCESS_SUICIDE) + app.exit(AUTO_CHAT_ERROR_EXIT_CODE.AUTO_START_CHAT_DAEMON_PROCESS_SUICIDE) }, 10000)) const clearSuicideTimer = () => { if (suicideTimer) { @@ -90,7 +108,7 @@ export function runAutoChatWithDaemon() { pipeWriteRegardlessError( pipe, JSON.stringify({ - type: 'DAEMON_PROCESS_STARTUP' + type: 'AUTO_START_CHAT_DAEMON_PROCESS_STARTUP' }) ) } diff --git a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts index 42cbdbc..f0db5f4 100644 --- a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts +++ b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts @@ -11,6 +11,7 @@ import { pipeWriteRegardlessError } from '../utils/pipe' import { getAnyAvailablePuppeteerExecutable } from '../CHECK_AND_DOWNLOAD_DEPENDENCIES/utils/puppeteer-executable' import { sleep } from '@geekgeekrun/utils/sleep.mjs' import { AUTO_CHAT_ERROR_EXIT_CODE } from '../../../common/enums/auto-start-chat' +import * as JSONStream from 'JSONStream' import SqlitePluginModule from '@geekgeekrun/sqlite-plugin' const { default: SqlitePlugin } = SqlitePluginModule @@ -32,13 +33,15 @@ const initPlugins = (hooks) => { } let isParentProcessDisconnect = false +process.once('disconnect', () => { + isParentProcessDisconnect = true +}) -export const runAutoChat = async () => { +const runAutoChat = async () => { const { initPuppeteer, mainLoop, closeBrowserWindow, autoStartChatEventBus } = await import( '@geekgeekrun/geek-auto-start-chat-with-boss/index.mjs' ) process.on('disconnect', () => { - isParentProcessDisconnect = true closeBrowserWindow() app.exit() }) @@ -130,3 +133,46 @@ export const runAutoChat = async () => { } } } +// suicide timer for parent and child process don't have any communication after child process spawned. +let suicideTimer: NodeJS.Timeout | null = null +const setSuicideTimer = () => + (suicideTimer = setTimeout(() => { + app.exit(AUTO_CHAT_ERROR_EXIT_CODE.AUTO_START_CHAT_MAIN_PROCESS_SUICIDE) + }, 10000)) +const clearSuicideTimer = () => { + if (suicideTimer) { + clearTimeout(suicideTimer) + } + suicideTimer = null +} + +export const waitForProcessHandShakeAndRunAutoChat = () => { + setSuicideTimer() + + const pipeForRead: fs.ReadStream = fs.createReadStream(null, { fd: 3 }) + const pipeForReadWithJsonParser = pipeForRead.pipe(JSONStream.parse()) + pipeForReadWithJsonParser?.on('data', function waitForCanRun(data) { + if (data.type === 'GEEK_AUTO_START_CHAT_CAN_BE_RUN') { + pipeForReadWithJsonParser.off('data', waitForCanRun) + clearSuicideTimer() + runAutoChat() + + // if don't call close, when kill child process, child process will ANR. + pipeForRead.close() + } + }) + + let pipe: null | fs.WriteStream = null + try { + pipe = fs.createWriteStream(null, { fd: 3 }) + } catch { + console.error('pipe is not available') + app.exit(1) + } + pipeWriteRegardlessError( + pipe, + JSON.stringify({ + type: 'AUTO_START_CHAT_MAIN_PROCESS_STARTUP' + }) + ) +} diff --git a/packages/ui/src/main/index.ts b/packages/ui/src/main/index.ts index e5f00a0..942bd62 100644 --- a/packages/ui/src/main/index.ts +++ b/packages/ui/src/main/index.ts @@ -3,8 +3,10 @@ const runMode = process.env.MAIN_BOSSGEEKGO_UI_RUN_MODE ;(async () => { switch (runMode) { case 'geekAutoStartWithBossMain': { - const { runAutoChat } = await import('./flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index') - runAutoChat() + const { waitForProcessHandShakeAndRunAutoChat } = await import( + './flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index' + ) + waitForProcessHandShakeAndRunAutoChat() break } case 'geekAutoStartWithBossDaemon': { diff --git a/packages/ui/src/main/window/mainWindow.ts b/packages/ui/src/main/window/mainWindow.ts index 6850a2d..9076ea7 100644 --- a/packages/ui/src/main/window/mainWindow.ts +++ b/packages/ui/src/main/window/mainWindow.ts @@ -135,7 +135,7 @@ export function createMainWindow(): void { subProcessOfPuppeteer!.stdio[3]!.pipe(JSONStream.parse()).on('data', async (raw) => { const data = raw switch (data.type) { - case 'DAEMON_PROCESS_STARTUP': { + case 'AUTO_START_CHAT_DAEMON_PROCESS_STARTUP': { subProcessOfPuppeteer!.stdio[3]!.write( JSON.stringify({ type: 'GEEK_AUTO_START_CHAT_CAN_BE_RUN' From fdf9081a8f02604b05e55fd4d9a24aae60cec0db Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sun, 24 Mar 2024 14:58:34 +0800 Subject: [PATCH 38/47] once pipe for process communication get bad, exit process immediately --- packages/ui/src/main/flow/utils/pipe.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/ui/src/main/flow/utils/pipe.ts b/packages/ui/src/main/flow/utils/pipe.ts index 6337a0a..d270be4 100644 --- a/packages/ui/src/main/flow/utils/pipe.ts +++ b/packages/ui/src/main/flow/utils/pipe.ts @@ -1,5 +1,6 @@ import * as fs from 'fs' import { type Stream } from 'stream' +import { app } from 'electron' const pipeSet = new WeakSet() export const pipeWriteRegardlessError = async ( @@ -10,8 +11,14 @@ export const pipeWriteRegardlessError = async ( if (pipe && !pipeSet.has(pipe)) { pipeSet.add(pipe) pipe.on('error', (error) => { - console.log('pipe.write Error', error) + void error }) } - return pipe?.write(chunk, option, () => {}) + return pipe?.write(chunk, option, (error) => { + if (error) { + console.log('pipe.write Error', error) + app.exit(1) + process.exit(1) + } + }) } From a28595da9a7872bdafc0b0594e70a09fc80d8865 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sun, 24 Mar 2024 14:59:00 +0800 Subject: [PATCH 39/47] remove useless `console.log(subProcessOfPuppeteer)` --- packages/ui/src/main/window/mainWindow.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/src/main/window/mainWindow.ts b/packages/ui/src/main/window/mainWindow.ts index 9076ea7..932f3e9 100644 --- a/packages/ui/src/main/window/mainWindow.ts +++ b/packages/ui/src/main/window/mainWindow.ts @@ -130,7 +130,7 @@ export function createMainWindow(): void { env: subProcessEnv, stdio: ['inherit', 'inherit', 'inherit', 'pipe', 'ipc'] }) - console.log(subProcessOfPuppeteer) + // console.log(subProcessOfPuppeteer) return new Promise((resolve, reject) => { subProcessOfPuppeteer!.stdio[3]!.pipe(JSONStream.parse()).on('data', async (raw) => { const data = raw From 5ca62ade5510094bb64e3d8c84a93d7db6d39eae Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Sun, 24 Mar 2024 19:47:34 +0800 Subject: [PATCH 40/47] add error catcher for pipeForRead; remove the logic exit process on pipe error --- .../src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts | 3 +++ packages/ui/src/main/flow/utils/pipe.ts | 3 --- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts index f0db5f4..74adbaf 100644 --- a/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts +++ b/packages/ui/src/main/flow/GEEK_AUTO_START_CHAT_WITH_BOSS_MAIN/index.ts @@ -150,6 +150,9 @@ export const waitForProcessHandShakeAndRunAutoChat = () => { setSuicideTimer() const pipeForRead: fs.ReadStream = fs.createReadStream(null, { fd: 3 }) + pipeForRead.on('error', () => { + return + }) const pipeForReadWithJsonParser = pipeForRead.pipe(JSONStream.parse()) pipeForReadWithJsonParser?.on('data', function waitForCanRun(data) { if (data.type === 'GEEK_AUTO_START_CHAT_CAN_BE_RUN') { diff --git a/packages/ui/src/main/flow/utils/pipe.ts b/packages/ui/src/main/flow/utils/pipe.ts index d270be4..9e853d2 100644 --- a/packages/ui/src/main/flow/utils/pipe.ts +++ b/packages/ui/src/main/flow/utils/pipe.ts @@ -1,6 +1,5 @@ import * as fs from 'fs' import { type Stream } from 'stream' -import { app } from 'electron' const pipeSet = new WeakSet() export const pipeWriteRegardlessError = async ( @@ -17,8 +16,6 @@ export const pipeWriteRegardlessError = async ( return pipe?.write(chunk, option, (error) => { if (error) { console.log('pipe.write Error', error) - app.exit(1) - process.exit(1) } }) } From c7694968b1b5eb7adee38edfbe8995e96a0e4835 Mon Sep 17 00:00:00 2001 From: geekgeekrun Date: Mon, 25 Mar 2024 00:41:42 +0800 Subject: [PATCH 41/47] update ui text --- packages/ui/src/renderer/src/page/BootstrapSplash/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/src/renderer/src/page/BootstrapSplash/index.vue b/packages/ui/src/renderer/src/page/BootstrapSplash/index.vue index 02bc028..5406698 100644 --- a/packages/ui/src/renderer/src/page/BootstrapSplash/index.vue +++ b/packages/ui/src/renderer/src/page/BootstrapSplash/index.vue @@ -1,6 +1,6 @@