@autobe/compiler 0.21.0 → 0.22.1
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/lib/prisma/writePrismaApplication.js +2 -2
- package/lib/raw/AutoBeCompilerRealizeTemplate.js +2 -2
- package/lib/raw/AutoBeCompilerRealizeTemplate.js.map +1 -1
- package/lib/raw/AutoBeCompilerTestTemplate.js +2 -2
- package/lib/raw/AutoBeCompilerTestTemplate.js.map +1 -1
- package/lib/raw/nestjs.json +8 -8
- package/lib/raw/test.json +3 -3
- package/lib/realize/testRealizeProject.js +1 -1
- package/lib/realize/testRealizeProject.js.map +1 -1
- package/package.json +7 -7
- package/src/prisma/writePrismaApplication.ts +2 -2
- package/src/raw/AutoBeCompilerRealizeTemplate.ts +2 -2
- package/src/raw/AutoBeCompilerTestTemplate.ts +2 -2
- package/src/raw/nestjs.json +8 -8
- package/src/raw/test.json +3 -3
- package/src/realize/testRealizeProject.ts +1 -1
package/lib/raw/nestjs.json
CHANGED
|
@@ -11602,7 +11602,7 @@
|
|
|
11602
11602
|
"node_modules/@nestia/benchmark/lib/internal/DynamicBenchmarkReporter.d.ts": "import { DynamicBenchmarker } from \"../DynamicBenchmarker\";\nexport declare namespace DynamicBenchmarkReporter {\n const markdown: (report: DynamicBenchmarker.IReport) => string;\n}\n",
|
|
11603
11603
|
"node_modules/@nestia/benchmark/lib/internal/IBenchmarkMaster.d.ts": "export interface IBenchmarkMaster {\n filter: (name: string) => boolean;\n progress: (current: number) => void;\n}\n",
|
|
11604
11604
|
"node_modules/@nestia/benchmark/lib/internal/IBenchmarkServant.d.ts": "import { IBenchmarkEvent } from \"../IBenchmarkEvent\";\nexport interface IBenchmarkServant {\n execute(props: {\n count: number;\n simultaneous: number;\n }): Promise<IBenchmarkEvent[]>;\n}\n",
|
|
11605
|
-
"node_modules/@nestia/benchmark/package.json": "{\n \"name\": \"@nestia/benchmark\",\n \"version\": \"8.0.
|
|
11605
|
+
"node_modules/@nestia/benchmark/package.json": "{\n \"name\": \"@nestia/benchmark\",\n \"version\": \"8.0.7\",\n \"description\": \"NestJS Performance Benchmark Program\",\n \"main\": \"lib/index.js\",\n \"typings\": \"lib/index.d.ts\",\n \"scripts\": {\n \"build\": \"npm run build:main && npm run build:test\",\n \"build:main\": \"rimraf lib && tsc\",\n \"build:test\": \"rimraf bin && tsc -p test/tsconfig.json\",\n \"dev\": \"npm run build:test -- --watch\",\n \"prepare\": \"ts-patch install\",\n \"test\": \"node bin/test\"\n },\n \"keywords\": [\n \"e2e\",\n \"nestia\",\n \"nestjs\",\n \"Performance\",\n \"benchmark\"\n ],\n \"author\": \"Jeongho Nam\",\n \"license\": \"MIT\",\n \"bugs\": {\n \"url\": \"https://github.com/samchon/nestia/issues\"\n },\n \"homepage\": \"https://nestia.io\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/samchon/nestia\"\n },\n \"dependencies\": {\n \"@nestia/fetcher\": \"^8.0.7\",\n \"tgrid\": \"^1.1.0\",\n \"tstl\": \"^3.0.0\"\n },\n \"devDependencies\": {\n \"@nestia/core\": \"^8.0.7\",\n \"@nestia/e2e\": \"^8.0.7\",\n \"@nestia/sdk\": \"^8.0.7\",\n \"@nestjs/common\": \"^11.0.13\",\n \"@nestjs/core\": \"^11.0.13\",\n \"@nestjs/platform-express\": \"^11.0.13\",\n \"@types/uuid\": \"^10.0.0\",\n \"nestia\": \"workspace:^\",\n \"ts-node\": \"^10.9.2\",\n \"ts-patch\": \"^3.3.0\",\n \"typescript\": \"~5.9.2\",\n \"typescript-transform-paths\": \"^3.4.7\",\n \"typia\": \"^9.6.1\",\n \"uuid\": \"^10.0.0\"\n },\n \"files\": [\n \"lib\",\n \"src\",\n \"README.md\",\n \"LICENSE\",\n \"package.json\"\n ]\n}",
|
|
11606
11606
|
"node_modules/@nestia/core/lib/adaptors/WebSocketAdaptor.d.ts": "import { INestApplication } from \"@nestjs/common\";\nexport declare class WebSocketAdaptor {\n static upgrade(app: INestApplication): Promise<WebSocketAdaptor>;\n readonly close: () => Promise<void>;\n private constructor();\n private readonly handleUpgrade;\n private readonly http;\n private readonly operators;\n private readonly ws;\n}\n",
|
|
11607
11607
|
"node_modules/@nestia/core/lib/decorators/DynamicModule.d.ts": "import { ModuleMetadata } from \"@nestjs/common/interfaces\";\n/**\n * Dynamic module.\n *\n * `DynamicModule` is a namespace wrapping a convenient function, which can load\n * controller classes dynamically just by specifying their directory path.\n *\n * @author Jeongho Nam - https://github.com/samchon\n */\nexport declare namespace DynamicModule {\n /**\n * Mount dynamic module.\n *\n * Constructs a module instance with directory path of controller classes.\n *\n * Every controller classes in the target directory would be dynamically\n * mounted.\n *\n * @param path Path of controllers\n * @param metadata Additional metadata except controllers\n * @returns Module instance\n */\n function mount(path: string | string[] | {\n include: string[];\n exclude?: string[];\n }, metadata?: Omit<ModuleMetadata, \"controllers\">, isTsNode?: boolean): Promise<{\n new (): {};\n }>;\n}\n",
|
|
11608
11608
|
"node_modules/@nestia/core/lib/decorators/EncryptedBody.d.ts": "import { IRequestBodyValidator } from \"../options/IRequestBodyValidator\";\n/**\n * Encrypted body decorator.\n *\n * `EncryptedBody` is a decorator function getting `application/json` typed data\n * from request body which has been encrypted by AES-128/256 algorithm. Also,\n * `EncryptedBody` validates the request body data type through\n * [typia](https://github.com/samchon/typia) ad the validation speed is maximum\n * 15,000x times faster than `class-validator`.\n *\n * For reference, when the request body data is not following the promised type\n * `T`, `BadRequestException` error (status code: 400) would be thrown. Also,\n * `EncryptedRoute` decrypts request body using those options.\n *\n * - AES-128/256\n * - CBC mode\n * - PKCS #5 Padding\n * - Base64 Encoding\n *\n * @author Jeongho Nam - https://github.com/samchon\n * @returns Parameter decorator\n */\nexport declare function EncryptedBody<T>(validator?: IRequestBodyValidator<T>): ParameterDecorator;\n",
|
|
@@ -11702,7 +11702,7 @@
|
|
|
11702
11702
|
"node_modules/minimatch/dist/esm/index.d.ts": "import { AST } from './ast.js';\ntype Platform = 'aix' | 'android' | 'darwin' | 'freebsd' | 'haiku' | 'linux' | 'openbsd' | 'sunos' | 'win32' | 'cygwin' | 'netbsd';\nexport interface MinimatchOptions {\n nobrace?: boolean;\n nocomment?: boolean;\n nonegate?: boolean;\n debug?: boolean;\n noglobstar?: boolean;\n noext?: boolean;\n nonull?: boolean;\n windowsPathsNoEscape?: boolean;\n allowWindowsEscape?: boolean;\n partial?: boolean;\n dot?: boolean;\n nocase?: boolean;\n nocaseMagicOnly?: boolean;\n magicalBraces?: boolean;\n matchBase?: boolean;\n flipNegate?: boolean;\n preserveMultipleSlashes?: boolean;\n optimizationLevel?: number;\n platform?: Platform;\n windowsNoMagicRoot?: boolean;\n}\nexport declare const minimatch: {\n (p: string, pattern: string, options?: MinimatchOptions): boolean;\n sep: Sep;\n GLOBSTAR: typeof GLOBSTAR;\n filter: (pattern: string, options?: MinimatchOptions) => (p: string) => boolean;\n defaults: (def: MinimatchOptions) => typeof minimatch;\n braceExpand: (pattern: string, options?: MinimatchOptions) => string[];\n makeRe: (pattern: string, options?: MinimatchOptions) => false | MMRegExp;\n match: (list: string[], pattern: string, options?: MinimatchOptions) => string[];\n AST: typeof AST;\n Minimatch: typeof Minimatch;\n escape: (s: string, { windowsPathsNoEscape, }?: Pick<MinimatchOptions, \"windowsPathsNoEscape\">) => string;\n unescape: (s: string, { windowsPathsNoEscape, }?: Pick<MinimatchOptions, \"windowsPathsNoEscape\">) => string;\n};\ntype Sep = '\\\\' | '/';\nexport declare const sep: Sep;\nexport declare const GLOBSTAR: unique symbol;\nexport declare const filter: (pattern: string, options?: MinimatchOptions) => (p: string) => boolean;\nexport declare const defaults: (def: MinimatchOptions) => typeof minimatch;\nexport declare const braceExpand: (pattern: string, options?: MinimatchOptions) => string[];\nexport declare const makeRe: (pattern: string, options?: MinimatchOptions) => false | MMRegExp;\nexport declare const match: (list: string[], pattern: string, options?: MinimatchOptions) => string[];\nexport type MMRegExp = RegExp & {\n _src?: string;\n _glob?: string;\n};\nexport type ParseReturnFiltered = string | MMRegExp | typeof GLOBSTAR;\nexport type ParseReturn = ParseReturnFiltered | false;\nexport declare class Minimatch {\n options: MinimatchOptions;\n set: ParseReturnFiltered[][];\n pattern: string;\n windowsPathsNoEscape: boolean;\n nonegate: boolean;\n negate: boolean;\n comment: boolean;\n empty: boolean;\n preserveMultipleSlashes: boolean;\n partial: boolean;\n globSet: string[];\n globParts: string[][];\n nocase: boolean;\n isWindows: boolean;\n platform: Platform;\n windowsNoMagicRoot: boolean;\n regexp: false | null | MMRegExp;\n constructor(pattern: string, options?: MinimatchOptions);\n hasMagic(): boolean;\n debug(..._: any[]): void;\n make(): void;\n preprocess(globParts: string[][]): string[][];\n adjascentGlobstarOptimize(globParts: string[][]): string[][];\n levelOneOptimize(globParts: string[][]): string[][];\n levelTwoFileOptimize(parts: string | string[]): string[];\n firstPhasePreProcess(globParts: string[][]): string[][];\n secondPhasePreProcess(globParts: string[][]): string[][];\n partsMatch(a: string[], b: string[], emptyGSMatch?: boolean): false | string[];\n parseNegate(): void;\n matchOne(file: string[], pattern: ParseReturn[], partial?: boolean): boolean;\n braceExpand(): string[];\n parse(pattern: string): ParseReturn;\n makeRe(): false | MMRegExp;\n slashSplit(p: string): string[];\n match(f: string, partial?: boolean): boolean;\n static defaults(def: MinimatchOptions): typeof Minimatch;\n}\nexport { AST } from './ast.js';\nexport { escape } from './escape.js';\nexport { unescape } from './unescape.js';\n//# sourceMappingURL=index.d.ts.map",
|
|
11703
11703
|
"node_modules/minimatch/dist/esm/unescape.d.ts": "import { MinimatchOptions } from './index.js';\n/**\n * Un-escape a string that has been escaped with {@link escape}.\n *\n * If the {@link windowsPathsNoEscape} option is used, then square-brace\n * escapes are removed, but not backslash escapes. For example, it will turn\n * the string `'[*]'` into `*`, but it will not turn `'\\\\*'` into `'*'`,\n * becuase `\\` is a path separator in `windowsPathsNoEscape` mode.\n *\n * When `windowsPathsNoEscape` is not set, then both brace escapes and\n * backslash escapes are removed.\n *\n * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped\n * or unescaped.\n */\nexport declare const unescape: (s: string, { windowsPathsNoEscape, }?: Pick<MinimatchOptions, \"windowsPathsNoEscape\">) => string;\n//# sourceMappingURL=unescape.d.ts.map",
|
|
11704
11704
|
"node_modules/minimatch/package.json": "{\n \"author\": \"Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me)\",\n \"name\": \"minimatch\",\n \"description\": \"a glob matcher in javascript\",\n \"version\": \"3.1.2\",\n \"publishConfig\": {\n \"tag\": \"v3-legacy\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git://github.com/isaacs/minimatch.git\"\n },\n \"main\": \"minimatch.js\",\n \"scripts\": {\n \"test\": \"tap\",\n \"preversion\": \"npm test\",\n \"postversion\": \"npm publish\",\n \"postpublish\": \"git push origin --all; git push origin --tags\"\n },\n \"engines\": {\n \"node\": \"*\"\n },\n \"dependencies\": {\n \"brace-expansion\": \"^1.1.7\"\n },\n \"devDependencies\": {\n \"tap\": \"^15.1.6\"\n },\n \"license\": \"ISC\",\n \"files\": [\n \"minimatch.js\"\n ]\n}\n",
|
|
11705
|
-
"node_modules/@nestia/core/package.json": "{\n \"name\": \"@nestia/core\",\n \"version\": \"8.0.
|
|
11705
|
+
"node_modules/@nestia/core/package.json": "{\n \"name\": \"@nestia/core\",\n \"version\": \"8.0.7\",\n \"description\": \"Super-fast validation decorators of NestJS\",\n \"main\": \"lib/index.js\",\n \"typings\": \"lib/index.d.ts\",\n \"tsp\": {\n \"tscOptions\": {\n \"parseAllJsDoc\": true\n }\n },\n \"scripts\": {\n \"build\": \"rimraf lib && tsc\",\n \"dev\": \"tsc -p tsconfig.test.json --watch\",\n \"eslint\": \"eslint ./**/*.ts\",\n \"eslint:fix\": \"eslint ./**/*.ts --fix\",\n \"prepare\": \"ts-patch install && typia patch\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/samchon/nestia\"\n },\n \"keywords\": [\n \"nestjs\",\n \"nestia\",\n \"typia\",\n \"validator\",\n \"decorator\",\n \"class-validator\",\n \"class-transformer\"\n ],\n \"author\": \"Jeongho Nam\",\n \"license\": \"MIT\",\n \"bugs\": {\n \"url\": \"https://github.com/samchon/nestia/issues\"\n },\n \"homepage\": \"https://nestia.io\",\n \"dependencies\": {\n \"@nestia/fetcher\": \"^8.0.7\",\n \"@nestjs/common\": \">=7.0.1\",\n \"@nestjs/core\": \">=7.0.1\",\n \"@samchon/openapi\": \"^4.5.0\",\n \"detect-ts-node\": \"^1.0.5\",\n \"get-function-location\": \"^2.0.0\",\n \"glob\": \"^11.0.3\",\n \"path-parser\": \"^6.1.0\",\n \"raw-body\": \"^2.0.0\",\n \"reflect-metadata\": \">=0.1.12\",\n \"rxjs\": \">=6.0.3\",\n \"tgrid\": \"^1.1.0\",\n \"typia\": \"^9.6.1\",\n \"ws\": \"^7.5.3\"\n },\n \"peerDependencies\": {\n \"@nestia/fetcher\": \">=8.0.7\",\n \"@nestjs/common\": \">=7.0.1\",\n \"@nestjs/core\": \">=7.0.1\",\n \"@samchon/openapi\": \">=4.5.0 <5.0.0\",\n \"reflect-metadata\": \">=0.1.12\",\n \"rxjs\": \">=6.0.3\",\n \"typia\": \"^9.6.1\"\n },\n \"devDependencies\": {\n \"@nestjs/common\": \"^11.0.13\",\n \"@nestjs/core\": \"^11.0.13\",\n \"@types/express\": \"^4.17.15\",\n \"@types/inquirer\": \"^9.0.3\",\n \"@types/multer\": \"^1.4.12\",\n \"@types/ts-expose-internals\": \"npm:ts-expose-internals@5.4.5\",\n \"@types/ws\": \"^8.5.10\",\n \"@typescript-eslint/eslint-plugin\": \"^5.46.1\",\n \"@typescript-eslint/parser\": \"^5.46.1\",\n \"commander\": \"^10.0.0\",\n \"comment-json\": \"^4.2.3\",\n \"eslint-plugin-deprecation\": \"^1.4.1\",\n \"fastify\": \"^4.28.1\",\n \"git-last-commit\": \"^1.0.1\",\n \"inquirer\": \"^8.2.5\",\n \"rimraf\": \"^6.0.1\",\n \"ts-node\": \"^10.9.1\",\n \"ts-patch\": \"^3.3.0\",\n \"tstl\": \"^3.0.0\",\n \"typescript\": \"~5.9.2\"\n },\n \"files\": [\n \"README.md\",\n \"LICENSE\",\n \"package.json\",\n \"lib\",\n \"src\"\n ]\n}",
|
|
11706
11706
|
"node_modules/@nestia/core/src/typings/get-function-location.d.ts": "declare module \"get-function-location\" {\n export default function (func: any): Promise<{\n source: string;\n line: number;\n column: number;\n }>;\n}\n",
|
|
11707
11707
|
"node_modules/@nestia/core/node_modules/glob/dist/commonjs/glob.d.ts": "import { Minimatch } from 'minimatch';\nimport { Minipass } from 'minipass';\nimport { FSOption, Path, PathScurry } from 'path-scurry';\nimport { IgnoreLike } from './ignore.js';\nimport { Pattern } from './pattern.js';\nexport type MatchSet = Minimatch['set'];\nexport type GlobParts = Exclude<Minimatch['globParts'], undefined>;\n/**\n * A `GlobOptions` object may be provided to any of the exported methods, and\n * must be provided to the `Glob` constructor.\n *\n * All options are optional, boolean, and false by default, unless otherwise\n * noted.\n *\n * All resolved options are added to the Glob object as properties.\n *\n * If you are running many `glob` operations, you can pass a Glob object as the\n * `options` argument to a subsequent operation to share the previously loaded\n * cache.\n */\nexport interface GlobOptions {\n /**\n * Set to `true` to always receive absolute paths for\n * matched files. Set to `false` to always return relative paths.\n *\n * When this option is not set, absolute paths are returned for patterns\n * that are absolute, and otherwise paths are returned that are relative\n * to the `cwd` setting.\n *\n * This does _not_ make an extra system call to get\n * the realpath, it only does string path resolution.\n *\n * Conflicts with {@link withFileTypes}\n */\n absolute?: boolean;\n /**\n * Set to false to enable {@link windowsPathsNoEscape}\n *\n * @deprecated\n */\n allowWindowsEscape?: boolean;\n /**\n * The current working directory in which to search. Defaults to\n * `process.cwd()`.\n *\n * May be eiher a string path or a `file://` URL object or string.\n */\n cwd?: string | URL;\n /**\n * Include `.dot` files in normal matches and `globstar`\n * matches. Note that an explicit dot in a portion of the pattern\n * will always match dot files.\n */\n dot?: boolean;\n /**\n * Prepend all relative path strings with `./` (or `.\\` on Windows).\n *\n * Without this option, returned relative paths are \"bare\", so instead of\n * returning `'./foo/bar'`, they are returned as `'foo/bar'`.\n *\n * Relative patterns starting with `'../'` are not prepended with `./`, even\n * if this option is set.\n */\n dotRelative?: boolean;\n /**\n * Follow symlinked directories when expanding `**`\n * patterns. This can result in a lot of duplicate references in\n * the presence of cyclic links, and make performance quite bad.\n *\n * By default, a `**` in a pattern will follow 1 symbolic link if\n * it is not the first item in the pattern, or none if it is the\n * first item in the pattern, following the same behavior as Bash.\n */\n follow?: boolean;\n /**\n * string or string[], or an object with `ignored` and `childrenIgnored`\n * methods.\n *\n * If a string or string[] is provided, then this is treated as a glob\n * pattern or array of glob patterns to exclude from matches. To ignore all\n * children within a directory, as well as the entry itself, append `'/**'`\n * to the ignore pattern.\n *\n * **Note** `ignore` patterns are _always_ in `dot:true` mode, regardless of\n * any other settings.\n *\n * If an object is provided that has `ignored(path)` and/or\n * `childrenIgnored(path)` methods, then these methods will be called to\n * determine whether any Path is a match or if its children should be\n * traversed, respectively.\n */\n ignore?: string | string[] | IgnoreLike;\n /**\n * Treat brace expansion like `{a,b}` as a \"magic\" pattern. Has no\n * effect if {@link nobrace} is set.\n *\n * Only has effect on the {@link hasMagic} function.\n */\n magicalBraces?: boolean;\n /**\n * Add a `/` character to directory matches. Note that this requires\n * additional stat calls in some cases.\n */\n mark?: boolean;\n /**\n * Perform a basename-only match if the pattern does not contain any slash\n * characters. That is, `*.js` would be treated as equivalent to\n * `**\\/*.js`, matching all js files in all directories.\n */\n matchBase?: boolean;\n /**\n * Limit the directory traversal to a given depth below the cwd.\n * Note that this does NOT prevent traversal to sibling folders,\n * root patterns, and so on. It only limits the maximum folder depth\n * that the walk will descend, relative to the cwd.\n */\n maxDepth?: number;\n /**\n * Do not expand `{a,b}` and `{1..3}` brace sets.\n */\n nobrace?: boolean;\n /**\n * Perform a case-insensitive match. This defaults to `true` on macOS and\n * Windows systems, and `false` on all others.\n *\n * **Note** `nocase` should only be explicitly set when it is\n * known that the filesystem's case sensitivity differs from the\n * platform default. If set `true` on case-sensitive file\n * systems, or `false` on case-insensitive file systems, then the\n * walk may return more or less results than expected.\n */\n nocase?: boolean;\n /**\n * Do not match directories, only files. (Note: to match\n * _only_ directories, put a `/` at the end of the pattern.)\n */\n nodir?: boolean;\n /**\n * Do not match \"extglob\" patterns such as `+(a|b)`.\n */\n noext?: boolean;\n /**\n * Do not match `**` against multiple filenames. (Ie, treat it as a normal\n * `*` instead.)\n *\n * Conflicts with {@link matchBase}\n */\n noglobstar?: boolean;\n /**\n * Defaults to value of `process.platform` if available, or `'linux'` if\n * not. Setting `platform:'win32'` on non-Windows systems may cause strange\n * behavior.\n */\n platform?: NodeJS.Platform;\n /**\n * Set to true to call `fs.realpath` on all of the\n * results. In the case of an entry that cannot be resolved, the\n * entry is omitted. This incurs a slight performance penalty, of\n * course, because of the added system calls.\n */\n realpath?: boolean;\n /**\n *\n * A string path resolved against the `cwd` option, which\n * is used as the starting point for absolute patterns that start\n * with `/`, (but not drive letters or UNC paths on Windows).\n *\n * Note that this _doesn't_ necessarily limit the walk to the\n * `root` directory, and doesn't affect the cwd starting point for\n * non-absolute patterns. A pattern containing `..` will still be\n * able to traverse out of the root directory, if it is not an\n * actual root directory on the filesystem, and any non-absolute\n * patterns will be matched in the `cwd`. For example, the\n * pattern `/../*` with `{root:'/some/path'}` will return all\n * files in `/some`, not all files in `/some/path`. The pattern\n * `*` with `{root:'/some/path'}` will return all the entries in\n * the cwd, not the entries in `/some/path`.\n *\n * To start absolute and non-absolute patterns in the same\n * path, you can use `{root:''}`. However, be aware that on\n * Windows systems, a pattern like `x:/*` or `//host/share/*` will\n * _always_ start in the `x:/` or `//host/share` directory,\n * regardless of the `root` setting.\n */\n root?: string;\n /**\n * A [PathScurry](http://npm.im/path-scurry) object used\n * to traverse the file system. If the `nocase` option is set\n * explicitly, then any provided `scurry` object must match this\n * setting.\n */\n scurry?: PathScurry;\n /**\n * Call `lstat()` on all entries, whether required or not to determine\n * if it's a valid match. When used with {@link withFileTypes}, this means\n * that matches will include data such as modified time, permissions, and\n * so on. Note that this will incur a performance cost due to the added\n * system calls.\n */\n stat?: boolean;\n /**\n * An AbortSignal which will cancel the Glob walk when\n * triggered.\n */\n signal?: AbortSignal;\n /**\n * Use `\\\\` as a path separator _only_, and\n * _never_ as an escape character. If set, all `\\\\` characters are\n * replaced with `/` in the pattern.\n *\n * Note that this makes it **impossible** to match against paths\n * containing literal glob pattern characters, but allows matching\n * with patterns constructed using `path.join()` and\n * `path.resolve()` on Windows platforms, mimicking the (buggy!)\n * behavior of Glob v7 and before on Windows. Please use with\n * caution, and be mindful of [the caveat below about Windows\n * paths](#windows). (For legacy reasons, this is also set if\n * `allowWindowsEscape` is set to the exact value `false`.)\n */\n windowsPathsNoEscape?: boolean;\n /**\n * Return [PathScurry](http://npm.im/path-scurry)\n * `Path` objects instead of strings. These are similar to a\n * NodeJS `Dirent` object, but with additional methods and\n * properties.\n *\n * Conflicts with {@link absolute}\n */\n withFileTypes?: boolean;\n /**\n * An fs implementation to override some or all of the defaults. See\n * http://npm.im/path-scurry for details about what can be overridden.\n */\n fs?: FSOption;\n /**\n * Just passed along to Minimatch. Note that this makes all pattern\n * matching operations slower and *extremely* noisy.\n */\n debug?: boolean;\n /**\n * Return `/` delimited paths, even on Windows.\n *\n * On posix systems, this has no effect. But, on Windows, it means that\n * paths will be `/` delimited, and absolute paths will be their full\n * resolved UNC forms, eg instead of `'C:\\\\foo\\\\bar'`, it would return\n * `'//?/C:/foo/bar'`\n */\n posix?: boolean;\n /**\n * Do not match any children of any matches. For example, the pattern\n * `**\\/foo` would match `a/foo`, but not `a/foo/b/foo` in this mode.\n *\n * This is especially useful for cases like \"find all `node_modules`\n * folders, but not the ones in `node_modules`\".\n *\n * In order to support this, the `Ignore` implementation must support an\n * `add(pattern: string)` method. If using the default `Ignore` class, then\n * this is fine, but if this is set to `false`, and a custom `Ignore` is\n * provided that does not have an `add()` method, then it will throw an\n * error.\n *\n * **Caveat** It *only* ignores matches that would be a descendant of a\n * previous match, and only if that descendant is matched *after* the\n * ancestor is encountered. Since the file system walk happens in\n * indeterminate order, it's possible that a match will already be added\n * before its ancestor, if multiple or braced patterns are used.\n *\n * For example:\n *\n * ```ts\n * const results = await glob([\n * // likely to match first, since it's just a stat\n * 'a/b/c/d/e/f',\n *\n * // this pattern is more complicated! It must to various readdir()\n * // calls and test the results against a regular expression, and that\n * // is certainly going to take a little bit longer.\n * //\n * // So, later on, it encounters a match at 'a/b/c/d/e', but it's too\n * // late to ignore a/b/c/d/e/f, because it's already been emitted.\n * 'a/[bdf]/?/[a-z]/*',\n * ], { includeChildMatches: false })\n * ```\n *\n * It's best to only set this to `false` if you can be reasonably sure that\n * no components of the pattern will potentially match one another's file\n * system descendants, or if the occasional included child entry will not\n * cause problems.\n *\n * @default true\n */\n includeChildMatches?: boolean;\n}\nexport type GlobOptionsWithFileTypesTrue = GlobOptions & {\n withFileTypes: true;\n absolute?: undefined;\n mark?: undefined;\n posix?: undefined;\n};\nexport type GlobOptionsWithFileTypesFalse = GlobOptions & {\n withFileTypes?: false;\n};\nexport type GlobOptionsWithFileTypesUnset = GlobOptions & {\n withFileTypes?: undefined;\n};\nexport type Result<Opts> = Opts extends GlobOptionsWithFileTypesTrue ? Path : Opts extends GlobOptionsWithFileTypesFalse ? string : Opts extends GlobOptionsWithFileTypesUnset ? string : string | Path;\nexport type Results<Opts> = Result<Opts>[];\nexport type FileTypes<Opts> = Opts extends GlobOptionsWithFileTypesTrue ? true : Opts extends GlobOptionsWithFileTypesFalse ? false : Opts extends GlobOptionsWithFileTypesUnset ? false : boolean;\n/**\n * An object that can perform glob pattern traversals.\n */\nexport declare class Glob<Opts extends GlobOptions> implements GlobOptions {\n absolute?: boolean;\n cwd: string;\n root?: string;\n dot: boolean;\n dotRelative: boolean;\n follow: boolean;\n ignore?: string | string[] | IgnoreLike;\n magicalBraces: boolean;\n mark?: boolean;\n matchBase: boolean;\n maxDepth: number;\n nobrace: boolean;\n nocase: boolean;\n nodir: boolean;\n noext: boolean;\n noglobstar: boolean;\n pattern: string[];\n platform: NodeJS.Platform;\n realpath: boolean;\n scurry: PathScurry;\n stat: boolean;\n signal?: AbortSignal;\n windowsPathsNoEscape: boolean;\n withFileTypes: FileTypes<Opts>;\n includeChildMatches: boolean;\n /**\n * The options provided to the constructor.\n */\n opts: Opts;\n /**\n * An array of parsed immutable {@link Pattern} objects.\n */\n patterns: Pattern[];\n /**\n * All options are stored as properties on the `Glob` object.\n *\n * See {@link GlobOptions} for full options descriptions.\n *\n * Note that a previous `Glob` object can be passed as the\n * `GlobOptions` to another `Glob` instantiation to re-use settings\n * and caches with a new pattern.\n *\n * Traversal functions can be called multiple times to run the walk\n * again.\n */\n constructor(pattern: string | string[], opts: Opts);\n /**\n * Returns a Promise that resolves to the results array.\n */\n walk(): Promise<Results<Opts>>;\n /**\n * synchronous {@link Glob.walk}\n */\n walkSync(): Results<Opts>;\n /**\n * Stream results asynchronously.\n */\n stream(): Minipass<Result<Opts>, Result<Opts>>;\n /**\n * Stream results synchronously.\n */\n streamSync(): Minipass<Result<Opts>, Result<Opts>>;\n /**\n * Default sync iteration function. Returns a Generator that\n * iterates over the results.\n */\n iterateSync(): Generator<Result<Opts>, void, void>;\n [Symbol.iterator](): Generator<Result<Opts>, void, void>;\n /**\n * Default async iteration function. Returns an AsyncGenerator that\n * iterates over the results.\n */\n iterate(): AsyncGenerator<Result<Opts>, void, void>;\n [Symbol.asyncIterator](): AsyncGenerator<Result<Opts>, void, void>;\n}\n//# sourceMappingURL=glob.d.ts.map",
|
|
11708
11708
|
"node_modules/@nestia/core/node_modules/glob/dist/commonjs/has-magic.d.ts": "import { GlobOptions } from './glob.js';\n/**\n * Return true if the patterns provided contain any magic glob characters,\n * given the options provided.\n *\n * Brace expansion is not considered \"magic\" unless the `magicalBraces` option\n * is set, as brace expansion just turns one string into an array of strings.\n * So a pattern like `'x{a,b}y'` would return `false`, because `'xay'` and\n * `'xby'` both do not contain any magic glob characters, and it's treated the\n * same as if you had called it on `['xay', 'xby']`. When `magicalBraces:true`\n * is in the options, brace expansion _is_ treated as a pattern having magic.\n */\nexport declare const hasMagic: (pattern: string | string[], options?: GlobOptions) => boolean;\n//# sourceMappingURL=has-magic.d.ts.map",
|
|
@@ -11737,11 +11737,11 @@
|
|
|
11737
11737
|
"node_modules/@nestia/e2e/lib/GaffComparator.d.ts": "/**\n * Type-safe comparator functions for Array.sort() operations with advanced\n * field access.\n *\n * GaffComparator provides a collection of specialized comparator functions\n * designed to work seamlessly with Array.sort() and testing frameworks like\n * TestValidator.sort(). Each comparator supports both single values and arrays\n * of values, enabling complex multi-field sorting scenarios with lexicographic\n * ordering.\n *\n * Key features:\n *\n * - Generic type safety for any object structure\n * - Support for single values or arrays of values per field\n * - Lexicographic comparison for multi-value scenarios\n * - Locale-aware string comparison\n * - Automatic type conversion for dates and numbers\n *\n * The comparators follow the standard JavaScript sort contract:\n *\n * - Return < 0 if first element should come before second\n * - Return > 0 if first element should come after second\n * - Return 0 if elements are equal\n *\n * @author Jeongho Nam - https://github.com/samchon\n * @example\n * ```typescript\n * // Basic usage with single fields\n * users.sort(GaffComparator.strings(user => user.name));\n * posts.sort(GaffComparator.dates(post => post.createdAt));\n * products.sort(GaffComparator.numbers(product => product.price));\n *\n * // Multi-field sorting with arrays\n * users.sort(GaffComparator.strings(user => [user.lastName, user.firstName]));\n * events.sort(GaffComparator.dates(event => [event.startDate, event.endDate]));\n *\n * // Integration with TestValidator's currying pattern\n * const validator = TestValidator.sort(\"user sorting\",\n * (sortable) => api.getUsers({ sort: sortable })\n * )(\"name\", \"email\")(\n * GaffComparator.strings(user => [user.name, user.email])\n * );\n * await validator(\"+\"); // ascending\n * await validator(\"-\"); // descending\n * ```;\n */\nexport declare namespace GaffComparator {\n /**\n * Creates a comparator function for string-based sorting with locale-aware\n * comparison.\n *\n * Generates a comparator that extracts string values from objects and\n * performs lexicographic comparison using locale-sensitive string comparison.\n * Supports both single strings and arrays of strings for multi-field sorting\n * scenarios.\n *\n * When comparing arrays, performs lexicographic ordering: compares the first\n * elements, then the second elements if the first are equal, and so on. This\n * enables complex sorting like \"sort by last name, then by first name\".\n *\n * @example\n * ```typescript\n * interface User {\n * id: string;\n * firstName: string;\n * lastName: string;\n * email: string;\n * status: 'active' | 'inactive';\n * }\n *\n * const users: User[] = [\n * { id: '1', firstName: 'John', lastName: 'Doe', email: 'john@example.com', status: 'active' },\n * { id: '2', firstName: 'Jane', lastName: 'Doe', email: 'jane@example.com', status: 'inactive' },\n * { id: '3', firstName: 'Bob', lastName: 'Smith', email: 'bob@example.com', status: 'active' }\n * ];\n *\n * // Single field sorting\n * users.sort(GaffComparator.strings(user => user.lastName));\n * // Result: Doe, Doe, Smith\n *\n * // Multi-field sorting: last name, then first name\n * users.sort(GaffComparator.strings(user => [user.lastName, user.firstName]));\n * // Result: Doe Jane, Doe John, Smith Bob\n *\n * // Status-based sorting\n * users.sort(GaffComparator.strings(user => user.status));\n * // Result: active users first, then inactive\n *\n * // Complex multi-field: status, then last name, then first name\n * users.sort(GaffComparator.strings(user => [user.status, user.lastName, user.firstName]));\n *\n * // Integration with TestValidator sorting validation\n * const sortValidator = TestValidator.sort(\"user name sorting\",\n * (sortFields) => userApi.getUsers({ sort: sortFields })\n * )(\"lastName\", \"firstName\")(\n * GaffComparator.strings(user => [user.lastName, user.firstName])\n * );\n * await sortValidator(\"+\"); // test ascending order\n * await sortValidator(\"-\"); // test descending order\n * ```;\n *\n * @template T - The type of objects being compared\n * @param getter - Function that extracts string value(s) from input objects\n * @returns A comparator function suitable for Array.sort()\n */\n const strings: <T>(getter: (input: T) => string | string[]) => (x: T, y: T) => number;\n /**\n * Creates a comparator function for date-based sorting with automatic string\n * parsing.\n *\n * Generates a comparator that extracts date values from objects,\n * automatically converting string representations to Date objects for\n * numerical comparison. Supports both single dates and arrays of dates for\n * complex temporal sorting.\n *\n * Date strings are parsed using the standard Date constructor, which supports\n * ISO 8601 format, RFC 2822 format, and other common date representations.\n * The comparison is performed on millisecond timestamps for precise\n * ordering.\n *\n * @example\n * ```typescript\n * interface Event {\n * id: string;\n * title: string;\n * startDate: string;\n * endDate: string;\n * createdAt: string;\n * updatedAt: string;\n * }\n *\n * const events: Event[] = [\n * {\n * id: '1',\n * title: 'Conference',\n * startDate: '2024-03-15T09:00:00Z',\n * endDate: '2024-03-15T17:00:00Z',\n * createdAt: '2024-01-10T10:00:00Z',\n * updatedAt: '2024-02-01T15:30:00Z'\n * },\n * {\n * id: '2',\n * title: 'Workshop',\n * startDate: '2024-03-10T14:00:00Z',\n * endDate: '2024-03-10T16:00:00Z',\n * createdAt: '2024-01-15T11:00:00Z',\n * updatedAt: '2024-01-20T09:15:00Z'\n * }\n * ];\n *\n * // Sort by start date (chronological order)\n * events.sort(GaffComparator.dates(event => event.startDate));\n *\n * // Sort by creation date (oldest first)\n * events.sort(GaffComparator.dates(event => event.createdAt));\n *\n * // Multi-field: start date, then end date\n * events.sort(GaffComparator.dates(event => [event.startDate, event.endDate]));\n *\n * // Sort by modification history: created date, then updated date\n * events.sort(GaffComparator.dates(event => [event.createdAt, event.updatedAt]));\n *\n * // Validate API date sorting with TestValidator\n * const dateValidator = TestValidator.sort(\"event chronological sorting\",\n * (sortFields) => eventApi.getEvents({ sort: sortFields })\n * )(\"startDate\")(\n * GaffComparator.dates(event => event.startDate)\n * );\n * await dateValidator(\"+\", true); // ascending with trace logging\n *\n * // Test complex date-based sorting\n * const sortByEventSchedule = GaffComparator.dates(event => [\n * event.startDate,\n * event.endDate\n * ]);\n * ```;\n *\n * @template T - The type of objects being compared\n * @param getter - Function that extracts date string(s) from input objects\n * @returns A comparator function suitable for Array.sort()\n */\n const dates: <T>(getter: (input: T) => string | string[]) => (x: T, y: T) => number;\n /**\n * Creates a comparator function for numerical sorting with multi-value\n * support.\n *\n * Generates a comparator that extracts numerical values from objects and\n * performs mathematical comparison. Supports both single numbers and arrays\n * of numbers for complex numerical sorting scenarios like sorting by price\n * then by rating.\n *\n * When comparing arrays, performs lexicographic numerical ordering: compares\n * the first numbers, then the second numbers if the first are equal, and so\n * on. This enables sophisticated sorting like \"sort by price ascending, then\n * by rating descending\".\n *\n * @example\n * ```typescript\n * interface Product {\n * id: string;\n * name: string;\n * price: number;\n * rating: number;\n * stock: number;\n * categoryId: number;\n * salesCount: number;\n * }\n *\n * const products: Product[] = [\n * { id: '1', name: 'Laptop', price: 999.99, rating: 4.5, stock: 15, categoryId: 1, salesCount: 150 },\n * { id: '2', name: 'Mouse', price: 29.99, rating: 4.2, stock: 50, categoryId: 1, salesCount: 300 },\n * { id: '3', name: 'Keyboard', price: 79.99, rating: 4.8, stock: 25, categoryId: 1, salesCount: 200 }\n * ];\n *\n * // Sort by price (ascending)\n * products.sort(GaffComparator.numbers(product => product.price));\n * // Result: Mouse ($29.99), Keyboard ($79.99), Laptop ($999.99)\n *\n * // Sort by rating (descending requires negation)\n * products.sort(GaffComparator.numbers(product => -product.rating));\n * // Result: Keyboard (4.8), Laptop (4.5), Mouse (4.2)\n *\n * // Multi-field: category, then price\n * products.sort(GaffComparator.numbers(product => [product.categoryId, product.price]));\n *\n * // Complex business logic: popularity (sales) then rating\n * products.sort(GaffComparator.numbers(product => [-product.salesCount, -product.rating]));\n * // Negative values for descending order\n *\n * // Sort by inventory priority: low stock first, then by sales\n * products.sort(GaffComparator.numbers(product => [product.stock, -product.salesCount]));\n *\n * // Validate API numerical sorting with TestValidator\n * const priceValidator = TestValidator.sort(\"product price sorting\",\n * (sortFields) => productApi.getProducts({ sort: sortFields })\n * )(\"price\")(\n * GaffComparator.numbers(product => product.price)\n * );\n * await priceValidator(\"+\"); // test ascending order\n * await priceValidator(\"-\"); // test descending order\n *\n * // Test multi-criteria sorting\n * const sortByBusinessValue = GaffComparator.numbers(product => [\n * -product.salesCount, // High sales first\n * -product.rating, // High rating first\n * product.price // Low price first (for tie-breaking)\n * ]);\n * ```;\n *\n * @template T - The type of objects being compared\n * @param closure - Function that extracts number value(s) from input objects\n * @returns A comparator function suitable for Array.sort()\n */\n const numbers: <T>(closure: (input: T) => number | number[]) => (x: T, y: T) => number;\n}\n",
|
|
11738
11738
|
"node_modules/@nestia/e2e/lib/MapUtil.d.ts": "/**\n * A namespace providing utility functions for Map manipulation.\n *\n * This namespace contains helper functions for working with JavaScript Map\n * objects, providing convenient methods for common Map operations like\n * retrieving values with lazy initialization.\n *\n * @author Jeongho Nam - https://github.com/samchon\n * @example\n * ```typescript\n * // Create a cache with lazy initialization\n * const cache = new Map<string, ExpensiveObject>();\n *\n * const obj = MapUtil.take(cache, \"key1\", () => {\n * console.log(\"Creating expensive object...\");\n * return new ExpensiveObject();\n * });\n *\n * // Subsequent calls return cached value without re-creating\n * const sameObj = MapUtil.take(cache, \"key1\", () => new ExpensiveObject());\n * console.log(obj === sameObj); // true\n * ```;\n */\nexport declare namespace MapUtil {\n /**\n * Retrieves a value from a Map or creates it using a lazy initialization\n * function.\n *\n * This function implements the \"get or create\" pattern for Maps. If the key\n * exists in the Map, it returns the existing value. Otherwise, it calls the\n * provided factory function to create a new value, stores it in the Map, and\n * returns it. The factory function is only called when the key doesn't exist,\n * enabling lazy initialization and caching patterns.\n *\n * @example\n * ```typescript\n * // Simple caching example\n * const userCache = new Map<number, User>();\n *\n * const user = MapUtil.take(userCache, userId, () => {\n * // This expensive operation only runs if userId is not cached\n * return fetchUserFromDatabase(userId);\n * });\n *\n * // Configuration object caching\n * const configs = new Map<string, Config>();\n *\n * const dbConfig = MapUtil.take(configs, \"database\", () => ({\n * host: \"localhost\",\n * port: 5432,\n * database: \"myapp\"\n * }));\n *\n * // Lazy computation results\n * const computationCache = new Map<string, number>();\n *\n * const result = MapUtil.take(computationCache, \"fibonacci-40\", () => {\n * console.log(\"Computing fibonacci(40)...\");\n * return fibonacci(40); // Only computed once\n * });\n *\n * // Using with complex keys\n * const cache = new Map<[number, number], Matrix>();\n * const key: [number, number] = [rows, cols];\n *\n * const matrix = MapUtil.take(cache, key, () =>\n * generateIdentityMatrix(rows, cols)\n * );\n * ```;\n *\n * @template K - The type of keys in the Map\n * @template V - The type of values in the Map\n * @param map - The Map to retrieve from or update\n * @param key - The key to look up in the Map\n * @param value - A factory function that creates the value if key doesn't exist\n * @returns The existing value if found, or the newly created value\n */\n function take<K, V>(map: Map<K, V>, key: K, value: () => V): V;\n}\n",
|
|
11739
11739
|
"node_modules/@nestia/e2e/lib/RandomGenerator.d.ts": "/**\n * Comprehensive random data generation utilities for testing and development.\n *\n * RandomGenerator provides a collection of functions for generating random data\n * including strings, names, content, dates, and array sampling. All functions\n * are designed to be deterministic within a single execution but produce varied\n * output across different runs, making them ideal for testing scenarios.\n *\n * The namespace includes specialized generators for:\n *\n * - Text content (alphabets, alphanumeric, names, paragraphs)\n * - Phone numbers and contact information\n * - Date ranges and time-based data\n * - Array sampling and element selection\n *\n * @author Jeongho Nam - https://github.com/samchon\n * @example\n * ```typescript\n * // Generate test user data\n * const testUser = {\n * id: RandomGenerator.alphaNumeric(8),\n * name: RandomGenerator.name(),\n * bio: RandomGenerator.paragraph({ sentences: 3, wordMin: 5, wordMax: 10 }),\n * phone: RandomGenerator.mobile(),\n * createdAt: RandomGenerator.date(new Date(), 1000 * 60 * 60 * 24 * 30) // 30 days\n * };\n *\n * // Sample data for testing\n * const testSample = RandomGenerator.sample(allUsers, 5);\n * ```;\n */\nexport declare namespace RandomGenerator {\n /**\n * Generates a random string containing only lowercase alphabetical\n * characters.\n *\n * Creates a string of specified length using only characters a-z. Each\n * character is independently randomly selected, so the same character may\n * appear multiple times. Useful for generating random identifiers, test\n * names, or placeholder text.\n *\n * @example\n * ```typescript\n * RandomGenerator.alphabets(5); // e.g. \"kxqpw\"\n * RandomGenerator.alphabets(3); // e.g. \"mzr\"\n * RandomGenerator.alphabets(10); // e.g. \"qwertasdfg\"\n *\n * // Generate random CSS class names\n * const className = `test-${RandomGenerator.alphabets(6)}`;\n *\n * // Create random variable names for testing\n * const varName = RandomGenerator.alphabets(8);\n * ```\n *\n * @param length - The desired length of the generated alphabetic string\n * @returns A string containing only lowercase letters of the specified length\n */\n const alphabets: (length: number) => string;\n /**\n * Generates a random alphanumeric string containing digits and lowercase\n * letters.\n *\n * Creates a string of specified length using characters from 0-9 and a-z.\n * Each position is independently randomly selected from the combined\n * character set. Ideal for generating random IDs, tokens, passwords, or\n * unique identifiers that need both numeric and alphabetic characters.\n *\n * @example\n * ```typescript\n * RandomGenerator.alphaNumeric(8); // e.g. \"a1b2c3d4\"\n * RandomGenerator.alphaNumeric(12); // e.g. \"x9y8z7w6v5u4\"\n *\n * // Generate random API keys\n * const apiKey = RandomGenerator.alphaNumeric(32);\n *\n * // Create session tokens\n * const sessionId = `sess_${RandomGenerator.alphaNumeric(16)}`;\n *\n * // Generate test database IDs\n * const testId = RandomGenerator.alphaNumeric(10);\n * ```\n *\n * @param length - The desired length of the generated alphanumeric string\n * @returns A string containing digits and lowercase letters of the specified\n * length\n */\n const alphaNumeric: (length: number) => string;\n /**\n * Generates a random name-like string with realistic length variation.\n *\n * Creates a name by generating a paragraph with 2-3 words (randomly chosen).\n * The resulting string resembles typical human names in structure and length.\n * Each word is between 3-7 characters by default, creating realistic-looking\n * names.\n *\n * @example\n * ```typescript\n * RandomGenerator.name(); // e.g. \"lorem ipsum\" (2-3 words)\n * RandomGenerator.name(1); // e.g. \"dolor\" (single word)\n * RandomGenerator.name(3); // e.g. \"sit amet consectetur\" (3 words)\n *\n * // Generate test user names\n * const users = Array.from({ length: 10 }, () => ({\n * id: RandomGenerator.alphaNumeric(8),\n * name: RandomGenerator.name(),\n * email: `${RandomGenerator.name(1)}@test.com`\n * }));\n *\n * // Create random author names for blog posts\n * const authorName = RandomGenerator.name();\n * ```\n *\n * @param length - Number of words in the name (default: random between 2-3)\n * @returns A space-separated string of random words (each 3-7 chars by\n * default)\n */\n const name: (length?: number) => string;\n /**\n * Generates a random paragraph with configurable sentence structure.\n *\n * Creates a paragraph consisting of a specified number of \"sentences\"\n * (words). Each sentence is a random alphabetic string, and sentences are\n * joined with spaces. Accepts an optional configuration object for fine-tuned\n * control over the paragraph structure.\n *\n * @example\n * ```typescript\n * // Generate with defaults (random 2-5 words, 3-7 characters each)\n * RandomGenerator.paragraph(); // e.g. \"lorem ipsum dolor\"\n *\n * // Specific number of sentences\n * RandomGenerator.paragraph({ sentences: 5 }); // \"lorem ipsum dolor sit amet\"\n *\n * // Custom word length ranges\n * RandomGenerator.paragraph({ sentences: 4, wordMin: 2, wordMax: 5 });\n * // \"ab cd ef gh\"\n *\n * // Generate product descriptions\n * const description = RandomGenerator.paragraph({\n * sentences: 8,\n * wordMin: 4,\n * wordMax: 8\n * });\n *\n * // Create test content for forms\n * const placeholder = RandomGenerator.paragraph({\n * sentences: 3,\n * wordMin: 5,\n * wordMax: 10\n * });\n * ```;\n *\n * @param props - Optional configuration object with sentences count and word\n * length ranges\n * @returns A string containing the generated paragraph\n */\n const paragraph: (props?: Partial<{\n sentences: number;\n wordMin: number;\n wordMax: number;\n }>) => string;\n /**\n * Generates random multi-paragraph content with customizable structure.\n *\n * Creates content consisting of multiple paragraphs separated by double\n * newlines. Accepts an optional configuration object to control content\n * structure including paragraph count, sentences per paragraph, and word\n * character lengths. Ideal for generating realistic-looking text content for\n * testing.\n *\n * @example\n * ```typescript\n * // Generate with all defaults\n * const article = RandomGenerator.content();\n *\n * // Specific structure: 5 paragraphs, 15-25 sentences each, 4-8 char words\n * const longContent = RandomGenerator.content({\n * paragraphs: 5,\n * sentenceMin: 15,\n * sentenceMax: 25,\n * wordMin: 4,\n * wordMax: 8\n * });\n *\n * // Short content with brief sentences\n * const shortContent = RandomGenerator.content({\n * paragraphs: 2,\n * sentenceMin: 5,\n * sentenceMax: 8,\n * wordMin: 2,\n * wordMax: 4\n * });\n *\n * // Generate blog post content\n * const blogPost = {\n * title: RandomGenerator.name(3),\n * content: RandomGenerator.content({\n * paragraphs: 4,\n * sentenceMin: 10,\n * sentenceMax: 20,\n * wordMin: 3,\n * wordMax: 7\n * }),\n * summary: RandomGenerator.paragraph({ sentences: 2 })\n * };\n *\n * // Create test data for CMS\n * const pages = Array.from({ length: 10 }, () => ({\n * id: RandomGenerator.alphaNumeric(8),\n * content: RandomGenerator.content({\n * paragraphs: randint(2, 6),\n * sentenceMin: 8,\n * sentenceMax: 15\n * })\n * }));\n * ```;\n *\n * @param props - Optional configuration object with paragraph, sentence, and\n * word parameters\n * @returns A string containing the generated multi-paragraph content\n */\n const content: (props?: Partial<{\n paragraphs: number;\n sentenceMin: number;\n sentenceMax: number;\n wordMin: number;\n wordMax: number;\n }>) => string;\n /**\n * Extracts a random substring from the provided content string.\n *\n * Selects two random positions within the content and returns the substring\n * between them. The starting position is always before the ending position.\n * Automatically trims whitespace from the beginning and end of the result.\n * Useful for creating excerpts, search terms, or partial content samples.\n *\n * @example\n * ```typescript\n * const text = \"The quick brown fox jumps over the lazy dog\";\n *\n * RandomGenerator.substring(text); // e.g. \"quick brown fox\"\n * RandomGenerator.substring(text); // e.g. \"jumps over\"\n * RandomGenerator.substring(text); // e.g. \"fox jumps over the lazy\"\n *\n * // Generate search terms from content\n * const searchQuery = RandomGenerator.substring(articleContent);\n *\n * // Create excerpts for previews\n * const excerpt = RandomGenerator.substring(fullBlogPost);\n *\n * // Generate partial matches for testing search functionality\n * const partialMatch = RandomGenerator.substring(productDescription);\n *\n * // Create random selections for highlight testing\n * const selectedText = RandomGenerator.substring(documentContent);\n * ```;\n *\n * @param content - The source string to extract a substring from\n * @returns A trimmed substring of the original content\n */\n const substring: (content: string) => string;\n /**\n * Generates a random mobile phone number with customizable prefix.\n *\n * Creates a mobile phone number in the format: [prefix][3-4 digits][4\n * digits]. The middle section is 3 digits if the random number is less than\n * 1000, otherwise 4 digits. The last section is always 4 digits, zero-padded\n * if necessary. Commonly used for generating Korean mobile phone numbers or\n * similar formats.\n *\n * @example\n * ```typescript\n * RandomGenerator.mobile(); // e.g. \"0103341234\" or \"01012345678\"\n * RandomGenerator.mobile(\"011\"); // e.g. \"0119876543\" or \"01112345678\"\n * RandomGenerator.mobile(\"+82\"); // e.g. \"+823341234\" or \"+8212345678\"\n *\n * // Generate test user phone numbers\n * const testUsers = Array.from({ length: 100 }, () => ({\n * name: RandomGenerator.name(),\n * phone: RandomGenerator.mobile(),\n * altPhone: RandomGenerator.mobile(\"011\")\n * }));\n *\n * // Create international phone numbers\n * const internationalPhone = RandomGenerator.mobile(\"+821\");\n *\n * // Generate contact list for testing\n * const contacts = [\"010\", \"011\", \"016\", \"017\", \"018\", \"019\"].map(prefix => ({\n * carrier: prefix,\n * number: RandomGenerator.mobile(prefix)\n * }));\n * ```;\n *\n * @param prefix - The prefix string for the phone number (default: \"010\")\n * @returns A formatted mobile phone number string\n */\n const mobile: (prefix?: string) => string;\n /**\n * Generates a random date within a specified range from a starting point.\n *\n * Returns a random date between the start date and start date + range. The\n * range represents the maximum number of milliseconds to add to the starting\n * date. Useful for generating timestamps, creation dates, or scheduling test\n * data.\n *\n * @example\n * ```typescript\n * const now = new Date();\n * const oneDay = 24 * 60 * 60 * 1000;\n * const oneMonth = 30 * oneDay;\n *\n * // Random date within the next 30 days\n * const futureDate = RandomGenerator.date(now, oneMonth);\n *\n * // Random date within the past week\n * const pastWeek = new Date(now.getTime() - 7 * oneDay);\n * const recentDate = RandomGenerator.date(pastWeek, 7 * oneDay);\n *\n * // Generate random creation dates for test data\n * const startOfYear = new Date(2024, 0, 1);\n * const endOfYear = new Date(2024, 11, 31).getTime() - startOfYear.getTime();\n * const randomCreationDate = RandomGenerator.date(startOfYear, endOfYear);\n *\n * // Create test events with random timestamps\n * const events = Array.from({ length: 50 }, () => ({\n * id: RandomGenerator.alphaNumeric(8),\n * title: RandomGenerator.name(2),\n * createdAt: RandomGenerator.date(new Date(), oneMonth),\n * scheduledFor: RandomGenerator.date(new Date(), oneMonth * 3)\n * }));\n * ```;\n *\n * @param from - The starting date for the random range\n * @param range - The range in milliseconds from the starting date\n * @returns A random date within the specified range\n */\n const date: (from: Date, range: number) => Date;\n /**\n * Randomly samples a specified number of unique elements from an array.\n *\n * Selects random elements from the input array without replacement, ensuring\n * all returned elements are unique. The sample size is automatically capped\n * at the array length to prevent errors. Uses a Set-based approach to\n * guarantee uniqueness of selected indices. Ideal for creating test datasets\n * or selecting random subsets for validation.\n *\n * @example\n * ```typescript\n * const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\n *\n * RandomGenerator.sample(numbers, 3); // e.g. [2, 7, 9]\n * RandomGenerator.sample(numbers, 5); // e.g. [1, 4, 6, 8, 10]\n * RandomGenerator.sample(numbers, 15); // returns all 10 elements (capped at array length)\n *\n * // Sample users for testing\n * const allUsers = await getUsersFromDatabase();\n * const testUsers = RandomGenerator.sample(allUsers, 10);\n *\n * // Create random product selections\n * const featuredProducts = RandomGenerator.sample(allProducts, 5);\n *\n * // Generate test data subsets\n * const validationSet = RandomGenerator.sample(trainingData, 100);\n *\n * // Random A/B testing groups\n * const groupA = RandomGenerator.sample(allParticipants, 50);\n * const remaining = allParticipants.filter(p => !groupA.includes(p));\n * const groupB = RandomGenerator.sample(remaining, 50);\n * ```;\n *\n * @param array - The source array to sample from\n * @param count - The number of elements to sample\n * @returns An array containing the randomly selected elements\n */\n const sample: <T>(array: T[], count: number) => T[];\n /**\n * Randomly selects a single element from an array.\n *\n * Chooses one element at random from the provided array using uniform\n * distribution. Each element has an equal probability of being selected. This\n * is a convenience function equivalent to sampling with a count of 1, but\n * returns the element directly rather than an array containing one element.\n *\n * @example\n * ```typescript\n * const colors = ['red', 'blue', 'green', 'yellow', 'purple'];\n * const fruits = ['apple', 'banana', 'orange', 'grape', 'kiwi'];\n *\n * RandomGenerator.pick(colors); // e.g. \"blue\"\n * RandomGenerator.pick(fruits); // e.g. \"apple\"\n *\n * // Select random configuration options\n * const randomTheme = RandomGenerator.pick(['light', 'dark', 'auto']);\n * const randomLocale = RandomGenerator.pick(['en', 'ko', 'ja', 'zh']);\n *\n * // Choose random test scenarios\n * const testScenario = RandomGenerator.pick([\n * 'happy_path',\n * 'edge_case',\n * 'error_condition',\n * 'boundary_test'\n * ]);\n *\n * // Random user role assignment\n * const userRole = RandomGenerator.pick(['admin', 'user', 'moderator']);\n *\n * // Select random API endpoints for testing\n * const endpoints = ['/users', '/posts', '/comments', '/categories'];\n * const randomEndpoint = RandomGenerator.pick(endpoints);\n * ```;\n *\n * @param array - The source array to pick an element from\n * @returns A randomly selected element from the array\n */\n const pick: <T>(array: readonly T[]) => T;\n}\n",
|
|
11740
|
-
"node_modules/@nestia/e2e/lib/TestValidator.d.ts": "/**\n * A comprehensive collection of E2E validation utilities for testing\n * applications.\n *\n * TestValidator provides type-safe validation functions for common testing\n * scenarios including condition checking, equality validation, error testing,\n * HTTP error validation, pagination testing, search functionality validation,\n * and sorting validation.\n *\n * Most functions use direct parameter passing for simplicity, while some\n * maintain currying patterns for advanced composition. All provide detailed\n * error messages for debugging failed assertions.\n *\n * @author Jeongho Nam - https://github.com/samchon\n * @example\n * ```typescript\n * // Basic condition testing\n * TestValidator.predicate(\"user should be authenticated\", user.isAuthenticated);\n *\n * // Equality validation\n * TestValidator.equals(\"API response should match expected\", x, y);\n *\n * // Error validation\n * TestValidator.error(\"should throw on invalid input\", () => assertInput(\"\"));\n * ```;\n */\nexport declare namespace TestValidator {\n /**\n * Validates that a given condition evaluates to true.\n *\n * Supports synchronous boolean values, synchronous functions returning\n * boolean, and asynchronous functions returning Promise<boolean>. The return\n * type is automatically inferred based on the input type.\n *\n * @example\n * ```typescript\n * // Synchronous boolean\n * TestValidator.predicate(\"user should exist\", user !== null);\n *\n * // Synchronous function\n * TestValidator.predicate(\"array should be empty\", () => arr.length === 0);\n *\n * // Asynchronous function\n * await TestValidator.predicate(\"database should be connected\",\n * async () => await db.ping()\n * );\n * ```;\n *\n * @param title - Descriptive title used in error messages when validation\n * fails\n * @param condition - The condition to validate (boolean, function, or async\n * function)\n * @returns Void or Promise<void> based on the input type\n * @throws Error with descriptive message when condition is not satisfied\n */\n function predicate<T extends boolean | (() => boolean) | (() => Promise<boolean>)>(title: string, condition: T): T extends () => Promise<boolean> ? Promise<void> : void;\n /**\n * Validates deep equality between two values using JSON comparison.\n *\n * Performs recursive comparison of objects and arrays. Supports an optional\n * exception filter to ignore specific keys during comparison. Useful for\n * validating API responses, data transformations, and object state changes.\n *\n * @example\n * ```typescript\n * // Basic equality\n * TestValidator.equals(\"response should match expected\", expectedUser, actualUser);\n *\n * // Ignore timestamps in comparison\n * TestValidator.equals(\"user data should match\", expectedUser, actualUser,\n * (key) => key === \"updatedAt\"\n * );\n *\n * // Validate API response structure\n * TestValidator.equals(\"API response structure\",\n * { id: 1, name: \"John\" },\n * { id: 1, name: \"John\" }\n * );\n *\n * // Type-safe nullable comparisons\n * const nullableData: { name: string } | null = getData();\n * TestValidator.equals(\"nullable check\", nullableData, null);\n * ```;\n *\n * @param title - Descriptive title used in error messages when values differ\n * @param X - The first value to compare\n * @param y - The second value to compare (can be null or undefined)\n * @param exception - Optional filter function to exclude specific keys from\n * comparison\n * @throws Error with detailed diff information when values are not equal\n */\n function equals<X, Y extends X>(title: string, X: X, y: Y | null | undefined, exception?: (key: string) => boolean): void;\n /**\n * Validates deep inequality between two values using JSON comparison.\n *\n * Performs recursive comparison of objects and arrays to ensure they are NOT\n * equal. Supports an optional exception filter to ignore specific keys during\n * comparison. Useful for validating that data has changed, objects are\n * different, or mutations have occurred.\n *\n * @example\n * ```typescript\n * // Basic inequality\n * TestValidator.notEquals(\"user should be different after update\", originalUser, updatedUser);\n *\n * // Ignore timestamps in comparison\n * TestValidator.notEquals(\"user data should differ\", originalUser, modifiedUser,\n * (key) => key === \"updatedAt\"\n * );\n *\n * // Validate state changes\n * TestValidator.notEquals(\"state should have changed\", initialState, currentState);\n *\n * // Type-safe nullable comparisons\n * const mutableData: { count: number } | null = getMutableData();\n * TestValidator.notEquals(\"should have changed\", mutableData, null);\n * ```;\n *\n * @param title - Descriptive title used in error messages when values are\n * equal\n * @param x - The first value to compare\n * @param y - The second value to compare (can be null or undefined)\n * @param exception - Optional filter function to exclude specific keys from\n * comparison\n * @throws Error when values are equal (indicating validation failure)\n */\n function notEquals<X, Y extends X>(title: string, x: X, y: Y | null | undefined, exception?: (key: string) => boolean): void;\n /**\n * Validates that a function throws an error or rejects when executed.\n *\n * Expects the provided function to fail. If the function executes\n * successfully without throwing an error or rejecting, this validator will\n * throw an exception. Supports both synchronous and asynchronous functions.\n *\n * @example\n * ```typescript\n * // Synchronous error validation\n * TestValidator.error(\"should reject invalid email\",\n * () => validateEmail(\"invalid-email\")\n * );\n *\n * // Asynchronous error validation\n * await TestValidator.error(\"should reject unauthorized access\",\n * async () => await api.functional.getSecretData()\n * );\n *\n * // Validate input validation\n * TestValidator.error(\"should throw on empty string\",\n * () => processRequiredInput(\"\")\n * );\n * ```;\n *\n * @param title - Descriptive title used in error messages when no error\n * occurs\n * @param task - The function that should throw an error or reject\n * @returns Void or Promise<void> based on the input type\n * @throws Error when the task function does not throw an error or reject\n */\n function error<T>(title: string, task: () => T): T extends Promise<any> ? Promise<void> : void;\n /**\n * Validates that a function throws an HTTP error with specific status codes.\n *\n * Specialized error validator for HTTP operations. Validates that the\n * function throws an HttpError with one of the specified status codes. Useful\n * for testing API endpoints, authentication, and authorization logic.\n *\n * @example\n * ```typescript\n * // Validate 401 Unauthorized\n * await TestValidator.httpError(\"should return 401 for invalid token\", 401,\n * async () => await api.functional.getProtectedResource(\"invalid-token\")\n * );\n *\n * // Validate multiple possible error codes\n * await TestValidator.httpError(\"should return client error\", [400, 404, 422],\n * async () => await api.functional.updateNonexistentResource(data)\n * );\n *\n * // Validate server errors\n * TestValidator.httpError(\"should handle server errors\", [500, 502, 503],\n * () => callFaultyEndpoint()\n * );\n * ```;\n *\n * @param title - Descriptive title used in error messages\n * @param status - Expected status code(s), can be a single number or array\n * @param task - The function that should throw an HttpError\n * @returns Void or Promise<void> based on the input type\n * @throws Error when function doesn't throw HttpError or status code doesn't\n * match\n */\n function httpError<T>(title: string, status: number | number[], task: () => T): T extends Promise<any> ? Promise<void> : void;\n /**\n * Validates pagination index API results against expected entity order.\n *\n * Compares the order of entities returned by a pagination API with manually\n * sorted expected results. Validates that entity IDs appear in the correct\n * sequence. Commonly used for testing database queries, search results, and\n * any paginated data APIs.\n *\n * @example\n * ```typescript\n * // Test article pagination\n * const expectedArticles = await db.articles.findAll({ order: 'created_at DESC' });\n * const actualArticles = await api.functional.getArticles({ page: 1, limit: 10 });\n *\n * TestValidator.index(\"article pagination order\", expectedArticles, actualArticles,\n * true // enable trace logging\n * );\n *\n * // Test user search results\n * const manuallyFilteredUsers = allUsers.filter(u => u.name.includes(\"John\"));\n * const apiSearchResults = await api.functional.searchUsers({ query: \"John\" });\n *\n * TestValidator.index(\"user search results\", manuallyFilteredUsers, apiSearchResults);\n * ```;\n *\n * @param title - Descriptive title used in error messages when order differs\n * @param expected - The expected entities in correct order\n * @param gotten - The actual entities returned by the API\n * @param trace - Optional flag to enable debug logging (default: false)\n * @throws Error when entity order differs between expected and actual results\n */\n const index: <X extends IEntity<any>, Y extends X>(title: string, expected: X[], gotten: Y[], trace?: boolean) => void;\n /**\n * Validates search functionality by testing API results against manual\n * filtering.\n *\n * Comprehensive search validation that samples entities from a complete\n * dataset, extracts search values, applies manual filtering, calls the search\n * API, and compares results. Validates that search APIs return the correct\n * subset of data matching the search criteria.\n *\n * @example\n * ```typescript\n * // Test article search functionality with exact matching\n * const allArticles = await db.articles.findAll();\n * const searchValidator = TestValidator.search(\n * \"article search API\",\n * (req) => api.searchArticles(req),\n * allArticles,\n * 5 // test with 5 random samples\n * );\n *\n * // Test exact match search\n * await searchValidator({\n * fields: [\"title\"],\n * values: (article) => [article.title], // full title for exact match\n * filter: (article, [title]) => article.title === title, // exact match\n * request: ([title]) => ({ search: { title } })\n * });\n *\n * // Test partial match search with includes\n * await searchValidator({\n * fields: [\"content\"],\n * values: (article) => [article.content.substring(0, 20)], // partial content\n * filter: (article, [keyword]) => article.content.includes(keyword),\n * request: ([keyword]) => ({ q: keyword })\n * });\n *\n * // Test multi-field search with exact matching\n * await searchValidator({\n * fields: [\"writer\", \"title\"],\n * values: (article) => [article.writer, article.title],\n * filter: (article, [writer, title]) =>\n * article.writer === writer && article.title === title,\n * request: ([writer, title]) => ({ search: { writer, title } })\n * });\n * ```;\n *\n * @param title - Descriptive title used in error messages when search fails\n * @param getter - API function that performs the search\n * @param total - Complete dataset to sample from for testing\n * @param sampleCount - Number of random samples to test (default: 1)\n * @returns A function that accepts search configuration properties\n * @throws Error when API search results don't match manual filtering results\n */\n const search: <Entity extends IEntity<any>, Request>(title: string, getter: (input: Request) => Promise<Entity[]>, total: Entity[], sampleCount?: number) => <Values extends any[]>(props: ISearchProps<Entity, Values, Request>) => Promise<void>;\n /**\n * Configuration interface for search validation functionality.\n *\n * Defines the structure needed to validate search operations by specifying\n * how to extract search values from entities, filter the dataset manually,\n * and construct API requests.\n *\n * @template Entity - Type of entities being searched, must have an ID field\n * @template Values - Tuple type representing the search values extracted from\n * entities\n * @template Request - Type of the API request object\n */\n interface ISearchProps<Entity extends IEntity<any>, Values extends any[], Request> {\n /** Field names being searched, used in error messages for identification */\n fields: string[];\n /**\n * Extracts search values from a sample entity\n *\n * @param entity - The entity to extract search values from\n * @returns Tuple of values used for searching\n */\n values(entity: Entity): Values;\n /**\n * Manual filter function to determine if an entity matches search criteria\n *\n * @param entity - Entity to test against criteria\n * @param values - Search values to match against\n * @returns True if entity matches the search criteria\n */\n filter(entity: Entity, values: Values): boolean;\n /**\n * Constructs API request object from search values\n *\n * @param values - Search values to include in request\n * @returns Request object for the search API\n */\n request(values: Values): Request;\n }\n /**\n * Validates sorting functionality of pagination APIs.\n *\n * Tests sorting operations by calling the API with sort parameters and\n * validating that results are correctly ordered. Supports multiple fields,\n * ascending/descending order, and optional filtering. Provides detailed error\n * reporting for sorting failures.\n *\n * @example\n * ```typescript\n * // Test single field sorting with GaffComparator\n * const sortValidator = TestValidator.sort(\n * \"article sorting\",\n * (sortable) => api.getArticles({ sort: sortable })\n * )(\"created_at\")(\n * GaffComparator.dates((a) => a.created_at)\n * );\n *\n * await sortValidator(\"+\"); // ascending\n * await sortValidator(\"-\"); // descending\n *\n * // Test multi-field sorting with GaffComparator\n * const userSortValidator = TestValidator.sort(\n * \"user sorting\",\n * (sortable) => api.getUsers({ sort: sortable })\n * )(\"lastName\", \"firstName\")(\n * GaffComparator.strings((user) => [user.lastName, user.firstName]),\n * (user) => user.isActive // only test active users\n * );\n *\n * await userSortValidator(\"+\", true); // ascending with trace logging\n *\n * // Custom comparator for complex logic\n * const customSortValidator = TestValidator.sort(\n * \"custom sorting\",\n * (sortable) => api.getProducts({ sort: sortable })\n * )(\"price\", \"rating\")(\n * (a, b) => {\n * const priceDiff = a.price - b.price;\n * return priceDiff !== 0 ? priceDiff : b.rating - a.rating; // price asc, rating desc\n * }\n * );\n * ```;\n *\n * @param title - Descriptive title used in error messages when sorting fails\n * @param getter - API function that fetches sorted data\n * @returns A currying function chain: field names, comparator, then direction\n * @throws Error when API results are not properly sorted according to\n * specification\n */\n const sort: <T extends object, Fields extends string, Sortable extends Array<`-${Fields}` | `+${Fields}`> = Array<`-${Fields}` | `+${Fields}`>>(title: string, getter: (sortable: Sortable) => Promise<T[]>) => (...fields: Fields[]) => (comp: (x: T, y: T) => number, filter?: (elem: T) => boolean) => (direction: \"+\" | \"-\", trace?: boolean) => Promise<void>;\n /**\n * Type alias for sortable field specifications.\n *\n * Represents an array of sort field specifications where each field can be\n * prefixed with '+' for ascending order or '-' for descending order.\n *\n * @example\n * ```typescript\n * type UserSortable = TestValidator.Sortable<\"name\" | \"email\" | \"created_at\">;\n * // Results in: Array<\"-name\" | \"+name\" | \"-email\" | \"+email\" | \"-created_at\" | \"+created_at\">\n *\n * const userSort: UserSortable = [\"+name\", \"-created_at\"];\n * ```;\n *\n * @template Literal - String literal type representing available field names\n */\n type Sortable<Literal extends string> = Array<`-${Literal}` | `+${Literal}`>;\n}\ninterface IEntity<Type extends string | number | bigint> {\n id: Type;\n}\nexport {};\n",
|
|
11740
|
+
"node_modules/@nestia/e2e/lib/TestValidator.d.ts": "/**\n * A comprehensive collection of E2E validation utilities for testing\n * applications.\n *\n * TestValidator provides type-safe validation functions for common testing\n * scenarios including condition checking, equality validation, error testing,\n * HTTP error validation, pagination testing, search functionality validation,\n * and sorting validation.\n *\n * Most functions use direct parameter passing for simplicity, while some\n * maintain currying patterns for advanced composition. All provide detailed\n * error messages for debugging failed assertions.\n *\n * @author Jeongho Nam - https://github.com/samchon\n * @example\n * ```typescript\n * // Basic condition testing\n * TestValidator.predicate(\"user should be authenticated\", user.isAuthenticated);\n *\n * // Equality validation\n * TestValidator.equals(\"API response should match expected\", x, y);\n *\n * // Error validation\n * TestValidator.error(\"should throw on invalid input\", () => assertInput(\"\"));\n * ```;\n */\nexport declare namespace TestValidator {\n /**\n * Validates that a given condition evaluates to true.\n *\n * Supports synchronous boolean values, synchronous functions returning\n * boolean, and asynchronous functions returning Promise<boolean>. The return\n * type is automatically inferred based on the input type.\n *\n * @example\n * ```typescript\n * // Synchronous boolean\n * TestValidator.predicate(\"user should exist\", user !== null);\n *\n * // Synchronous function\n * TestValidator.predicate(\"array should be empty\", () => arr.length === 0);\n *\n * // Asynchronous function\n * await TestValidator.predicate(\"database should be connected\",\n * async () => await db.ping()\n * );\n * ```;\n *\n * @param title - Descriptive title used in error messages when validation\n * fails\n * @param condition - The condition to validate (boolean, function, or async\n * function)\n * @returns Void or Promise<void> based on the input type\n * @throws Error with descriptive message when condition is not satisfied\n */\n function predicate<T extends boolean | (() => boolean) | (() => Promise<boolean>)>(title: string, condition: T): T extends () => Promise<boolean> ? Promise<void> : void;\n /**\n * Validates deep equality between two values using JSON comparison.\n *\n * Performs recursive comparison of objects and arrays. Supports an optional\n * exception filter to ignore specific keys during comparison. Useful for\n * validating API responses, data transformations, and object state changes.\n *\n * @example\n * ```typescript\n * // Basic equality\n * TestValidator.equals(\"response should match expected\", expectedUser, actualUser);\n *\n * // Ignore timestamps in comparison\n * TestValidator.equals(\"user data should match\", expectedUser, actualUser,\n * (key) => key === \"updatedAt\"\n * );\n *\n * // Validate API response structure\n * TestValidator.equals(\"API response structure\",\n * { id: 1, name: \"John\" },\n * { id: 1, name: \"John\" }\n * );\n *\n * // Type-safe nullable comparisons\n * const nullableData: { name: string } | null = getData();\n * TestValidator.equals(\"nullable check\", nullableData, null);\n * ```;\n *\n * @param title - Descriptive title used in error messages when values differ\n * @param X - The first value to compare\n * @param y - The second value to compare (can be null or undefined)\n * @param exception - Optional filter function to exclude specific keys from\n * comparison\n * @throws Error with detailed diff information when values are not equal\n */\n function equals<X, Y extends X = X>(title: string, X: X, y: Y | null | undefined, exception?: (key: string) => boolean): void;\n /**\n * Validates deep inequality between two values using JSON comparison.\n *\n * Performs recursive comparison of objects and arrays to ensure they are NOT\n * equal. Supports an optional exception filter to ignore specific keys during\n * comparison. Useful for validating that data has changed, objects are\n * different, or mutations have occurred.\n *\n * @example\n * ```typescript\n * // Basic inequality\n * TestValidator.notEquals(\"user should be different after update\", originalUser, updatedUser);\n *\n * // Ignore timestamps in comparison\n * TestValidator.notEquals(\"user data should differ\", originalUser, modifiedUser,\n * (key) => key === \"updatedAt\"\n * );\n *\n * // Validate state changes\n * TestValidator.notEquals(\"state should have changed\", initialState, currentState);\n *\n * // Type-safe nullable comparisons\n * const mutableData: { count: number } | null = getMutableData();\n * TestValidator.notEquals(\"should have changed\", mutableData, null);\n * ```;\n *\n * @param title - Descriptive title used in error messages when values are\n * equal\n * @param x - The first value to compare\n * @param y - The second value to compare (can be null or undefined)\n * @param exception - Optional filter function to exclude specific keys from\n * comparison\n * @throws Error when values are equal (indicating validation failure)\n */\n function notEquals<X, Y extends X = X>(title: string, x: X, y: Y | null | undefined, exception?: (key: string) => boolean): void;\n /**\n * Validates that a function throws an error or rejects when executed.\n *\n * Expects the provided function to fail. If the function executes\n * successfully without throwing an error or rejecting, this validator will\n * throw an exception. Supports both synchronous and asynchronous functions.\n *\n * @example\n * ```typescript\n * // Synchronous error validation\n * TestValidator.error(\"should reject invalid email\",\n * () => validateEmail(\"invalid-email\")\n * );\n *\n * // Asynchronous error validation\n * await TestValidator.error(\"should reject unauthorized access\",\n * async () => await api.functional.getSecretData()\n * );\n *\n * // Validate input validation\n * TestValidator.error(\"should throw on empty string\",\n * () => processRequiredInput(\"\")\n * );\n * ```;\n *\n * @param title - Descriptive title used in error messages when no error\n * occurs\n * @param task - The function that should throw an error or reject\n * @returns Void or Promise<void> based on the input type\n * @throws Error when the task function does not throw an error or reject\n */\n function error<T>(title: string, task: () => T): T extends Promise<any> ? Promise<void> : void;\n /**\n * Validates that a function throws an HTTP error with specific status codes.\n *\n * Specialized error validator for HTTP operations. Validates that the\n * function throws an HttpError with one of the specified status codes. Useful\n * for testing API endpoints, authentication, and authorization logic.\n *\n * @example\n * ```typescript\n * // Validate 401 Unauthorized\n * await TestValidator.httpError(\"should return 401 for invalid token\", 401,\n * async () => await api.functional.getProtectedResource(\"invalid-token\")\n * );\n *\n * // Validate multiple possible error codes\n * await TestValidator.httpError(\"should return client error\", [400, 404, 422],\n * async () => await api.functional.updateNonexistentResource(data)\n * );\n *\n * // Validate server errors\n * TestValidator.httpError(\"should handle server errors\", [500, 502, 503],\n * () => callFaultyEndpoint()\n * );\n * ```;\n *\n * @param title - Descriptive title used in error messages\n * @param status - Expected status code(s), can be a single number or array\n * @param task - The function that should throw an HttpError\n * @returns Void or Promise<void> based on the input type\n * @throws Error when function doesn't throw HttpError or status code doesn't\n * match\n */\n function httpError<T>(title: string, status: number | number[], task: () => T): T extends Promise<any> ? Promise<void> : void;\n /**\n * Validates pagination index API results against expected entity order.\n *\n * Compares the order of entities returned by a pagination API with manually\n * sorted expected results. Validates that entity IDs appear in the correct\n * sequence. Commonly used for testing database queries, search results, and\n * any paginated data APIs.\n *\n * @example\n * ```typescript\n * // Test article pagination\n * const expectedArticles = await db.articles.findAll({ order: 'created_at DESC' });\n * const actualArticles = await api.functional.getArticles({ page: 1, limit: 10 });\n *\n * TestValidator.index(\"article pagination order\", expectedArticles, actualArticles,\n * true // enable trace logging\n * );\n *\n * // Test user search results\n * const manuallyFilteredUsers = allUsers.filter(u => u.name.includes(\"John\"));\n * const apiSearchResults = await api.functional.searchUsers({ query: \"John\" });\n *\n * TestValidator.index(\"user search results\", manuallyFilteredUsers, apiSearchResults);\n * ```;\n *\n * @param title - Descriptive title used in error messages when order differs\n * @param expected - The expected entities in correct order\n * @param gotten - The actual entities returned by the API\n * @param trace - Optional flag to enable debug logging (default: false)\n * @throws Error when entity order differs between expected and actual results\n */\n const index: <X extends IEntity<any>, Y extends X = X>(title: string, expected: X[], gotten: Y[], trace?: boolean) => void;\n /**\n * Validates search functionality by testing API results against manual\n * filtering.\n *\n * Comprehensive search validation that samples entities from a complete\n * dataset, extracts search values, applies manual filtering, calls the search\n * API, and compares results. Validates that search APIs return the correct\n * subset of data matching the search criteria.\n *\n * @example\n * ```typescript\n * // Test article search functionality with exact matching\n * const allArticles = await db.articles.findAll();\n * const searchValidator = TestValidator.search(\n * \"article search API\",\n * (req) => api.searchArticles(req),\n * allArticles,\n * 5 // test with 5 random samples\n * );\n *\n * // Test exact match search\n * await searchValidator({\n * fields: [\"title\"],\n * values: (article) => [article.title], // full title for exact match\n * filter: (article, [title]) => article.title === title, // exact match\n * request: ([title]) => ({ search: { title } })\n * });\n *\n * // Test partial match search with includes\n * await searchValidator({\n * fields: [\"content\"],\n * values: (article) => [article.content.substring(0, 20)], // partial content\n * filter: (article, [keyword]) => article.content.includes(keyword),\n * request: ([keyword]) => ({ q: keyword })\n * });\n *\n * // Test multi-field search with exact matching\n * await searchValidator({\n * fields: [\"writer\", \"title\"],\n * values: (article) => [article.writer, article.title],\n * filter: (article, [writer, title]) =>\n * article.writer === writer && article.title === title,\n * request: ([writer, title]) => ({ search: { writer, title } })\n * });\n * ```;\n *\n * @param title - Descriptive title used in error messages when search fails\n * @param getter - API function that performs the search\n * @param total - Complete dataset to sample from for testing\n * @param sampleCount - Number of random samples to test (default: 1)\n * @returns A function that accepts search configuration properties\n * @throws Error when API search results don't match manual filtering results\n */\n const search: <Entity extends IEntity<any>, Request>(title: string, getter: (input: Request) => Promise<Entity[]>, total: Entity[], sampleCount?: number) => <Values extends any[]>(props: ISearchProps<Entity, Values, Request>) => Promise<void>;\n /**\n * Configuration interface for search validation functionality.\n *\n * Defines the structure needed to validate search operations by specifying\n * how to extract search values from entities, filter the dataset manually,\n * and construct API requests.\n *\n * @template Entity - Type of entities being searched, must have an ID field\n * @template Values - Tuple type representing the search values extracted from\n * entities\n * @template Request - Type of the API request object\n */\n interface ISearchProps<Entity extends IEntity<any>, Values extends any[], Request> {\n /** Field names being searched, used in error messages for identification */\n fields: string[];\n /**\n * Extracts search values from a sample entity\n *\n * @param entity - The entity to extract search values from\n * @returns Tuple of values used for searching\n */\n values(entity: Entity): Values;\n /**\n * Manual filter function to determine if an entity matches search criteria\n *\n * @param entity - Entity to test against criteria\n * @param values - Search values to match against\n * @returns True if entity matches the search criteria\n */\n filter(entity: Entity, values: Values): boolean;\n /**\n * Constructs API request object from search values\n *\n * @param values - Search values to include in request\n * @returns Request object for the search API\n */\n request(values: Values): Request;\n }\n /**\n * Validates sorting functionality of pagination APIs.\n *\n * Tests sorting operations by calling the API with sort parameters and\n * validating that results are correctly ordered. Supports multiple fields,\n * ascending/descending order, and optional filtering. Provides detailed error\n * reporting for sorting failures.\n *\n * @example\n * ```typescript\n * // Test single field sorting with GaffComparator\n * const sortValidator = TestValidator.sort(\n * \"article sorting\",\n * (sortable) => api.getArticles({ sort: sortable })\n * )(\"created_at\")(\n * GaffComparator.dates((a) => a.created_at)\n * );\n *\n * await sortValidator(\"+\"); // ascending\n * await sortValidator(\"-\"); // descending\n *\n * // Test multi-field sorting with GaffComparator\n * const userSortValidator = TestValidator.sort(\n * \"user sorting\",\n * (sortable) => api.getUsers({ sort: sortable })\n * )(\"lastName\", \"firstName\")(\n * GaffComparator.strings((user) => [user.lastName, user.firstName]),\n * (user) => user.isActive // only test active users\n * );\n *\n * await userSortValidator(\"+\", true); // ascending with trace logging\n *\n * // Custom comparator for complex logic\n * const customSortValidator = TestValidator.sort(\n * \"custom sorting\",\n * (sortable) => api.getProducts({ sort: sortable })\n * )(\"price\", \"rating\")(\n * (a, b) => {\n * const priceDiff = a.price - b.price;\n * return priceDiff !== 0 ? priceDiff : b.rating - a.rating; // price asc, rating desc\n * }\n * );\n * ```;\n *\n * @param title - Descriptive title used in error messages when sorting fails\n * @param getter - API function that fetches sorted data\n * @returns A currying function chain: field names, comparator, then direction\n * @throws Error when API results are not properly sorted according to\n * specification\n */\n const sort: <T extends object, Fields extends string, Sortable extends Array<`-${Fields}` | `+${Fields}`> = Array<`-${Fields}` | `+${Fields}`>>(title: string, getter: (sortable: Sortable) => Promise<T[]>) => (...fields: Fields[]) => (comp: (x: T, y: T) => number, filter?: (elem: T) => boolean) => (direction: \"+\" | \"-\", trace?: boolean) => Promise<void>;\n /**\n * Type alias for sortable field specifications.\n *\n * Represents an array of sort field specifications where each field can be\n * prefixed with '+' for ascending order or '-' for descending order.\n *\n * @example\n * ```typescript\n * type UserSortable = TestValidator.Sortable<\"name\" | \"email\" | \"created_at\">;\n * // Results in: Array<\"-name\" | \"+name\" | \"-email\" | \"+email\" | \"-created_at\" | \"+created_at\">\n *\n * const userSort: UserSortable = [\"+name\", \"-created_at\"];\n * ```;\n *\n * @template Literal - String literal type representing available field names\n */\n type Sortable<Literal extends string> = Array<`-${Literal}` | `+${Literal}`>;\n}\ninterface IEntity<Type extends string | number | bigint> {\n id: Type;\n}\nexport {};\n",
|
|
11741
11741
|
"node_modules/@nestia/e2e/lib/index.d.ts": "import * as e2e from \"./module\";\nexport default e2e;\nexport * from \"./module\";\n",
|
|
11742
11742
|
"node_modules/@nestia/e2e/lib/internal/json_equal_to.d.ts": "export declare const json_equal_to: (exception: (key: string) => boolean) => <T>(x: T) => (y: T | null | undefined) => string[];\n",
|
|
11743
11743
|
"node_modules/@nestia/e2e/lib/module.d.ts": "export * from \"./ArrayUtil\";\nexport * from \"./MapUtil\";\nexport * from \"./RandomGenerator\";\nexport * from \"./DynamicExecutor\";\nexport * from \"./GaffComparator\";\nexport * from \"./TestValidator\";\n",
|
|
11744
|
-
"node_modules/@nestia/e2e/package.json": "{\n \"name\": \"@nestia/e2e\",\n \"version\": \"8.0.
|
|
11744
|
+
"node_modules/@nestia/e2e/package.json": "{\n \"name\": \"@nestia/e2e\",\n \"version\": \"8.0.7\",\n \"description\": \"E2E test utilify functions\",\n \"main\": \"lib/index.js\",\n \"typings\": \"lib/index.d.ts\",\n \"scripts\": {\n \"build\": \"npm run build:main && npm run build:test\",\n \"build:main\": \"rimraf lib && tsc\",\n \"build:test\": \"rimraf bin && tsc -p test/tsconfig.json\",\n \"dev\": \"npm run build:test -- --watch\",\n \"eslint\": \"eslint src && eslint test\",\n \"prepare\": \"ts-patch install && typia patch\",\n \"test\": \"node bin/test\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/samchon/nestia\"\n },\n \"keywords\": [\n \"e2e\",\n \"nestia\",\n \"nestjs\",\n \"test\",\n \"tdd\",\n \"utility\"\n ],\n \"author\": \"Jeongho Nam\",\n \"license\": \"MIT\",\n \"bugs\": {\n \"url\": \"https://github.com/samchon/nestia/issues\"\n },\n \"homepage\": \"https://nestia.io\",\n \"devDependencies\": {\n \"@trivago/prettier-plugin-sort-imports\": \"^4.0.0\",\n \"@types/node\": \"^18.11.18\",\n \"@typescript-eslint/eslint-plugin\": \"^5.57.0\",\n \"@typescript-eslint/parser\": \"^5.57.0\",\n \"rimraf\": \"^6.0.1\",\n \"ts-node\": \"^10.9.1\",\n \"ts-patch\": \"^3.3.0\",\n \"typescript\": \"~5.9.2\",\n \"typescript-transform-paths\": \"^3.4.7\",\n \"typia\": \"^9.6.1\"\n },\n \"files\": [\n \"lib\",\n \"src\",\n \"README.md\",\n \"LICENSE\",\n \"package.json\"\n ]\n}",
|
|
11745
11745
|
"node_modules/@nestia/editor/lib/NestiaEditorApplication.d.ts": "export declare function NestiaEditorApplication(): import(\"react/jsx-runtime\").JSX.Element;\n",
|
|
11746
11746
|
"node_modules/@nestia/editor/lib/NestiaEditorIframe.d.ts": "import { OpenApiV3, OpenApiV3_1, SwaggerV2 } from \"@samchon/openapi\";\nexport declare function NestiaEditorIframe(props: NestiaEditorIframe.IProps): import(\"react/jsx-runtime\").JSX.Element;\nexport declare namespace NestiaEditorIframe {\n interface IProps {\n swagger: string | SwaggerV2.IDocument | OpenApiV3.IDocument | OpenApiV3_1.IDocument;\n package?: string;\n keyword?: boolean;\n simulate?: boolean;\n e2e?: boolean;\n }\n}\n",
|
|
11747
11747
|
"node_modules/@nestia/editor/lib/NestiaEditorModule.d.ts": "import type { OpenApiV3, OpenApiV3_1, SwaggerV2 } from \"@samchon/openapi\";\nexport declare namespace NestiaEditorModule {\n const setup: (props: {\n path: string;\n application: INestApplication;\n swagger: string | SwaggerV2.IDocument | OpenApiV3.IDocument | OpenApiV3_1.IDocument;\n package?: string;\n simulate?: boolean;\n e2e?: boolean;\n }) => Promise<void>;\n}\ninterface INestApplication {\n use(...args: any[]): this;\n getUrl(): Promise<string>;\n getHttpAdapter(): INestHttpAdaptor;\n setGlobalPrefix(prefix: string, options?: any): this;\n}\ninterface INestHttpAdaptor {\n getType(): string;\n close(): any;\n init?(): Promise<void>;\n get: Function;\n post: Function;\n put: Function;\n patch: Function;\n delete: Function;\n head: Function;\n all: Function;\n}\nexport {};\n",
|
|
@@ -11750,7 +11750,7 @@
|
|
|
11750
11750
|
"node_modules/@nestia/editor/lib/internal/NestiaEditorComposer.d.ts": "import { OpenApiV3, OpenApiV3_1, SwaggerV2 } from \"@samchon/openapi\";\nimport { IValidation } from \"typia\";\nexport declare namespace NestiaEditorComposer {\n interface IProps {\n document: SwaggerV2.IDocument | OpenApiV3.IDocument | OpenApiV3_1.IDocument;\n e2e: boolean;\n keyword: boolean;\n simulate: boolean;\n package?: string;\n }\n interface IOutput {\n files: Record<string, string>;\n openFile: string;\n startScript: string[];\n }\n const nest: (props: IProps) => Promise<IValidation<IOutput>>;\n const sdk: (props: IProps) => Promise<IValidation<IOutput>>;\n}\n",
|
|
11751
11751
|
"node_modules/@nestia/editor/lib/internal/NestiaEditorFileUploader.d.ts": "import { OpenApiV3, OpenApiV3_1, SwaggerV2 } from \"@samchon/openapi\";\nexport declare function NestiaEditorFileUploader(props: NestiaEditorFileUploader.IProps): import(\"react/jsx-runtime\").JSX.Element;\nexport declare namespace NestiaEditorFileUploader {\n interface IProps {\n onChange: (swagger: SwaggerV2.IDocument | OpenApiV3.IDocument | OpenApiV3_1.IDocument | null, error: string | null) => void;\n }\n}\n",
|
|
11752
11752
|
"node_modules/@nestia/editor/lib/main.d.ts": "export {};\n",
|
|
11753
|
-
"node_modules/@nestia/editor/package.json": "{\n \"name\": \"@nestia/editor\",\n \"version\": \"8.0.
|
|
11753
|
+
"node_modules/@nestia/editor/package.json": "{\n \"name\": \"@nestia/editor\",\n \"version\": \"8.0.7\",\n \"main\": \"lib/index.js\",\n \"module\": \"lib/index.mjs\",\n \"typings\": \"lib/index.d.ts\",\n \"description\": \"Swagger-UI + Cloud TypeScript Editor\",\n \"scripts\": {\n \"build\": \"npm run build:static && npm run build:lib\",\n \"build:static\": \"rimraf dist && tsc -b && vite build\",\n \"build:lib\": \"rimraf lib && tsc --project tsconfig.lib.json && rollup -c\",\n \"dev\": \"vite\",\n \"lint\": \"eslint .\",\n \"preview\": \"vite preview\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/samchon/nestia\"\n },\n \"keywords\": [\n \"openapi\",\n \"swagger\",\n \"generator\",\n \"cloud\",\n \"typescript\",\n \"editor\",\n \"sdk\",\n \"nestjs\",\n \"nestia\"\n ],\n \"author\": \"Jeongho Nam\",\n \"license\": \"MIT\",\n \"bugs\": {\n \"url\": \"https://github.com/samchon/nestia/issues\"\n },\n \"homepage\": \"https://nestia.io\",\n \"dependencies\": {\n \"@mui/material\": \"^5.15.6\",\n \"@nestia/migrate\": \"^8.0.7\",\n \"@samchon/openapi\": \"^4.5.0\",\n \"@stackblitz/sdk\": \"^1.11.0\",\n \"@trivago/prettier-plugin-sort-imports\": \"^5.2.2\",\n \"js-yaml\": \"^4.1.0\",\n \"prettier\": \"3.3.3\",\n \"prettier-plugin-jsdoc\": \"^1.3.2\",\n \"react-mui-fileuploader\": \"^0.5.2\",\n \"typia\": \"^9.6.1\"\n },\n \"devDependencies\": {\n \"@eslint/js\": \"^9.13.0\",\n \"@nestjs/common\": \"^11.0.13\",\n \"@nestjs/core\": \"^11.0.13\",\n \"@nestjs/platform-express\": \"^11.0.13\",\n \"@nestjs/platform-fastify\": \"^11.0.13\",\n \"@rollup/plugin-terser\": \"^0.4.4\",\n \"@rollup/plugin-typescript\": \"^12.1.1\",\n \"@types/js-yaml\": \"^4.0.9\",\n \"@types/node\": \"^22.8.6\",\n \"@types/react\": \"^18.3.11\",\n \"@types/react-dom\": \"^18.3.1\",\n \"@vitejs/plugin-react\": \"^4.3.3\",\n \"eslint\": \"^9.13.0\",\n \"eslint-plugin-react-hooks\": \"^5.0.0\",\n \"eslint-plugin-react-refresh\": \"^0.4.13\",\n \"globals\": \"^15.11.0\",\n \"react\": \"^18.3.1\",\n \"react-dom\": \"^18.3.1\",\n \"rollup\": \"^4.24.2\",\n \"ts-node\": \"^10.9.2\",\n \"typescript\": \"~5.9.2\",\n \"typescript-eslint\": \"^8.10.0\",\n \"vite\": \"^5.4.9\"\n },\n \"files\": [\n \"README.md\",\n \"LICENSE\",\n \"package.json\",\n \"dist\",\n \"lib\",\n \"src\"\n ]\n}",
|
|
11754
11754
|
"node_modules/@nestia/editor/src/vite-env.d.ts": "/// <reference types=\"vite/client\" />\n",
|
|
11755
11755
|
"node_modules/@nestia/fetcher/lib/AesPkcs5.d.ts": "/**\n * Utility class for the AES-128/256 encryption.\n *\n * - AES-128/256\n * - CBC mode\n * - PKCS#5 Padding\n * - Base64 Encoding\n *\n * @author Jeongho Nam - https://github.com/samchon\n */\nexport declare namespace AesPkcs5 {\n /**\n * Encrypt data\n *\n * @param data Target data\n * @param key Key value of the encryption.\n * @param iv Initializer Vector for the encryption\n * @returns Encrypted data\n */\n function encrypt(data: string, key: string, iv: string): string;\n /**\n * Decrypt data.\n *\n * @param data Target data\n * @param key Key value of the decryption.\n * @param iv Initializer Vector for the decryption\n * @returns Decrypted data.\n */\n function decrypt(data: string, key: string, iv: string): string;\n}\n",
|
|
11756
11756
|
"node_modules/@nestia/fetcher/lib/EncryptedFetcher.d.ts": "import { IConnection } from \"./IConnection\";\nimport { IFetchRoute } from \"./IFetchRoute\";\nimport { IPropagation } from \"./IPropagation\";\n/**\n * Utility class for `fetch` functions used in `@nestia/sdk` with encryption.\n *\n * `EncryptedFetcher` is a utility class designed for SDK functions generated by\n * [`@nestia/sdk`](https://nestia.io/docs/sdk/sdk), interacting with the remote\n * HTTP API encrypted by AES-PKCS algorithm. In other words, this is a\n * collection of dedicated `fetch()` functions for `@nestia/sdk` with\n * encryption.\n *\n * For reference, `EncryptedFetcher` class being used only when target\n * controller method is encrypting body data by `@EncryptedRoute` or\n * `@EncryptedBody` decorators. If those decorators are not used,\n * {@link PlainFetcher} class would be used instead.\n *\n * @author Jeongho Nam - https://github.com/samchon\n */\nexport declare namespace EncryptedFetcher {\n /**\n * Fetch function only for `HEAD` method.\n *\n * @param connection Connection information for the remote HTTP server\n * @param route Route information about the target API\n * @returns Nothing because of `HEAD` method\n */\n function fetch(connection: IConnection, route: IFetchRoute<\"HEAD\">): Promise<void>;\n /**\n * Fetch function only for `GET` method.\n *\n * @param connection Connection information for the remote HTTP server\n * @param route Route information about the target API\n * @returns Response body data from the remote API\n */\n function fetch<Output>(connection: IConnection, route: IFetchRoute<\"GET\">): Promise<Output>;\n /**\n * Fetch function for the `POST`, `PUT`, `PATCH` and `DELETE` methods.\n *\n * @param connection Connection information for the remote HTTP server\n * @param route Route information about the target API\n * @returns Response body data from the remote API\n */\n function fetch<Input, Output>(connection: IConnection, route: IFetchRoute<\"POST\" | \"PUT\" | \"PATCH\" | \"DELETE\">, input?: Input, stringify?: (input: Input) => string): Promise<Output>;\n function propagate<Output extends IPropagation<any, any>>(connection: IConnection, route: IFetchRoute<\"GET\" | \"HEAD\">): Promise<Output>;\n function propagate<Input, Output extends IPropagation<any, any>>(connection: IConnection, route: IFetchRoute<\"DELETE\" | \"GET\" | \"HEAD\" | \"PATCH\" | \"POST\" | \"PUT\">, input?: Input, stringify?: (input: Input) => string): Promise<Output>;\n}\n",
|
|
@@ -11766,7 +11766,7 @@
|
|
|
11766
11766
|
"node_modules/@nestia/fetcher/lib/PlainFetcher.d.ts": "import { IConnection } from \"./IConnection\";\nimport { IFetchRoute } from \"./IFetchRoute\";\nimport { IPropagation } from \"./IPropagation\";\n/**\n * Utility class for `fetch` functions used in `@nestia/sdk`.\n *\n * `PlainFetcher` is a utility class designed for SDK functions generated by\n * [`@nestia/sdk`](https://nestia.io/docs/sdk/sdk), interacting with the remote\n * HTTP sever API. In other words, this is a collection of dedicated `fetch()`\n * functions for `@nestia/sdk`.\n *\n * For reference, `PlainFetcher` class does not encrypt or decrypt the body data\n * at all. It just delivers plain data without any post processing. If you've\n * defined a controller method through `@EncryptedRoute` or `@EncryptedBody`\n * decorator, then {@liink EncryptedFetcher} class would be used instead.\n *\n * @author Jeongho Nam - https://github.com/samchon\n */\nexport declare namespace PlainFetcher {\n /**\n * Fetch function only for `HEAD` method.\n *\n * @param connection Connection information for the remote HTTP server\n * @param route Route information about the target API\n * @returns Nothing because of `HEAD` method\n */\n function fetch(connection: IConnection, route: IFetchRoute<\"HEAD\">): Promise<void>;\n /**\n * Fetch function only for `GET` method.\n *\n * @param connection Connection information for the remote HTTP server\n * @param route Route information about the target API\n * @returns Response body data from the remote API\n */\n function fetch<Output>(connection: IConnection, route: IFetchRoute<\"GET\">): Promise<Output>;\n /**\n * Fetch function for the `POST`, `PUT`, `PATCH` and `DELETE` methods.\n *\n * @param connection Connection information for the remote HTTP server\n * @param route Route information about the target API\n * @returns Response body data from the remote API\n */\n function fetch<Input, Output>(connection: IConnection, route: IFetchRoute<\"POST\" | \"PUT\" | \"PATCH\" | \"DELETE\">, input?: Input, stringify?: (input: Input) => string): Promise<Output>;\n function propagate<Output extends IPropagation<any, any>>(connection: IConnection, route: IFetchRoute<\"GET\" | \"HEAD\">): Promise<Output>;\n function propagate<Input, Output extends IPropagation<any, any>>(connection: IConnection, route: IFetchRoute<\"DELETE\" | \"GET\" | \"HEAD\" | \"PATCH\" | \"POST\" | \"PUT\">, input?: Input, stringify?: (input: Input) => string): Promise<Output>;\n}\n",
|
|
11767
11767
|
"node_modules/@nestia/fetcher/lib/index.d.ts": "export * from \"./FormDataInput\";\nexport * from \"./HttpError\";\nexport * from \"./IConnection\";\nexport * from \"./IEncryptionPassword\";\nexport * from \"./IFetchEvent\";\nexport * from \"./IFetchRoute\";\nexport * from \"./IPropagation\";\n",
|
|
11768
11768
|
"node_modules/@nestia/fetcher/lib/internal/FetcherBase.d.ts": "export {};\n",
|
|
11769
|
-
"node_modules/@nestia/fetcher/package.json": "{\n \"name\": \"@nestia/fetcher\",\n \"version\": \"8.0.
|
|
11769
|
+
"node_modules/@nestia/fetcher/package.json": "{\n \"name\": \"@nestia/fetcher\",\n \"version\": \"8.0.7\",\n \"description\": \"Fetcher library of Nestia SDK\",\n \"main\": \"lib/index.js\",\n \"typings\": \"lib/index.d.ts\",\n \"scripts\": {\n \"build\": \"rimraf lib && tsc\",\n \"dev\": \"tsc -p tsconfig.test.json --watch\",\n \"eslint\": \"eslint src\",\n \"eslint:fix\": \"eslint src --fix\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/samchon/nestia\"\n },\n \"keywords\": [\n \"nestia\",\n \"fetcher\",\n \"sdk\"\n ],\n \"author\": \"Jeongho Nam\",\n \"license\": \"MIT\",\n \"bugs\": {\n \"url\": \"https://github.com/samchon/nestia/issues\"\n },\n \"homepage\": \"https://nestia.io\",\n \"dependencies\": {\n \"@samchon/openapi\": \"^4.5.0\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^18.11.14\",\n \"@typescript-eslint/eslint-plugin\": \"^5.46.1\",\n \"@typescript-eslint/parser\": \"^5.46.1\",\n \"rimraf\": \"^6.0.1\",\n \"typescript\": \"~5.9.2\"\n },\n \"files\": [\n \"README.md\",\n \"LICENSE\",\n \"package.json\",\n \"lib\",\n \"src\"\n ]\n}",
|
|
11770
11770
|
"node_modules/@nestia/migrate/lib/NestiaMigrateApplication.d.ts": "import { IHttpMigrateApplication, OpenApi, OpenApiV3, OpenApiV3_1, SwaggerV2 } from \"@samchon/openapi\";\nimport { IValidation } from \"typia\";\nimport { INestiaMigrateConfig } from \"./structures/INestiaMigrateConfig\";\nimport { INestiaMigrateContext } from \"./structures/INestiaMigrateContext\";\nimport { INestiaMigrateFile } from \"./structures/INestiaMigrateFile\";\nexport declare class NestiaMigrateApplication {\n readonly document: OpenApi.IDocument;\n private readonly data_;\n constructor(document: OpenApi.IDocument);\n static assert(document: SwaggerV2.IDocument | OpenApiV3.IDocument | OpenApiV3_1.IDocument | OpenApi.IDocument): NestiaMigrateApplication;\n static validate(document: SwaggerV2.IDocument | OpenApiV3.IDocument | OpenApiV3_1.IDocument | OpenApi.IDocument): IValidation<NestiaMigrateApplication>;\n getData(): IHttpMigrateApplication;\n /** @deprecated */\n getErrors(): IHttpMigrateApplication.IError[];\n nest(config: INestiaMigrateConfig): Record<string, string>;\n sdk(config: INestiaMigrateConfig): Record<string, string>;\n}\nexport declare namespace MigrateApplication {\n interface IOutput {\n context: INestiaMigrateContext;\n files: INestiaMigrateFile[];\n errors: IHttpMigrateApplication.IError[];\n }\n}\n",
|
|
11771
11771
|
"node_modules/@nestia/migrate/lib/analyzers/NestiaMigrateControllerAnalyzer.d.ts": "import { IHttpMigrateRoute } from \"@samchon/openapi\";\nimport { INestiaMigrateController } from \"../structures/INestiaMigrateController\";\nexport declare namespace NestiaMigrateControllerAnalyzer {\n const analyze: (routes: IHttpMigrateRoute[]) => INestiaMigrateController[];\n}\n",
|
|
11772
11772
|
"node_modules/@nestia/migrate/lib/archivers/NestiaMigrateFileArchiver.d.ts": "export declare namespace NestiaMigrateFileArchiver {\n const archive: (props: {\n mkdir: (path: string) => Promise<void>;\n writeFile: (path: string, content: string) => Promise<void>;\n root: string;\n files: Record<string, string>;\n }) => Promise<void>;\n}\n",
|
|
@@ -11807,7 +11807,7 @@
|
|
|
11807
11807
|
"node_modules/@nestia/migrate/lib/utils/StringUtil.d.ts": "export declare namespace StringUtil {\n const capitalize: (str: string) => string;\n const splitWithNormalization: (path: string) => string[];\n const escapeDuplicate: (keep: string[]) => (change: string) => string;\n const escapeNonVariable: (str: string) => string;\n}\n",
|
|
11808
11808
|
"node_modules/@nestia/migrate/lib/utils/openapi-down-convert/RefVisitor.d.ts": "/**\n * Recursively walk a JSON object and invoke a callback function on each `{\n * \"$ref\" : \"path\" }` object found\n */\n/**\n * Represents a JSON Reference object, such as `{\"$ref\":\n * \"#/components/schemas/problemResponse\" }`\n */\nexport interface RefObject {\n $ref: string;\n}\n/** JsonNode represents a node within the OpenAPI object */\nexport type JsonNode = object | [] | string | boolean | null | number;\n/** A JSON Schema object in an API def */\nexport type SchemaObject = object;\n/** Function signature for the visitRefObjects callback */\nexport type RefVisitor = (node: RefObject) => JsonNode;\n/** Function signature for the visitSchemaObjects callback */\nexport type SchemaVisitor = (node: SchemaObject) => SchemaObject;\n/** /** Function signature for the walkObject callback */\nexport type ObjectVisitor = (node: object) => JsonNode;\n/** Test if a JSON node is a `{ $ref: \"uri\" }` object */\nexport declare function isRef(node: any): boolean;\n/**\n * Walk a JSON object and apply `schemaCallback` when a JSON schema is found.\n * JSON Schema objects are items in components/schemas or in an item named\n * `schema`\n *\n * @param node A node in the OpenAPI document\n * @param schemaCallback The function to call on JSON schema objects\n * @returns The modified (annotated) node\n */\nexport declare function visitSchemaObjects(node: any, schemaCallback: SchemaVisitor): any;\n/**\n * Walk a JSON object and apply `refCallback` when a JSON `{$ref: url }` is\n * found\n *\n * @param node A node in the OpenAPI document\n * @param refCallback The function to call on JSON `$ref` objects\n * @returns The modified (annotated) node\n */\nexport declare function visitRefObjects(node: any, refCallback: RefVisitor): any;\n/**\n * Walk a JSON object or array and apply objectCallback when a JSON object is\n * found\n *\n * @param node A node in the OpenAPI document\n * @param objectCallback The function to call on JSON objects\n * @param nav Tracks where we are in the original document\n * @returns The modified (annotated) node\n */\nexport declare function walkObject(node: object, objectCallback: ObjectVisitor): JsonNode;\n",
|
|
11809
11809
|
"node_modules/@nestia/migrate/lib/utils/openapi-down-convert/converter.d.ts": "/** Options for the converter instantiation */\nexport interface ConverterOptions {\n /** If `true`, log conversion transformations to stderr */\n verbose?: boolean;\n /**\n * If `true`, remove `id` values in schema examples, to bypass [Spectral issue\n * 2081](https://github.com/stoplightio/spectral/issues/2081)\n */\n deleteExampleWithId?: boolean;\n /** If `true`, replace a `$ref` object that has siblings into an `allOf` */\n allOfTransform?: boolean;\n /** The authorizationUrl for openIdConnect -> oauth2 transformation */\n authorizationUrl?: string;\n /** The tokenUrl for openIdConnect -> oauth2 transformation */\n tokenUrl?: string;\n /**\n * Name of YAML/JSON file with scope descriptions. This is a simple map in the\n * format `{ scope1: \"description of scope1\", ... }`\n */\n scopeDescriptionFile?: string;\n /**\n * Earlier versions of the tool converted $comment to x-comment in JSON\n * Schemas. The tool now deletes $comment values by default. Use this option\n * to preserve the conversion and not delete comments.\n */\n convertSchemaComments?: boolean;\n}\nexport declare class Converter {\n private openapi30;\n private verbose;\n private deleteExampleWithId;\n private allOfTransform;\n private authorizationUrl;\n /** The tokenUrl for openIdConnect -> oauth2 transformation */\n private tokenUrl;\n private scopeDescriptions;\n private convertSchemaComments;\n private returnCode;\n /**\n * Construct a new Converter\n *\n * @throws Error if the scopeDescriptionFile (if specified) cannot be read or\n * parsed as YAML/JSON\n */\n constructor(openapiDocument: object, options?: ConverterOptions);\n /**\n * Load the scopes.yaml file and save in this.scopeDescriptions\n *\n * @throws Error if the file cannot be read or parsed as YAML/JSON\n */\n private loadScopeDescriptions;\n /**\n * Log a message to console.warn stream if verbose is true\n *\n * @param message Parameters for console.warn\n */\n private log;\n /**\n * Log a message to console.warn stream. Prefix the message string with\n * `Warning: ` if it does not already have that text.\n *\n * @param message Parameters for console.warn\n */\n private warn;\n /**\n * Log an error message to `console.error` stream. Prefix the message string\n * with `Error: ` if it does not already start with `'Error'`. Increments the\n * `returnCode`, causing the CLI to throw an Error when done.\n *\n * @param message Parameters for `console.error`\n */\n private error;\n /**\n * Convert the OpenAPI document to 3.0\n *\n * @returns The converted document. The input is not modified.\n */\n convert(): object;\n /**\n * OpenAPI 3.1 uses JSON Schema 2020-12 which allows schema `examples`;\n * OpenAPI 3.0 uses JSON Scheme Draft 7 which only allows `example`. Replace\n * all `examples` with `example`, using `examples[0]`\n */\n convertJsonSchemaExamples(): void;\n private walkNestedSchemaObjects;\n /**\n * OpenAPI 3.1 uses JSON Schema 2020-12 which allows `const` OpenAPI 3.0 uses\n * JSON Scheme Draft 7 which only allows `enum`. Replace all `const: value`\n * with `enum: [ value ]`\n */\n convertConstToEnum(): void;\n /**\n * Convert 2-element type arrays containing 'null' to string type and\n * `nullable: true`\n */\n convertNullableTypeArray(): void;\n removeWebhooksObject(): void;\n removeUnsupportedSchemaKeywords(): void;\n renameSchema$comment(): void;\n private deleteSchema$comment;\n /**\n * Convert\n *\n * contentMediaType: \"application/octet-stream\";\n *\n * To\n *\n * format: binary;\n *\n * In `type: string` schemas. Warn if schema has a `format` already and it is\n * not `binary`.\n */\n convertJsonSchemaContentMediaType(): void;\n /**\n * Convert\n *\n * contentEncoding: base64;\n *\n * To\n *\n * format: byte;\n *\n * In `type: string` schemas. It is an error if the schema has a `format`\n * already and it is not `byte`.\n */\n convertJsonSchemaContentEncoding(): void;\n private json;\n /**\n * OpenAPI 3.1 defines a new `openIdConnect` security scheme. Down-convert the\n * scheme to `oauth2` / authorization code flow. Collect all the scopes used\n * in any security requirements within operations and add them to the scheme.\n * Also define the URLs to the `authorizationUrl` and `tokenUrl` of `oauth2`.\n */\n convertSecuritySchemes(): void;\n /**\n * Find remaining OpenAPI 3.0 [Reference\n * Objects](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#referenceObject)\n * and down convert them to [JSON\n * Reference](https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03)\n * objects with _only_ a `$ref` property.\n */\n simplifyNonSchemaRef(): void;\n removeLicenseIdentifier(): void;\n convertSchemaRef(): void;\n static deepClone(obj: object): object;\n}\n",
|
|
11810
|
-
"node_modules/@nestia/migrate/package.json": "{\n \"name\": \"@nestia/migrate\",\n \"version\": \"8.0.
|
|
11810
|
+
"node_modules/@nestia/migrate/package.json": "{\n \"name\": \"@nestia/migrate\",\n \"version\": \"8.0.7\",\n \"description\": \"Migration program from swagger to NestJS\",\n \"typings\": \"lib/index.d.ts\",\n \"main\": \"lib/index.js\",\n \"module\": \"lib/index.mjs\",\n \"bin\": {\n \"@nestia/migrate\": \"lib/executable/migrate.js\"\n },\n \"scripts\": {\n \"build\": \"rimraf lib && tsc && rollup -c\",\n \"bundle\": \"node src/executable/bundle.js\",\n \"dev\": \"rimraf lib && tsc --watch\",\n \"package:next\": \"npm publish --access public --tag next\",\n \"prepare\": \"ts-patch install && typia patch && npm run bundle\",\n \"test\": \"node lib/test\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/samchon/nestia\"\n },\n \"keywords\": [\n \"migration\",\n \"swagger\",\n \"openapi generator\",\n \"NestJS\",\n \"nestia\",\n \"SDK\",\n \"RPC\",\n \"Mockup Simulator\"\n ],\n \"author\": \"Jeongho Nam\",\n \"license\": \"MIT\",\n \"bugs\": {\n \"url\": \"https://github.com/samchon/nestia/issues\"\n },\n \"homepage\": \"https://nestia.io\",\n \"devDependencies\": {\n \"@nestia/benchmark\": \"^8.0.7\",\n \"@nestia/core\": \"^8.0.7\",\n \"@nestia/e2e\": \"^8.0.7\",\n \"@nestia/fetcher\": \"^8.0.7\",\n \"@nestia/sdk\": \"^8.0.7\",\n \"@nestjs/common\": \"^11.0.13\",\n \"@nestjs/core\": \"^11.0.13\",\n \"@nestjs/platform-express\": \"^11.0.13\",\n \"@nestjs/platform-fastify\": \"^11.0.13\",\n \"@rollup/plugin-terser\": \"^0.4.4\",\n \"@rollup/plugin-typescript\": \"^12.1.1\",\n \"@trivago/prettier-plugin-sort-imports\": \"^4.3.0\",\n \"@types/cli-progress\": \"^3.11.5\",\n \"@types/express\": \"^4.17.21\",\n \"@types/inquirer\": \"^9.0.7\",\n \"@types/multer\": \"^1.4.12\",\n \"@types/node\": \"^20.3.3\",\n \"@types/swagger-ui-express\": \"^4.1.6\",\n \"chalk\": \"4.1.2\",\n \"cli-progress\": \"^3.12.0\",\n \"dotenv\": \"^16.3.1\",\n \"dotenv-expand\": \"^10.0.0\",\n \"express\": \"^4.19.2\",\n \"multer\": \"^2.0.2\",\n \"rimraf\": \"^6.0.1\",\n \"rollup\": \"^4.24.3\",\n \"serialize-error\": \"^4.1.0\",\n \"source-map-support\": \"^0.5.21\",\n \"swagger-ui-express\": \"^5.0.0\",\n \"tgrid\": \"^1.1.0\",\n \"ts-node\": \"^10.9.1\",\n \"ts-patch\": \"^3.3.0\",\n \"typescript-transform-paths\": \"^3.5.2\"\n },\n \"dependencies\": {\n \"@samchon/openapi\": \"^4.5.0\",\n \"commander\": \"10.0.0\",\n \"inquirer\": \"8.2.5\",\n \"prettier\": \"^3.3.3\",\n \"prettier-plugin-jsdoc\": \"^1.3.2\",\n \"tstl\": \"^3.0.0\",\n \"typescript\": \"~5.9.2\",\n \"typia\": \"^9.6.1\"\n },\n \"files\": [\n \"lib\",\n \"src\",\n \"!lib/test\",\n \"!src/test\",\n \"package.json\",\n \"README.md\",\n \"LICENSE\"\n ]\n}",
|
|
11811
11811
|
"node_modules/@nestia/sdk/lib/INestiaConfig.d.ts": "import type { INestApplication } from \"@nestjs/common\";\nimport type { OpenApi } from \"@samchon/openapi\";\n/**\n * Definition for the `nestia.config.ts` file.\n *\n * @author Jeongho Nam - https://github.com/samchon\n */\nexport interface INestiaConfig {\n /**\n * Accessor of controller classes.\n *\n * You can specify target controller classes within two ways.\n *\n * - Asynchronous function returning `INestApplication` instance\n * - Specify the path or directory of controller class files\n */\n input: (() => Promise<INestApplication>) | INestiaConfig.IInput | string[] | string;\n /**\n * Building `swagger.json` is also possible.\n *\n * If not specified, you can't build the `swagger.json`.\n */\n swagger?: INestiaConfig.ISwaggerConfig;\n /**\n * Response directory that SDK would be placed in.\n *\n * If not configured, you can't build the SDK library.\n */\n output?: string;\n /**\n * Target directory that SDK distribution files would be placed in.\n *\n * If you configure this property and runs `npx nestia sdk` command,\n * distribution environments for the SDK library would be generated.\n *\n * After the SDK library generation, move to the `distribute` directory, and\n * runs `npm publish` command, then you can share SDK library with other\n * client (frontend) developers.\n *\n * Recommend to use `\"packages/api\"` value.\n */\n distribute?: string;\n /** @default false */\n keyword?: boolean;\n /**\n * Allow simulation mode.\n *\n * If you configure this property to be `true`, the SDK library would be\n * contain simulation mode. In the simulation mode, the SDK library would not\n * communicate with the real backend server, but just returns random mock-up\n * data with requestion data validation.\n *\n * For reference, random mock-up data would be generated by\n * `typia.random<T>()` function.\n *\n * @default false\n */\n simulate?: boolean;\n /**\n * Target directory that e2e test functions would be placed in.\n *\n * If you configure this property and runs `npx nestia e2e` command,\n * `@nestia/sdk` will analyze your NestJS backend server code, and generates\n * e2e test functions for every API endpoints.\n *\n * If not configured, you can't run `npx nestia e2e` command.\n */\n e2e?: string;\n /**\n * Whether to use propagation mode or not.\n *\n * If being configured, interaction functions of the SDK library would perform\n * the propagation mode. The propagation mode means that never throwing\n * exception even when status code is not 200 (or 201), but just returning the\n * {@link IPropagation} typed instance, which can specify its body type through\n * discriminated union determined by status code.\n *\n * @default false\n */\n propagate?: boolean;\n /**\n * Whether to clone DTO structures or not.\n *\n * If being configured, all of DTOs used in the backend server would be cloned\n * into the `structures` directory, and the SDK library would be refer to the\n * cloned DTOs instead of the original.\n *\n * @default false\n */\n clone?: boolean;\n /**\n * Whether to wrap DTO by primitive type.\n *\n * If you don't configure this property as `false`, all of DTOs in the SDK\n * library would be automatically wrapped by {@link Primitive} type.\n *\n * For refenrece, if a DTO type be capsuled by the {@link Primitive} type, all\n * of methods in the DTO type would be automatically erased. Also, if the DTO\n * has a `toJSON()` method, the DTO type would be automatically converted to\n * return type of the `toJSON()` method.\n *\n * @default true\n */\n primitive?: boolean;\n /**\n * Whether to assert parameter types or not.\n *\n * If you configure this property to be `true`, all of the function parameters\n * of SDK library would be checked through [`typia.assert<T>()`\n * function](https://typia.io/docs/validators/assert/).\n *\n * This option would make your SDK library compilation time a little bit\n * slower, but would enahcne the type safety even in the runtime level.\n *\n * @default false\n */\n assert?: boolean;\n /**\n * Whether to optimize JSON string conversion 10x faster or not.\n *\n * If you configure this property to be `true`, the SDK library would utilize\n * the [`typia.assertStringify<T>()\n * function`](https://github.com/samchon/typia#enhanced-json) to boost up JSON\n * serialization speed and ensure type safety.\n *\n * This option would make your SDK library compilation time a little bit\n * slower, but would enhance JSON serialization speed 10x faster. Also, it can\n * ensure type safety even in the runtime level.\n *\n * @default false\n */\n json?: boolean;\n}\nexport declare namespace INestiaConfig {\n /**\n * List of files or directories to include or exclude to specifying the NestJS\n * controllers.\n */\n interface IInput {\n /** List of files or directories containing the NestJS controller classes. */\n include: string[];\n /** List of files or directories to be excluded. */\n exclude?: string[];\n }\n /** Building `swagger.json` is also possible. */\n interface ISwaggerConfig {\n /**\n * Response path of the `swagger.json`.\n *\n * If you've configured only directory, the file name would be the\n * `swagger.json`. Otherwise you've configured the full path with file name\n * and extension, the `swagger.json` file would be renamed to it.\n */\n output: string;\n /**\n * OpenAPI version.\n *\n * If you configure this property to be `2.0` or `3.0`, the newly generated\n * `swagger.json` file would follow the specified OpenAPI version. The newly\n * generated `swagger.json` file would be downgraded from the OpenAPI v3.1\n * specification by {@link OpenApi.downgrade} method.\n *\n * @default 3.1\n */\n openapi?: \"2.0\" | \"3.0\" | \"3.1\";\n /**\n * Whether to beautify JSON content or not.\n *\n * If you configure this property to be `true`, the `swagger.json` file\n * would be beautified with indentation (2 spaces) and line breaks. If you\n * configure numeric value instead, the indentation would be specified by\n * the number.\n *\n * @default false\n */\n beautify?: boolean | number;\n /**\n * Whether to include additional information or not.\n *\n * If configured to be `true`, those properties would be added into each API\n * endpoinnt.\n *\n * - `x-nestia-method`\n * - `x-nestia-namespace` ` `x-nestia-jsDocTags`\n *\n * @default false\n */\n additional?: boolean;\n /**\n * API information.\n *\n * If omitted, `package.json` content would be used instead.\n */\n info?: Partial<OpenApi.IDocument.IInfo>;\n /** List of server addresses. */\n servers?: OpenApi.IServer[];\n /**\n * Security schemes.\n *\n * When generating `swagger.json` file through `nestia`, if your controllers\n * or theirs methods have a security key which is not enrolled in here\n * property, it would be an error.\n */\n security?: Record<string, OpenApi.ISecurityScheme>;\n /**\n * List of tag names with description.\n *\n * It is possible to omit this property or skip some tag name even if the\n * tag name is used in the API routes. In that case, the tag name would be\n * used without description.\n *\n * Of course, if you've written a comment like `@tag {name} {description}`,\n * you can entirely replace this property specification.\n */\n tags?: OpenApi.IDocument.ITag[];\n /**\n * Decompose query DTO.\n *\n * If you configure this property to be `true`, the query DTO would be\n * decomposed into individual query parameters per each property. Otherwise\n * you set it to be `false`, the query DTO would be one object type which\n * contains all of query parameters.\n *\n * @default true\n */\n decompose?: boolean;\n /**\n * Operation ID generator.\n *\n * @param props Properties of the API endpoint.\n * @returns Operation ID.\n */\n operationId?(props: {\n class: string;\n function: string;\n method: \"HEAD\" | \"GET\" | \"POST\" | \"PUT\" | \"PATCH\" | \"DELETE\";\n path: string;\n }): string;\n }\n}\n",
|
|
11812
11812
|
"node_modules/@nestia/sdk/lib/NestiaSdkApplication.d.ts": "import { INestiaConfig } from \"./INestiaConfig\";\nexport declare class NestiaSdkApplication {\n private readonly config;\n constructor(config: INestiaConfig);\n all(): Promise<void>;\n e2e(): Promise<void>;\n sdk(): Promise<void>;\n swagger(): Promise<void>;\n private generate;\n}\n",
|
|
11813
11813
|
"node_modules/@nestia/sdk/lib/NestiaSwaggerComposer.d.ts": "import { INestApplication } from \"@nestjs/common\";\nimport { OpenApi, OpenApiV3, SwaggerV2 } from \"@samchon/openapi\";\nimport { INestiaConfig } from \"./INestiaConfig\";\nexport declare namespace NestiaSwaggerComposer {\n const document: (app: INestApplication, config: Omit<INestiaConfig.ISwaggerConfig, \"output\">) => Promise<OpenApi.IDocument | OpenApiV3.IDocument | SwaggerV2.IDocument>;\n}\n",
|
|
@@ -11906,7 +11906,7 @@
|
|
|
11906
11906
|
"node_modules/@nestia/sdk/lib/validators/HttpQueryValidator.d.ts": "import { MetadataFactory } from \"typia/lib/factories/MetadataFactory\";\nimport { Metadata } from \"typia/lib/schemas/metadata/Metadata\";\nexport declare namespace HttpQueryValidator {\n const validate: (meta: Metadata, explore: MetadataFactory.IExplore) => string[];\n}\n",
|
|
11907
11907
|
"node_modules/path-to-regexp/dist/index.d.ts": "/**\n * Encode a string into another string.\n */\nexport type Encode = (value: string) => string;\n/**\n * Decode a string into another string.\n */\nexport type Decode = (value: string) => string;\nexport interface ParseOptions {\n /**\n * A function for encoding input strings.\n */\n encodePath?: Encode;\n}\nexport interface PathToRegexpOptions {\n /**\n * Matches the path completely without trailing characters. (default: `true`)\n */\n end?: boolean;\n /**\n * Allows optional trailing delimiter to match. (default: `true`)\n */\n trailing?: boolean;\n /**\n * Match will be case sensitive. (default: `false`)\n */\n sensitive?: boolean;\n /**\n * The default delimiter for segments. (default: `'/'`)\n */\n delimiter?: string;\n}\nexport interface MatchOptions extends PathToRegexpOptions {\n /**\n * Function for decoding strings for params, or `false` to disable entirely. (default: `decodeURIComponent`)\n */\n decode?: Decode | false;\n}\nexport interface CompileOptions {\n /**\n * Function for encoding input strings for output into the path, or `false` to disable entirely. (default: `encodeURIComponent`)\n */\n encode?: Encode | false;\n /**\n * The default delimiter for segments. (default: `'/'`)\n */\n delimiter?: string;\n}\n/**\n * Plain text.\n */\nexport interface Text {\n type: \"text\";\n value: string;\n}\n/**\n * A parameter designed to match arbitrary text within a segment.\n */\nexport interface Parameter {\n type: \"param\";\n name: string;\n}\n/**\n * A wildcard parameter designed to match multiple segments.\n */\nexport interface Wildcard {\n type: \"wildcard\";\n name: string;\n}\n/**\n * A set of possible tokens to expand when matching.\n */\nexport interface Group {\n type: \"group\";\n tokens: Token[];\n}\n/**\n * A token that corresponds with a regexp capture.\n */\nexport type Key = Parameter | Wildcard;\n/**\n * A sequence of `path-to-regexp` keys that match capturing groups.\n */\nexport type Keys = Array<Key>;\n/**\n * A sequence of path match characters.\n */\nexport type Token = Text | Parameter | Wildcard | Group;\n/**\n * Tokenized path instance.\n */\nexport declare class TokenData {\n readonly tokens: Token[];\n constructor(tokens: Token[]);\n}\n/**\n * Parse a string for the raw tokens.\n */\nexport declare function parse(str: string, options?: ParseOptions): TokenData;\n/**\n * Compile a string to a template function for the path.\n */\nexport declare function compile<P extends ParamData = ParamData>(path: Path, options?: CompileOptions & ParseOptions): (data?: P) => string;\nexport type ParamData = Partial<Record<string, string | string[]>>;\nexport type PathFunction<P extends ParamData> = (data?: P) => string;\n/**\n * A match result contains data about the path match.\n */\nexport interface MatchResult<P extends ParamData> {\n path: string;\n params: P;\n}\n/**\n * A match is either `false` (no match) or a match result.\n */\nexport type Match<P extends ParamData> = false | MatchResult<P>;\n/**\n * The match function takes a string and returns whether it matched the path.\n */\nexport type MatchFunction<P extends ParamData> = (path: string) => Match<P>;\n/**\n * Supported path types.\n */\nexport type Path = string | TokenData;\n/**\n * Transform a path into a match function.\n */\nexport declare function match<P extends ParamData>(path: Path | Path[], options?: MatchOptions & ParseOptions): MatchFunction<P>;\nexport declare function pathToRegexp(path: Path | Path[], options?: PathToRegexpOptions & ParseOptions): {\n regexp: RegExp;\n keys: Keys;\n};\n/**\n * Stringify token data into a path string.\n */\nexport declare function stringify(data: TokenData): string;\n",
|
|
11908
11908
|
"node_modules/path-to-regexp/package.json": "{\n \"name\": \"path-to-regexp\",\n \"version\": \"8.2.0\",\n \"description\": \"Express style path to RegExp utility\",\n \"keywords\": [\n \"express\",\n \"regexp\",\n \"route\",\n \"routing\"\n ],\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/pillarjs/path-to-regexp.git\"\n },\n \"license\": \"MIT\",\n \"exports\": \"./dist/index.js\",\n \"main\": \"dist/index.js\",\n \"typings\": \"dist/index.d.ts\",\n \"files\": [\n \"dist/\"\n ],\n \"scripts\": {\n \"bench\": \"vitest bench\",\n \"build\": \"ts-scripts build\",\n \"format\": \"ts-scripts format\",\n \"lint\": \"ts-scripts lint\",\n \"prepare\": \"ts-scripts install && npm run build\",\n \"size\": \"size-limit\",\n \"specs\": \"ts-scripts specs\",\n \"test\": \"ts-scripts test && npm run size\"\n },\n \"devDependencies\": {\n \"@borderless/ts-scripts\": \"^0.15.0\",\n \"@size-limit/preset-small-lib\": \"^11.1.2\",\n \"@types/node\": \"^22.7.2\",\n \"@types/semver\": \"^7.3.1\",\n \"@vitest/coverage-v8\": \"^2.1.1\",\n \"recheck\": \"^4.4.5\",\n \"size-limit\": \"^11.1.2\",\n \"typescript\": \"^5.5.3\"\n },\n \"engines\": {\n \"node\": \">=16\"\n },\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"size-limit\": [\n {\n \"path\": \"dist/index.js\",\n \"limit\": \"2.2 kB\"\n }\n ],\n \"ts-scripts\": {\n \"dist\": [\n \"dist\"\n ],\n \"project\": [\n \"tsconfig.build.json\"\n ]\n }\n}\n",
|
|
11909
|
-
"node_modules/@nestia/sdk/package.json": "{\n \"name\": \"@nestia/sdk\",\n \"version\": \"8.0.
|
|
11909
|
+
"node_modules/@nestia/sdk/package.json": "{\n \"name\": \"@nestia/sdk\",\n \"version\": \"8.0.7\",\n \"description\": \"Nestia SDK and Swagger generator\",\n \"main\": \"lib/index.js\",\n \"typings\": \"lib/index.d.ts\",\n \"bin\": {\n \"@nestia/sdk\": \"lib/executable/sdk.js\"\n },\n \"scripts\": {\n \"build\": \"rimraf lib && tsc\",\n \"dev\": \"tsc -p tsconfig.test.json --watch\",\n \"eslint\": \"eslint ./**/*.ts\",\n \"prepare\": \"ts-patch install && typia patch\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/samchon/nestia\"\n },\n \"keywords\": [\n \"nestia\",\n \"sdk\",\n \"swagger\",\n \"generator\",\n \"nestjs\",\n \"typia\"\n ],\n \"author\": \"Jeongho Nam\",\n \"license\": \"MIT\",\n \"bugs\": {\n \"url\": \"https://github.com/samchon/nestia/issues\"\n },\n \"homepage\": \"https://nestia.io\",\n \"dependencies\": {\n \"@nestia/core\": \"^8.0.7\",\n \"@nestia/fetcher\": \"^8.0.7\",\n \"@samchon/openapi\": \"^4.5.0\",\n \"cli\": \"^1.0.1\",\n \"get-function-location\": \"^2.0.0\",\n \"glob\": \"^11.0.3\",\n \"path-to-regexp\": \"^6.2.1\",\n \"prettier\": \"^3.2.5\",\n \"ts-node\": \">=10.6.0\",\n \"tsconfck\": \"^2.1.2\",\n \"tsconfig-paths\": \"^4.1.1\",\n \"tstl\": \"^3.0.0\",\n \"typia\": \"^9.6.1\"\n },\n \"peerDependencies\": {\n \"@nestia/core\": \">=8.0.7\"\n },\n \"devDependencies\": {\n \"@nestjs/common\": \"^11.0.13\",\n \"@nestjs/core\": \"^11.0.13\",\n \"@trivago/prettier-plugin-sort-imports\": \"^4.3.0\",\n \"@types/cli\": \"^0.11.21\",\n \"@types/express\": \"^4.17.15\",\n \"@types/node\": \"^18.11.15\",\n \"@types/ts-expose-internals\": \"npm:ts-expose-internals@5.4.5\",\n \"@typescript-eslint/eslint-plugin\": \"^5.46.1\",\n \"@typescript-eslint/parser\": \"^5.46.1\",\n \"eslint\": \"^8.29.0\",\n \"eslint-plugin-deprecation\": \"^1.4.1\",\n \"rimraf\": \"^6.0.1\",\n \"tgrid\": \"^1.1.0\",\n \"ts-patch\": \"^3.3.0\",\n \"typescript\": \"~5.9.2\",\n \"typescript-transform-paths\": \"^3.4.4\"\n },\n \"files\": [\n \"assets\",\n \"lib\",\n \"src\",\n \"README.md\",\n \"LICENSE\",\n \"package.json\"\n ]\n}",
|
|
11910
11910
|
"node_modules/@nestia/sdk/src/typings/get-function-location.d.ts": "declare module \"get-function-location\" {\n export default function (func: any): Promise<{\n source: string;\n line: number;\n column: number;\n }>;\n}\n",
|
|
11911
11911
|
"node_modules/@nestia/sdk/node_modules/glob/dist/commonjs/glob.d.ts": "import { Minimatch } from 'minimatch';\nimport { Minipass } from 'minipass';\nimport { FSOption, Path, PathScurry } from 'path-scurry';\nimport { IgnoreLike } from './ignore.js';\nimport { Pattern } from './pattern.js';\nexport type MatchSet = Minimatch['set'];\nexport type GlobParts = Exclude<Minimatch['globParts'], undefined>;\n/**\n * A `GlobOptions` object may be provided to any of the exported methods, and\n * must be provided to the `Glob` constructor.\n *\n * All options are optional, boolean, and false by default, unless otherwise\n * noted.\n *\n * All resolved options are added to the Glob object as properties.\n *\n * If you are running many `glob` operations, you can pass a Glob object as the\n * `options` argument to a subsequent operation to share the previously loaded\n * cache.\n */\nexport interface GlobOptions {\n /**\n * Set to `true` to always receive absolute paths for\n * matched files. Set to `false` to always return relative paths.\n *\n * When this option is not set, absolute paths are returned for patterns\n * that are absolute, and otherwise paths are returned that are relative\n * to the `cwd` setting.\n *\n * This does _not_ make an extra system call to get\n * the realpath, it only does string path resolution.\n *\n * Conflicts with {@link withFileTypes}\n */\n absolute?: boolean;\n /**\n * Set to false to enable {@link windowsPathsNoEscape}\n *\n * @deprecated\n */\n allowWindowsEscape?: boolean;\n /**\n * The current working directory in which to search. Defaults to\n * `process.cwd()`.\n *\n * May be eiher a string path or a `file://` URL object or string.\n */\n cwd?: string | URL;\n /**\n * Include `.dot` files in normal matches and `globstar`\n * matches. Note that an explicit dot in a portion of the pattern\n * will always match dot files.\n */\n dot?: boolean;\n /**\n * Prepend all relative path strings with `./` (or `.\\` on Windows).\n *\n * Without this option, returned relative paths are \"bare\", so instead of\n * returning `'./foo/bar'`, they are returned as `'foo/bar'`.\n *\n * Relative patterns starting with `'../'` are not prepended with `./`, even\n * if this option is set.\n */\n dotRelative?: boolean;\n /**\n * Follow symlinked directories when expanding `**`\n * patterns. This can result in a lot of duplicate references in\n * the presence of cyclic links, and make performance quite bad.\n *\n * By default, a `**` in a pattern will follow 1 symbolic link if\n * it is not the first item in the pattern, or none if it is the\n * first item in the pattern, following the same behavior as Bash.\n */\n follow?: boolean;\n /**\n * string or string[], or an object with `ignored` and `childrenIgnored`\n * methods.\n *\n * If a string or string[] is provided, then this is treated as a glob\n * pattern or array of glob patterns to exclude from matches. To ignore all\n * children within a directory, as well as the entry itself, append `'/**'`\n * to the ignore pattern.\n *\n * **Note** `ignore` patterns are _always_ in `dot:true` mode, regardless of\n * any other settings.\n *\n * If an object is provided that has `ignored(path)` and/or\n * `childrenIgnored(path)` methods, then these methods will be called to\n * determine whether any Path is a match or if its children should be\n * traversed, respectively.\n */\n ignore?: string | string[] | IgnoreLike;\n /**\n * Treat brace expansion like `{a,b}` as a \"magic\" pattern. Has no\n * effect if {@link nobrace} is set.\n *\n * Only has effect on the {@link hasMagic} function.\n */\n magicalBraces?: boolean;\n /**\n * Add a `/` character to directory matches. Note that this requires\n * additional stat calls in some cases.\n */\n mark?: boolean;\n /**\n * Perform a basename-only match if the pattern does not contain any slash\n * characters. That is, `*.js` would be treated as equivalent to\n * `**\\/*.js`, matching all js files in all directories.\n */\n matchBase?: boolean;\n /**\n * Limit the directory traversal to a given depth below the cwd.\n * Note that this does NOT prevent traversal to sibling folders,\n * root patterns, and so on. It only limits the maximum folder depth\n * that the walk will descend, relative to the cwd.\n */\n maxDepth?: number;\n /**\n * Do not expand `{a,b}` and `{1..3}` brace sets.\n */\n nobrace?: boolean;\n /**\n * Perform a case-insensitive match. This defaults to `true` on macOS and\n * Windows systems, and `false` on all others.\n *\n * **Note** `nocase` should only be explicitly set when it is\n * known that the filesystem's case sensitivity differs from the\n * platform default. If set `true` on case-sensitive file\n * systems, or `false` on case-insensitive file systems, then the\n * walk may return more or less results than expected.\n */\n nocase?: boolean;\n /**\n * Do not match directories, only files. (Note: to match\n * _only_ directories, put a `/` at the end of the pattern.)\n */\n nodir?: boolean;\n /**\n * Do not match \"extglob\" patterns such as `+(a|b)`.\n */\n noext?: boolean;\n /**\n * Do not match `**` against multiple filenames. (Ie, treat it as a normal\n * `*` instead.)\n *\n * Conflicts with {@link matchBase}\n */\n noglobstar?: boolean;\n /**\n * Defaults to value of `process.platform` if available, or `'linux'` if\n * not. Setting `platform:'win32'` on non-Windows systems may cause strange\n * behavior.\n */\n platform?: NodeJS.Platform;\n /**\n * Set to true to call `fs.realpath` on all of the\n * results. In the case of an entry that cannot be resolved, the\n * entry is omitted. This incurs a slight performance penalty, of\n * course, because of the added system calls.\n */\n realpath?: boolean;\n /**\n *\n * A string path resolved against the `cwd` option, which\n * is used as the starting point for absolute patterns that start\n * with `/`, (but not drive letters or UNC paths on Windows).\n *\n * Note that this _doesn't_ necessarily limit the walk to the\n * `root` directory, and doesn't affect the cwd starting point for\n * non-absolute patterns. A pattern containing `..` will still be\n * able to traverse out of the root directory, if it is not an\n * actual root directory on the filesystem, and any non-absolute\n * patterns will be matched in the `cwd`. For example, the\n * pattern `/../*` with `{root:'/some/path'}` will return all\n * files in `/some`, not all files in `/some/path`. The pattern\n * `*` with `{root:'/some/path'}` will return all the entries in\n * the cwd, not the entries in `/some/path`.\n *\n * To start absolute and non-absolute patterns in the same\n * path, you can use `{root:''}`. However, be aware that on\n * Windows systems, a pattern like `x:/*` or `//host/share/*` will\n * _always_ start in the `x:/` or `//host/share` directory,\n * regardless of the `root` setting.\n */\n root?: string;\n /**\n * A [PathScurry](http://npm.im/path-scurry) object used\n * to traverse the file system. If the `nocase` option is set\n * explicitly, then any provided `scurry` object must match this\n * setting.\n */\n scurry?: PathScurry;\n /**\n * Call `lstat()` on all entries, whether required or not to determine\n * if it's a valid match. When used with {@link withFileTypes}, this means\n * that matches will include data such as modified time, permissions, and\n * so on. Note that this will incur a performance cost due to the added\n * system calls.\n */\n stat?: boolean;\n /**\n * An AbortSignal which will cancel the Glob walk when\n * triggered.\n */\n signal?: AbortSignal;\n /**\n * Use `\\\\` as a path separator _only_, and\n * _never_ as an escape character. If set, all `\\\\` characters are\n * replaced with `/` in the pattern.\n *\n * Note that this makes it **impossible** to match against paths\n * containing literal glob pattern characters, but allows matching\n * with patterns constructed using `path.join()` and\n * `path.resolve()` on Windows platforms, mimicking the (buggy!)\n * behavior of Glob v7 and before on Windows. Please use with\n * caution, and be mindful of [the caveat below about Windows\n * paths](#windows). (For legacy reasons, this is also set if\n * `allowWindowsEscape` is set to the exact value `false`.)\n */\n windowsPathsNoEscape?: boolean;\n /**\n * Return [PathScurry](http://npm.im/path-scurry)\n * `Path` objects instead of strings. These are similar to a\n * NodeJS `Dirent` object, but with additional methods and\n * properties.\n *\n * Conflicts with {@link absolute}\n */\n withFileTypes?: boolean;\n /**\n * An fs implementation to override some or all of the defaults. See\n * http://npm.im/path-scurry for details about what can be overridden.\n */\n fs?: FSOption;\n /**\n * Just passed along to Minimatch. Note that this makes all pattern\n * matching operations slower and *extremely* noisy.\n */\n debug?: boolean;\n /**\n * Return `/` delimited paths, even on Windows.\n *\n * On posix systems, this has no effect. But, on Windows, it means that\n * paths will be `/` delimited, and absolute paths will be their full\n * resolved UNC forms, eg instead of `'C:\\\\foo\\\\bar'`, it would return\n * `'//?/C:/foo/bar'`\n */\n posix?: boolean;\n /**\n * Do not match any children of any matches. For example, the pattern\n * `**\\/foo` would match `a/foo`, but not `a/foo/b/foo` in this mode.\n *\n * This is especially useful for cases like \"find all `node_modules`\n * folders, but not the ones in `node_modules`\".\n *\n * In order to support this, the `Ignore` implementation must support an\n * `add(pattern: string)` method. If using the default `Ignore` class, then\n * this is fine, but if this is set to `false`, and a custom `Ignore` is\n * provided that does not have an `add()` method, then it will throw an\n * error.\n *\n * **Caveat** It *only* ignores matches that would be a descendant of a\n * previous match, and only if that descendant is matched *after* the\n * ancestor is encountered. Since the file system walk happens in\n * indeterminate order, it's possible that a match will already be added\n * before its ancestor, if multiple or braced patterns are used.\n *\n * For example:\n *\n * ```ts\n * const results = await glob([\n * // likely to match first, since it's just a stat\n * 'a/b/c/d/e/f',\n *\n * // this pattern is more complicated! It must to various readdir()\n * // calls and test the results against a regular expression, and that\n * // is certainly going to take a little bit longer.\n * //\n * // So, later on, it encounters a match at 'a/b/c/d/e', but it's too\n * // late to ignore a/b/c/d/e/f, because it's already been emitted.\n * 'a/[bdf]/?/[a-z]/*',\n * ], { includeChildMatches: false })\n * ```\n *\n * It's best to only set this to `false` if you can be reasonably sure that\n * no components of the pattern will potentially match one another's file\n * system descendants, or if the occasional included child entry will not\n * cause problems.\n *\n * @default true\n */\n includeChildMatches?: boolean;\n}\nexport type GlobOptionsWithFileTypesTrue = GlobOptions & {\n withFileTypes: true;\n absolute?: undefined;\n mark?: undefined;\n posix?: undefined;\n};\nexport type GlobOptionsWithFileTypesFalse = GlobOptions & {\n withFileTypes?: false;\n};\nexport type GlobOptionsWithFileTypesUnset = GlobOptions & {\n withFileTypes?: undefined;\n};\nexport type Result<Opts> = Opts extends GlobOptionsWithFileTypesTrue ? Path : Opts extends GlobOptionsWithFileTypesFalse ? string : Opts extends GlobOptionsWithFileTypesUnset ? string : string | Path;\nexport type Results<Opts> = Result<Opts>[];\nexport type FileTypes<Opts> = Opts extends GlobOptionsWithFileTypesTrue ? true : Opts extends GlobOptionsWithFileTypesFalse ? false : Opts extends GlobOptionsWithFileTypesUnset ? false : boolean;\n/**\n * An object that can perform glob pattern traversals.\n */\nexport declare class Glob<Opts extends GlobOptions> implements GlobOptions {\n absolute?: boolean;\n cwd: string;\n root?: string;\n dot: boolean;\n dotRelative: boolean;\n follow: boolean;\n ignore?: string | string[] | IgnoreLike;\n magicalBraces: boolean;\n mark?: boolean;\n matchBase: boolean;\n maxDepth: number;\n nobrace: boolean;\n nocase: boolean;\n nodir: boolean;\n noext: boolean;\n noglobstar: boolean;\n pattern: string[];\n platform: NodeJS.Platform;\n realpath: boolean;\n scurry: PathScurry;\n stat: boolean;\n signal?: AbortSignal;\n windowsPathsNoEscape: boolean;\n withFileTypes: FileTypes<Opts>;\n includeChildMatches: boolean;\n /**\n * The options provided to the constructor.\n */\n opts: Opts;\n /**\n * An array of parsed immutable {@link Pattern} objects.\n */\n patterns: Pattern[];\n /**\n * All options are stored as properties on the `Glob` object.\n *\n * See {@link GlobOptions} for full options descriptions.\n *\n * Note that a previous `Glob` object can be passed as the\n * `GlobOptions` to another `Glob` instantiation to re-use settings\n * and caches with a new pattern.\n *\n * Traversal functions can be called multiple times to run the walk\n * again.\n */\n constructor(pattern: string | string[], opts: Opts);\n /**\n * Returns a Promise that resolves to the results array.\n */\n walk(): Promise<Results<Opts>>;\n /**\n * synchronous {@link Glob.walk}\n */\n walkSync(): Results<Opts>;\n /**\n * Stream results asynchronously.\n */\n stream(): Minipass<Result<Opts>, Result<Opts>>;\n /**\n * Stream results synchronously.\n */\n streamSync(): Minipass<Result<Opts>, Result<Opts>>;\n /**\n * Default sync iteration function. Returns a Generator that\n * iterates over the results.\n */\n iterateSync(): Generator<Result<Opts>, void, void>;\n [Symbol.iterator](): Generator<Result<Opts>, void, void>;\n /**\n * Default async iteration function. Returns an AsyncGenerator that\n * iterates over the results.\n */\n iterate(): AsyncGenerator<Result<Opts>, void, void>;\n [Symbol.asyncIterator](): AsyncGenerator<Result<Opts>, void, void>;\n}\n//# sourceMappingURL=glob.d.ts.map",
|
|
11912
11912
|
"node_modules/@nestia/sdk/node_modules/glob/dist/commonjs/has-magic.d.ts": "import { GlobOptions } from './glob.js';\n/**\n * Return true if the patterns provided contain any magic glob characters,\n * given the options provided.\n *\n * Brace expansion is not considered \"magic\" unless the `magicalBraces` option\n * is set, as brace expansion just turns one string into an array of strings.\n * So a pattern like `'x{a,b}y'` would return `false`, because `'xay'` and\n * `'xby'` both do not contain any magic glob characters, and it's treated the\n * same as if you had called it on `['xay', 'xby']`. When `magicalBraces:true`\n * is in the options, brace expansion _is_ treated as a pattern having magic.\n */\nexport declare const hasMagic: (pattern: string | string[], options?: GlobOptions) => boolean;\n//# sourceMappingURL=has-magic.d.ts.map",
|