switch deps + markdown & numeral ditch

pull/25504/head
theofficialomega 4 months ago
parent fbc9330ede
commit c4e9a4615f

File diff suppressed because it is too large Load Diff

56
package-lock.json generated

@ -21,8 +21,7 @@
"@types/cli-progress": "^3.11.6",
"@types/fs-extra": "^11.0.4",
"@types/jest": "^30.0.0",
"@types/lodash": "^4.17.20",
"@types/numeral": "^2.0.5",
"@types/lodash.uniqueid": "^4.0.9",
"@typescript-eslint/eslint-plugin": "^8.38.0",
"@typescript-eslint/parser": "^8.38.0",
"async-es": "^3.2.6",
@ -40,11 +39,9 @@
"iptv-playlist-parser": "^0.15.0",
"jest": "^30.0.5",
"jest-expect-message": "^1.1.3",
"lodash": "^4.17.21",
"lodash.uniqueid": "^4.0.1",
"m3u-linter": "^0.4.2",
"markdown-include": "^0.4.3",
"node-cleanup": "^2.1.2",
"numeral": "^2.0.6",
"tsx": "^4.20.3",
"valid-url": "^1.0.9"
}
@ -2856,6 +2853,15 @@
"integrity": "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==",
"license": "MIT"
},
"node_modules/@types/lodash.uniqueid": {
"version": "4.0.9",
"resolved": "https://registry.npmjs.org/@types/lodash.uniqueid/-/lodash.uniqueid-4.0.9.tgz",
"integrity": "sha512-SEzkJBS8t+tqAUnSmyqbuWqxKU+Z/Xu2cgPtD+Ik0l+M7L2q7So9VoN2rQ8H0mmL87lJ00ykxal8oB54QRet6g==",
"license": "MIT",
"dependencies": {
"@types/lodash": "*"
}
},
"node_modules/@types/node": {
"version": "22.15.3",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.3.tgz",
@ -2864,11 +2870,6 @@
"undici-types": "~6.21.0"
}
},
"node_modules/@types/numeral": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@types/numeral/-/numeral-2.0.5.tgz",
"integrity": "sha512-kH8I7OSSwQu9DS9JYdFWbuvhVzvFRoCPCkGxNwoGgaPeDfEPJlcxNvEOypZhQ3XXHsGbfIuYcxcJxKUfJHnRfw=="
},
"node_modules/@types/stack-utils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
@ -6448,6 +6449,12 @@
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
},
"node_modules/lodash.uniqueid": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/lodash.uniqueid/-/lodash.uniqueid-4.0.1.tgz",
"integrity": "sha512-GQQWaIeGlL6DIIr06kj1j6sSmBxyNMwI8kaX9aKpHR/XsMTiaXDVPNPAkiboOTK9OJpTJF/dXT3xYoFQnj386Q==",
"license": "MIT"
},
"node_modules/lru-cache": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
@ -6522,17 +6529,6 @@
"tmpl": "1.0.5"
}
},
"node_modules/markdown-include": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/markdown-include/-/markdown-include-0.4.3.tgz",
"integrity": "sha512-kw1f+iJ8jAH9SYljv2RXmhRQFr2oMPPVdyoKaZIH+uA1rrQqDjLk6EQZW65oVz1Y+BkC3V//9lEvKKjRZNb1Jg==",
"dependencies": {
"q": "^1.2.0"
},
"bin": {
"markdown-include": "bin/cli.js"
}
},
"node_modules/math-intrinsics": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
@ -6761,14 +6757,6 @@
"node": ">=8"
}
},
"node_modules/numeral": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz",
"integrity": "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==",
"engines": {
"node": "*"
}
},
"node_modules/object-treeify": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/object-treeify/-/object-treeify-2.1.1.tgz",
@ -7132,16 +7120,6 @@
],
"license": "MIT"
},
"node_modules/q": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
"integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==",
"deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)",
"engines": {
"node": ">=0.6.0",
"teleport": ">=0.2.0"
}
},
"node_modules/querystringify": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",

