view-ignored 0.4.8 → 0.5.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.
Files changed (135) hide show
  1. package/README.md +84 -103
  2. package/out/index.d.ts +1 -4
  3. package/out/index.js +1 -4
  4. package/out/patterns/gitignore.d.ts +3 -0
  5. package/out/patterns/gitignore.js +35 -0
  6. package/out/patterns/index.d.ts +4 -0
  7. package/out/patterns/index.js +4 -0
  8. package/out/patterns/jsrjson.d.ts +4 -0
  9. package/out/patterns/jsrjson.js +39 -0
  10. package/out/patterns/matcher.d.ts +102 -0
  11. package/out/patterns/matcher.js +125 -0
  12. package/out/patterns/packagejson.d.ts +3 -0
  13. package/out/patterns/packagejson.js +25 -0
  14. package/out/scan.d.ts +49 -0
  15. package/out/scan.js +114 -0
  16. package/out/targets/git.d.ts +2 -0
  17. package/out/targets/git.js +22 -0
  18. package/out/targets/index.d.ts +6 -0
  19. package/out/targets/index.js +6 -0
  20. package/out/targets/jsr.d.ts +2 -0
  21. package/out/targets/jsr.js +25 -0
  22. package/out/targets/npm.d.ts +2 -0
  23. package/out/targets/npm.js +46 -0
  24. package/out/targets/target.d.ts +10 -0
  25. package/out/targets/target.js +1 -0
  26. package/out/targets/vsce.d.ts +2 -0
  27. package/out/targets/vsce.js +24 -0
  28. package/out/targets/yarn.d.ts +2 -0
  29. package/out/targets/yarn.js +49 -0
  30. package/out/walk.d.ts +2 -0
  31. package/out/walk.js +19 -0
  32. package/package.json +20 -54
  33. package/bin/viewig +0 -4
  34. package/out/browser/binds/index.d.ts +0 -56
  35. package/out/browser/binds/index.d.ts.map +0 -1
  36. package/out/browser/binds/index.js +0 -95
  37. package/out/browser/binds/index.js.map +0 -1
  38. package/out/browser/binds/plugins/git.d.ts +0 -23
  39. package/out/browser/binds/plugins/git.d.ts.map +0 -1
  40. package/out/browser/binds/plugins/git.js +0 -67
  41. package/out/browser/binds/plugins/git.js.map +0 -1
  42. package/out/browser/binds/plugins/jsr.d.ts +0 -39
  43. package/out/browser/binds/plugins/jsr.d.ts.map +0 -1
  44. package/out/browser/binds/plugins/jsr.js +0 -117
  45. package/out/browser/binds/plugins/jsr.js.map +0 -1
  46. package/out/browser/binds/plugins/npm.d.ts +0 -39
  47. package/out/browser/binds/plugins/npm.d.ts.map +0 -1
  48. package/out/browser/binds/plugins/npm.js +0 -146
  49. package/out/browser/binds/plugins/npm.js.map +0 -1
  50. package/out/browser/binds/plugins/vsce.d.ts +0 -26
  51. package/out/browser/binds/plugins/vsce.d.ts.map +0 -1
  52. package/out/browser/binds/plugins/vsce.js +0 -71
  53. package/out/browser/binds/plugins/vsce.js.map +0 -1
  54. package/out/browser/binds/plugins/yarn.d.ts +0 -12
  55. package/out/browser/binds/plugins/yarn.d.ts.map +0 -1
  56. package/out/browser/binds/plugins/yarn.js +0 -36
  57. package/out/browser/binds/plugins/yarn.js.map +0 -1
  58. package/out/browser/binds/scanner.d.ts +0 -47
  59. package/out/browser/binds/scanner.d.ts.map +0 -1
  60. package/out/browser/binds/scanner.js +0 -166
  61. package/out/browser/binds/scanner.js.map +0 -1
  62. package/out/browser/binds/targets.d.ts +0 -78
  63. package/out/browser/binds/targets.d.ts.map +0 -1
  64. package/out/browser/binds/targets.js +0 -46
  65. package/out/browser/binds/targets.js.map +0 -1
  66. package/out/browser/conc.d.ts +0 -2
  67. package/out/browser/conc.d.ts.map +0 -1
  68. package/out/browser/conc.js +0 -19
  69. package/out/browser/conc.js.map +0 -1
  70. package/out/browser/errors.d.ts +0 -47
  71. package/out/browser/errors.d.ts.map +0 -1
  72. package/out/browser/errors.js +0 -35
  73. package/out/browser/errors.js.map +0 -1
  74. package/out/browser/filtering.d.ts +0 -13
  75. package/out/browser/filtering.d.ts.map +0 -1
  76. package/out/browser/filtering.js +0 -12
  77. package/out/browser/filtering.js.map +0 -1
  78. package/out/browser/fs/directory.d.ts +0 -145
  79. package/out/browser/fs/directory.d.ts.map +0 -1
  80. package/out/browser/fs/directory.js +0 -244
  81. package/out/browser/fs/directory.js.map +0 -1
  82. package/out/browser/fs/file-info.d.ts +0 -89
  83. package/out/browser/fs/file-info.d.ts.map +0 -1
  84. package/out/browser/fs/file-info.js +0 -101
  85. package/out/browser/fs/file-info.js.map +0 -1
  86. package/out/browser/fs/file.d.ts +0 -39
  87. package/out/browser/fs/file.d.ts.map +0 -1
  88. package/out/browser/fs/file.js +0 -42
  89. package/out/browser/fs/file.js.map +0 -1
  90. package/out/browser/fs/index.d.ts +0 -5
  91. package/out/browser/fs/index.d.ts.map +0 -1
  92. package/out/browser/fs/index.js +0 -5
  93. package/out/browser/fs/index.js.map +0 -1
  94. package/out/browser/fs/source-info.d.ts +0 -29
  95. package/out/browser/fs/source-info.d.ts.map +0 -1
  96. package/out/browser/fs/source-info.js +0 -31
  97. package/out/browser/fs/source-info.js.map +0 -1
  98. package/out/browser/index.d.ts +0 -4
  99. package/out/browser/index.d.ts.map +0 -1
  100. package/out/browser/index.js +0 -4
  101. package/out/browser/index.js.map +0 -1
  102. package/out/browser/lib.d.ts +0 -138
  103. package/out/browser/lib.d.ts.map +0 -1
  104. package/out/browser/lib.js +0 -93
  105. package/out/browser/lib.js.map +0 -1
  106. package/out/browser/sorting.d.ts +0 -52
  107. package/out/browser/sorting.d.ts.map +0 -1
  108. package/out/browser/sorting.js +0 -137
  109. package/out/browser/sorting.js.map +0 -1
  110. package/out/browser/styling.d.ts +0 -92
  111. package/out/browser/styling.d.ts.map +0 -1
  112. package/out/browser/styling.js +0 -66
  113. package/out/browser/styling.js.map +0 -1
  114. package/out/cli.d.ts +0 -90
  115. package/out/cli.d.ts.map +0 -1
  116. package/out/cli.js +0 -360
  117. package/out/cli.js.map +0 -1
  118. package/out/config.d.ts +0 -186
  119. package/out/config.d.ts.map +0 -1
  120. package/out/config.js +0 -370
  121. package/out/config.js.map +0 -1
  122. package/out/errors.d.ts +0 -7
  123. package/out/errors.d.ts.map +0 -1
  124. package/out/errors.js +0 -3
  125. package/out/errors.js.map +0 -1
  126. package/out/index.d.ts.map +0 -1
  127. package/out/index.js.map +0 -1
  128. package/out/lib.d.ts +0 -5
  129. package/out/lib.d.ts.map +0 -1
  130. package/out/lib.js +0 -5
  131. package/out/lib.js.map +0 -1
  132. package/out/styling.d.ts +0 -5
  133. package/out/styling.d.ts.map +0 -1
  134. package/out/styling.js +0 -49
  135. package/out/styling.js.map +0 -1
@@ -1,92 +0,0 @@
1
- import type { ChalkInstance } from 'chalk';
2
- import type { FileInfo } from './lib.js';
3
- export type FormatFilesOptions = {
4
- /**
5
- * On posix systems, this has no effect. But, on Windows, it means that
6
- * paths will be `/` delimited, and absolute paths will be their full
7
- * resolved UNC forms, eg instead of `'C:\\foo\\bar'`, it would return
8
- * `'//?/C:/foo/bar'`
9
- * @default false
10
- * @returns `/` delimited paths, even on Windows.
11
- */
12
- posix?: boolean;
13
- /**
14
- * @default false
15
- */
16
- showSources?: boolean;
17
- /**
18
- * @default "paths"
19
- */
20
- style: StyleName;
21
- /**
22
- * @default "paths"
23
- */
24
- decor?: DecorName;
25
- /**
26
- * @default undefined
27
- */
28
- chalk?: ChalkInstance;
29
- };
30
- /**
31
- * @returns Prints a readable file list. Here is '\n' ending.
32
- */
33
- export declare function formatFiles(files: FileInfo[], options: FormatFilesOptions): string;
34
- /**
35
- * Contains all style names.
36
- */
37
- export declare const styleNameList: readonly ["tree", "paths"];
38
- /**
39
- * Contains all style names as a type.
40
- */
41
- export type StyleName = typeof styleNameList[number];
42
- /**
43
- * Checks if the value is the {@link StyleName}.
44
- */
45
- export declare function isStyleName(value: unknown): value is StyleName;
46
- /**
47
- * Contains all decor names.
48
- */
49
- export declare const decorNameList: readonly ["normal", "emoji", "nerdfonts"];
50
- /**
51
- * Contains all decor names as a type.
52
- */
53
- export type DecorName = typeof decorNameList[number];
54
- /**
55
- * Checks if the value is the {@link DecorName}.
56
- */
57
- export declare function isDecorName(value: unknown): value is DecorName;
58
- /**
59
- * Formatting options for the {@link decorCondition}.
60
- */
61
- export type DecorConditionOptions = {
62
- /**
63
- * @default ""
64
- */
65
- prefix?: string;
66
- /**
67
- * @default ""
68
- */
69
- postfix?: string;
70
- /**
71
- * If the decor is not an emoji or nerd use this string.
72
- * @default ""
73
- */
74
- ifNormal?: string;
75
- /**
76
- * If style name (lowercase) contains `emoji` use this string.
77
- * @default ""
78
- */
79
- ifEmoji?: string;
80
- /**
81
- * If style name (lowercase) contains `nerd` use this string.
82
- * @default ""
83
- */
84
- ifNerd?: string;
85
- };
86
- /**
87
- * Formats the string for specific style types.
88
- * @param decor The decor name.
89
- * @param condition Formatting options.
90
- */
91
- export declare function decorCondition(decor: DecorName, condition: DecorConditionOptions): string;
92
- //# sourceMappingURL=styling.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"styling.d.ts","sourceRoot":"","sources":["../../src/browser/styling.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAExC,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IAEf;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB;;OAEG;IACH,KAAK,EAAE,SAAS,CAAA;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;IAEjB;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB,CAAA;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,EAAE,kBAAkB,GAC1B,MAAM,CAwBR;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,4BAA6B,CAAA;AAEvD;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,aAAa,CAAC,MAAM,CAAC,CAAA;AAEpD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAG9D;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,2CAA4C,CAAA;AAEtE;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,aAAa,CAAC,MAAM,CAAC,CAAA;AAEpD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAG9D;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,qBAAqB,GAC/B,MAAM,CAcR"}
@@ -1,66 +0,0 @@
1
- import PATH from 'node:path';
2
- import tree from 'treeify';
3
- import jsonifyPaths from 'jsonify-paths';
4
- /**
5
- * @returns Prints a readable file list. Here is '\n' ending.
6
- */
7
- export function formatFiles(files, options) {
8
- const { showSources = false, chalk, decor = 'normal', style, posix = false } = options ?? {};
9
- const patha = posix ? PATH.posix : PATH;
10
- const isPaths = style === 'paths';
11
- const paths = files.map(f => f.toString({
12
- fileIcon: decor,
13
- usePrefix: true,
14
- chalk,
15
- source: showSources,
16
- entire: isPaths,
17
- }));
18
- if (isPaths) {
19
- return paths.join('\n') + '\n';
20
- }
21
- // IsTree
22
- const pathsAsObject = jsonifyPaths.from(paths, { delimiter: patha.sep });
23
- const pathsAsTree = tree.asTree(pathsAsObject, true, true);
24
- return pathsAsTree;
25
- }
26
- /**
27
- * Contains all style names.
28
- */
29
- export const styleNameList = ['tree', 'paths'];
30
- /**
31
- * Checks if the value is the {@link StyleName}.
32
- */
33
- export function isStyleName(value) {
34
- return typeof value === 'string'
35
- && styleNameList.includes(value);
36
- }
37
- /**
38
- * Contains all decor names.
39
- */
40
- export const decorNameList = ['normal', 'emoji', 'nerdfonts'];
41
- /**
42
- * Checks if the value is the {@link DecorName}.
43
- */
44
- export function isDecorName(value) {
45
- return typeof value === 'string'
46
- && decorNameList.includes(value);
47
- }
48
- /**
49
- * Formats the string for specific style types.
50
- * @param decor The decor name.
51
- * @param condition Formatting options.
52
- */
53
- export function decorCondition(decor, condition) {
54
- let result = condition.ifNormal ?? '';
55
- if (decor === 'emoji') {
56
- result = condition.ifEmoji ?? result;
57
- }
58
- else if (decor === 'nerdfonts') {
59
- result = condition.ifNerd ?? result;
60
- }
61
- if (result !== '') {
62
- result = (condition.prefix ?? '') + result + (condition.postfix ?? '');
63
- }
64
- return result;
65
- }
66
- //# sourceMappingURL=styling.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"styling.js","sourceRoot":"","sources":["../../src/browser/styling.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,IAAI,MAAM,SAAS,CAAA;AAC1B,OAAO,YAAY,MAAM,eAAe,CAAA;AAoCxC;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,KAAiB,EACjB,OAA2B;IAE3B,MAAM,EAAE,WAAW,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,GACxE,OAAO,IAAI,EAAE,CAAA;IAEjB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;IACvC,MAAM,OAAO,GAAG,KAAK,KAAK,OAAO,CAAA;IACjC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAC1B,CAAC,CAAC,QAAQ,CAAC;QACT,QAAQ,EAAE,KAAK;QACf,SAAS,EAAE,IAAI;QACf,KAAK;QACL,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,OAAO;KAChB,CAAC,CACH,CAAA;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAChC,CAAC;IAED,SAAS;IACT,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAA;IACxE,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAC1D,OAAO,WAAW,CAAA;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,OAAO,CAAU,CAAA;AAOvD;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ;WAC3B,aAAa,CAAC,QAAQ,CAAC,KAAkB,CAAC,CAAA;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAU,CAAA;AAOtE;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ;WAC3B,aAAa,CAAC,QAAQ,CAAC,KAAkB,CAAC,CAAA;AACjD,CAAC;AAmCD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAgB,EAChB,SAAgC;IAEhC,IAAI,MAAM,GAAW,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAA;IAC7C,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,MAAM,GAAG,SAAS,CAAC,OAAO,IAAI,MAAM,CAAA;IACtC,CAAC;SACI,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;QAC/B,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,MAAM,CAAA;IACrC,CAAC;IAED,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAClB,MAAM,GAAG,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;IACxE,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
package/out/cli.d.ts DELETED
@@ -1,90 +0,0 @@
1
- import { Argument, Command, Option } from 'commander';
2
- import * as Config from './config.js';
3
- import { type DecorName, type StyleName } from './browser/styling.js';
4
- import { type SortName } from './browser/sorting.js';
5
- import { type FilterName } from './browser/filtering.js';
6
- export declare function logError(message: string, title: string): void;
7
- /**
8
- * Use it instead of {@link program.parse}.
9
- * @internal
10
- */
11
- export declare function programInit(): Promise<void>;
12
- /**
13
- * Command-line entire program flags.
14
- */
15
- export type ProgramFlags = {
16
- posix: boolean;
17
- plugins: string[];
18
- noColor: boolean;
19
- decor: DecorName;
20
- parsable: boolean;
21
- };
22
- /**
23
- * Command-line 'scan' command flags.
24
- */
25
- export type ScanFlags = {
26
- target: string;
27
- filter: FilterName;
28
- sort: SortName;
29
- style: StyleName;
30
- showSources: boolean;
31
- depth: number;
32
- concurrency: number;
33
- };
34
- /**
35
- * Command-line 'cfg get' command flags.
36
- */
37
- export type ConfigGetFlags = {
38
- real: boolean;
39
- types: boolean;
40
- };
41
- /**
42
- * `view-ignored` command-line programl
43
- */
44
- export declare const program: Command;
45
- /**
46
- * Command-line 'scan' command.
47
- */
48
- export declare const scanProgram: Command;
49
- /**
50
- * Command-line 'config' command.
51
- */
52
- export declare const cfgProgram: Command;
53
- /**
54
- * Command-line argument: key=value pair.
55
- * @see {@link parseArgumentKeyValue}
56
- */
57
- export declare const argumentConfigKeyValue: Argument;
58
- /**
59
- * Command-line argument: config property.
60
- * @see {@link Config.configKeyList}
61
- */
62
- export declare const argumentConfigKey: Argument;
63
- export declare const cfgRealOption: Option;
64
- export declare const cfgTypesOption: Option;
65
- export declare function parseArgumentArrayString(argument: string): string[];
66
- export declare function parseArgumentInteger(argument: string): number;
67
- export declare function createArgumentParserStringLiteral(choices: string[]): (argument: string) => string;
68
- export declare function parseArgumentKey(key: string): string;
69
- export declare function parseArgumentKeyValue(pair: string): Config.ConfigPair;
70
- /**
71
- * Command-line 'scan' command action.
72
- */
73
- export declare function actionScan(): Promise<void>;
74
- /**
75
- * Command-line 'config path' command action.
76
- */
77
- export declare function actionCfgPath(): void;
78
- /**
79
- * Command-line 'config set' command action
80
- */
81
- export declare function actionCfgSet(pair: Config.ConfigPair | undefined, options: ConfigGetFlags): void;
82
- /**
83
- * Command-line 'config unset' command action
84
- */
85
- export declare function actionCfgUnset(key: Config.ConfigKey | undefined, options: ConfigGetFlags): void;
86
- /**
87
- * Command-line 'config unset' command action
88
- */
89
- export declare function actionCfgGet(key: Config.ConfigKey | undefined, options: ConfigGetFlags): void;
90
- //# sourceMappingURL=cli.d.ts.map
package/out/cli.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAwB,MAAM,EAAE,MAAM,WAAW,CAAA;AAC3E,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAOrC,OAAO,EAEL,KAAK,SAAS,EAEd,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,KAAK,QAAQ,EAAgB,MAAM,sBAAsB,CAAA;AAkBlE,OAAO,EAAE,KAAK,UAAU,EAAkB,MAAM,wBAAwB,CAAA;AAGxE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAEtD;AAED;;;GAGG;AACH,wBAAsB,WAAW,kBAkKhC;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,UAAU,CAAA;IAClB,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,SAAS,CAAA;IAChB,WAAW,EAAE,OAAO,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,SAAgB,CAAA;AAEpC;;GAEG;AACH,eAAO,MAAM,WAAW,SAIH,CAAA;AAErB;;GAEG;AACH,eAAO,MAAM,UAAU,SAGkB,CAAA;AAEzC;;;GAGG;AAEH,eAAO,MAAM,sBAAsB,UAGD,CAAA;AAElC;;;GAGG;AACH,eAAO,MAAM,iBAAiB,UAGC,CAAA;AAE/B,eAAO,MAAM,aAAa,QAGV,CAAA;AAEhB,eAAO,MAAM,cAAc,QAGX,CAAA;AA4BhB,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAEnE;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQ7D;AAED,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,MAAM,EAAE,IAChD,UAAU,MAAM,KAAG,MAAM,CAQ3C;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOpD;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,UAAU,CAwBrE;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CA+IhD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,EACnC,OAAO,EAAE,cAAc,GACtB,IAAI,CAsBN;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS,EACjC,OAAO,EAAE,cAAc,GACtB,IAAI,CAcN;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS,EACjC,OAAO,EAAE,cAAc,GACtB,IAAI,CASN"}
package/out/cli.js DELETED
@@ -1,360 +0,0 @@
1
- import { format } from 'node:util';
2
- import * as process from 'node:process';
3
- import { icons } from '@m234/nerd-fonts';
4
- import { Chalk } from 'chalk';
5
- import { Argument, Command, InvalidArgumentError, Option } from 'commander';
6
- import * as Config from './config.js';
7
- import { loadBuiltIns, loadPlugins, targetGet, targetList, } from './browser/binds/index.js';
8
- import { decorCondition, formatFiles, } from './browser/styling.js';
9
- import { sortNameList } from './browser/sorting.js';
10
- import { decorNameList, highlight, stringTime, styleNameList, } from './styling.js';
11
- import { Directory, makeOptionsReal, package_, scan, Sorting, ViewIgnoredError, } from './lib.js';
12
- import { filterNameList } from './browser/filtering.js';
13
- import ora from 'ora';
14
- export function logError(message, title) {
15
- console.log('ERROR: ' + title + '\n', message);
16
- }
17
- /**
18
- * Use it instead of {@link program.parse}.
19
- * @internal
20
- */
21
- export async function programInit() {
22
- try {
23
- const { configManager, configDefault, configValueArray, configValueString, configValueLiteral, } = Config;
24
- const flags = program.optsWithGlobals();
25
- const chalk = new Chalk();
26
- configManager.keySetValidator('plugins', configDefault.plugins, configValueArray(configValueString()));
27
- const loadResultConfig = configManager.load();
28
- const builtInPlugins = await loadBuiltIns();
29
- const configPlugins = configManager.get('plugins');
30
- const loadResultPlugins = [
31
- ...(flags.plugins ? await loadPlugins(flags.plugins) : []),
32
- ...builtInPlugins,
33
- ];
34
- for (const loadResult of loadResultPlugins) {
35
- if (loadResult.isLoaded) {
36
- continue;
37
- }
38
- logError(format(loadResult.exports), `view-ignored - Plugin loading failed: '${loadResult.resource}' ${builtInPlugins.includes(loadResult)
39
- ? '(imported from built-ins)'
40
- : (configPlugins.includes(loadResult.resource)
41
- ? '(imported by ' + configManager.path + ')'
42
- : '(imported by --plugins option)')}.`);
43
- }
44
- const targets = targetList();
45
- configManager.keySetValidator('target', configDefault.target, configValueLiteral(targets));
46
- {
47
- const title = 'view-ignored - Configuration loading failed.';
48
- const infoSymbol = decorCondition(flags.decor, {
49
- ifEmoji: 'ℹ️',
50
- ifNerd: icons['nf-seti-info'].value,
51
- postfix: ' ',
52
- });
53
- const errorIcon = decorCondition(flags.decor, {
54
- ifNerd: icons['nf-seti-error'].value,
55
- ifEmoji: '⚠️',
56
- postfix: ' ',
57
- });
58
- const footer = `\n\n${chalk.blue(infoSymbol)}Configuration path: ${Config.configManager.path}`;
59
- if (typeof loadResultConfig === 'string') {
60
- logError(loadResultConfig + footer, title);
61
- process.exit(1);
62
- }
63
- if (loadResultConfig && loadResultConfig?.size > 0) {
64
- const propertiesErrors = [...loadResultConfig.entries()].map(([key, message]) => {
65
- const pair = Config.configManager.getPairString(key, {
66
- chalk,
67
- types: false,
68
- real: true,
69
- });
70
- return `${pair} - ${chalk.red(errorIcon)}${message}`;
71
- }).join('\n');
72
- logError(`Invalid properties:\n${propertiesErrors}${footer}`, title);
73
- process.exit(1);
74
- }
75
- }
76
- program.version('v' + package_.version, '-v');
77
- configManager.setOption('noColor', program, new Option('--no-color', 'force disable colors'));
78
- configManager.setOption('posix', program, new Option('--posix', 'use unix path separator'));
79
- configManager.setOption('plugins', program, new Option('--plugins <modules...>', 'import modules to modify behavior'), parseArgumentArrayString);
80
- configManager.setOption('decor', program, new Option('--decor <decor>', 'the interface decorations'), createArgumentParserStringLiteral([...decorNameList]));
81
- configManager.setOption('parsable', program, new Option('-p, --parsable', 'print parsable text'));
82
- configManager.setOption('target', scanProgram, new Option('-t, --target <ignorer>', 'the scan target'), createArgumentParserStringLiteral(targets));
83
- configManager.setOption('filter', scanProgram, new Option('--filter <filter>', 'filter results'), createArgumentParserStringLiteral([...filterNameList]));
84
- configManager.setOption('sort', scanProgram, new Option('--sort <sorter>', 'sort results'), createArgumentParserStringLiteral([...sortNameList]));
85
- configManager.setOption('style', scanProgram, new Option('--style <style>', 'results view mode'), createArgumentParserStringLiteral([...styleNameList]));
86
- configManager.setOption('depth', scanProgram, new Option('--depth <depth>', 'the max results depth'), parseArgumentInteger);
87
- configManager.setOption('showSources', scanProgram, new Option('--show-sources', 'show scan sources'));
88
- configManager.setOption('concurrency', scanProgram, new Option('--concurrency [limit]', 'the limit for the signgle directory operations'), parseArgumentInteger);
89
- program.parse();
90
- }
91
- catch (error) {
92
- logError(format(error), 'view-ignored - Fatal error.');
93
- process.exit(1);
94
- }
95
- }
96
- /**
97
- * `view-ignored` command-line programl
98
- */
99
- export const program = new Command();
100
- /**
101
- * Command-line 'scan' command.
102
- */
103
- export const scanProgram = program
104
- .command('scan')
105
- .aliases(['sc'])
106
- .description('get ignored/included paths')
107
- .action(actionScan);
108
- /**
109
- * Command-line 'config' command.
110
- */
111
- export const cfgProgram = program
112
- .command('config')
113
- .alias('cfg')
114
- .description('cli config manipulation');
115
- /**
116
- * Command-line argument: key=value pair.
117
- * @see {@link parseArgumentKeyValue}
118
- */
119
- export const argumentConfigKeyValue = new Argument('[pair]', 'the configuration entry key=value\'').argParser(parseArgumentKeyValue);
120
- /**
121
- * Command-line argument: config property.
122
- * @see {@link Config.configKeyList}
123
- */
124
- export const argumentConfigKey = new Argument('[key]', 'the configuration setting name').choices(Config.configKeyList);
125
- export const cfgRealOption = new Option('--real', 'use default value(s) as fallback').default(false);
126
- export const cfgTypesOption = new Option('--types', 'use default value(s) as fallback').default(false);
127
- cfgProgram
128
- .command('path').description('print the config file path')
129
- .action(actionCfgPath);
130
- cfgProgram
131
- .command('set').description('set config property using syntax \'key=value\'')
132
- .addArgument(argumentConfigKeyValue)
133
- .addOption(cfgRealOption)
134
- .addOption(cfgTypesOption)
135
- .action(actionCfgSet);
136
- cfgProgram
137
- .command('unset').description('delete configuration value if cpecified, otherwise delete entire config')
138
- .addArgument(argumentConfigKey)
139
- .addOption(cfgRealOption)
140
- .addOption(cfgTypesOption)
141
- .action(actionCfgUnset);
142
- cfgProgram
143
- .command('get').description('print configuration value(s). You can use --real option to view real values')
144
- .addOption(cfgRealOption)
145
- .addOption(cfgTypesOption)
146
- .addArgument(argumentConfigKey)
147
- .action(actionCfgGet);
148
- export function parseArgumentArrayString(argument) {
149
- return argument.split(/[ ,|]/).filter(Boolean);
150
- }
151
- export function parseArgumentInteger(argument) {
152
- const value = Number.parseInt(argument, 10);
153
- const errorMessage = Config.configValueInteger()(value);
154
- if (errorMessage !== undefined) {
155
- throw new InvalidArgumentError(errorMessage);
156
- }
157
- return value;
158
- }
159
- export function createArgumentParserStringLiteral(choices) {
160
- return function (argument) {
161
- const errorMessage = Config.configValueLiteral(choices)(argument);
162
- if (errorMessage !== undefined) {
163
- throw new InvalidArgumentError(errorMessage);
164
- }
165
- return argument;
166
- };
167
- }
168
- export function parseArgumentKey(key) {
169
- const errorMessage = Config.configManager.checkKey(key);
170
- if (errorMessage !== undefined) {
171
- throw new InvalidArgumentError(errorMessage);
172
- }
173
- return key;
174
- }
175
- export function parseArgumentKeyValue(pair) {
176
- const result = pair.split('=');
177
- if (result.length > 2) {
178
- throw new InvalidArgumentError('Expected \'key=value\'.');
179
- }
180
- if (result.length !== 2) {
181
- const [key] = result;
182
- const message = Config.configManager.checkKey(key);
183
- if (message !== undefined) {
184
- throw new InvalidArgumentError(`Expected 'key=value'. ${message}`);
185
- }
186
- }
187
- const [key, valueString] = result;
188
- const { parseArg: parseArgument } = Config.configManager.getOption(key) ?? {};
189
- const value = parseArgument?.(valueString, undefined) ?? valueString;
190
- const message = Config.configManager.checkValue(key, value);
191
- if (message !== undefined) {
192
- throw new InvalidArgumentError(`Expected 'key=value'. ${message}`);
193
- }
194
- return [key, value];
195
- }
196
- /**
197
- * Command-line 'scan' command action.
198
- */
199
- export async function actionScan() {
200
- const flags = scanProgram.optsWithGlobals();
201
- const start = Date.now();
202
- const chalk = new Chalk();
203
- const bind = targetGet(flags.target);
204
- if (bind === undefined) {
205
- logError(format(`Bad target '${flags.target}'. Registered targets: ${targetList().join(', ')}.`), 'view-ignored - Fatal error.');
206
- process.exit(1);
207
- }
208
- const optionsReal = makeOptionsReal({
209
- posix: flags.posix || flags.parsable,
210
- concurrency: flags.concurrency,
211
- });
212
- const stream = Directory.deepStream('.', {
213
- concurrency: optionsReal.concurrency,
214
- cwd: optionsReal.cwd,
215
- modules: optionsReal.modules,
216
- });
217
- try {
218
- if (flags.parsable) {
219
- await stream.run();
220
- const fileInfoList = await scan(stream, {
221
- ...optionsReal,
222
- target: flags.target,
223
- filter: flags.filter,
224
- maxDepth: flags.depth,
225
- });
226
- console.log(fileInfoList.map(fileInfo => fileInfo.relativePath + (flags.showSources && fileInfo.source !== undefined
227
- ? '<' + (fileInfo.source.relativePath)
228
- : '')).join(','));
229
- }
230
- else {
231
- let name = decorCondition(flags.decor, { ifNerd: bind.icon?.value, postfix: ' ' })
232
- + bind.name;
233
- if (bind.icon?.color !== undefined) {
234
- name = chalk.hex('#' + bind.icon.color)(name);
235
- }
236
- const progress = { current: 0, directories: 0, files: 0, total: 0 };
237
- const reading = new Promise((resolve) => {
238
- stream.on('end', (data) => {
239
- resolve(data);
240
- });
241
- });
242
- console.log(`${name} ${chalk.hex('#73A7DE')(flags.filter)}`);
243
- const spinner = ora('Scanning');
244
- stream.on('progress', (prog) => {
245
- spinner.text = `Scanning ${prog.current}/${prog.total}`;
246
- Object.assign(progress, prog);
247
- });
248
- await stream.run();
249
- const fileInfoList = await scan(await stream.endPromise, {
250
- ...optionsReal,
251
- target: flags.target,
252
- filter: flags.filter,
253
- maxDepth: flags.depth,
254
- });
255
- const sorter = Sorting[flags.sort];
256
- const cache = new Map();
257
- if (flags.sort === 'modified') {
258
- const { tree } = await reading;
259
- await tree.deepModifiedTime(cache, optionsReal);
260
- }
261
- const time = Date.now() - start;
262
- const fileInfoListSorted = fileInfoList.sort((a, b) => sorter(String(a), String(b), cache));
263
- const files = formatFiles(fileInfoListSorted, {
264
- chalk,
265
- posix: flags.posix,
266
- style: flags.style,
267
- decor: flags.decor,
268
- showSources: flags.showSources,
269
- });
270
- const fastSymbol = decorCondition(flags.decor, {
271
- ifEmoji: '⚡',
272
- ifNerd: icons['nf-md-lightning_bolt'].value,
273
- });
274
- const infoSymbol = decorCondition(flags.decor, {
275
- ifEmoji: 'ℹ️',
276
- ifNerd: icons['nf-seti-info'].value,
277
- postfix: ' ',
278
- });
279
- let message = '';
280
- message += files;
281
- message += '\n';
282
- message += `Done in ${time < 2000 ? chalk.yellow(fastSymbol) : ''}${stringTime(time, chalk)}.`;
283
- message += '\n';
284
- message += `Listed ${highlight(String(fileInfoList.length), chalk)} files.`;
285
- message += '\n';
286
- message += `Processed ${highlight(String(progress.files), chalk)} files and ${highlight(String(progress.directories), chalk)} directories.`;
287
- message += '\n';
288
- if (bind.testCommand) {
289
- message += '\n';
290
- message += `${chalk.blue(infoSymbol)}You can use ${highlight(`'${bind.testCommand}'`, chalk)} to check if the list is valid.`;
291
- message += '\n';
292
- }
293
- console.log(message);
294
- }
295
- }
296
- catch (error) {
297
- logError(format(error instanceof ViewIgnoredError ? error.message : error), 'view-ignored - Error while scan.');
298
- }
299
- }
300
- /**
301
- * Command-line 'config path' command action.
302
- */
303
- export function actionCfgPath() {
304
- console.log(Config.configManager.path);
305
- }
306
- /**
307
- * Command-line 'config set' command action
308
- */
309
- export function actionCfgSet(pair, options) {
310
- if (pair === undefined) {
311
- console.log(`Allowed config keys are ${Config.configKeyList.join(', ')}.`);
312
- return;
313
- }
314
- const [key, value] = pair;
315
- const errorMessage = Config.configManager.set(key, value);
316
- if (errorMessage !== undefined) {
317
- console.log(errorMessage);
318
- return;
319
- }
320
- const flags = scanProgram.optsWithGlobals();
321
- const chalk = new Chalk();
322
- Config.configManager.save();
323
- console.log(Config.configManager.getPairString(key, {
324
- chalk,
325
- real: options.real,
326
- types: options.types,
327
- parsable: flags.parsable,
328
- }));
329
- }
330
- /**
331
- * Command-line 'config unset' command action
332
- */
333
- export function actionCfgUnset(key, options) {
334
- if (key === undefined) {
335
- console.log('Configuration file has been completely deleted.');
336
- }
337
- const flags = scanProgram.optsWithGlobals();
338
- const chalk = new Chalk();
339
- Config.configManager.unset(key).save();
340
- console.log(Config.configManager.getPairString(key, {
341
- chalk,
342
- real: options.real,
343
- types: options.types,
344
- parsable: flags.parsable,
345
- }));
346
- }
347
- /**
348
- * Command-line 'config unset' command action
349
- */
350
- export function actionCfgGet(key, options) {
351
- const flags = scanProgram.optsWithGlobals();
352
- const chalk = new Chalk();
353
- console.log(Config.configManager.getPairString(key, {
354
- chalk,
355
- real: options.real,
356
- types: options.types,
357
- parsable: flags.parsable,
358
- }));
359
- }
360
- //# sourceMappingURL=cli.js.map
package/out/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}