kodu 2.0.2 → 2.1.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/README.md CHANGED
@@ -17,6 +17,7 @@
17
17
  | :--- | :--- |
18
18
  | Copy-pasting files one by one into ChatGPT | `kodu pack` bundles your entire project in one command |
19
19
  | Hitting token limits with comments and docs | `kodu clean` strips comments deterministically via AST |
20
+ | Sending irrelevant files to LLMs | `kodu pack --deps` traces only the real import graph from your entry point |
20
21
 
21
22
  ---
22
23
 
@@ -70,6 +71,38 @@ kodu pack --out /tmp/context.txt
70
71
  kodu pack --format text --copy
71
72
  ```
72
73
 
74
+ ### Dependency-aware packing
75
+
76
+ Instead of bundling the entire project, trace only the files reachable from your entry point:
77
+
78
+ ```bash
79
+ # Pack src/index.ts and every file it imports (recursively)
80
+ kodu pack src/index.ts --deps --copy
81
+
82
+ # Multiple entry points
83
+ kodu pack src/server.ts src/worker.ts --deps --copy
84
+
85
+ # Limit traversal depth (direct imports only)
86
+ kodu pack src/index.ts --deps --deps-depth 1 --list
87
+
88
+ # See why each file was included
89
+ kodu pack src/index.ts --deps --explain
90
+
91
+ # Combine with --list and --explain for a quick audit
92
+ kodu pack src/index.ts --deps --list --explain
93
+ ```
94
+
95
+ Example `--explain` output:
96
+
97
+ ```
98
+ src/main.ts ← entry point
99
+ src/app.module.ts ← import from src/main.ts
100
+ src/core/config/config.service.ts ← import from src/core/config/config.module.ts
101
+ src/shared/constants.ts ← import from src/core/file-system/fs.service.ts
102
+ ```
103
+
104
+ `--deps` uses `ts-morph` to resolve the TypeScript import graph, so it correctly handles tsconfig path aliases, re-exports, index files, and type-only imports. `node_modules` are excluded automatically.
105
+
73
106
  ### Output format
74
107
 
75
108
  By default, kodu wraps each file in XML tags — the format that LLMs parse most reliably:
@@ -100,6 +133,9 @@ Use `--format text` for legacy `// file: path` style headers.
100
133
  | `-f, --format <xml\|text>` | Output format (default: `xml`) |
101
134
  | `--clean` | Strip comments in-memory before packing (files not modified) |
102
135
  | `-t, --template <name>` | Wrap output in a prompt template from `.kodu/prompts/` |
136
+ | `--deps` | Trace import graph from entry point(s) instead of globbing |
137
+ | `--deps-depth <n>` | Max import traversal depth (default: unlimited) |
138
+ | `--explain` | Print why each file was included (use with `--deps`) |
103
139
 
104
140
  ---
105
141
 
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kodu",
3
- "version": "2.0.2",
3
+ "version": "2.1.1",
4
4
  "description": "High-performance CLI to prepare codebase for LLMs, automate reviews, and draft commits.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -4,6 +4,7 @@ import { PromptService } from '../../core/config/prompt.service';
4
4
  import { FsService } from '../../core/file-system/fs.service';
5
5
  import { UiService } from '../../core/ui/ui.service';
6
6
  import { CleanerService } from '../../shared/cleaner/cleaner.service';
7
+ import { DepsService } from '../../shared/deps/deps.service';
7
8
  import { TokenizerService } from '../../shared/tokenizer/tokenizer.service';
8
9
  type OutputFormat = 'xml' | 'text';
