@diplodoc/cli 4.57.5 → 4.57.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.js +3 -3
- package/build/index.mjs +3 -3
- package/lib/utils/index.js +1 -1
- package/lib/utils/index.js.map +2 -2
- package/lib/utils/index.mjs +1 -1
- package/lib/utils/index.mjs.map +2 -2
- package/package.json +1 -1
package/build/index.js
CHANGED
|
@@ -251496,7 +251496,7 @@ var Build = class extends (_a2 = import_program11.BaseProgram, _process_dec = [i
|
|
|
251496
251496
|
this.run.logger.proc(entry);
|
|
251497
251497
|
this.run.meta.add(entry, {
|
|
251498
251498
|
metadata: {
|
|
251499
|
-
generator: `Diplodoc Platform v${"4.57.
|
|
251499
|
+
generator: `Diplodoc Platform v${"4.57.6"}`
|
|
251500
251500
|
}
|
|
251501
251501
|
});
|
|
251502
251502
|
const info2 = await this.process(entry);
|
|
@@ -257740,7 +257740,7 @@ var Program = class extends (_a8 = import_program17.BaseProgram) {
|
|
|
257740
257740
|
super(...arguments);
|
|
257741
257741
|
this.name = "Program";
|
|
257742
257742
|
this.command = new import_config52.Command(NAME).helpOption(true).allowUnknownOption(false).version(
|
|
257743
|
-
false ? "" : "4.57.
|
|
257743
|
+
false ? "" : "4.57.6",
|
|
257744
257744
|
"--version",
|
|
257745
257745
|
"Output the version number"
|
|
257746
257746
|
).usage(USAGE);
|
|
@@ -257767,7 +257767,7 @@ if (require.main === module) {
|
|
|
257767
257767
|
(async () => {
|
|
257768
257768
|
console.time(MAIN_TIMER_ID);
|
|
257769
257769
|
if (process.env.NODE_ENV !== "test") {
|
|
257770
|
-
console.log(`Using v${"4.57.
|
|
257770
|
+
console.log(`Using v${"4.57.6"} version`);
|
|
257771
257771
|
}
|
|
257772
257772
|
let exitCode = 0;
|
|
257773
257773
|
try {
|
package/build/index.mjs
CHANGED
|
@@ -251489,7 +251489,7 @@ var Build = class extends (_a2 = BaseProgram, _process_dec = [bounded3], _a2) {
|
|
|
251489
251489
|
this.run.logger.proc(entry);
|
|
251490
251490
|
this.run.meta.add(entry, {
|
|
251491
251491
|
metadata: {
|
|
251492
|
-
generator: `Diplodoc Platform v${"4.57.
|
|
251492
|
+
generator: `Diplodoc Platform v${"4.57.6"}`
|
|
251493
251493
|
}
|
|
251494
251494
|
});
|
|
251495
251495
|
const info2 = await this.process(entry);
|
|
@@ -257753,7 +257753,7 @@ var Program = class extends (_a8 = BaseProgram6) {
|
|
|
257753
257753
|
super(...arguments);
|
|
257754
257754
|
this.name = "Program";
|
|
257755
257755
|
this.command = new Command7(NAME).helpOption(true).allowUnknownOption(false).version(
|
|
257756
|
-
false ? "" : "4.57.
|
|
257756
|
+
false ? "" : "4.57.6",
|
|
257757
257757
|
"--version",
|
|
257758
257758
|
"Output the version number"
|
|
257759
257759
|
).usage(USAGE);
|
|
@@ -257780,7 +257780,7 @@ if (__require.main === module) {
|
|
|
257780
257780
|
(async () => {
|
|
257781
257781
|
console.time(MAIN_TIMER_ID);
|
|
257782
257782
|
if (process.env.NODE_ENV !== "test") {
|
|
257783
|
-
console.log(`Using v${"4.57.
|
|
257783
|
+
console.log(`Using v${"4.57.6"} version`);
|
|
257784
257784
|
}
|
|
257785
257785
|
let exitCode = 0;
|
|
257786
257786
|
try {
|
package/lib/utils/index.js
CHANGED
package/lib/utils/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/core/utils/index.ts", "../../src/core/utils/common.ts", "../../src/core/utils/decorators.ts", "../../src/core/utils/extension.ts", "../../src/core/utils/path.ts", "../../src/core/utils/url.ts", "../../src/core/utils/markdown.ts"],
|
|
4
|
-
"sourcesContent": ["export * from './common';\nexport * from './decorators';\nexport * from './extension';\nexport * from './path';\nexport * from './url';\nexport * from './markdown';\n", "import {isObject} from 'lodash';\nimport {bounded} from './decorators';\n\nexport const all = Promise.all.bind(Promise);\n\nexport function zip<T = unknown>(keys: string[], values: T[]) {\n return keys.reduce((acc, key, index) => {\n acc[key] = values[index];\n return acc;\n }, {} as Hash<T>);\n}\n\nexport function own<V = unknown, T extends string = string>(\n box: unknown,\n field: T,\n): box is Record<T, V> {\n return (\n Boolean(box && typeof box === 'object') && Object.prototype.hasOwnProperty.call(box, field)\n );\n}\n\nexport function copyJson<T extends object>(\n json: T | undefined,\n): T extends DeepFrozen<infer R> ? R : T | undefined {\n return json ? JSON.parse(JSON.stringify(json)) : json;\n}\n\nexport function freezeJson<T>(target: T, visited = new Set()): T {\n if (!visited.has(target)) {\n visited.add(target);\n\n if (Array.isArray(target)) {\n target.forEach((item) => freezeJson(item, visited));\n }\n\n if (isObject(target) && !Object.isSealed(target)) {\n Object.freeze(target);\n Object.keys(target).forEach((key) =>\n freezeJson(target[key as keyof typeof target], visited),\n );\n }\n }\n\n return target;\n}\n\nexport function errorMessage(error: unknown): string {\n if (typeof error === 'string') {\n return error;\n }\n\n if (own<string, 'message'>(error, 'message')) {\n return error.message;\n }\n\n return String(error);\n}\n\nexport function fallbackLang(lang: string) {\n if (['kz', 'ua', 'be', 'ru'].includes(lang)) {\n return 'ru';\n }\n\n return 'en';\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class Defer<T = any> {\n promise: Promise<T>;\n\n resolve!: (result: T) => void;\n\n reject!: (error: unknown) => void;\n\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n}\n\nexport function wait(delay: number) {\n return new Promise((resolve) => {\n setTimeout(resolve, delay);\n });\n}\n\nexport type Bucket<T> = {\n get(): T;\n set(value: T): void;\n};\n\nexport function bucket<T>() {\n let _value: T;\n\n return {\n get: () => _value,\n set: (value: T) => {\n _value = value;\n },\n };\n}\n\nexport class Buckets<T> {\n private scope: Map<string, T> = new Map();\n\n @bounded\n bind(key: string) {\n return {\n get: () => this.get(key),\n set: (value: T) => this.set(key, value),\n };\n }\n\n @bounded\n set(key: string, value: T) {\n this.scope.set(key, value);\n }\n\n @bounded\n get(key: string): T {\n return this.scope.get(key) as T;\n }\n}\n", "export function bounded(_originalMethod: unknown, context: ClassMethodDecoratorContext) {\n const methodName = context.name;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n context.addInitializer(function (this: any) {\n this[methodName] = this[methodName].bind(this);\n });\n}\n\nexport function memoize(...props: string[] | [Function]) {\n return function (_originalMethod: unknown, context: ClassMethodDecoratorContext) {\n const methodName = context.name;\n const hash =\n typeof props[0] === 'function'\n ? props[0]\n : function (...args: unknown[]) {\n const mem = args.slice(0, props.length);\n if (!mem.every(isPrimitive)) {\n return null;\n }\n\n return props.map((prop, index) => `${prop}=${mem[index]}`).join('&');\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n context.addInitializer(function (this: any) {\n const cache = new Map();\n const method = this[methodName];\n\n this[methodName] = function (this: unknown, ...args: unknown[]) {\n const key = hash.call(this, ...args);\n\n if (key === null) {\n return method.call(this, ...args);\n }\n\n if (!cache.has(key)) {\n cache.set(key, method.call(this, ...args));\n }\n\n return cache.get(key);\n };\n });\n };\n}\n\nconst PRIMITIVE_TYPES = ['string', 'number', 'symbol', 'boolean', 'undefined'];\n\nfunction isPrimitive(value: unknown) {\n return !value || PRIMITIVE_TYPES.includes(typeof value);\n}\n", "import type {Hook, HookMap} from 'tapable';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Hooks = Hash<Hook<any, any> | HookMap<any>>;\n\nexport function generateHooksAccess<THooks extends Hooks>(\n name: string,\n hooks: (name: string) => THooks,\n) {\n const Hooks = Symbol(`${name}Hooks`);\n\n function getHooks(program: object | undefined): THooks {\n return (program && (program as {[Hooks]: THooks})[Hooks]) || hooks('Unknown');\n }\n\n function withHooks<T extends ClassType>(Target: T, {kind}: ClassDecoratorContext): T {\n if (kind !== 'class') {\n throw new TypeError(`Decorator 'withHooks' is not applicable to '${kind}'.`);\n }\n\n return class extends Target {\n [Hooks] = intercept(this.name, hooks(this.name || name));\n };\n }\n\n return [getHooks, withHooks, Hooks] as const;\n}\n\nexport type HookMeta = {\n service: string;\n hook: string;\n name: string;\n type: string;\n};\n\nexport function intercept<T extends Hooks>(service: string, hooks: T): T {\n for (const [hook, handler] of Object.entries(hooks)) {\n handler.intercept({\n register: (info) => {\n const {type, name, fn} = info;\n const meta = {service, hook, name, type};\n\n if (type === 'promise') {\n info.fn = async (...args: unknown[]) => {\n try {\n return await fn(...args);\n } catch (error) {\n if (error instanceof Error) {\n Object.assign(error, {hook: meta});\n }\n\n throw error;\n }\n };\n } else if (type === 'sync') {\n info.fn = (...args: unknown[]) => {\n try {\n return fn(...args);\n } catch (error) {\n if (error instanceof Error) {\n Object.assign(error, {hook: meta});\n }\n\n throw error;\n }\n };\n } else {\n throw new TypeError('Unexpected hook tap type - ' + type);\n }\n\n return info;\n },\n });\n }\n\n return hooks;\n}\n", "import {dirname, isAbsolute, join, normalize} from 'node:path';\nimport _normalizePath from 'normalize-path';\n\nimport {isExternalHref} from '~/core/utils';\n\nexport function normalizePath(path: string): NormalizedPath {\n return _normalizePath(normalize(_normalizePath(path, false)), false);\n}\n\nexport function isRelativePath(path: string): path is RelativePath {\n return !isExternalHref(path) && !isAbsolute(path);\n}\n\nexport function langFromPath(path: string, config: {lang?: string; langs: string[]}) {\n const {lang, langs} = config;\n const pathBaseLang = normalizePath(path).split('/')[0];\n const pathLang = langs.includes(pathBaseLang) && pathBaseLang;\n\n return pathLang || lang || langs[0];\n}\n\nexport function rebasePath(root: RelativePath, path: RelativePath) {\n return normalizePath(join(dirname(root), path));\n}\n\nexport function fullPath(\n path: AbsolutePath | NormalizedPath,\n root: NormalizedPath,\n): NormalizedPath {\n if (path.match(/^(\\/|\\\\)/)) {\n return normalizePath(path.slice(1));\n } else {\n return normalizePath(join(dirname(root), path));\n }\n}\n", "import {pick} from 'lodash';\nimport {type UrlWithStringQuery, parse} from 'node:url';\n\nexport function isExternalHref(href: string) {\n return /^(\\w{1,10}:)?\\/\\//.test(href) || /^([+\\w]{1,10}:)/.test(href);\n}\n\nconst MEDIA_FORMATS = /\\.(svg|png|gif|jpe?g|bmp|webp|ico)$/i;\n\n// TODO: should we deprecate this?\nconst DOC_FORMATS = /\\.(txt|pdf|docx|xlsx|vsd)$/i;\n\nexport function isMediaLink(link: string) {\n return MEDIA_FORMATS.test(link) || DOC_FORMATS.test(link);\n}\n\ntype LocalUrlInfo = Pick<UrlWithStringQuery, 'hash' | 'search'> & {\n path: NormalizedPath;\n};\n\nexport function parseLocalUrl<T = LocalUrlInfo>(url: string | undefined) {\n if (!url || isExternalHref(url) || url.startsWith('/')) {\n return null;\n }\n\n try {\n const parsed = parse(url);\n\n if (parsed.host || parsed.protocol) {\n return null;\n }\n\n return pick(parsed, ['path', 'search', 'hash']) as T;\n } catch {\n return null;\n }\n}\n", "import type Token from 'markdown-it/lib/token';\n\nexport function parseHeading(content: string) {\n const anchors = [];\n const commonHeading = content.match(/^#+/);\n const alternateHeading = content[content.length - 1];\n const alternaleLevels = ['-', '='];\n const level = commonHeading\n ? commonHeading[0].length\n : alternaleLevels.indexOf(alternateHeading) + 1;\n\n if (commonHeading) {\n content = content.replace(/^#+\\s*/, '');\n } else {\n content = content.replace(/\\n[-=]+$/, '');\n }\n\n const ANCHOR = /{(#[^}]+)}/g;\n\n let match;\n // eslint-disable-next-line no-cond-assign\n while ((match = ANCHOR.exec(content))) {\n anchors.push(match[1]);\n content = content.replace(match[0], '');\n ANCHOR.lastIndex -= match[0].length;\n }\n\n const title = content.trim();\n\n return {anchors, title, level};\n}\n\ntype TokenWalker = (\n token: Token,\n state: {commented: boolean; index: number},\n) => void | undefined | {skip: number};\n\nexport function filterTokens(tokens: Token[], type: string, handler: TokenWalker) {\n let commented = false;\n\n if (!tokens || !tokens.length) {\n return;\n }\n\n for (let index = 0; index < tokens.length; index++) {\n const token = tokens[index];\n\n if (token.type === 'html_block') {\n const commentStart = token.content.match('<!--');\n const commentEnd = token.content.match('-->');\n\n if (commentStart && !commentEnd) {\n commented = true;\n }\n\n if (!commentStart && commentEnd) {\n commented = false;\n }\n }\n\n if (token.type === type) {\n const result = handler(token, {commented, index});\n if (result?.skip) {\n index += result?.skip;\n }\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["export * from './common';\nexport * from './decorators';\nexport * from './extension';\nexport * from './path';\nexport * from './url';\nexport * from './markdown';\n", "import {isObject} from 'lodash';\nimport {bounded} from './decorators';\n\nexport const all = Promise.all.bind(Promise);\n\nexport function zip<T = unknown>(keys: string[], values: T[]) {\n return keys.reduce((acc, key, index) => {\n acc[key] = values[index];\n return acc;\n }, {} as Hash<T>);\n}\n\nexport function own<V = unknown, T extends string = string>(\n box: unknown,\n field: T,\n): box is Record<T, V> {\n return (\n Boolean(box && typeof box === 'object') && Object.prototype.hasOwnProperty.call(box, field)\n );\n}\n\nexport function copyJson<T extends object>(\n json: T | undefined,\n): T extends DeepFrozen<infer R> ? R : T | undefined {\n return json ? JSON.parse(JSON.stringify(json)) : json;\n}\n\nexport function freezeJson<T>(target: T, visited = new Set()): T {\n if (!visited.has(target)) {\n visited.add(target);\n\n if (Array.isArray(target)) {\n target.forEach((item) => freezeJson(item, visited));\n }\n\n if (isObject(target) && !Object.isSealed(target)) {\n Object.freeze(target);\n Object.keys(target).forEach((key) =>\n freezeJson(target[key as keyof typeof target], visited),\n );\n }\n }\n\n return target;\n}\n\nexport function errorMessage(error: unknown): string {\n if (typeof error === 'string') {\n return error;\n }\n\n if (own<string, 'message'>(error, 'message')) {\n return error.message;\n }\n\n return String(error);\n}\n\nexport function fallbackLang(lang: string) {\n if (['kz', 'ua', 'be', 'ru'].includes(lang)) {\n return 'ru';\n }\n\n return 'en';\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class Defer<T = any> {\n promise: Promise<T>;\n\n resolve!: (result: T) => void;\n\n reject!: (error: unknown) => void;\n\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n}\n\nexport function wait(delay: number) {\n return new Promise((resolve) => {\n setTimeout(resolve, delay);\n });\n}\n\nexport type Bucket<T> = {\n get(): T;\n set(value: T): void;\n};\n\nexport function bucket<T>() {\n let _value: T;\n\n return {\n get: () => _value,\n set: (value: T) => {\n _value = value;\n },\n };\n}\n\nexport class Buckets<T> {\n private scope: Map<string, T> = new Map();\n\n @bounded\n bind(key: string) {\n return {\n get: () => this.get(key),\n set: (value: T) => this.set(key, value),\n };\n }\n\n @bounded\n set(key: string, value: T) {\n this.scope.set(key, value);\n }\n\n @bounded\n get(key: string): T {\n return this.scope.get(key) as T;\n }\n}\n", "export function bounded(_originalMethod: unknown, context: ClassMethodDecoratorContext) {\n const methodName = context.name;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n context.addInitializer(function (this: any) {\n this[methodName] = this[methodName].bind(this);\n });\n}\n\nexport function memoize(...props: string[] | [Function]) {\n return function (_originalMethod: unknown, context: ClassMethodDecoratorContext) {\n const methodName = context.name;\n const hash =\n typeof props[0] === 'function'\n ? props[0]\n : function (...args: unknown[]) {\n const mem = args.slice(0, props.length);\n if (!mem.every(isPrimitive)) {\n return null;\n }\n\n return props.map((prop, index) => `${prop}=${mem[index]}`).join('&');\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n context.addInitializer(function (this: any) {\n const cache = new Map();\n const method = this[methodName];\n\n this[methodName] = function (this: unknown, ...args: unknown[]) {\n const key = hash.call(this, ...args);\n\n if (key === null) {\n return method.call(this, ...args);\n }\n\n if (!cache.has(key)) {\n cache.set(key, method.call(this, ...args));\n }\n\n return cache.get(key);\n };\n });\n };\n}\n\nconst PRIMITIVE_TYPES = ['string', 'number', 'symbol', 'boolean', 'undefined'];\n\nfunction isPrimitive(value: unknown) {\n return !value || PRIMITIVE_TYPES.includes(typeof value);\n}\n", "import type {Hook, HookMap} from 'tapable';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Hooks = Hash<Hook<any, any> | HookMap<any>>;\n\nexport function generateHooksAccess<THooks extends Hooks>(\n name: string,\n hooks: (name: string) => THooks,\n) {\n const Hooks = Symbol(`${name}Hooks`);\n\n function getHooks(program: object | undefined): THooks {\n return (program && (program as {[Hooks]: THooks})[Hooks]) || hooks('Unknown');\n }\n\n function withHooks<T extends ClassType>(Target: T, {kind}: ClassDecoratorContext): T {\n if (kind !== 'class') {\n throw new TypeError(`Decorator 'withHooks' is not applicable to '${kind}'.`);\n }\n\n return class extends Target {\n [Hooks] = intercept(this.name, hooks(this.name || name));\n };\n }\n\n return [getHooks, withHooks, Hooks] as const;\n}\n\nexport type HookMeta = {\n service: string;\n hook: string;\n name: string;\n type: string;\n};\n\nexport function intercept<T extends Hooks>(service: string, hooks: T): T {\n for (const [hook, handler] of Object.entries(hooks)) {\n handler.intercept({\n register: (info) => {\n const {type, name, fn} = info;\n const meta = {service, hook, name, type};\n\n if (type === 'promise') {\n info.fn = async (...args: unknown[]) => {\n try {\n return await fn(...args);\n } catch (error) {\n if (error instanceof Error) {\n Object.assign(error, {hook: meta});\n }\n\n throw error;\n }\n };\n } else if (type === 'sync') {\n info.fn = (...args: unknown[]) => {\n try {\n return fn(...args);\n } catch (error) {\n if (error instanceof Error) {\n Object.assign(error, {hook: meta});\n }\n\n throw error;\n }\n };\n } else {\n throw new TypeError('Unexpected hook tap type - ' + type);\n }\n\n return info;\n },\n });\n }\n\n return hooks;\n}\n", "import {dirname, isAbsolute, join, normalize} from 'node:path';\nimport _normalizePath from 'normalize-path';\n\nimport {isExternalHref} from '~/core/utils';\n\nexport function normalizePath(path: string): NormalizedPath {\n return _normalizePath(normalize(_normalizePath(path, false)), false);\n}\n\nexport function isRelativePath(path: string): path is RelativePath {\n return !isExternalHref(path) && !isAbsolute(path);\n}\n\nexport function langFromPath(path: string, config: {lang?: string; langs: string[]}) {\n const {lang, langs} = config;\n const pathBaseLang = normalizePath(path).split('/')[0];\n const pathLang = langs.includes(pathBaseLang) && pathBaseLang;\n\n return pathLang || lang || langs[0];\n}\n\nexport function rebasePath(root: RelativePath, path: RelativePath) {\n return normalizePath(join(dirname(root), path));\n}\n\nexport function fullPath(\n path: AbsolutePath | NormalizedPath,\n root: NormalizedPath,\n): NormalizedPath {\n if (path.match(/^(\\/|\\\\)/)) {\n return normalizePath(path.slice(1));\n } else {\n return normalizePath(join(dirname(root), path));\n }\n}\n", "import {pick} from 'lodash';\nimport {type UrlWithStringQuery, parse} from 'node:url';\n\nexport function isExternalHref(href: string) {\n return /^(\\w{1,10}:)?\\/\\//.test(href) || /^([+\\w]{1,10}:)/.test(href);\n}\n\nconst MEDIA_FORMATS = /\\.(svg|png|gif|jpe?g|bmp|webp|ico)$/i;\n\n// TODO: should we deprecate this?\nconst DOC_FORMATS = /\\.(txt|pdf|docx|xlsx|vsd)$/i;\n\nexport function isMediaLink(link: string) {\n return MEDIA_FORMATS.test(link) || DOC_FORMATS.test(link);\n}\n\ntype LocalUrlInfo = Pick<UrlWithStringQuery, 'hash' | 'search'> & {\n path: NormalizedPath;\n};\n\nexport function parseLocalUrl<T = LocalUrlInfo>(url: string | undefined) {\n if (!url || isExternalHref(url) || url.startsWith('/')) {\n return null;\n }\n\n try {\n const parsed = parse(url);\n\n if (parsed.host || parsed.protocol) {\n return null;\n }\n\n return pick(parsed, ['path', 'search', 'hash']) as T;\n } catch {\n return null;\n }\n}\n", "import type Token from 'markdown-it/lib/token';\n\nexport function parseHeading(content: string) {\n const anchors = [];\n const commonHeading = content.match(/^#+/);\n const alternateHeading = content[content.length - 1];\n const alternaleLevels = ['-', '='];\n const level = commonHeading\n ? commonHeading[0].length\n : alternaleLevels.indexOf(alternateHeading) + 1;\n\n if (commonHeading) {\n content = content.replace(/^#+\\s*/, '');\n } else {\n content = content.replace(/\\n[-=]+$/, '');\n }\n\n const ANCHOR = /{(#[^}]+)}/g;\n\n let match;\n // eslint-disable-next-line no-cond-assign\n while ((match = ANCHOR.exec(content))) {\n anchors.push(match[1]);\n content = content.replace(match[0], '');\n ANCHOR.lastIndex -= match[0].length;\n }\n\n const title = content.trim();\n\n return {anchors, title, level};\n}\n\ntype TokenWalker = (\n token: Token,\n state: {commented: boolean; index: number},\n) => void | undefined | {skip: number};\n\nexport function filterTokens(tokens: Token[], type: string, handler: TokenWalker) {\n let commented = false;\n\n if (!tokens || !tokens.length) {\n return;\n }\n\n for (let index = 0; index < tokens.length; index++) {\n const token = tokens[index];\n\n if (token.type === 'html_block') {\n const commentStart = token.content.match('<!--');\n const commentEnd = token.content.match('-->');\n\n if (commentStart && !commentEnd) {\n commented = true;\n }\n\n if (!commentStart && commentEnd) {\n commented = false;\n }\n }\n\n if (token.type === type) {\n const result = handler(token, {commented, index});\n if (result?.skip) {\n index += result?.skip - 1;\n }\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["isExternalHref", "_normalizePath", "import_lodash", "isExternalHref"]
|
|
7
7
|
}
|
package/lib/utils/index.mjs
CHANGED
package/lib/utils/index.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/core/utils/common.ts", "../../src/core/utils/decorators.ts", "../../src/core/utils/extension.ts", "../../src/core/utils/path.ts", "../../src/core/utils/url.ts", "../../src/core/utils/markdown.ts"],
|
|
4
|
-
"sourcesContent": ["import {isObject} from 'lodash';\nimport {bounded} from './decorators';\n\nexport const all = Promise.all.bind(Promise);\n\nexport function zip<T = unknown>(keys: string[], values: T[]) {\n return keys.reduce((acc, key, index) => {\n acc[key] = values[index];\n return acc;\n }, {} as Hash<T>);\n}\n\nexport function own<V = unknown, T extends string = string>(\n box: unknown,\n field: T,\n): box is Record<T, V> {\n return (\n Boolean(box && typeof box === 'object') && Object.prototype.hasOwnProperty.call(box, field)\n );\n}\n\nexport function copyJson<T extends object>(\n json: T | undefined,\n): T extends DeepFrozen<infer R> ? R : T | undefined {\n return json ? JSON.parse(JSON.stringify(json)) : json;\n}\n\nexport function freezeJson<T>(target: T, visited = new Set()): T {\n if (!visited.has(target)) {\n visited.add(target);\n\n if (Array.isArray(target)) {\n target.forEach((item) => freezeJson(item, visited));\n }\n\n if (isObject(target) && !Object.isSealed(target)) {\n Object.freeze(target);\n Object.keys(target).forEach((key) =>\n freezeJson(target[key as keyof typeof target], visited),\n );\n }\n }\n\n return target;\n}\n\nexport function errorMessage(error: unknown): string {\n if (typeof error === 'string') {\n return error;\n }\n\n if (own<string, 'message'>(error, 'message')) {\n return error.message;\n }\n\n return String(error);\n}\n\nexport function fallbackLang(lang: string) {\n if (['kz', 'ua', 'be', 'ru'].includes(lang)) {\n return 'ru';\n }\n\n return 'en';\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class Defer<T = any> {\n promise: Promise<T>;\n\n resolve!: (result: T) => void;\n\n reject!: (error: unknown) => void;\n\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n}\n\nexport function wait(delay: number) {\n return new Promise((resolve) => {\n setTimeout(resolve, delay);\n });\n}\n\nexport type Bucket<T> = {\n get(): T;\n set(value: T): void;\n};\n\nexport function bucket<T>() {\n let _value: T;\n\n return {\n get: () => _value,\n set: (value: T) => {\n _value = value;\n },\n };\n}\n\nexport class Buckets<T> {\n private scope: Map<string, T> = new Map();\n\n @bounded\n bind(key: string) {\n return {\n get: () => this.get(key),\n set: (value: T) => this.set(key, value),\n };\n }\n\n @bounded\n set(key: string, value: T) {\n this.scope.set(key, value);\n }\n\n @bounded\n get(key: string): T {\n return this.scope.get(key) as T;\n }\n}\n", "export function bounded(_originalMethod: unknown, context: ClassMethodDecoratorContext) {\n const methodName = context.name;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n context.addInitializer(function (this: any) {\n this[methodName] = this[methodName].bind(this);\n });\n}\n\nexport function memoize(...props: string[] | [Function]) {\n return function (_originalMethod: unknown, context: ClassMethodDecoratorContext) {\n const methodName = context.name;\n const hash =\n typeof props[0] === 'function'\n ? props[0]\n : function (...args: unknown[]) {\n const mem = args.slice(0, props.length);\n if (!mem.every(isPrimitive)) {\n return null;\n }\n\n return props.map((prop, index) => `${prop}=${mem[index]}`).join('&');\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n context.addInitializer(function (this: any) {\n const cache = new Map();\n const method = this[methodName];\n\n this[methodName] = function (this: unknown, ...args: unknown[]) {\n const key = hash.call(this, ...args);\n\n if (key === null) {\n return method.call(this, ...args);\n }\n\n if (!cache.has(key)) {\n cache.set(key, method.call(this, ...args));\n }\n\n return cache.get(key);\n };\n });\n };\n}\n\nconst PRIMITIVE_TYPES = ['string', 'number', 'symbol', 'boolean', 'undefined'];\n\nfunction isPrimitive(value: unknown) {\n return !value || PRIMITIVE_TYPES.includes(typeof value);\n}\n", "import type {Hook, HookMap} from 'tapable';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Hooks = Hash<Hook<any, any> | HookMap<any>>;\n\nexport function generateHooksAccess<THooks extends Hooks>(\n name: string,\n hooks: (name: string) => THooks,\n) {\n const Hooks = Symbol(`${name}Hooks`);\n\n function getHooks(program: object | undefined): THooks {\n return (program && (program as {[Hooks]: THooks})[Hooks]) || hooks('Unknown');\n }\n\n function withHooks<T extends ClassType>(Target: T, {kind}: ClassDecoratorContext): T {\n if (kind !== 'class') {\n throw new TypeError(`Decorator 'withHooks' is not applicable to '${kind}'.`);\n }\n\n return class extends Target {\n [Hooks] = intercept(this.name, hooks(this.name || name));\n };\n }\n\n return [getHooks, withHooks, Hooks] as const;\n}\n\nexport type HookMeta = {\n service: string;\n hook: string;\n name: string;\n type: string;\n};\n\nexport function intercept<T extends Hooks>(service: string, hooks: T): T {\n for (const [hook, handler] of Object.entries(hooks)) {\n handler.intercept({\n register: (info) => {\n const {type, name, fn} = info;\n const meta = {service, hook, name, type};\n\n if (type === 'promise') {\n info.fn = async (...args: unknown[]) => {\n try {\n return await fn(...args);\n } catch (error) {\n if (error instanceof Error) {\n Object.assign(error, {hook: meta});\n }\n\n throw error;\n }\n };\n } else if (type === 'sync') {\n info.fn = (...args: unknown[]) => {\n try {\n return fn(...args);\n } catch (error) {\n if (error instanceof Error) {\n Object.assign(error, {hook: meta});\n }\n\n throw error;\n }\n };\n } else {\n throw new TypeError('Unexpected hook tap type - ' + type);\n }\n\n return info;\n },\n });\n }\n\n return hooks;\n}\n", "import {dirname, isAbsolute, join, normalize} from 'node:path';\nimport _normalizePath from 'normalize-path';\n\nimport {isExternalHref} from '~/core/utils';\n\nexport function normalizePath(path: string): NormalizedPath {\n return _normalizePath(normalize(_normalizePath(path, false)), false);\n}\n\nexport function isRelativePath(path: string): path is RelativePath {\n return !isExternalHref(path) && !isAbsolute(path);\n}\n\nexport function langFromPath(path: string, config: {lang?: string; langs: string[]}) {\n const {lang, langs} = config;\n const pathBaseLang = normalizePath(path).split('/')[0];\n const pathLang = langs.includes(pathBaseLang) && pathBaseLang;\n\n return pathLang || lang || langs[0];\n}\n\nexport function rebasePath(root: RelativePath, path: RelativePath) {\n return normalizePath(join(dirname(root), path));\n}\n\nexport function fullPath(\n path: AbsolutePath | NormalizedPath,\n root: NormalizedPath,\n): NormalizedPath {\n if (path.match(/^(\\/|\\\\)/)) {\n return normalizePath(path.slice(1));\n } else {\n return normalizePath(join(dirname(root), path));\n }\n}\n", "import {pick} from 'lodash';\nimport {type UrlWithStringQuery, parse} from 'node:url';\n\nexport function isExternalHref(href: string) {\n return /^(\\w{1,10}:)?\\/\\//.test(href) || /^([+\\w]{1,10}:)/.test(href);\n}\n\nconst MEDIA_FORMATS = /\\.(svg|png|gif|jpe?g|bmp|webp|ico)$/i;\n\n// TODO: should we deprecate this?\nconst DOC_FORMATS = /\\.(txt|pdf|docx|xlsx|vsd)$/i;\n\nexport function isMediaLink(link: string) {\n return MEDIA_FORMATS.test(link) || DOC_FORMATS.test(link);\n}\n\ntype LocalUrlInfo = Pick<UrlWithStringQuery, 'hash' | 'search'> & {\n path: NormalizedPath;\n};\n\nexport function parseLocalUrl<T = LocalUrlInfo>(url: string | undefined) {\n if (!url || isExternalHref(url) || url.startsWith('/')) {\n return null;\n }\n\n try {\n const parsed = parse(url);\n\n if (parsed.host || parsed.protocol) {\n return null;\n }\n\n return pick(parsed, ['path', 'search', 'hash']) as T;\n } catch {\n return null;\n }\n}\n", "import type Token from 'markdown-it/lib/token';\n\nexport function parseHeading(content: string) {\n const anchors = [];\n const commonHeading = content.match(/^#+/);\n const alternateHeading = content[content.length - 1];\n const alternaleLevels = ['-', '='];\n const level = commonHeading\n ? commonHeading[0].length\n : alternaleLevels.indexOf(alternateHeading) + 1;\n\n if (commonHeading) {\n content = content.replace(/^#+\\s*/, '');\n } else {\n content = content.replace(/\\n[-=]+$/, '');\n }\n\n const ANCHOR = /{(#[^}]+)}/g;\n\n let match;\n // eslint-disable-next-line no-cond-assign\n while ((match = ANCHOR.exec(content))) {\n anchors.push(match[1]);\n content = content.replace(match[0], '');\n ANCHOR.lastIndex -= match[0].length;\n }\n\n const title = content.trim();\n\n return {anchors, title, level};\n}\n\ntype TokenWalker = (\n token: Token,\n state: {commented: boolean; index: number},\n) => void | undefined | {skip: number};\n\nexport function filterTokens(tokens: Token[], type: string, handler: TokenWalker) {\n let commented = false;\n\n if (!tokens || !tokens.length) {\n return;\n }\n\n for (let index = 0; index < tokens.length; index++) {\n const token = tokens[index];\n\n if (token.type === 'html_block') {\n const commentStart = token.content.match('<!--');\n const commentEnd = token.content.match('-->');\n\n if (commentStart && !commentEnd) {\n commented = true;\n }\n\n if (!commentStart && commentEnd) {\n commented = false;\n }\n }\n\n if (token.type === type) {\n const result = handler(token, {commented, index});\n if (result?.skip) {\n index += result?.skip;\n }\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["import {isObject} from 'lodash';\nimport {bounded} from './decorators';\n\nexport const all = Promise.all.bind(Promise);\n\nexport function zip<T = unknown>(keys: string[], values: T[]) {\n return keys.reduce((acc, key, index) => {\n acc[key] = values[index];\n return acc;\n }, {} as Hash<T>);\n}\n\nexport function own<V = unknown, T extends string = string>(\n box: unknown,\n field: T,\n): box is Record<T, V> {\n return (\n Boolean(box && typeof box === 'object') && Object.prototype.hasOwnProperty.call(box, field)\n );\n}\n\nexport function copyJson<T extends object>(\n json: T | undefined,\n): T extends DeepFrozen<infer R> ? R : T | undefined {\n return json ? JSON.parse(JSON.stringify(json)) : json;\n}\n\nexport function freezeJson<T>(target: T, visited = new Set()): T {\n if (!visited.has(target)) {\n visited.add(target);\n\n if (Array.isArray(target)) {\n target.forEach((item) => freezeJson(item, visited));\n }\n\n if (isObject(target) && !Object.isSealed(target)) {\n Object.freeze(target);\n Object.keys(target).forEach((key) =>\n freezeJson(target[key as keyof typeof target], visited),\n );\n }\n }\n\n return target;\n}\n\nexport function errorMessage(error: unknown): string {\n if (typeof error === 'string') {\n return error;\n }\n\n if (own<string, 'message'>(error, 'message')) {\n return error.message;\n }\n\n return String(error);\n}\n\nexport function fallbackLang(lang: string) {\n if (['kz', 'ua', 'be', 'ru'].includes(lang)) {\n return 'ru';\n }\n\n return 'en';\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class Defer<T = any> {\n promise: Promise<T>;\n\n resolve!: (result: T) => void;\n\n reject!: (error: unknown) => void;\n\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n}\n\nexport function wait(delay: number) {\n return new Promise((resolve) => {\n setTimeout(resolve, delay);\n });\n}\n\nexport type Bucket<T> = {\n get(): T;\n set(value: T): void;\n};\n\nexport function bucket<T>() {\n let _value: T;\n\n return {\n get: () => _value,\n set: (value: T) => {\n _value = value;\n },\n };\n}\n\nexport class Buckets<T> {\n private scope: Map<string, T> = new Map();\n\n @bounded\n bind(key: string) {\n return {\n get: () => this.get(key),\n set: (value: T) => this.set(key, value),\n };\n }\n\n @bounded\n set(key: string, value: T) {\n this.scope.set(key, value);\n }\n\n @bounded\n get(key: string): T {\n return this.scope.get(key) as T;\n }\n}\n", "export function bounded(_originalMethod: unknown, context: ClassMethodDecoratorContext) {\n const methodName = context.name;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n context.addInitializer(function (this: any) {\n this[methodName] = this[methodName].bind(this);\n });\n}\n\nexport function memoize(...props: string[] | [Function]) {\n return function (_originalMethod: unknown, context: ClassMethodDecoratorContext) {\n const methodName = context.name;\n const hash =\n typeof props[0] === 'function'\n ? props[0]\n : function (...args: unknown[]) {\n const mem = args.slice(0, props.length);\n if (!mem.every(isPrimitive)) {\n return null;\n }\n\n return props.map((prop, index) => `${prop}=${mem[index]}`).join('&');\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n context.addInitializer(function (this: any) {\n const cache = new Map();\n const method = this[methodName];\n\n this[methodName] = function (this: unknown, ...args: unknown[]) {\n const key = hash.call(this, ...args);\n\n if (key === null) {\n return method.call(this, ...args);\n }\n\n if (!cache.has(key)) {\n cache.set(key, method.call(this, ...args));\n }\n\n return cache.get(key);\n };\n });\n };\n}\n\nconst PRIMITIVE_TYPES = ['string', 'number', 'symbol', 'boolean', 'undefined'];\n\nfunction isPrimitive(value: unknown) {\n return !value || PRIMITIVE_TYPES.includes(typeof value);\n}\n", "import type {Hook, HookMap} from 'tapable';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Hooks = Hash<Hook<any, any> | HookMap<any>>;\n\nexport function generateHooksAccess<THooks extends Hooks>(\n name: string,\n hooks: (name: string) => THooks,\n) {\n const Hooks = Symbol(`${name}Hooks`);\n\n function getHooks(program: object | undefined): THooks {\n return (program && (program as {[Hooks]: THooks})[Hooks]) || hooks('Unknown');\n }\n\n function withHooks<T extends ClassType>(Target: T, {kind}: ClassDecoratorContext): T {\n if (kind !== 'class') {\n throw new TypeError(`Decorator 'withHooks' is not applicable to '${kind}'.`);\n }\n\n return class extends Target {\n [Hooks] = intercept(this.name, hooks(this.name || name));\n };\n }\n\n return [getHooks, withHooks, Hooks] as const;\n}\n\nexport type HookMeta = {\n service: string;\n hook: string;\n name: string;\n type: string;\n};\n\nexport function intercept<T extends Hooks>(service: string, hooks: T): T {\n for (const [hook, handler] of Object.entries(hooks)) {\n handler.intercept({\n register: (info) => {\n const {type, name, fn} = info;\n const meta = {service, hook, name, type};\n\n if (type === 'promise') {\n info.fn = async (...args: unknown[]) => {\n try {\n return await fn(...args);\n } catch (error) {\n if (error instanceof Error) {\n Object.assign(error, {hook: meta});\n }\n\n throw error;\n }\n };\n } else if (type === 'sync') {\n info.fn = (...args: unknown[]) => {\n try {\n return fn(...args);\n } catch (error) {\n if (error instanceof Error) {\n Object.assign(error, {hook: meta});\n }\n\n throw error;\n }\n };\n } else {\n throw new TypeError('Unexpected hook tap type - ' + type);\n }\n\n return info;\n },\n });\n }\n\n return hooks;\n}\n", "import {dirname, isAbsolute, join, normalize} from 'node:path';\nimport _normalizePath from 'normalize-path';\n\nimport {isExternalHref} from '~/core/utils';\n\nexport function normalizePath(path: string): NormalizedPath {\n return _normalizePath(normalize(_normalizePath(path, false)), false);\n}\n\nexport function isRelativePath(path: string): path is RelativePath {\n return !isExternalHref(path) && !isAbsolute(path);\n}\n\nexport function langFromPath(path: string, config: {lang?: string; langs: string[]}) {\n const {lang, langs} = config;\n const pathBaseLang = normalizePath(path).split('/')[0];\n const pathLang = langs.includes(pathBaseLang) && pathBaseLang;\n\n return pathLang || lang || langs[0];\n}\n\nexport function rebasePath(root: RelativePath, path: RelativePath) {\n return normalizePath(join(dirname(root), path));\n}\n\nexport function fullPath(\n path: AbsolutePath | NormalizedPath,\n root: NormalizedPath,\n): NormalizedPath {\n if (path.match(/^(\\/|\\\\)/)) {\n return normalizePath(path.slice(1));\n } else {\n return normalizePath(join(dirname(root), path));\n }\n}\n", "import {pick} from 'lodash';\nimport {type UrlWithStringQuery, parse} from 'node:url';\n\nexport function isExternalHref(href: string) {\n return /^(\\w{1,10}:)?\\/\\//.test(href) || /^([+\\w]{1,10}:)/.test(href);\n}\n\nconst MEDIA_FORMATS = /\\.(svg|png|gif|jpe?g|bmp|webp|ico)$/i;\n\n// TODO: should we deprecate this?\nconst DOC_FORMATS = /\\.(txt|pdf|docx|xlsx|vsd)$/i;\n\nexport function isMediaLink(link: string) {\n return MEDIA_FORMATS.test(link) || DOC_FORMATS.test(link);\n}\n\ntype LocalUrlInfo = Pick<UrlWithStringQuery, 'hash' | 'search'> & {\n path: NormalizedPath;\n};\n\nexport function parseLocalUrl<T = LocalUrlInfo>(url: string | undefined) {\n if (!url || isExternalHref(url) || url.startsWith('/')) {\n return null;\n }\n\n try {\n const parsed = parse(url);\n\n if (parsed.host || parsed.protocol) {\n return null;\n }\n\n return pick(parsed, ['path', 'search', 'hash']) as T;\n } catch {\n return null;\n }\n}\n", "import type Token from 'markdown-it/lib/token';\n\nexport function parseHeading(content: string) {\n const anchors = [];\n const commonHeading = content.match(/^#+/);\n const alternateHeading = content[content.length - 1];\n const alternaleLevels = ['-', '='];\n const level = commonHeading\n ? commonHeading[0].length\n : alternaleLevels.indexOf(alternateHeading) + 1;\n\n if (commonHeading) {\n content = content.replace(/^#+\\s*/, '');\n } else {\n content = content.replace(/\\n[-=]+$/, '');\n }\n\n const ANCHOR = /{(#[^}]+)}/g;\n\n let match;\n // eslint-disable-next-line no-cond-assign\n while ((match = ANCHOR.exec(content))) {\n anchors.push(match[1]);\n content = content.replace(match[0], '');\n ANCHOR.lastIndex -= match[0].length;\n }\n\n const title = content.trim();\n\n return {anchors, title, level};\n}\n\ntype TokenWalker = (\n token: Token,\n state: {commented: boolean; index: number},\n) => void | undefined | {skip: number};\n\nexport function filterTokens(tokens: Token[], type: string, handler: TokenWalker) {\n let commented = false;\n\n if (!tokens || !tokens.length) {\n return;\n }\n\n for (let index = 0; index < tokens.length; index++) {\n const token = tokens[index];\n\n if (token.type === 'html_block') {\n const commentStart = token.content.match('<!--');\n const commentEnd = token.content.match('-->');\n\n if (commentStart && !commentEnd) {\n commented = true;\n }\n\n if (!commentStart && commentEnd) {\n commented = false;\n }\n }\n\n if (token.type === type) {\n const result = handler(token, {commented, index});\n if (result?.skip) {\n index += result?.skip - 1;\n }\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["isExternalHref"]
|
|
7
7
|
}
|