@ -51,8 +51,7 @@
"@types/cli-progress": "^3.11.6",
"@types/fs-extra": "^11.0.4",
"@types/jest": "^30.0.0",
"@types/lodash": "^4.17.20",
"@types/numeral": "^2.0.5",
"@types/lodash.uniqueid": "^4.0.9",
"@typescript-eslint/eslint-plugin": "^8.38.0",
"@typescript-eslint/parser": "^8.38.0",
"async-es": "^3.2.6",
@ -70,11 +69,9 @@
"iptv-playlist-parser": "^0.15.0",
"jest": "^30.0.5",
"jest-expect-message": "^1.1.3",
"lodash": "^4.17.21",
"lodash.uniqueid": "^4.0.1",
"m3u-linter": "^0.4.2",
"markdown-include": "^0.4.3",
"node-cleanup": "^2.1.2",
"numeral": "^2.0.6",
"tsx": "^4.20.3",
"valid-url": "^1.0.9"
}

@ -4,7 +4,7 @@ import { DATA_DIR, LOGS_DIR, STREAMS_DIR } from '../../constants'
import type { DataLoaderData } from '../../types/dataLoader'
import { Logger, Storage, File } from '@freearhey/core'
import { Stream } from '../../models'
import { uniqueId } from 'lodash'
import uniqueId from 'lodash.uniqueid'
import {
IndexCategoryGenerator,
IndexLanguageGenerator,

@ -1,9 +1,16 @@
import { ApiClient } from './apiClient'
import { Storage } from '@freearhey/core'
import cliProgress, { MultiBar } from 'cli-progress'
import numeral from 'numeral'
import type { DataLoaderProps, DataLoaderData } from '../types/dataLoader'
const formatBytes = (bytes: number) => {
if (bytes === 0) return '0 B'
const k = 1024
const sizes = ['B', 'KB', 'MB', 'GB']
const i = Math.floor(Math.log(bytes) / Math.log(k))
return parseFloat((bytes / Math.pow(k, i)).toFixed(1)) + ' ' + sizes[i]
}
export class DataLoader {
client: ApiClient
storage: Storage
@ -21,8 +28,8 @@ export class DataLoader {
const filename = payload.filename.padEnd(18, ' ')
const barsize = options.barsize || 40
const percent = (params.progress * 100).toFixed(2)
const speed = payload.speed ? numeral(payload.speed).format('0.0 b') + '/s' : 'N/A'
const total = numeral(params.total).format('0.0 b')
const speed = payload.speed ? formatBytes(payload.speed) + '/s' : 'N/A'
const total = formatBytes(params.total)
const completeSize = Math.round(params.progress * barsize)
const incompleteSize = barsize - completeSize
const bar =

@ -1,4 +1,5 @@
import markdownInclude from 'markdown-include'
import fs from 'fs'
import path from 'path'
export class Markdown {
filepath: string
@ -8,6 +9,33 @@ export class Markdown {
}
compile() {
markdownInclude.compileFiles(this.filepath)
const config = JSON.parse(fs.readFileSync(this.filepath, 'utf8'))
const workingDir = process.cwd()
config.files.forEach((templateFile: string) => {
const templatePath = path.resolve(workingDir, templateFile)
const content = fs.readFileSync(templatePath, 'utf8')
const processedContent = this.processIncludes(content, workingDir)
if (config.build) {
const outputPath = path.resolve(workingDir, config.build)
fs.writeFileSync(outputPath, processedContent, 'utf8')
}
})
}
private processIncludes(content: string, baseDir: string): string {
const includeRegex = /#include\s+"([^"]+)"/g
return content.replace(includeRegex, (match, includePath) => {
try {
const fullPath = path.resolve(baseDir, includePath)
const includeContent = fs.readFileSync(fullPath, 'utf8')
return this.processIncludes(includeContent, baseDir)
} catch (error) {
console.warn(`Warning: Could not include file ${includePath}: ${error}`)
return match
}
})
}
}

@ -1 +0,0 @@
declare module 'markdown-include'
Loading…
Cancel
Save