9
10
  type PackOptions = {
@@ -15,6 +16,9 @@ type PackOptions = {
15
16
  list?: boolean;
16
17
  format?: OutputFormat;
17
18
  clean?: boolean;
19
+ deps?: boolean;
20
+ depsDepth?: number;
21
+ explain?: boolean;
18
22
  };
19
23
  export declare class PackCommand extends CommandRunner {
20
24
  private readonly ui;
@@ -23,7 +27,8 @@ export declare class PackCommand extends CommandRunner {
23
27
  private readonly fsService;
24
28
  private readonly tokenizer;
25
29
  private readonly cleaner;
26
- constructor(ui: UiService, configService: ConfigService, promptService: PromptService, fsService: FsService, tokenizer: TokenizerService, cleaner: CleanerService);
30
+ private readonly depsService;
31
+ constructor(ui: UiService, configService: ConfigService, promptService: PromptService, fsService: FsService, tokenizer: TokenizerService, cleaner: CleanerService, depsService: DepsService);
27
32
  parseCopy(): boolean;
28
33
  parseTemplate(value: string): string;
29
34
  parseOut(value: string): string;
@@ -31,8 +36,11 @@ export declare class PackCommand extends CommandRunner {
31
36
  parseExclude(value: string, previous?: string[]): string[];
32
37
  parseList(): boolean;
33
38
  parseClean(): boolean;
39
+ parseDeps(): boolean;
40
+ parseDepsDepth(value: string): number;
41
+ parseExplain(): boolean;
34
42
  parseFormat(value: string): OutputFormat;
35
- run(_inputs: string[], options: PackOptions): Promise<void>;
43
+ run(inputs: string[], options: PackOptions): Promise<void>;
36
44
  private buildContext;
37
45
  private applyTemplate;
38
46
  private loadTemplate;
@@ -22,6 +22,7 @@ const prompt_service_1 = require("../../core/config/prompt.service");
22
22
  const fs_service_1 = require("../../core/file-system/fs.service");
23
23
  const ui_service_1 = require("../../core/ui/ui.service");
24
24
  const cleaner_service_1 = require("../../shared/cleaner/cleaner.service");
25
+ const deps_service_1 = require("../../shared/deps/deps.service");
25
26
  const tokenizer_service_1 = require("../../shared/tokenizer/tokenizer.service");
26
27
  let PackCommand = class PackCommand extends nest_commander_1.CommandRunner {
27
28
  ui;
@@ -30,7 +31,8 @@ let PackCommand = class PackCommand extends nest_commander_1.CommandRunner {
30
31
  fsService;
31
32
  tokenizer;
32
33
  cleaner;
33
- constructor(ui, configService, promptService, fsService, tokenizer, cleaner) {
34
+ depsService;
35
+ constructor(ui, configService, promptService, fsService, tokenizer, cleaner, depsService) {
34
36
  super();
35
37
  this.ui = ui;
36
38
  this.configService = configService;
@@ -38,6 +40,7 @@ let PackCommand = class PackCommand extends nest_commander_1.CommandRunner {
38
40
  this.fsService = fsService;
39
41
  this.tokenizer = tokenizer;
40
42
  this.cleaner = cleaner;
43
+ this.depsService = depsService;
41
44
  }
42
45
  parseCopy() {
43
46
  return true;
@@ -60,6 +63,20 @@ let PackCommand = class PackCommand extends nest_commander_1.CommandRunner {
60
63
  parseClean() {
61
64
  return true;
62
65
  }
66
+ parseDeps() {
67
+ return true;
68
+ }
69
+ parseDepsDepth(value) {
70
+ const n = Number.parseInt(value, 10);
71
+ if (Number.isNaN(n) || n < 1) {
72
+ this.ui.log.warn(`Invalid --deps-depth "${value}", ignoring`);
73
+ return Infinity;
74
+ }
75
+ return n;
76
+ }
77
+ parseExplain() {
78
+ return true;
79
+ }
63
80
  parseFormat(value) {
64
81
  if (value !== 'xml' && value !== 'text') {
65
82
  this.ui.log.warn(`Unknown format "${value}", using "xml"`);
@@ -67,20 +84,40 @@ let PackCommand = class PackCommand extends nest_commander_1.CommandRunner {
67
84
  }
68
85
  return value;
69
86
  }
70
- async run(_inputs, options) {
87
+ async run(inputs, options) {
71
88
  const spinner = this.ui
72
89
  .createSpinner({ text: 'Collecting files...' })
73
90
  .start();
74
91
  try {
75
92
  const { packer } = this.configService.getConfig();
76
93
  const extraExcludes = options.exclude ?? [];
77
- const files = await this.fsService.findProjectFiles({
78
- excludeBinary: true,
79
- useGitignore: packer.useGitignore,
80
- ignore: [...packer.ignore, ...extraExcludes],
81
- contentBasedBinaryDetection: packer.contentBasedBinaryDetection,
82
- rootPaths: options.path,
83
- });
94
+ let files;
95
+ let explainMap;
96
+ if (options.deps) {
97
+ if (inputs.length === 0) {
98
+ spinner.error('--deps requires at least one entry file as argument');
99
+ this.ui.log.error('Usage: kodu pack <entry.ts> [more.ts...] --deps');
100
+ process.exitCode = 1;
101
+ return;
102
+ }
103
+ spinner.text = 'Resolving dependency graph...';
104
+ const result = this.depsService.collectDependencies(inputs, process.cwd(), {
105
+ maxDepth: options.depsDepth,
106
+ includeTypes: true,
107
+ includeDynamic: false,
108
+ });
109
+ files = result.files;
110
+ explainMap = result.explain;
111
+ }
112
+ else {
113
+ files = await this.fsService.findProjectFiles({
114
+ excludeBinary: true,
115
+ useGitignore: packer.useGitignore,
116
+ ignore: [...packer.ignore, ...extraExcludes],
117
+ contentBasedBinaryDetection: packer.contentBasedBinaryDetection,
118
+ rootPaths: inputs.length > 0 ? inputs : options.path,
119
+ });
120
+ }
84
121
  if (files.length === 0) {
85
122
  spinner.stop('No files to pack.');
86
123
  this.ui.log.warn('No files to pack.');
@@ -89,10 +126,26 @@ let PackCommand = class PackCommand extends nest_commander_1.CommandRunner {
89
126
  if (options.list) {
90
127
  spinner.success(`Found ${files.length} files`);
91
128
  for (const file of files) {
92
- this.ui.log.info(file);
129
+ if (options.explain && explainMap) {
130
+ const absFile = node_path_1.default.resolve(process.cwd(), file);
131
+ const reason = explainMap.get(absFile) ?? explainMap.get(file) ?? '';
132
+ this.ui.log.info(`${file} ← ${reason}`);
133
+ }
134
+ else {
135
+ this.ui.log.info(file);
136
+ }
93
137
  }
94
138
  return;
95
139
  }
140
+ if (options.explain && explainMap) {
141
+ spinner.success(`Found ${files.length} files`);
142
+ this.ui.log.info('Dependency explanation:');
143
+ for (const file of files) {
144
+ const absFile = node_path_1.default.resolve(process.cwd(), file);
145
+ const reason = explainMap.get(absFile) ?? explainMap.get(file) ?? '';
146
+ this.ui.log.info(` ${file} ← ${reason}`);
147
+ }
148
+ }
96
149
  const format = options.format ?? 'xml';
97
150
  const context = await this.buildContext(files, format, options.clean);
98
151
  const fileList = files.join('\n');
@@ -250,6 +303,33 @@ __decorate([
250
303
  __metadata("design:paramtypes", []),
251
304
  __metadata("design:returntype", Boolean)
252
305
  ], PackCommand.prototype, "parseClean", null);
306
+ __decorate([
307
+ (0, nest_commander_1.Option)({
308
+ flags: '--deps',
309
+ description: 'Trace imports from entry point(s) and include their dependencies',
310
+ }),
311
+ __metadata("design:type", Function),
312
+ __metadata("design:paramtypes", []),
313
+ __metadata("design:returntype", Boolean)
314
+ ], PackCommand.prototype, "parseDeps", null);
315
+ __decorate([
316
+ (0, nest_commander_1.Option)({
317
+ flags: '--deps-depth <n>',
318
+ description: 'Max import depth when using --deps (default: unlimited)',
319
+ }),
320
+ __metadata("design:type", Function),
321
+ __metadata("design:paramtypes", [String]),
322
+ __metadata("design:returntype", Number)
323
+ ], PackCommand.prototype, "parseDepsDepth", null);
324
+ __decorate([
325
+ (0, nest_commander_1.Option)({
326
+ flags: '--explain',
327
+ description: 'Print why each file was included (requires --deps)',
328
+ }),
329
+ __metadata("design:type", Function),
330
+ __metadata("design:paramtypes", []),
331
+ __metadata("design:returntype", Boolean)
332
+ ], PackCommand.prototype, "parseExplain", null);
253
333
  __decorate([
254
334
  (0, nest_commander_1.Option)({
255
335
  flags: '-f, --format <format>',
@@ -269,6 +349,7 @@ exports.PackCommand = PackCommand = __decorate([
269
349
  prompt_service_1.PromptService,
270
350
  fs_service_1.FsService,
271
351
  tokenizer_service_1.TokenizerService,
272
- cleaner_service_1.CleanerService])
352
+ cleaner_service_1.CleanerService,
353
+ deps_service_1.DepsService])
273
354
  ], PackCommand);
274
355
  //# sourceMappingURL=pack.command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pack.command.js","sourceRoot":"","sources":["../../../../src/commands/pack/pack.command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pack.command.js","sourceRoot":"","sources":["../../../../src/commands/pack/pack.command.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ const config_module_1 = require("../../core/config/config.module");
12
12
  const fs_module_1 = require("../../core/file-system/fs.module");
13
13
  const ui_module_1 = require("../../core/ui/ui.module");
14
14
  const cleaner_service_1 = require("../../shared/cleaner/cleaner.service");
15
+ const deps_module_1 = require("../../shared/deps/deps.module");
15
16
  const tokenizer_module_1 = require("../../shared/tokenizer/tokenizer.module");
16
17
  const pack_command_1 = require("./pack.command");
17
18
  let PackModule = class PackModule {
@@ -19,7 +20,7 @@ let PackModule = class PackModule {
19
20
  exports.PackModule = PackModule;
20
21
  exports.PackModule = PackModule = __decorate([
21
22
  (0, common_1.Module)({
22
- imports: [config_module_1.ConfigModule, ui_module_1.UiModule, fs_module_1.FsModule, tokenizer_module_1.TokenizerModule],
23
+ imports: [config_module_1.ConfigModule, ui_module_1.UiModule, fs_module_1.FsModule, tokenizer_module_1.TokenizerModule, deps_module_1.DepsModule],
23
24
  providers: [pack_command_1.PackCommand, cleaner_service_1.CleanerService],
24
25
  })
25
26
  ], PackModule);
@@ -1 +1 @@
1
- {"version":3,"file":"pack.module.js","sourceRoot":"","sources":["../../../../src/commands/pack/pack.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,mEAA+D;AAC/D,gEAA4D;AAC5D,uDAAmD;AACnD,0EAAsE;AACtE,8EAA0E;AAC1E,iDAA6C;AAMtC,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IAJtB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,4BAAY,EAAE,oBAAQ,EAAE,oBAAQ,EAAE,kCAAe,CAAC;QAC5D,SAAS,EAAE,CAAC,0BAAW,EAAE,gCAAc,CAAC;KACzC,CAAC;GACW,UAAU,CAAG"}
1
+ {"version":3,"file":"pack.module.js","sourceRoot":"","sources":["../../../../src/commands/pack/pack.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,mEAA+D;AAC/D,gEAA4D;AAC5D,uDAAmD;AACnD,0EAAsE;AACtE,+DAA2D;AAC3D,8EAA0E;AAC1E,iDAA6C;AAMtC,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IAJtB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,4BAAY,EAAE,oBAAQ,EAAE,oBAAQ,EAAE,kCAAe,EAAE,wBAAU,CAAC;QACxE,SAAS,EAAE,CAAC,0BAAW,EAAE,gCAAc,CAAC;KACzC,CAAC;GACW,UAAU,CAAG"}
@@ -0,0 +1,2 @@
1
+ export declare class DepsModule {
2
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.DepsModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const deps_service_1 = require("./deps.service");
12
+ let DepsModule = class DepsModule {
13
+ };
14
+ exports.DepsModule = DepsModule;
15
+ exports.DepsModule = DepsModule = __decorate([
16
+ (0, common_1.Module)({
17
+ providers: [deps_service_1.DepsService],
18
+ exports: [deps_service_1.DepsService],
19
+ })
20
+ ], DepsModule);
21
+ //# sourceMappingURL=deps.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deps.module.js","sourceRoot":"","sources":["../../../../src/shared/deps/deps.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,iDAA6C;AAMtC,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IAJtB,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,0BAAW,CAAC;QACxB,OAAO,EAAE,CAAC,0BAAW,CAAC;KACvB,CAAC;GACW,UAAU,CAAG"}
@@ -0,0 +1,15 @@
1
+ export type DepsResult = {
2
+ files: string[];
3
+ explain: Map<string, string>;
4
+ };
5
+ type CollectOptions = {
6
+ maxDepth?: number;
7
+ includeTypes?: boolean;
8
+ includeDynamic?: boolean;
9
+ };
10
+ export declare class DepsService {
11
+ collectDependencies(entryFiles: string[], projectRoot: string, options?: CollectOptions): DepsResult;
12
+ private collect;
13
+ private findTsConfig;
14
+ }
15
+ export {};
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DepsService = void 0;
13
+ const node_path_1 = __importDefault(require("node:path"));
14
+ const common_1 = require("@nestjs/common");
15
+ const ts_morph_1 = require("ts-morph");
16
+ let DepsService = class DepsService {
17
+ collectDependencies(entryFiles, projectRoot, options = {}) {
18
+ const { maxDepth = Infinity, includeTypes = true, includeDynamic = false, } = options;
19
+ const tsConfigPath = this.findTsConfig(projectRoot);
20
+ const project = tsConfigPath
21
+ ? new ts_morph_1.Project({
22
+ tsConfigFilePath: tsConfigPath,
23
+ skipAddingFilesFromTsConfig: true,
24
+ })
25
+ : new ts_morph_1.Project({
26
+ compilerOptions: {
27
+ allowJs: true,
28
+ resolveJsonModule: true,
29
+ moduleResolution: 2,
30
+ },
31
+ });
32
+ const visited = new Set();
33
+ const explain = new Map();
34
+ const absEntries = entryFiles.map((f) => node_path_1.default.isAbsolute(f) ? f : node_path_1.default.resolve(projectRoot, f));
35
+ for (const entry of absEntries) {
36
+ explain.set(entry, 'entry point');
37
+ this.collect(project, entry, projectRoot, visited, explain, 0, maxDepth, includeTypes, includeDynamic);
38
+ }
39
+ const files = [...visited].map((abs) => node_path_1.default.relative(projectRoot, abs).split(node_path_1.default.sep).join(node_path_1.default.posix.sep));
40
+ return { files, explain };
41
+ }
42
+ collect(project, absFile, projectRoot, visited, explain, depth, maxDepth, includeTypes, includeDynamic) {
43
+ if (visited.has(absFile))
44
+ return;
45
+ visited.add(absFile);
46
+ if (depth >= maxDepth)
47
+ return;
48
+ let sourceFile = project.getSourceFile(absFile);
49
+ if (!sourceFile) {
50
+ try {
51
+ sourceFile = project.addSourceFileAtPath(absFile);
52
+ }
53
+ catch {
54
+ return;
55
+ }
56
+ }
57
+ const relFrom = node_path_1.default
58
+ .relative(projectRoot, absFile)
59
+ .split(node_path_1.default.sep)
60
+ .join(node_path_1.default.posix.sep);
61
+ for (const importDecl of sourceFile.getImportDeclarations()) {
62
+ if (!includeTypes && importDecl.isTypeOnly())
63
+ continue;
64
+ const resolved = importDecl.getModuleSpecifierSourceFile();
65
+ if (!resolved)
66
+ continue;
67
+ const absResolved = resolved.getFilePath();
68
+ if (absResolved.includes('node_modules'))
69
+ continue;
70
+ if (!explain.has(absResolved)) {
71
+ const what = importDecl.isTypeOnly() ? 'type import' : 'import';
72
+ explain.set(absResolved, `${what} from ${relFrom}`);
73
+ }
74
+ this.collect(project, absResolved, projectRoot, visited, explain, depth + 1, maxDepth, includeTypes, includeDynamic);
75
+ }
76
+ void includeDynamic;
77
+ for (const exportDecl of sourceFile.getExportDeclarations()) {
78
+ const resolved = exportDecl.getModuleSpecifierSourceFile();
79
+ if (!resolved)
80
+ continue;
81
+ const absResolved = resolved.getFilePath();
82
+ if (absResolved.includes('node_modules'))
83
+ continue;
84
+ if (!explain.has(absResolved)) {
85
+ const relFrom2 = node_path_1.default
86
+ .relative(projectRoot, absFile)
87
+ .split(node_path_1.default.sep)
88
+ .join(node_path_1.default.posix.sep);
89
+ explain.set(absResolved, `re-export from ${relFrom2}`);
90
+ }
91
+ this.collect(project, absResolved, projectRoot, visited, explain, depth + 1, maxDepth, includeTypes, includeDynamic);
92
+ }
93
+ }
94
+ findTsConfig(projectRoot) {
95
+ const candidates = [
96
+ node_path_1.default.join(projectRoot, 'tsconfig.json'),
97
+ node_path_1.default.join(projectRoot, 'tsconfig.base.json'),
98
+ ];
99
+ for (const c of candidates) {
100
+ try {
101
+ require('node:fs').accessSync(c);
102
+ return c;
103
+ }
104
+ catch {
105
+ }
106
+ }
107
+ return undefined;
108
+ }
109
+ };
110
+ exports.DepsService = DepsService;
111
+ exports.DepsService = DepsService = __decorate([
112
+ (0, common_1.Injectable)()
113
+ ], DepsService);
114
+ //# sourceMappingURL=deps.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deps.service.js","sourceRoot":"","sources":["../../../../src/shared/deps/deps.service.ts"],"names":[],"mappings":"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"}