build: initial support for jsr building
This commit is contained in:
parent
c5ce2c321d
commit
9d114a3552
30 changed files with 682 additions and 302 deletions
|
@ -35,6 +35,7 @@
|
|||
"devDependencies": {
|
||||
"@commitlint/cli": "17.6.5",
|
||||
"@commitlint/config-conventional": "17.6.5",
|
||||
"@teidesu/slow-types-compiler": "1.0.2",
|
||||
"@types/node": "20.10.0",
|
||||
"@types/ws": "8.5.4",
|
||||
"@typescript-eslint/eslint-plugin": "6.4.0",
|
||||
|
|
|
@ -16,12 +16,6 @@
|
|||
".": "./src/index.ts",
|
||||
"./utils.js": "./src/utils.ts"
|
||||
},
|
||||
"distOnlyFields": {
|
||||
"exports": {
|
||||
".": "./index.js",
|
||||
"./utils.js": "./utils.js"
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@mtcute/core": "workspace:^",
|
||||
"@mtcute/wasm": "workspace:^",
|
||||
|
|
|
@ -11,14 +11,7 @@
|
|||
"scripts": {
|
||||
"build": "pnpm run -w build-package convert"
|
||||
},
|
||||
"distOnlyFields": {
|
||||
"exports": {
|
||||
".": {
|
||||
"import": "./esm/index.js",
|
||||
"require": "./cjs/index.js"
|
||||
}
|
||||
}
|
||||
},
|
||||
"exports": "./src/index.ts",
|
||||
"dependencies": {
|
||||
"@mtcute/core": "workspace:^"
|
||||
},
|
||||
|
|
|
@ -1,20 +1,27 @@
|
|||
const KNOWN_DECORATORS = ['memoizeGetters', 'makeInspectable']
|
||||
|
||||
module.exports = ({ path, glob, transformFile, packageDir, outDir }) => ({
|
||||
module.exports = ({ path, glob, transformFile, packageDir, outDir, jsr }) => ({
|
||||
esmOnlyDirectives: true,
|
||||
esmImportDirectives: true,
|
||||
final() {
|
||||
const version = require(path.join(packageDir, 'package.json')).version
|
||||
const replaceVersion = (content) => content.replace('%VERSION%', version)
|
||||
|
||||
if (jsr) {
|
||||
transformFile(path.join(outDir, 'network/network-manager.ts'), replaceVersion)
|
||||
} else {
|
||||
transformFile(path.join(outDir, 'cjs/network/network-manager.js'), replaceVersion)
|
||||
transformFile(path.join(outDir, 'esm/network/network-manager.js'), replaceVersion)
|
||||
}
|
||||
|
||||
if (jsr) return
|
||||
|
||||
// make decorators properly tree-shakeable
|
||||
// very fragile, but it works for now :D
|
||||
// skip for jsr for now because types aren't resolved correctly and it breaks everything (TODO: fix this)
|
||||
const decoratorsRegex = new RegExp(
|
||||
`(${KNOWN_DECORATORS.join('|')})\\((.+?)\\);`,
|
||||
'gs',
|
||||
`(${KNOWN_DECORATORS.join('|')})\\((.+?)\\)(?:;|$)`,
|
||||
'gsm',
|
||||
)
|
||||
|
||||
const replaceDecorators = (content, file) => {
|
||||
|
@ -57,7 +64,9 @@ module.exports = ({ path, glob, transformFile, packageDir, outDir }) => ({
|
|||
return content + '\n' + customExports.join('\n') + '\n'
|
||||
}
|
||||
|
||||
for (const f of glob.sync(path.join(outDir, 'esm/highlevel/types/**/*.js'))) {
|
||||
const globSrc = path.join(outDir, jsr ? 'highlevel/types/**/*.ts' : 'esm/highlevel/types/**/*.js')
|
||||
|
||||
for (const f of glob.sync(globSrc)) {
|
||||
transformFile(f, replaceDecorators)
|
||||
}
|
||||
},
|
||||
|
|
|
@ -21,34 +21,6 @@
|
|||
"./methods.js": "./src/highlevel/methods.ts",
|
||||
"./platform.js": "./src/platform.ts"
|
||||
},
|
||||
"distOnlyFields": {
|
||||
"exports": {
|
||||
".": {
|
||||
"import": "./esm/index.js",
|
||||
"require": "./cjs/index.js"
|
||||
},
|
||||
"./utils.js": {
|
||||
"import": "./esm/utils/index.js",
|
||||
"require": "./cjs/utils/index.js"
|
||||
},
|
||||
"./methods.js": {
|
||||
"import": "./esm/highlevel/methods.js",
|
||||
"require": "./cjs/highlevel/methods.js"
|
||||
},
|
||||
"./platform.js": {
|
||||
"import": "./esm/platform.js",
|
||||
"require": "./cjs/platform.js"
|
||||
},
|
||||
"./client.js": {
|
||||
"import": "./esm/highlevel/client.js",
|
||||
"require": "./cjs/highlevel/client.js"
|
||||
},
|
||||
"./worker.js": {
|
||||
"import": "./esm/highlevel/worker/index.js",
|
||||
"require": "./cjs/highlevel/worker/index.js"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@mtcute/tl": "workspace:^",
|
||||
"@mtcute/tl-runtime": "workspace:^",
|
||||
|
|
|
@ -32,7 +32,8 @@ export function isProbablyPlainText(buf: Uint8Array): boolean {
|
|||
}
|
||||
|
||||
// from https://github.com/telegramdesktop/tdesktop/blob/bec39d89e19670eb436dc794a8f20b657cb87c71/Telegram/SourceFiles/ui/image/image.cpp#L225
|
||||
const JPEG_HEADER = () => getPlatform().hexDecode(
|
||||
const JPEG_HEADER = () =>
|
||||
getPlatform().hexDecode(
|
||||
'ffd8ffe000104a46494600010100000100010000ffdb004300281c1e231e1928' +
|
||||
'2321232d2b28303c64413c37373c7b585d4964918099968f808c8aa0b4e6c3a0aad' +
|
||||
'aad8a8cc8ffcbdaeef5ffffff9bc1fffffffaffe6fdfff8ffdb0043012b2d2d3c35' +
|
||||
|
@ -131,5 +132,5 @@ export function svgPathToFile(path: string): Uint8Array {
|
|||
export function extractFileName(path: string): string {
|
||||
if (path.startsWith('file:')) path = path.slice(5)
|
||||
|
||||
return path.split(/[\\/]/).pop()!
|
||||
return path.split(/[\\/]/).pop()!.split('?')[0]
|
||||
}
|
||||
|
|
|
@ -8,8 +8,7 @@ interface PeerDto {
|
|||
usernames: string
|
||||
updated: number
|
||||
phone: string | null
|
||||
// eslint-disable-next-line no-restricted-globals
|
||||
complete: Buffer
|
||||
complete: Uint8Array
|
||||
}
|
||||
|
||||
function mapPeerDto(dto: PeerDto): IPeersRepository.PeerInfo {
|
||||
|
|
|
@ -19,19 +19,7 @@
|
|||
],
|
||||
"exports": {
|
||||
".": "./src/index.ts",
|
||||
"./native.js": "./src/native.ts"
|
||||
},
|
||||
"distOnlyFields": {
|
||||
"exports": {
|
||||
".": {
|
||||
"import": "./esm/index.js",
|
||||
"require": "./cjs/index.js"
|
||||
},
|
||||
"./native.js": {
|
||||
"import": "./esm/native.cjs",
|
||||
"require": "./cjs/native.cjs"
|
||||
}
|
||||
}
|
||||
"./native.js": "./src/native.cjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@mtcute/node": "workspace:^",
|
||||
|
|
|
@ -8,14 +8,7 @@
|
|||
"main": "src/index.ts",
|
||||
"type": "module",
|
||||
"sideEffects": false,
|
||||
"distOnlyFields": {
|
||||
"exports": {
|
||||
".": {
|
||||
"import": "./esm/index.js",
|
||||
"require": "./cjs/index.js"
|
||||
}
|
||||
}
|
||||
},
|
||||
"exports": "./src/index.ts",
|
||||
"scripts": {
|
||||
"build": "pnpm run -w build-package dispatcher",
|
||||
"gen-updates": "node ./scripts/generate.cjs"
|
||||
|
|
|
@ -5,19 +5,13 @@
|
|||
"description": "Support for TDLib and Bot API file ID for mtcute",
|
||||
"author": "alina sireneva <alina@tei.su>",
|
||||
"license": "MIT",
|
||||
"main": "src/index.ts",
|
||||
"type": "module",
|
||||
"sideEffects": false,
|
||||
"scripts": {
|
||||
"build": "pnpm run -w build-package file-id"
|
||||
},
|
||||
"distOnlyFields": {
|
||||
"exports": {
|
||||
".": {
|
||||
"import": "./esm/index.js",
|
||||
"require": "./cjs/index.js"
|
||||
}
|
||||
}
|
||||
".": "./src/index.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@mtcute/tl-runtime": "workspace:^",
|
||||
|
|
|
@ -11,19 +11,10 @@
|
|||
"scripts": {
|
||||
"build": "pnpm run -w build-package html-parser"
|
||||
},
|
||||
"distOnlyFields": {
|
||||
"exports": {
|
||||
".": {
|
||||
"import": "./esm/index.js",
|
||||
"require": "./cjs/index.js"
|
||||
}
|
||||
}
|
||||
},
|
||||
"exports": "./src/index.ts",
|
||||
"dependencies": {
|
||||
"htmlparser2": "^6.0.1",
|
||||
"long": "5.2.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"long": "5.2.3",
|
||||
"@mtcute/core": "workspace:^"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,14 +12,7 @@
|
|||
"docs": "typedoc",
|
||||
"build": "pnpm run -w build-package http-proxy"
|
||||
},
|
||||
"distOnlyFields": {
|
||||
"exports": {
|
||||
".": {
|
||||
"import": "./esm/index.js",
|
||||
"require": "./cjs/index.js"
|
||||
}
|
||||
}
|
||||
},
|
||||
"exports": "./index.ts",
|
||||
"dependencies": {
|
||||
"@mtcute/node": "workspace:^"
|
||||
}
|
||||
|
|
|
@ -11,20 +11,18 @@
|
|||
"scripts": {
|
||||
"build": "pnpm run -w build-package i18n"
|
||||
},
|
||||
"distOnlyFields": {
|
||||
"exports": {
|
||||
".": {
|
||||
"import": "./esm/index.js",
|
||||
"require": "./cjs/index.js"
|
||||
},
|
||||
"./plurals/*": {
|
||||
"import": "./esm/plurals/*",
|
||||
"require": "./cjs/plurals/*"
|
||||
}
|
||||
}
|
||||
".": "./src/index.ts",
|
||||
"./plurals/*": "./src/plurals/*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@mtcute/core": "workspace:^",
|
||||
"@mtcute/dispatcher": "workspace:^"
|
||||
},
|
||||
"jsrOnlyFields": {
|
||||
"dependencies": {
|
||||
"@mtcute/core": "workspace:^",
|
||||
"@mtcute/dispatcher": "workspace:^"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,18 +11,9 @@
|
|||
"scripts": {
|
||||
"build": "pnpm run -w build-package markdown-parser"
|
||||
},
|
||||
"distOnlyFields": {
|
||||
"exports": {
|
||||
".": {
|
||||
"import": "./esm/index.js",
|
||||
"require": "./cjs/index.js"
|
||||
}
|
||||
}
|
||||
},
|
||||
"exports": "./src/index.ts",
|
||||
"dependencies": {
|
||||
"long": "5.2.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"long": "5.2.3",
|
||||
"@mtcute/core": "workspace:^"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,14 +12,7 @@
|
|||
"docs": "typedoc",
|
||||
"build": "pnpm run -w build-package mtproxy"
|
||||
},
|
||||
"distOnlyFields": {
|
||||
"exports": {
|
||||
".": {
|
||||
"import": "./esm/index.js",
|
||||
"require": "./cjs/index.js"
|
||||
}
|
||||
}
|
||||
},
|
||||
"exports": "./index.ts",
|
||||
"dependencies": {
|
||||
"@mtcute/node": "workspace:^"
|
||||
}
|
||||
|
|
|
@ -16,18 +16,6 @@
|
|||
".": "./src/index.ts",
|
||||
"./utils.js": "./src/utils.ts"
|
||||
},
|
||||
"distOnlyFields": {
|
||||
"exports": {
|
||||
".": {
|
||||
"import": "./esm/index.js",
|
||||
"require": "./cjs/index.js"
|
||||
},
|
||||
"./utils.js": {
|
||||
"import": "./esm/utils.js",
|
||||
"require": "./cjs/utils.js"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@mtcute/core": "workspace:^",
|
||||
"@mtcute/wasm": "workspace:^",
|
||||
|
|
|
@ -12,14 +12,7 @@
|
|||
"docs": "typedoc",
|
||||
"build": "pnpm run -w build-package socks-proxy"
|
||||
},
|
||||
"distOnlyFields": {
|
||||
"exports": {
|
||||
".": {
|
||||
"import": "./esm/index.js",
|
||||
"require": "./cjs/index.js"
|
||||
}
|
||||
}
|
||||
},
|
||||
"exports": "./index.ts",
|
||||
"dependencies": {
|
||||
"@mtcute/node": "workspace:^",
|
||||
"ip6": "0.2.7"
|
||||
|
|
|
@ -35,9 +35,5 @@
|
|||
"browser": {
|
||||
"./src/platform.js": "./src/platform.web.js"
|
||||
},
|
||||
"distOnlyFields": {
|
||||
"exports": {
|
||||
".": "./esm/index.js"
|
||||
}
|
||||
}
|
||||
"exports": "./src/index.ts"
|
||||
}
|
||||
|
|
|
@ -11,15 +11,9 @@
|
|||
"docs": "typedoc",
|
||||
"build": "pnpm run -w build-package tl-runtime"
|
||||
},
|
||||
"distOnlyFields": {
|
||||
"exports": {
|
||||
".": {
|
||||
"import": "./esm/index.js",
|
||||
"require": "./cjs/index.js"
|
||||
}
|
||||
}
|
||||
".": "./src/index.ts"
|
||||
},
|
||||
"main": "src/index.ts",
|
||||
"dependencies": {
|
||||
"long": "5.2.3"
|
||||
}
|
||||
|
|
|
@ -16,22 +16,8 @@
|
|||
".": "./src/index.ts",
|
||||
"./json.js": "./src/json/index.ts"
|
||||
},
|
||||
"distOnlyFields": {
|
||||
"exports": {
|
||||
".": {
|
||||
"import": "./dist/esm/index.js",
|
||||
"require": "./dist/cjs/index.js"
|
||||
},
|
||||
"./json.js": {
|
||||
"import": "./dist/esm/json/index.js",
|
||||
"require": "./dist/cjs/json/index.js"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"crc-32": "1.2.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"crc-32": "1.2.0",
|
||||
"@mtcute/tl-runtime": "workspace:^"
|
||||
}
|
||||
}
|
||||
|
|
8
packages/tl/.gitignore
vendored
8
packages/tl/.gitignore
vendored
|
@ -1,8 +1,6 @@
|
|||
index.d.ts
|
||||
index.js
|
||||
errors.d.ts
|
||||
errors.js
|
||||
/index.d.ts
|
||||
/index.js
|
||||
binary/reader.js
|
||||
binary/writer.js
|
||||
|
||||
diff.json
|
||||
/diff.json
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = ({ fs, path, outDir, packageDir }) => ({
|
||||
module.exports = ({ fs, path, outDir, packageDir, jsr, transformFile }) => ({
|
||||
buildTs: false,
|
||||
buildCjs: false,
|
||||
final() {
|
||||
|
@ -22,5 +22,61 @@ module.exports = ({ fs, path, outDir, packageDir }) => ({
|
|||
for (const f of files) {
|
||||
fs.copyFileSync(path.join(packageDir, f), path.join(outDir, f))
|
||||
}
|
||||
|
||||
if (jsr) {
|
||||
// jsr doesn't support cjs, so we'll need to add some shims
|
||||
// todo: remove this god awfulness when tl esm rewrite
|
||||
transformFile(path.join(outDir, 'index.js'), (content) => {
|
||||
return [
|
||||
'/// <reference types="./index.d.ts" />',
|
||||
'const exports = {};',
|
||||
content,
|
||||
'export const tl = exports.tl;',
|
||||
'export const mtp = exports.mtp;',
|
||||
].join('\n')
|
||||
})
|
||||
transformFile(path.join(outDir, 'binary/reader.js'), (content) => {
|
||||
return [
|
||||
'/// <reference types="./reader.d.ts" />',
|
||||
'const exports = {};',
|
||||
content,
|
||||
'export const __tlReaderMap = exports.__tlReaderMap;',
|
||||
].join('\n')
|
||||
})
|
||||
transformFile(path.join(outDir, 'binary/writer.js'), (content) => {
|
||||
return [
|
||||
'/// <reference types="./writer.d.ts" />',
|
||||
'const exports = {};',
|
||||
content,
|
||||
'export const __tlWriterMap = exports.__tlWriterMap;',
|
||||
].join('\n')
|
||||
})
|
||||
transformFile(path.join(outDir, 'binary/rsa-keys.js'), (content) => {
|
||||
return [
|
||||
'/// <reference types="./rsa-keys.d.ts" />',
|
||||
'const exports = {};',
|
||||
content,
|
||||
'export const __publicKeyIndex = exports.__publicKeyIndex;',
|
||||
].join('\n')
|
||||
})
|
||||
|
||||
// patch deno.json to add some export maps
|
||||
transformFile(path.join(outDir, 'deno.json'), (content) => {
|
||||
const json = JSON.parse(content)
|
||||
json.exports = {}
|
||||
|
||||
for (const f of files) {
|
||||
if (!f.match(/\.js(on)?$/)) continue
|
||||
|
||||
if (f === 'index.js') {
|
||||
json.exports['.'] = './index.js'
|
||||
} else {
|
||||
json.exports[`./${f}`] = `./${f}`
|
||||
}
|
||||
}
|
||||
|
||||
return JSON.stringify(json, null, 2)
|
||||
})
|
||||
}
|
||||
},
|
||||
})
|
||||
|
|
|
@ -31,5 +31,8 @@
|
|||
},
|
||||
"typedoc": {
|
||||
"entryPoint": "index.d.ts"
|
||||
},
|
||||
"jsrOnlyFields": {
|
||||
"exports": {}
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = ({ path: { join }, fs, outDir, packageDir }) => ({
|
||||
module.exports = ({ path: { join }, fs, outDir, packageDir, jsr }) => ({
|
||||
esmOnlyDirectives: true,
|
||||
final() {
|
||||
fs.cpSync(join(packageDir, 'mtcute.wasm'), join(outDir, 'mtcute.wasm'))
|
||||
|
|
|
@ -17,18 +17,13 @@
|
|||
".": "./src/index.ts",
|
||||
"./mtcute.wasm": "./mtcute.wasm"
|
||||
},
|
||||
"distOnlyFields": {
|
||||
"exports": {
|
||||
".": {
|
||||
"import": "./esm/index.js",
|
||||
"require": "./cjs/index.js"
|
||||
},
|
||||
"./mtcute.wasm": "./mtcute.wasm"
|
||||
}
|
||||
},
|
||||
"exportsKeepPath": ["./mtcute.wasm"],
|
||||
"devDependencies": {
|
||||
"@mtcute/core": "workspace:^",
|
||||
"@mtcute/web": "workspace:^",
|
||||
"@mtcute/node": "workspace:^"
|
||||
},
|
||||
"jsrOnlyFields": {
|
||||
"exports": "./src/index.ts"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,25 +13,24 @@
|
|||
"build": "pnpm run -w build-package web"
|
||||
},
|
||||
"exports": {
|
||||
".": "./src/index.ts"
|
||||
},
|
||||
"distOnlyFields": {
|
||||
"exports": {
|
||||
".": {
|
||||
"import": "./esm/index.js",
|
||||
"require": "./cjs/index.js"
|
||||
},
|
||||
"./utils.js": {
|
||||
"import": "./esm/utils.js",
|
||||
"require": "./cjs/utils.js"
|
||||
}
|
||||
}
|
||||
".": "./src/index.ts",
|
||||
"./utils.js": "./src/utils.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@mtcute/core": "workspace:^",
|
||||
"@mtcute/wasm": "workspace:^"
|
||||
"@mtcute/wasm": "workspace:^",
|
||||
"events": "3.2.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@mtcute/test": "workspace:^"
|
||||
},
|
||||
"denoJson": {
|
||||
"compilerOptions": {
|
||||
"lib": [
|
||||
"dom",
|
||||
"dom.iterable",
|
||||
"WebWorker"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
1
packages/web/src/utils.ts
Normal file
1
packages/web/src/utils.ts
Normal file
|
@ -0,0 +1 @@
|
|||
export * from '@mtcute/core/utils.js'
|
211
pnpm-lock.yaml
211
pnpm-lock.yaml
|
@ -18,6 +18,9 @@ importers:
|
|||
'@commitlint/config-conventional':
|
||||
specifier: 17.6.5
|
||||
version: 17.6.5
|
||||
'@teidesu/slow-types-compiler':
|
||||
specifier: 1.0.2
|
||||
version: 1.0.2(typescript@5.4.3)
|
||||
'@types/node':
|
||||
specifier: 20.10.0
|
||||
version: 20.10.0
|
||||
|
@ -250,16 +253,15 @@ importers:
|
|||
|
||||
packages/html-parser:
|
||||
dependencies:
|
||||
'@mtcute/core':
|
||||
specifier: workspace:^
|
||||
version: link:../core
|
||||
htmlparser2:
|
||||
specifier: ^6.0.1
|
||||
version: 6.1.0
|
||||
long:
|
||||
specifier: 5.2.3
|
||||
version: 5.2.3
|
||||
devDependencies:
|
||||
'@mtcute/core':
|
||||
specifier: workspace:^
|
||||
version: link:../core
|
||||
|
||||
packages/http-proxy:
|
||||
dependencies:
|
||||
|
@ -278,13 +280,12 @@ importers:
|
|||
|
||||
packages/markdown-parser:
|
||||
dependencies:
|
||||
long:
|
||||
specifier: 5.2.3
|
||||
version: 5.2.3
|
||||
devDependencies:
|
||||
'@mtcute/core':
|
||||
specifier: workspace:^
|
||||
version: link:../core
|
||||
long:
|
||||
specifier: 5.2.3
|
||||
version: 5.2.3
|
||||
|
||||
packages/mtproxy:
|
||||
dependencies:
|
||||
|
@ -390,13 +391,12 @@ importers:
|
|||
|
||||
packages/tl-utils:
|
||||
dependencies:
|
||||
crc-32:
|
||||
specifier: 1.2.0
|
||||
version: 1.2.0
|
||||
devDependencies:
|
||||
'@mtcute/tl-runtime':
|
||||
specifier: workspace:^
|
||||
version: link:../tl-runtime
|
||||
crc-32:
|
||||
specifier: 1.2.0
|
||||
version: 1.2.0
|
||||
|
||||
packages/wasm:
|
||||
devDependencies:
|
||||
|
@ -418,6 +418,9 @@ importers:
|
|||
'@mtcute/wasm':
|
||||
specifier: workspace:^
|
||||
version: link:../wasm
|
||||
events:
|
||||
specifier: 3.2.0
|
||||
version: 3.2.0
|
||||
devDependencies:
|
||||
'@mtcute/test':
|
||||
specifier: workspace:^
|
||||
|
@ -1353,11 +1356,38 @@ packages:
|
|||
/@sinclair/typebox@0.27.8:
|
||||
resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
|
||||
|
||||
/@teidesu/slow-types-compiler@1.0.2(typescript@5.4.3):
|
||||
resolution: {integrity: sha512-N0e3J/My4t405V5qD2kr6xXwLMlaB+el7bdYKLXJ2yyrLN1eAx4elf6qkeRTF4xy0GoiWrS0gKS0RZfddSOw1w==}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
typescript: ^5.0.0
|
||||
dependencies:
|
||||
arg: 5.0.2
|
||||
dedent: 1.5.3
|
||||
eager-async-pool: 1.0.0
|
||||
gunzip-maybe: 1.4.2
|
||||
semver: 7.6.0
|
||||
tar-stream: 3.1.7
|
||||
ts-morph: 22.0.0
|
||||
typescript: 5.4.3
|
||||
transitivePeerDependencies:
|
||||
- babel-plugin-macros
|
||||
dev: true
|
||||
|
||||
/@tootallnate/once@2.0.0:
|
||||
resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
|
||||
engines: {node: '>= 10'}
|
||||
dev: false
|
||||
|
||||
/@ts-morph/common@0.23.0:
|
||||
resolution: {integrity: sha512-m7Lllj9n/S6sOkCkRftpM7L24uvmfXQFedlW/4hENcuJH1HHm9u5EgxZb9uVjQSCGrbBWBkOGgcTxNg36r6ywA==}
|
||||
dependencies:
|
||||
fast-glob: 3.3.2
|
||||
minimatch: 9.0.3
|
||||
mkdirp: 3.0.1
|
||||
path-browserify: 1.0.1
|
||||
dev: true
|
||||
|
||||
/@tsconfig/node10@1.0.8:
|
||||
resolution: {integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==}
|
||||
dev: true
|
||||
|
@ -1560,7 +1590,7 @@ packages:
|
|||
debug: 4.3.4
|
||||
globby: 11.1.0
|
||||
is-glob: 4.0.3
|
||||
semver: 7.5.4
|
||||
semver: 7.6.0
|
||||
ts-api-utils: 1.0.1(typescript@5.4.3)
|
||||
typescript: 5.4.3
|
||||
transitivePeerDependencies:
|
||||
|
@ -1580,7 +1610,7 @@ packages:
|
|||
'@typescript-eslint/types': 6.4.0
|
||||
'@typescript-eslint/typescript-estree': 6.4.0(typescript@5.4.3)
|
||||
eslint: 8.47.0
|
||||
semver: 7.5.4
|
||||
semver: 7.6.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
@ -1826,6 +1856,10 @@ packages:
|
|||
resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
|
||||
dev: true
|
||||
|
||||
/arg@5.0.2:
|
||||
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
|
||||
dev: true
|
||||
|
||||
/argparse@2.0.1:
|
||||
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
|
||||
dev: true
|
||||
|
@ -1929,9 +1963,19 @@ packages:
|
|||
engines: {node: '>= 0.4'}
|
||||
dev: true
|
||||
|
||||
/b4a@1.6.6:
|
||||
resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==}
|
||||
dev: true
|
||||
|
||||
/balanced-match@1.0.2:
|
||||
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
|
||||
|
||||
/bare-events@2.2.2:
|
||||
resolution: {integrity: sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==}
|
||||
requiresBuild: true
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/base64-js@1.5.1:
|
||||
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
|
||||
|
||||
|
@ -2046,12 +2090,22 @@ packages:
|
|||
safe-buffer: 5.2.1
|
||||
dev: true
|
||||
|
||||
/browserify-zlib@0.1.4:
|
||||
resolution: {integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==}
|
||||
dependencies:
|
||||
pako: 0.2.9
|
||||
dev: true
|
||||
|
||||
/browserify-zlib@0.2.0:
|
||||
resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==}
|
||||
dependencies:
|
||||
pako: 1.0.11
|
||||
dev: true
|
||||
|
||||
/buffer-from@1.1.2:
|
||||
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
|
||||
dev: true
|
||||
|
||||
/buffer-xor@1.0.3:
|
||||
resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==}
|
||||
dev: true
|
||||
|
@ -2294,6 +2348,10 @@ packages:
|
|||
resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
|
||||
engines: {node: '>=0.8'}
|
||||
|
||||
/code-block-writer@13.0.1:
|
||||
resolution: {integrity: sha512-c5or4P6erEA69TxaxTNcHUNcIn+oyxSRTOWV+pSYF+z4epXqNvwvJ70XPGjPNgue83oAFAPBRQYwpAJ/Hpe/Sg==}
|
||||
dev: true
|
||||
|
||||
/color-convert@1.9.3:
|
||||
resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
|
||||
dependencies:
|
||||
|
@ -2542,6 +2600,15 @@ packages:
|
|||
mimic-response: 3.1.0
|
||||
dev: false
|
||||
|
||||
/dedent@1.5.3:
|
||||
resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==}
|
||||
peerDependencies:
|
||||
babel-plugin-macros: ^3.1.0
|
||||
peerDependenciesMeta:
|
||||
babel-plugin-macros:
|
||||
optional: true
|
||||
dev: true
|
||||
|
||||
/deep-eql@4.1.3:
|
||||
resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==}
|
||||
engines: {node: '>=6'}
|
||||
|
@ -2738,6 +2805,15 @@ packages:
|
|||
yargs: 17.7.2
|
||||
dev: true
|
||||
|
||||
/duplexify@3.7.1:
|
||||
resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==}
|
||||
dependencies:
|
||||
end-of-stream: 1.4.4
|
||||
inherits: 2.0.4
|
||||
readable-stream: 2.3.8
|
||||
stream-shift: 1.0.3
|
||||
dev: true
|
||||
|
||||
/eager-async-pool@1.0.0:
|
||||
resolution: {integrity: sha512-A2N+pbceYEz7O2KQ3TNQSSrZsivQ9i28cuNKRxfdT9QvRCoJ51pCP90hSNybOOBfoBHk15ZThJYrQWHo4h2UjA==}
|
||||
dev: true
|
||||
|
@ -2775,7 +2851,6 @@ packages:
|
|||
resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
dev: false
|
||||
|
||||
/enhanced-resolve@5.14.1:
|
||||
resolution: {integrity: sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow==}
|
||||
|
@ -3269,15 +3344,8 @@ packages:
|
|||
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
|
||||
dev: true
|
||||
|
||||
/fast-glob@3.2.12:
|
||||
resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
|
||||
engines: {node: '>=8.6.0'}
|
||||
dependencies:
|
||||
'@nodelib/fs.stat': 2.0.5
|
||||
'@nodelib/fs.walk': 1.2.8
|
||||
glob-parent: 5.1.2
|
||||
merge2: 1.4.1
|
||||
micromatch: 4.0.5
|
||||
/fast-fifo@1.3.2:
|
||||
resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==}
|
||||
dev: true
|
||||
|
||||
/fast-glob@3.3.1:
|
||||
|
@ -3620,7 +3688,7 @@ packages:
|
|||
dependencies:
|
||||
array-union: 2.1.0
|
||||
dir-glob: 3.0.1
|
||||
fast-glob: 3.2.12
|
||||
fast-glob: 3.3.2
|
||||
ignore: 5.2.0
|
||||
merge2: 1.4.1
|
||||
slash: 3.0.0
|
||||
|
@ -3639,6 +3707,18 @@ packages:
|
|||
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
|
||||
dev: true
|
||||
|
||||
/gunzip-maybe@1.4.2:
|
||||
resolution: {integrity: sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
browserify-zlib: 0.1.4
|
||||
is-deflate: 1.0.0
|
||||
is-gzip: 1.0.0
|
||||
peek-stream: 1.1.3
|
||||
pumpify: 1.5.1
|
||||
through2: 2.0.5
|
||||
dev: true
|
||||
|
||||
/handlebars@4.7.8:
|
||||
resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==}
|
||||
engines: {node: '>=0.4.7'}
|
||||
|
@ -3992,6 +4072,10 @@ packages:
|
|||
has-tostringtag: 1.0.0
|
||||
dev: true
|
||||
|
||||
/is-deflate@1.0.0:
|
||||
resolution: {integrity: sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==}
|
||||
dev: true
|
||||
|
||||
/is-extglob@2.1.1:
|
||||
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
@ -4018,6 +4102,11 @@ packages:
|
|||
dependencies:
|
||||
is-extglob: 2.1.1
|
||||
|
||||
/is-gzip@1.0.0:
|
||||
resolution: {integrity: sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/is-interactive@1.0.0:
|
||||
resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
|
||||
engines: {node: '>=8'}
|
||||
|
@ -4670,6 +4759,12 @@ packages:
|
|||
hasBin: true
|
||||
dev: false
|
||||
|
||||
/mkdirp@3.0.1:
|
||||
resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==}
|
||||
engines: {node: '>=10'}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/mlly@1.4.2:
|
||||
resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==}
|
||||
dependencies:
|
||||
|
@ -5015,6 +5110,10 @@ packages:
|
|||
engines: {node: '>=6'}
|
||||
dev: true
|
||||
|
||||
/pako@0.2.9:
|
||||
resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==}
|
||||
dev: true
|
||||
|
||||
/pako@1.0.11:
|
||||
resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
|
||||
dev: true
|
||||
|
@ -5123,6 +5222,14 @@ packages:
|
|||
sha.js: 2.4.11
|
||||
dev: true
|
||||
|
||||
/peek-stream@1.1.3:
|
||||
resolution: {integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==}
|
||||
dependencies:
|
||||
buffer-from: 1.1.2
|
||||
duplexify: 3.7.1
|
||||
through2: 2.0.5
|
||||
dev: true
|
||||
|
||||
/picocolors@1.0.0:
|
||||
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
|
||||
|
||||
|
@ -5253,6 +5360,13 @@ packages:
|
|||
safe-buffer: 5.2.1
|
||||
dev: true
|
||||
|
||||
/pump@2.0.1:
|
||||
resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==}
|
||||
dependencies:
|
||||
end-of-stream: 1.4.4
|
||||
once: 1.4.0
|
||||
dev: true
|
||||
|
||||
/pump@3.0.0:
|
||||
resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
|
||||
dependencies:
|
||||
|
@ -5260,6 +5374,14 @@ packages:
|
|||
once: 1.4.0
|
||||
dev: false
|
||||
|
||||
/pumpify@1.5.1:
|
||||
resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==}
|
||||
dependencies:
|
||||
duplexify: 3.7.1
|
||||
inherits: 2.0.4
|
||||
pump: 2.0.1
|
||||
dev: true
|
||||
|
||||
/punycode@1.4.1:
|
||||
resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
|
||||
dev: true
|
||||
|
@ -5289,6 +5411,10 @@ packages:
|
|||
/queue-microtask@1.2.3:
|
||||
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
|
||||
|
||||
/queue-tick@1.0.1:
|
||||
resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==}
|
||||
dev: true
|
||||
|
||||
/quick-lru@4.0.1:
|
||||
resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
|
||||
engines: {node: '>=8'}
|
||||
|
@ -5775,6 +5901,19 @@ packages:
|
|||
xtend: 4.0.2
|
||||
dev: true
|
||||
|
||||
/stream-shift@1.0.3:
|
||||
resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==}
|
||||
dev: true
|
||||
|
||||
/streamx@2.16.1:
|
||||
resolution: {integrity: sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==}
|
||||
dependencies:
|
||||
fast-fifo: 1.3.2
|
||||
queue-tick: 1.0.1
|
||||
optionalDependencies:
|
||||
bare-events: 2.2.2
|
||||
dev: true
|
||||
|
||||
/string-argv@0.3.2:
|
||||
resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
|
||||
engines: {node: '>=0.6.19'}
|
||||
|
@ -5923,6 +6062,14 @@ packages:
|
|||
readable-stream: 3.6.0
|
||||
dev: false
|
||||
|
||||
/tar-stream@3.1.7:
|
||||
resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==}
|
||||
dependencies:
|
||||
b4a: 1.6.6
|
||||
fast-fifo: 1.3.2
|
||||
streamx: 2.16.1
|
||||
dev: true
|
||||
|
||||
/tar@6.1.11:
|
||||
resolution: {integrity: sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==}
|
||||
engines: {node: '>= 10'}
|
||||
|
@ -5953,6 +6100,13 @@ packages:
|
|||
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
|
||||
dev: true
|
||||
|
||||
/through2@2.0.5:
|
||||
resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==}
|
||||
dependencies:
|
||||
readable-stream: 2.3.8
|
||||
xtend: 4.0.2
|
||||
dev: true
|
||||
|
||||
/through2@4.0.2:
|
||||
resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
|
||||
dependencies:
|
||||
|
@ -6017,6 +6171,13 @@ packages:
|
|||
typescript: 5.4.3
|
||||
dev: true
|
||||
|
||||
/ts-morph@22.0.0:
|
||||
resolution: {integrity: sha512-M9MqFGZREyeb5fTl6gNHKZLqBQA0TjA1lea+CR48R8EBTDuWrNqW6ccC5QvjNR4s6wDumD3LTCjOFSp9iwlzaw==}
|
||||
dependencies:
|
||||
'@ts-morph/common': 0.23.0
|
||||
code-block-writer: 13.0.1
|
||||
dev: true
|
||||
|
||||
/ts-node@10.9.1(@types/node@20.10.0)(typescript@5.4.3):
|
||||
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
|
||||
hasBin: true
|
||||
|
|
|
@ -1,16 +1,22 @@
|
|||
/* eslint-disable no-inner-declarations */
|
||||
const cp = require('child_process')
|
||||
const path = require('path')
|
||||
const fs = require('fs')
|
||||
const glob = require('glob')
|
||||
const ts = require('typescript')
|
||||
const stc = require('@teidesu/slow-types-compiler')
|
||||
|
||||
if (process.argv.length < 3) {
|
||||
console.log('Usage: build-package.js <package name>')
|
||||
process.exit(0)
|
||||
}
|
||||
|
||||
const IS_JSR = process.env.JSR === '1'
|
||||
|
||||
const packagesDir = path.join(__dirname, '../packages')
|
||||
const packageDir = path.join(packagesDir, process.argv[2])
|
||||
const outDir = path.join(packageDir, 'dist')
|
||||
let outDir = path.join(packageDir, 'dist')
|
||||
if (IS_JSR) outDir = path.join(outDir, 'jsr')
|
||||
|
||||
function exec(cmd, params) {
|
||||
cp.execSync(cmd, { cwd: packageDir, stdio: 'inherit', ...params })
|
||||
|
@ -53,6 +59,7 @@ const buildConfig = {
|
|||
transformFile,
|
||||
packageDir,
|
||||
outDir,
|
||||
jsr: IS_JSR,
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -60,6 +67,10 @@ const buildConfig = {
|
|||
})(),
|
||||
}
|
||||
|
||||
function getPackageVersion(name) {
|
||||
return require(path.join(packagesDir, name, 'package.json')).version
|
||||
}
|
||||
|
||||
function buildPackageJson() {
|
||||
const pkgJson = JSON.parse(fs.readFileSync(path.join(packageDir, 'package.json'), 'utf-8'))
|
||||
|
||||
|
@ -85,6 +96,13 @@ function buildPackageJson() {
|
|||
delete pkgJson.distOnlyFields
|
||||
}
|
||||
|
||||
if (pkgJson.jsrOnlyFields) {
|
||||
if (IS_JSR) {
|
||||
Object.assign(pkgJson, pkgJson.jsrOnlyFields)
|
||||
}
|
||||
delete pkgJson.jsrOnlyFields
|
||||
}
|
||||
|
||||
function replaceWorkspaceDependencies(field) {
|
||||
if (!pkgJson[field]) return
|
||||
|
||||
|
@ -104,11 +122,8 @@ function buildPackageJson() {
|
|||
}
|
||||
|
||||
// note: pnpm replaces workspace:* with the current version, unlike this script
|
||||
const depVersion =
|
||||
value === 'workspace:*' ?
|
||||
'*' :
|
||||
require(path.join(packageDir, '..', name.slice(8), 'package.json')).version
|
||||
dependencies[name] = `^${depVersion}`
|
||||
const depVersion = value === 'workspace:*' ? '*' : `^${getPackageVersion(name.slice(8))}`
|
||||
dependencies[name] = depVersion
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -120,6 +135,7 @@ function buildPackageJson() {
|
|||
|
||||
delete pkgJson.typedoc
|
||||
|
||||
if (pkgJson.browser) {
|
||||
function maybeFixPath(p, repl) {
|
||||
if (!p) return p
|
||||
|
||||
|
@ -127,10 +143,13 @@ function buildPackageJson() {
|
|||
return repl + p.slice(6)
|
||||
}
|
||||
|
||||
if (p.startsWith('./')) {
|
||||
return repl + p.slice(2)
|
||||
}
|
||||
|
||||
return p
|
||||
}
|
||||
|
||||
if (pkgJson.browser) {
|
||||
for (const key of Object.keys(pkgJson.browser)) {
|
||||
if (!key.startsWith('./src/')) continue
|
||||
|
||||
|
@ -145,24 +164,88 @@ function buildPackageJson() {
|
|||
}
|
||||
}
|
||||
|
||||
fs.writeFileSync(path.join(packageDir, 'dist/package.json'), JSON.stringify(pkgJson, null, 2))
|
||||
// fix exports
|
||||
if (pkgJson.exports) {
|
||||
function maybeFixPath(path, repl) {
|
||||
if (!path) return path
|
||||
if (pkgJson.exportsKeepPath?.includes(path)) return path
|
||||
|
||||
if (path.startsWith('./src/')) {
|
||||
path = repl + path.slice(6)
|
||||
} else if (path.startsWith('./')) {
|
||||
path = repl + path.slice(2)
|
||||
}
|
||||
|
||||
return path.replace(/\.ts$/, '.js')
|
||||
}
|
||||
|
||||
function fixValue(value) {
|
||||
if (IS_JSR) {
|
||||
return maybeFixPath(value, './').replace(/\.js$/, '.ts')
|
||||
}
|
||||
|
||||
if (buildConfig.buildCjs) {
|
||||
return {
|
||||
import: maybeFixPath(value, './esm/'),
|
||||
require: maybeFixPath(value, './cjs/'),
|
||||
}
|
||||
}
|
||||
|
||||
return maybeFixPath(value, './')
|
||||
}
|
||||
|
||||
if (typeof pkgJson.exports === 'string') {
|
||||
pkgJson.exports = {
|
||||
'.': fixValue(pkgJson.exports),
|
||||
}
|
||||
} else {
|
||||
for (const key of Object.keys(pkgJson.exports)) {
|
||||
const value = pkgJson.exports[key]
|
||||
|
||||
if (typeof value !== 'string') {
|
||||
throw new Error('Conditional exports are not supported')
|
||||
}
|
||||
|
||||
pkgJson.exports[key] = fixValue(value)
|
||||
}
|
||||
}
|
||||
|
||||
delete pkgJson.exportsKeepPath
|
||||
}
|
||||
|
||||
if (!IS_JSR) {
|
||||
fs.writeFileSync(path.join(outDir, 'package.json'), JSON.stringify(pkgJson, null, 2))
|
||||
}
|
||||
|
||||
return pkgJson
|
||||
}
|
||||
|
||||
// clean
|
||||
fs.rmSync(path.join(outDir), { recursive: true, force: true })
|
||||
fs.mkdirSync(path.join(outDir), { recursive: true })
|
||||
|
||||
// for jsr - copy typescript sources
|
||||
if (IS_JSR) {
|
||||
buildConfig.buildCjs = false
|
||||
}
|
||||
|
||||
buildConfig.before()
|
||||
|
||||
if (buildConfig.buildTs) {
|
||||
if (buildConfig.buildTs && !IS_JSR) {
|
||||
console.log('[i] Building typescript...')
|
||||
|
||||
fs.cpSync(path.join(packageDir, 'tsconfig.json'), path.join(packageDir, 'tsconfig.backup.json'))
|
||||
const tsconfigPath = path.join(packageDir, 'tsconfig.json')
|
||||
fs.cpSync(tsconfigPath, path.join(packageDir, 'tsconfig.backup.json'))
|
||||
|
||||
let tsconfig = fs.readFileSync(path.join(packageDir, 'tsconfig.backup.json'), 'utf-8')
|
||||
// what the fuck
|
||||
tsconfig = tsconfig.replace(/(?<="extends": "\.\.\/\.\.\/)tsconfig\.json(?=",)/, '.config/tsconfig.build.json')
|
||||
fs.writeFileSync(path.join(packageDir, 'tsconfig.json'), tsconfig)
|
||||
const tsconfig = ts.parseConfigFileTextToJson(tsconfigPath, fs.readFileSync(tsconfigPath, 'utf-8')).config
|
||||
|
||||
if (tsconfig.extends === '../../tsconfig.json') {
|
||||
tsconfig.extends = '../../.config/tsconfig.build.json'
|
||||
} else {
|
||||
throw new Error('expected tsconfig to extend base config')
|
||||
}
|
||||
|
||||
fs.writeFileSync(path.join(packageDir, 'tsconfig.json'), JSON.stringify(tsconfig, null, 2))
|
||||
|
||||
const restoreTsconfig = () => {
|
||||
fs.renameSync(path.join(packageDir, 'tsconfig.backup.json'), path.join(packageDir, 'tsconfig.json'))
|
||||
|
@ -202,10 +285,17 @@ if (buildConfig.buildTs) {
|
|||
const orig = fs.readFileSync(pkgJson, 'utf8')
|
||||
originalFiles[pkgJson] = orig
|
||||
|
||||
fs.writeFileSync(pkgJson, JSON.stringify({
|
||||
fs.writeFileSync(
|
||||
pkgJson,
|
||||
JSON.stringify(
|
||||
{
|
||||
...JSON.parse(orig),
|
||||
type: 'commonjs',
|
||||
}, null, 2))
|
||||
},
|
||||
null,
|
||||
2,
|
||||
),
|
||||
)
|
||||
|
||||
// maybe also dist/package.json
|
||||
const distPkgJson = path.join(packagesDir, pkg, 'dist/package.json')
|
||||
|
@ -214,10 +304,17 @@ if (buildConfig.buildTs) {
|
|||
const orig = fs.readFileSync(distPkgJson, 'utf8')
|
||||
originalFiles[distPkgJson] = orig
|
||||
|
||||
fs.writeFileSync(distPkgJson, JSON.stringify({
|
||||
fs.writeFileSync(
|
||||
distPkgJson,
|
||||
JSON.stringify(
|
||||
{
|
||||
...JSON.parse(orig),
|
||||
type: 'commonjs',
|
||||
}, null, 2))
|
||||
},
|
||||
null,
|
||||
2,
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -244,6 +341,7 @@ if (buildConfig.buildTs) {
|
|||
|
||||
restoreTsconfig()
|
||||
|
||||
// todo: can we remove these?
|
||||
console.log('[i] Post-processing...')
|
||||
|
||||
if (buildConfig.removeReferenceComments) {
|
||||
|
@ -278,15 +376,160 @@ if (buildConfig.buildTs) {
|
|||
if (changed) fs.writeFileSync(f, content)
|
||||
}
|
||||
}
|
||||
} else if (buildConfig.buildTs && IS_JSR) {
|
||||
console.log('[i] Copying sources...')
|
||||
fs.cpSync(path.join(packageDir, 'src'), outDir, { recursive: true })
|
||||
|
||||
const printer = ts.createPrinter()
|
||||
|
||||
for (const f of glob.sync(path.join(outDir, '**/*.ts'))) {
|
||||
let fileContent = fs.readFileSync(f, 'utf8')
|
||||
let changed = false
|
||||
|
||||
// replace .js imports with .ts
|
||||
const file = ts.createSourceFile(f, fileContent, ts.ScriptTarget.ESNext, true)
|
||||
let changedTs = false
|
||||
|
||||
for (const imp of file.statements) {
|
||||
if (imp.kind !== ts.SyntaxKind.ImportDeclaration && imp.kind !== ts.SyntaxKind.ExportDeclaration) {
|
||||
continue
|
||||
}
|
||||
if (imp.kind === ts.SyntaxKind.ExportDeclaration && !imp.moduleSpecifier) {
|
||||
continue
|
||||
}
|
||||
const mod = imp.moduleSpecifier.text
|
||||
|
||||
if (mod[0] === '.' && mod.endsWith('.js')) {
|
||||
changedTs = true
|
||||
imp.moduleSpecifier = {
|
||||
kind: ts.SyntaxKind.StringLiteral,
|
||||
text: mod.slice(0, -3) + '.ts',
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
console.log('[i] Copying files...')
|
||||
if (changedTs) {
|
||||
fileContent = printer.printFile(file)
|
||||
changed = true
|
||||
}
|
||||
|
||||
// add shims for node-specific APIs and replace NodeJS.* types
|
||||
// pretty fragile, but it works for now
|
||||
const typesToReplace = {
|
||||
'NodeJS\\.Timeout': 'number',
|
||||
'NodeJS\\.Immediate': 'number',
|
||||
}
|
||||
const nodeSpecificApis = {
|
||||
setImmediate: '(cb: (...args: any[]) => void, ...args: any[]) => number',
|
||||
clearImmediate: '(id: number) => void',
|
||||
Buffer:
|
||||
'{ ' +
|
||||
'concat: (...args: any[]) => Uint8Array, ' +
|
||||
'from: (data: any, encoding?: string) => { toString(encoding?: string): string }, ' +
|
||||
' }',
|
||||
SharedWorker: ['type', 'never'],
|
||||
process: '{ ' + 'hrtime: { bigint: () => bigint }, ' + '}',
|
||||
}
|
||||
|
||||
for (const [name, decl_] of Object.entries(nodeSpecificApis)) {
|
||||
if (fileContent.includes(name)) {
|
||||
changed = true
|
||||
const isType = Array.isArray(decl_) && decl_[0] === 'type'
|
||||
const decl = isType ? decl_[1] : decl_
|
||||
|
||||
if (isType) {
|
||||
fileContent = `declare type ${name} = ${decl};\n` + fileContent
|
||||
} else {
|
||||
fileContent = `declare const ${name}: ${decl};\n` + fileContent
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (const [oldType, newType] of Object.entries(typesToReplace)) {
|
||||
if (fileContent.match(oldType)) {
|
||||
changed = true
|
||||
fileContent = fileContent.replace(new RegExp(oldType, 'g'), newType)
|
||||
}
|
||||
}
|
||||
|
||||
if (changed) {
|
||||
fs.writeFileSync(f, fileContent)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
console.log('[i] Copying misc files...')
|
||||
|
||||
const builtPkgJson = buildPackageJson()
|
||||
|
||||
if (buildConfig.buildCjs) {
|
||||
fs.writeFileSync(path.join(outDir, 'cjs/package.json'), JSON.stringify({ type: 'commonjs' }, null, 2))
|
||||
}
|
||||
|
||||
buildPackageJson()
|
||||
if (IS_JSR) {
|
||||
// generate deno.json from package.json
|
||||
// https://jsr.io/docs/package-configuration
|
||||
|
||||
const importMap = {}
|
||||
|
||||
if (builtPkgJson.dependencies) {
|
||||
for (const [name, version] of Object.entries(builtPkgJson.dependencies)) {
|
||||
if (name.startsWith('@mtcute/')) {
|
||||
importMap[name] = `jsr:${name}@${version}`
|
||||
} else {
|
||||
importMap[name] = `npm:${name}@${version}`
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (const [name, target] of Object.entries(builtPkgJson.exports)) {
|
||||
// jsr doesn't support wildcards, so we need to flatten those
|
||||
if (!name.includes('*')) continue
|
||||
|
||||
if (!name.endsWith('*') || !target.endsWith('*')) {
|
||||
// for simplicity + it's the only one supported in some bundlers
|
||||
throw new Error(`Invalid wildcard in export map: ${name} -> ${target}`)
|
||||
}
|
||||
|
||||
const base = name.slice(0, -1)
|
||||
const targetBase = target.slice(0, -1)
|
||||
|
||||
for (const file of glob.sync(path.join(outDir, base, '**/*'))) {
|
||||
const newName = (base + path.relative(path.join(outDir, base), file)).replace(/\.ts$/, '.js')
|
||||
const newTarget = targetBase + path.relative(path.join(outDir, base), file)
|
||||
builtPkgJson.exports[newName] = newTarget
|
||||
}
|
||||
|
||||
delete builtPkgJson.exports[name]
|
||||
}
|
||||
|
||||
const denoJson = path.join(outDir, 'deno.json')
|
||||
fs.writeFileSync(
|
||||
denoJson,
|
||||
JSON.stringify(
|
||||
{
|
||||
name: builtPkgJson.name,
|
||||
version: builtPkgJson.version,
|
||||
exports: builtPkgJson.exports,
|
||||
exclude: ['**/*.test.ts', '**/*.test-utils.ts', '**/__fixtures__/**'],
|
||||
imports: importMap,
|
||||
...builtPkgJson.denoJson,
|
||||
},
|
||||
null,
|
||||
2,
|
||||
),
|
||||
)
|
||||
|
||||
console.log('[i] Processing with slow-types-compiler...')
|
||||
const project = stc.createProject()
|
||||
stc.processPackage(project, denoJson)
|
||||
const unsavedSourceFiles = project.getSourceFiles().filter((s) => !s.isSaved())
|
||||
|
||||
if (unsavedSourceFiles.length > 0) {
|
||||
console.log('[v] Changed %d files', unsavedSourceFiles.length)
|
||||
project.saveSync()
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
fs.cpSync(path.join(packageDir, 'README.md'), path.join(outDir, 'README.md'))
|
||||
|
@ -296,8 +539,16 @@ try {
|
|||
|
||||
fs.cpSync(path.join(__dirname, '../LICENSE'), path.join(outDir, 'LICENSE'))
|
||||
|
||||
if (!IS_JSR) {
|
||||
fs.writeFileSync(path.join(outDir, '.npmignore'), '*.tsbuildinfo\n')
|
||||
}
|
||||
|
||||
Promise.resolve(buildConfig.final()).then(() => {
|
||||
if (IS_JSR) {
|
||||
console.log('[i] Trying to publish with --dry-run')
|
||||
exec('deno publish --dry-run --allow-dirty --quiet', { cwd: outDir })
|
||||
console.log('[v] All good!')
|
||||
} else {
|
||||
console.log('[v] Done!')
|
||||
}
|
||||
})
|
||||
|
|
|
@ -2,21 +2,40 @@ const fs = require('fs')
|
|||
const path = require('path')
|
||||
const cp = require('child_process')
|
||||
|
||||
const NPMJS = 'https://registry.npmjs.org'
|
||||
const REGISTRY = process.env.REGISTRY || NPMJS
|
||||
const IS_JSR = process.env.JSR === '1'
|
||||
const MAIN_REGISTRY = IS_JSR ? 'http://jsr.test/' : 'https://registry.npmjs.org'
|
||||
const REGISTRY = process.env.REGISTRY || MAIN_REGISTRY
|
||||
exports.REGISTRY = REGISTRY
|
||||
|
||||
if (IS_JSR) {
|
||||
// for the underlying tools that expect JSR_URL env var
|
||||
process.env.JSR_URL = REGISTRY
|
||||
}
|
||||
|
||||
const JSR_EXCEPTIONS = {
|
||||
bun: 'never',
|
||||
'create-bot': 'never',
|
||||
'crypto-node': 'never',
|
||||
node: 'never',
|
||||
'http-proxy': 'never',
|
||||
'socks-proxy': 'never',
|
||||
mtproxy: 'never',
|
||||
test: 'never',
|
||||
}
|
||||
|
||||
async function checkVersion(name, version, retry = 0) {
|
||||
let registry = REGISTRY
|
||||
if (!registry.endsWith('/')) registry += '/'
|
||||
|
||||
return fetch(`${registry}@mtcute/${name}/${version}`)
|
||||
const url = IS_JSR ? `${registry}@mtcute/${name}/${version}_meta.json` : `${registry}@mtcute/${name}/${version}`
|
||||
|
||||
return fetch(url)
|
||||
.then((r) => r.status === 200)
|
||||
.catch((err) => {
|
||||
if (retry >= 5) throw err
|
||||
|
||||
// for whatever reason this request sometimes fails with ECONNRESET
|
||||
// no idea why, probably some issue in orbstack networking
|
||||
// no idea why, probably some issue in docker networking
|
||||
console.log('[i] Error checking version:')
|
||||
console.log(err)
|
||||
|
||||
|
@ -39,12 +58,14 @@ async function publishSinglePackage(name) {
|
|||
|
||||
console.log('[i] Publishing %s', name)
|
||||
|
||||
const version = require(path.join(packageDir, 'dist/package.json')).version
|
||||
const version = IS_JSR ?
|
||||
require(path.join(packageDir, 'dist/jsr/deno.json')).version :
|
||||
require(path.join(packageDir, 'dist/package.json')).version
|
||||
|
||||
const exists = await checkVersion(name, version)
|
||||
|
||||
if (exists) {
|
||||
if (process.env.E2E) {
|
||||
if (process.env.E2E && !IS_JSR) {
|
||||
console.log('[i] %s already exists, unpublishing..', name)
|
||||
cp.execSync(`npm unpublish --registry ${REGISTRY} --force @mtcute/${name}`, {
|
||||
cwd: path.join(packageDir, 'dist'),
|
||||
|
@ -57,26 +78,54 @@ async function publishSinglePackage(name) {
|
|||
}
|
||||
}
|
||||
|
||||
if (IS_JSR) {
|
||||
// publish to jsr
|
||||
cp.execSync('deno publish --allow-dirty', {
|
||||
cwd: path.join(packageDir, 'dist/jsr'),
|
||||
stdio: 'inherit',
|
||||
})
|
||||
} else {
|
||||
// make sure dist/jsr doesn't exist (it shouldn't, but just in case)
|
||||
if (fs.existsSync(path.join(packageDir, 'dist/jsr'))) {
|
||||
fs.rmdirSync(path.join(packageDir, 'dist/jsr'), { recursive: true })
|
||||
}
|
||||
|
||||
// publish to npm
|
||||
const params = REGISTRY === NPMJS ? '--access public' : '--force'
|
||||
const params = REGISTRY === MAIN_REGISTRY ? '--access public' : '--force'
|
||||
cp.execSync(`npm publish --registry ${REGISTRY} ${params} -q`, {
|
||||
cwd: path.join(packageDir, 'dist'),
|
||||
stdio: 'inherit',
|
||||
})
|
||||
}
|
||||
|
||||
const LOCAL = ['crypto']
|
||||
}
|
||||
|
||||
function listPackages() {
|
||||
const packages = []
|
||||
let packages = []
|
||||
|
||||
for (const f of fs.readdirSync(path.join(__dirname, '../packages'))) {
|
||||
if (LOCAL.indexOf(f) > -1) continue
|
||||
if (f[0] === '.') continue
|
||||
if (IS_JSR && JSR_EXCEPTIONS[f] === 'never') continue
|
||||
if (!IS_JSR && JSR_EXCEPTIONS[f] === 'only') continue
|
||||
|
||||
packages.push(f)
|
||||
}
|
||||
|
||||
if (IS_JSR) {
|
||||
// we should sort them in a way that dependencies are published first. stc has a util for that
|
||||
const map = {}
|
||||
|
||||
for (const pkg of packages) {
|
||||
const deps = require(`../packages/${pkg}/package.json`).dependencies || {}
|
||||
map[pkg] = Object.keys(deps)
|
||||
.filter((d) => d.startsWith('@mtcute/'))
|
||||
.map((d) => d.slice(8))
|
||||
}
|
||||
|
||||
const stc = require('@teidesu/slow-types-compiler')
|
||||
packages = stc.determinePublishOrder(map)
|
||||
console.log('[i] Publishing order:', packages.join(', '))
|
||||
}
|
||||
|
||||
return packages
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue