sfdx-git-delta 6.41.0 → 6.41.2

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 (56) hide show
  1. package/README.md +3 -4
  2. package/lib/adapter/GitAdapter.d.ts +3 -1
  3. package/lib/adapter/GitAdapter.js +62 -52
  4. package/lib/adapter/GitAdapter.js.map +1 -1
  5. package/lib/adapter/gitBatchCatFile.d.ts +4 -1
  6. package/lib/adapter/gitBatchCatFile.js +30 -8
  7. package/lib/adapter/gitBatchCatFile.js.map +1 -1
  8. package/lib/adapter/treeIndex.d.ts +18 -0
  9. package/lib/adapter/treeIndex.js +75 -0
  10. package/lib/adapter/treeIndex.js.map +1 -0
  11. package/lib/metadata/MetadataRepository.d.ts +1 -0
  12. package/lib/metadata/MetadataRepositoryImpl.d.ts +1 -0
  13. package/lib/metadata/MetadataRepositoryImpl.js +13 -12
  14. package/lib/metadata/MetadataRepositoryImpl.js.map +1 -1
  15. package/lib/metadata/metadataManager.js +22 -14
  16. package/lib/metadata/metadataManager.js.map +1 -1
  17. package/lib/post-processor/flowTranslationProcessor.d.ts +1 -1
  18. package/lib/post-processor/flowTranslationProcessor.js.map +1 -1
  19. package/lib/post-processor/packageGenerator.js +13 -4
  20. package/lib/post-processor/packageGenerator.js.map +1 -1
  21. package/lib/service/inBundleHandler.js +7 -1
  22. package/lib/service/inBundleHandler.js.map +1 -1
  23. package/lib/service/inResourceHandler.js +9 -1
  24. package/lib/service/inResourceHandler.js.map +1 -1
  25. package/lib/service/reportingFolderHandler.js +4 -0
  26. package/lib/service/reportingFolderHandler.js.map +1 -1
  27. package/lib/service/sharedFolderHandler.js +4 -0
  28. package/lib/service/sharedFolderHandler.js.map +1 -1
  29. package/lib/service/typeHandlerFactory.d.ts +1 -2
  30. package/lib/service/typeHandlerFactory.js +8 -9
  31. package/lib/service/typeHandlerFactory.js.map +1 -1
  32. package/lib/utils/LoggingDecorator.d.ts +1 -1
  33. package/lib/utils/LoggingDecorator.js +26 -10
  34. package/lib/utils/LoggingDecorator.js.map +1 -1
  35. package/lib/utils/configValidator.js +4 -6
  36. package/lib/utils/configValidator.js.map +1 -1
  37. package/lib/utils/fsHelper.d.ts +1 -0
  38. package/lib/utils/fsHelper.js +3 -0
  39. package/lib/utils/fsHelper.js.map +1 -1
  40. package/lib/utils/ignoreHelper.d.ts +2 -0
  41. package/lib/utils/ignoreHelper.js +21 -19
  42. package/lib/utils/ignoreHelper.js.map +1 -1
  43. package/lib/utils/metadataDiff.js +2 -1
  44. package/lib/utils/metadataDiff.js.map +1 -1
  45. package/lib/utils/metadataElement.js +1 -3
  46. package/lib/utils/metadataElement.js.map +1 -1
  47. package/lib/utils/packageHelper.js +32 -17
  48. package/lib/utils/packageHelper.js.map +1 -1
  49. package/lib/utils/repoGitDiff.js +3 -4
  50. package/lib/utils/repoGitDiff.js.map +1 -1
  51. package/lib/utils/xmlHelper.d.ts +0 -4
  52. package/lib/utils/xmlHelper.js +35 -13
  53. package/lib/utils/xmlHelper.js.map +1 -1
  54. package/npm-shrinkwrap.json +490 -450
  55. package/oclif.manifest.json +1 -1
  56. package/package.json +34 -27
package/README.md CHANGED
@@ -1,10 +1,9 @@
1
1
  <!-- markdownlint-disable MD040 MD041 -->
2
2
  ![Actions Status](https://github.com/scolladon/sfdx-git-delta/workflows/Main/badge.svg)
3
- [![Performance Dashboard](https://img.shields.io/static/v1?label=Performance&message=Dashboard&color=blue)](https://scolladon.github.io/sfdx-git-delta/dev/bench/)
3
+ [![Performance Dashboard](https://img.shields.io/badge/Performance-Dashboard-58a6ff)](https://scolladon.github.io/sfdx-git-delta/dev/bench/runtime/)
4
4
  [![npm](https://badgen.net/npm/v/sfdx-git-delta)](https://badgen.net/npm/v/sfdx-git-delta)
5
5
  [![Maintainability](https://api.codeclimate.com/v1/badges/95619399c7bb2cf60da4/maintainability)](https://codeclimate.com/github/scolladon/sfdx-git-delta/maintainability)
6
6
  [![Code Coverage](https://codecov.io/gh/scolladon/sfdx-git-delta/branch/main/graph/badge.svg?token=92T8XKKBHN)](https://codecov.io/gh/scolladon/sfdx-git-delta)
7
- [![Known Vulnerabilities](https://snyk.io//test/github/scolladon/sfdx-git-delta/badge.svg?targetFile=package.json)](https://snyk.io//test/github/scolladon/sfdx-git-delta?targetFile=package.json)
8
7
  [![downloads](https://badgen.net/npm/dw/sfdx-git-delta)](https://badgen.net/npm/dw/sfdx-git-delta)
9
8
  ![GitHub Sponsors](https://img.shields.io/github/sponsors/scolladon)
10
9
 
@@ -201,7 +200,7 @@ FLAG DESCRIPTIONS
201
200
  of a diff, in which case changes may still be picked up.
202
201
  ```
203
202
 
204
- _See code: [src/commands/sgd/source/delta.ts](https://github.com/scolladon/sfdx-git-delta/blob/v6.41.0/src/commands/sgd/source/delta.ts)_
203
+ _See code: [src/commands/sgd/source/delta.ts](https://github.com/scolladon/sfdx-git-delta/blob/v6.41.2/src/commands/sgd/source/delta.ts)_
205
204
  <!-- commandsstop -->
206
205
 
207
206
  ### Windows users
@@ -690,12 +689,12 @@ These plugins have been designed to work with SGD:
690
689
  ## Built With
691
690
 
692
691
  - [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) - Validate XML, Parse XML to JS/JSON and vise versa, or parse XML to Nimn rapidly without C/C++ based libraries and no callback
692
+ - [flexible-xml-parser](https://github.com/nodable/flexible-xml-parser) - Fastest XML parser in pure JS with pluggable output builders and value parsers
693
693
  - [fs-extra](https://github.com/jprichardson/node-fs-extra) - Node.js: extra methods for the fs object like copy(), remove(), mkdirs().
694
694
  - [ignore](https://github.com/kaelzhang/node-ignore#readme) - is a manager, filter and parser which implemented in pure JavaScript according to the .gitignore spec 2.22.1.
695
695
  - [lodash](https://github.com/lodash/lodash) - A modern JavaScript utility library delivering modularity, performance & extras.
696
696
  - [MegaLinter](https://megalinter.io) - Open-Source tool for CI/CD workflows that analyzes the consistency of your code, IAC, configuration, and scripts
697
697
  - [simple-git](https://github.com/steveukx/git-js) - A light weight interface for running git commands in any node.js application.
698
- - [xmlbuilder2](https://github.com/oozcitak/xmlbuilder2) - An XML builder for node.js.
699
698
 
700
699
  ## Used by
701
700
 
@@ -2,12 +2,14 @@ import { SimpleGit } from 'simple-git';
2
2
  import type { Config } from '../types/config.js';
3
3
  import type { FileGitRef } from '../types/git.js';
4
4
  import { GitBatchCatFile } from './gitBatchCatFile.js';
5
+ import { TreeIndex } from './treeIndex.js';
5
6
  export default class GitAdapter {
6
7
  protected readonly config: Config;
7
8
  private static instances;
9
+ private static keyFor;
8
10
  static getInstance(config: Config): GitAdapter;
9
11
  protected readonly simpleGit: SimpleGit;
10
- protected readonly treeIndex: Map<string, Set<string>>;
12
+ protected readonly treeIndex: Map<string, TreeIndex>;
11
13
  protected batchCatFile: GitBatchCatFile | null;
12
14
  private constructor();
13
15
  protected getBatchCatFile(): GitBatchCatFile;
@@ -2,7 +2,7 @@ import { __decorate } from "tslib";
2
2
  import { readFile } from 'node:fs/promises';
3
3
  import { join } from 'node:path/posix';
4
4
  import { simpleGit } from 'simple-git';
5
- import { PATH_SEP, UTF8_ENCODING } from '../constant/fsConstants.js';
5
+ import { UTF8_ENCODING } from '../constant/fsConstants.js';
6
6
  import { ADDITION, DELETION, HEAD, IGNORE_WHITESPACE_PARAMS, MODIFICATION, NUM_STAT_CHANGE_INFORMATION, } from '../constant/gitConstants.js';
7
7
  import { pushAll } from '../utils/arrayUtils.js';
8
8
  import { getErrorMessage } from '../utils/errorUtils.js';
@@ -11,17 +11,24 @@ import { getLFSObjectContentPath, isLFS } from '../utils/gitLfsHelper.js';
11
11
  import { log } from '../utils/LoggingDecorator.js';
12
12
  import { Logger, lazy } from '../utils/LoggingService.js';
13
13
  import { GitBatchCatFile } from './gitBatchCatFile.js';
14
- const EOL = new RegExp(/\r?\n/);
14
+ import { TreeIndex } from './treeIndex.js';
15
+ const EOL = /\r?\n/;
15
16
  const ROOT_PATHS = new Set(['', '.', './']);
16
17
  export default class GitAdapter {
17
18
  config;
18
19
  static instances = new Map();
20
+ // Keyed by repo+to so spread copies of the same config (e.g. ioExecutor's
21
+ // per-revision {...config, to: rev}) share one adapter instead of spawning
22
+ // a fresh git cat-file subprocess per call.
23
+ static keyFor(config) {
24
+ return `${config.repo}\0${config.to}`;
25
+ }
19
26
  static getInstance(config) {
20
- if (!GitAdapter.instances.has(config)) {
21
- const instance = new GitAdapter(config);
22
- GitAdapter.instances.set(config, instance);
27
+ const key = GitAdapter.keyFor(config);
28
+ if (!GitAdapter.instances.has(key)) {
29
+ GitAdapter.instances.set(key, new GitAdapter(config));
23
30
  }
24
- return GitAdapter.instances.get(config);
31
+ return GitAdapter.instances.get(key);
25
32
  }
26
33
  simpleGit;
27
34
  treeIndex;
@@ -64,31 +71,24 @@ export default class GitAdapter {
64
71
  args.push('--', ...scopePaths);
65
72
  }
66
73
  const output = await this.simpleGit.raw(args);
67
- const files = new Set(output
68
- .split(EOL)
69
- .filter(line => line)
70
- .map(line => treatPathSep(line)));
71
- this.treeIndex.set(revision, files);
74
+ const index = new TreeIndex();
75
+ for (const line of output.split(EOL)) {
76
+ if (line)
77
+ index.add(treatPathSep(line));
78
+ }
79
+ this.treeIndex.set(revision, index);
72
80
  }
73
81
  catch (error) {
74
82
  Logger.debug(lazy `preBuildTreeIndex: scoped ls-tree for '${revision}' failed: ${() => getErrorMessage(error)}`);
75
83
  }
76
84
  }
77
85
  pathExistsImpl(path, revision) {
78
- const index = this.treeIndex.get(revision) ?? new Set();
79
- if (ROOT_PATHS.has(path)) {
86
+ const index = this.treeIndex.get(revision);
87
+ if (!index)
88
+ return false;
89
+ if (ROOT_PATHS.has(path))
80
90
  return index.size > 0;
81
- }
82
- if (index.has(path)) {
83
- return true;
84
- }
85
- const dirPrefix = `${path}${PATH_SEP}`;
86
- for (const filePath of index) {
87
- if (filePath.startsWith(dirPrefix)) {
88
- return true;
89
- }
90
- }
91
- return false;
91
+ return index.hasPath(path);
92
92
  }
93
93
  async pathExists(path, revision = this.config.to) {
94
94
  return this.pathExistsImpl(path, revision);
@@ -109,21 +109,14 @@ export default class GitAdapter {
109
109
  return content.toString(UTF8_ENCODING);
110
110
  }
111
111
  getFilesPathCached(path, revision) {
112
- const index = this.treeIndex.get(revision) ?? new Set();
113
- if (ROOT_PATHS.has(path)) {
114
- return Array.from(index);
115
- }
116
- if (index.has(path)) {
112
+ const index = this.treeIndex.get(revision);
113
+ if (!index)
114
+ return [];
115
+ if (ROOT_PATHS.has(path))
116
+ return index.allPaths();
117
+ if (index.has(path))
117
118
  return [path];
118
- }
119
- const dirPrefix = `${path}${PATH_SEP}`;
120
- const result = [];
121
- for (const filePath of index) {
122
- if (filePath.startsWith(dirPrefix)) {
123
- result.push(filePath);
124
- }
125
- }
126
- return result;
119
+ return index.getFilesUnder(path);
127
120
  }
128
121
  async getFilesPath(paths, revision = this.config.to) {
129
122
  if (typeof paths === 'string') {
@@ -131,23 +124,15 @@ export default class GitAdapter {
131
124
  }
132
125
  const result = [];
133
126
  for (const path of paths) {
134
- const filesPath = await this.getFilesPathCached(path, revision);
135
- pushAll(result, filesPath);
127
+ pushAll(result, this.getFilesPathCached(path, revision));
136
128
  }
137
129
  return result;
138
130
  }
139
131
  async listDirAtRevision(dir, revision) {
140
- const index = this.treeIndex.get(revision) ?? new Set();
141
- const dirPrefix = dir ? `${dir}${PATH_SEP}` : '';
142
- const children = new Set();
143
- for (const filePath of index) {
144
- if (filePath.startsWith(dirPrefix)) {
145
- const rest = filePath.slice(dirPrefix.length);
146
- const firstSegment = rest.split(PATH_SEP)[0];
147
- children.add(firstSegment);
148
- }
149
- }
150
- return Array.from(children);
132
+ const index = this.treeIndex.get(revision);
133
+ if (!index)
134
+ return [];
135
+ return index.listChildren(dir);
151
136
  }
152
137
  async gitGrep(pattern, path, revision = this.config.to) {
153
138
  try {
@@ -170,13 +155,38 @@ export default class GitAdapter {
170
155
  return [];
171
156
  }
172
157
  }
158
+ // Fast path (no whitespace ignore): one `git diff --name-status` call.
159
+ //
160
+ // Whitespace path: three parallel `git diff --numstat --diff-filter=X`
161
+ // calls. `--name-status` does NOT honor `--ignore-all-space` — git decides
162
+ // A/M/D from blob SHAs for that mode, so a whitespace-only change still
163
+ // appears as `M`. Only `--numstat` computes a real content diff under the
164
+ // whitespace flags, so files with 0/0 line changes drop out naturally.
165
+ // A and D can't produce whitespace-only false positives, so the expensive
166
+ // path is only needed to correctly filter M.
173
167
  async getDiffLines() {
168
+ if (!this.config.ignoreWhitespace) {
169
+ const output = await this.simpleGit.raw([
170
+ 'diff',
171
+ '--name-status',
172
+ '--no-renames',
173
+ '--diff-filter=AMD',
174
+ this.config.from,
175
+ this.config.to,
176
+ '--',
177
+ ...this.config.source,
178
+ ]);
179
+ return output
180
+ .split(EOL)
181
+ .filter(Boolean)
182
+ .map(line => treatPathSep(line));
183
+ }
174
184
  const results = await Promise.all([ADDITION, MODIFICATION, DELETION].map(async (changeType) => {
175
185
  const output = await this.simpleGit.raw([
176
186
  'diff',
177
187
  '--numstat',
178
188
  '--no-renames',
179
- ...(this.config.ignoreWhitespace ? IGNORE_WHITESPACE_PARAMS : []),
189
+ ...IGNORE_WHITESPACE_PARAMS,
180
190
  `--diff-filter=${changeType}`,
181
191
  this.config.from,
182
192
  this.config.to,
@@ -1 +1 @@
1
- {"version":3,"file":"GitAdapter.js","sourceRoot":"","sources":["../../src/adapter/GitAdapter.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAa,SAAS,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,wBAAwB,EACxB,YAAY,EACZ,2BAA2B,GAC5B,MAAM,6BAA6B,CAAA;AAGpC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,uBAAuB,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AACzE,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAA;AAC/B,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;AAE3C,MAAM,CAAC,OAAO,OAAO,UAAU;IAgBU;IAf/B,MAAM,CAAC,SAAS,GAA4B,IAAI,GAAG,EAAE,CAAA;IAEtD,MAAM,CAAC,WAAW,CAAC,MAAc;QACtC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;YACvC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC5C,CAAC;QAED,OAAO,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAE,CAAA;IAC1C,CAAC;IAEkB,SAAS,CAAW;IACpB,SAAS,CAA0B;IAC5C,YAAY,GAA2B,IAAI,CAAA;IAErD,YAAuC,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QACnD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QACnE,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAA;IACjD,CAAC;IAES,eAAe;QACvB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC3D,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAEM,iBAAiB;QACtB,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,CAAA;QAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;IAC1B,CAAC;IAEM,MAAM,CAAC,QAAQ;QACpB,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YACrD,QAAQ,CAAC,iBAAiB,EAAE,CAAA;QAC9B,CAAC;QACD,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;IAC9B,CAAC;IAGY,AAAN,KAAK,CAAC,mBAAmB;QAC9B,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;QACxD,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;IACzD,CAAC;IAGY,AAAN,KAAK,CAAC,QAAQ,CAAC,GAAW;QAC/B,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAA;IACzD,CAAC;IAGY,AAAN,KAAK,CAAC,iBAAiB,CAC5B,QAAgB,EAChB,UAAoB;QAEpB,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;YACvD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,CAAA;YAChC,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC7C,MAAM,KAAK,GAAG,IAAI,GAAG,CACnB,MAAM;iBACH,KAAK,CAAC,GAAG,CAAC;iBACV,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;iBACpB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CACnC,CAAA;YACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CACV,IAAI,CAAA,0CAA0C,QAAQ,aAAa,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAClG,CAAA;QACH,CAAC;IACH,CAAC;IAES,cAAc,CAAC,IAAY,EAAE,QAAgB;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,EAAU,CAAA;QAC/D,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,CAAA;QACvB,CAAC;QACD,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,SAAS,GAAG,GAAG,IAAI,GAAG,QAAQ,EAAE,CAAA;QACtC,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC7B,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAGY,AAAN,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,WAAmB,IAAI,CAAC,MAAM,CAAC,EAAE;QACrE,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC5C,CAAC;IAGY,AAAN,KAAK,CAAC,iBAAiB;QAC5B,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAA;IACxE,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,MAAkB;QAC9C,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,UAAU,CACnD,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,IAAI,CACZ,CAAA;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAA;YAChD,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;QAC3D,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAGY,AAAN,KAAK,CAAC,gBAAgB,CAAC,MAAkB;QAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACnD,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;IACxC,CAAC;IAES,kBAAkB,CAAC,IAAY,EAAE,QAAgB;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,EAAU,CAAA;QAC/D,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC;QACD,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAA;QACf,CAAC;QACD,MAAM,SAAS,GAAG,GAAG,IAAI,GAAG,QAAQ,EAAE,CAAA;QACtC,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC7B,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACvB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAGY,AAAN,KAAK,CAAC,YAAY,CACvB,KAAwB,EACxB,WAAmB,IAAI,CAAC,MAAM,CAAC,EAAE;QAEjC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QACjD,CAAC;QAED,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;YAC/D,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QAC5B,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAGY,AAAN,KAAK,CAAC,iBAAiB,CAC5B,GAAW,EACX,QAAgB;QAEhB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,EAAU,CAAA;QAC/D,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAChD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAA;QAClC,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC7B,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;gBAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC5C,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YAC5B,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC7B,CAAC;IAGY,AAAN,KAAK,CAAC,OAAO,CAClB,OAAe,EACf,IAAuB,EACvB,WAAmB,IAAI,CAAC,MAAM,CAAC,EAAE;QAEjC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;gBACtC,MAAM;gBACN,IAAI;gBACJ,OAAO;gBACP,QAAQ;gBACR,IAAI;gBACJ,GAAG,KAAK;aACT,CAAC,CAAA;YACF,OAAO,MAAM;iBACV,KAAK,CAAC,GAAG,CAAC;iBACV,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;iBACpB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACjE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CACV,IAAI,CAAA,sBAAsB,OAAO,SAAS,IAAI,SAAS,QAAQ,aAAa,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAC3G,CAAA;YACD,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;IAGY,AAAN,KAAK,CAAC,YAAY;QACvB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,EAAC,UAAU,EAAC,EAAE;YACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;gBACtC,MAAM;gBACN,WAAW;gBACX,cAAc;gBACd,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjE,iBAAiB,UAAU,EAAE;gBAC7B,IAAI,CAAC,MAAM,CAAC,IAAI;gBAChB,IAAI,CAAC,MAAM,CAAC,EAAE;gBACd,IAAI;gBACJ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;aACtB,CAAC,CAAA;YACF,OAAO,MAAM;iBACV,KAAK,CAAC,GAAG,CAAC;iBACV,MAAM,CAAC,OAAO,CAAC;iBACf,GAAG,CAAC,IAAI,CAAC,EAAE,CACV,YAAY,CACV,IAAI,CAAC,OAAO,CAAC,2BAA2B,EAAE,GAAG,UAAU,IAAI,CAAC,CAC7D,CACF,CAAA;QACL,CAAC,CAAC,CACH,CAAA;QACD,OAAO,OAAO,CAAC,IAAI,EAAE,CAAA;IACvB,CAAC;;AAjMY;IADZ,GAAG;qDAIH;AAGY;IADZ,GAAG;0CAGH;AAGY;IADZ,GAAG;mDA2BH;AAoBY;IADZ,GAAG;4CAGH;AAGY;IADZ,GAAG;mDAGH;AAgBY;IADZ,GAAG;kDAIH;AAqBY;IADZ,GAAG;8CAgBH;AAGY;IADZ,GAAG;mDAgBH;AAGY;IADZ,GAAG;yCA0BH;AAGY;IADZ,GAAG;8CA0BH"}
1
+ {"version":3,"file":"GitAdapter.js","sourceRoot":"","sources":["../../src/adapter/GitAdapter.ts"],"names":[],"mappings":"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"}
@@ -6,11 +6,14 @@ type PendingRequest = {
6
6
  export declare class GitBatchCatFile {
7
7
  protected process: ChildProcessWithoutNullStreams;
8
8
  protected queue: PendingRequest[];
9
- protected buffer: Buffer;
9
+ protected chunks: Buffer[];
10
+ protected totalLength: number;
10
11
  protected pendingSize: number;
11
12
  constructor(cwd: string);
12
13
  getContent(revision: string, path: string): Promise<Buffer>;
13
14
  protected _onData(chunk: Buffer): void;
15
+ protected _materializeBuffer(): Buffer;
16
+ protected _advance(buffer: Buffer, consumed: number): Buffer;
14
17
  protected _processBuffer(): void;
15
18
  close(): void;
16
19
  }
@@ -5,7 +5,8 @@ import { Logger, lazy } from '../utils/LoggingService.js';
5
5
  export class GitBatchCatFile {
6
6
  process;
7
7
  queue = [];
8
- buffer = Buffer.alloc(0);
8
+ chunks = [];
9
+ totalLength = 0;
9
10
  pendingSize = -1;
10
11
  constructor(cwd) {
11
12
  this.process = spawn('git', ['cat-file', '--batch'], {
@@ -36,17 +37,38 @@ export class GitBatchCatFile {
36
37
  });
37
38
  }
38
39
  _onData(chunk) {
39
- this.buffer = Buffer.concat([this.buffer, chunk]);
40
+ this.chunks.push(chunk);
41
+ this.totalLength += chunk.length;
40
42
  this._processBuffer();
41
43
  }
44
+ _materializeBuffer() {
45
+ if (this.chunks.length === 1)
46
+ return this.chunks[0];
47
+ const merged = Buffer.concat(this.chunks, this.totalLength);
48
+ this.chunks = [merged];
49
+ return merged;
50
+ }
51
+ _advance(buffer, consumed) {
52
+ const rest = buffer.subarray(consumed);
53
+ if (rest.length === 0) {
54
+ this.chunks = [];
55
+ this.totalLength = 0;
56
+ }
57
+ else {
58
+ this.chunks = [rest];
59
+ this.totalLength = rest.length;
60
+ }
61
+ return rest;
62
+ }
42
63
  _processBuffer() {
64
+ let buffer = this._materializeBuffer();
43
65
  while (this.queue.length > 0) {
44
66
  if (this.pendingSize === -1) {
45
- const newlineIdx = this.buffer.indexOf(0x0a);
67
+ const newlineIdx = buffer.indexOf(0x0a);
46
68
  if (newlineIdx === -1)
47
69
  return;
48
- const header = this.buffer.subarray(0, newlineIdx).toString();
49
- this.buffer = this.buffer.subarray(newlineIdx + 1);
70
+ const header = buffer.subarray(0, newlineIdx).toString();
71
+ buffer = this._advance(buffer, newlineIdx + 1);
50
72
  if (header.endsWith('missing')) {
51
73
  this.queue.shift().reject(new Error(`Object not found: ${header}`));
52
74
  continue;
@@ -59,10 +81,10 @@ export class GitBatchCatFile {
59
81
  continue;
60
82
  }
61
83
  }
62
- if (this.buffer.length < this.pendingSize + 1)
84
+ if (buffer.length < this.pendingSize + 1)
63
85
  return;
64
- const content = Buffer.from(this.buffer.subarray(0, this.pendingSize));
65
- this.buffer = this.buffer.subarray(this.pendingSize + 1);
86
+ const content = Buffer.from(buffer.subarray(0, this.pendingSize));
87
+ buffer = this._advance(buffer, this.pendingSize + 1);
66
88
  this.pendingSize = -1;
67
89
  this.queue.shift().resolve(content);
68
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gitBatchCatFile.js","sourceRoot":"","sources":["../../src/adapter/gitBatchCatFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gitBatchCatFile.js","sourceRoot":"","sources":["../../src/adapter/gitBatchCatFile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ type TrieNode = {
2
+ children: Map<string, TrieNode>;
3
+ isFile: boolean;
4
+ };
5
+ export declare class TreeIndex {
6
+ protected readonly root: TrieNode;
7
+ protected fileCount: number;
8
+ add(path: string): void;
9
+ has(path: string): boolean;
10
+ hasPath(path: string): boolean;
11
+ listChildren(dir: string): string[];
12
+ getFilesUnder(dir: string): string[];
13
+ allPaths(): string[];
14
+ get size(): number;
15
+ protected navigate(path: string): TrieNode | undefined;
16
+ protected collectFiles(node: TrieNode, prefix: string, out: string[]): void;
17
+ }
18
+ export {};
@@ -0,0 +1,75 @@
1
+ 'use strict';
2
+ import { PATH_SEP } from '../constant/fsConstants.js';
3
+ const createNode = () => ({
4
+ children: new Map(),
5
+ isFile: false,
6
+ });
7
+ export class TreeIndex {
8
+ root = createNode();
9
+ fileCount = 0;
10
+ add(path) {
11
+ const parts = path.split(PATH_SEP);
12
+ let node = this.root;
13
+ for (const part of parts) {
14
+ let child = node.children.get(part);
15
+ if (!child) {
16
+ child = createNode();
17
+ node.children.set(part, child);
18
+ }
19
+ node = child;
20
+ }
21
+ if (!node.isFile) {
22
+ node.isFile = true;
23
+ this.fileCount++;
24
+ }
25
+ }
26
+ has(path) {
27
+ return this.navigate(path)?.isFile === true;
28
+ }
29
+ hasPath(path) {
30
+ return this.navigate(path) !== undefined;
31
+ }
32
+ listChildren(dir) {
33
+ const node = this.navigate(dir);
34
+ return node ? Array.from(node.children.keys()) : [];
35
+ }
36
+ getFilesUnder(dir) {
37
+ const node = this.navigate(dir);
38
+ if (!node)
39
+ return [];
40
+ const result = [];
41
+ this.collectFiles(node, dir, result);
42
+ return result;
43
+ }
44
+ allPaths() {
45
+ const result = [];
46
+ this.collectFiles(this.root, '', result);
47
+ return result;
48
+ }
49
+ get size() {
50
+ return this.fileCount;
51
+ }
52
+ navigate(path) {
53
+ if (!path)
54
+ return this.root;
55
+ const parts = path.split(PATH_SEP);
56
+ let node = this.root;
57
+ for (const part of parts) {
58
+ node = node.children.get(part);
59
+ if (!node)
60
+ return undefined;
61
+ }
62
+ return node;
63
+ }
64
+ // Recursion depth is bounded by path segment count, not file count.
65
+ // Worst case under OS PATH_MAX (~4096 bytes) is well under V8's stack limit.
66
+ collectFiles(node, prefix, out) {
67
+ if (node.isFile)
68
+ out.push(prefix);
69
+ for (const [segment, child] of node.children) {
70
+ const childPath = prefix ? `${prefix}${PATH_SEP}${segment}` : segment;
71
+ this.collectFiles(child, childPath, out);
72
+ }
73
+ }
74
+ }
75
+ //# sourceMappingURL=treeIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"treeIndex.js","sourceRoot":"","sources":["../../src/adapter/treeIndex.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAOrD,MAAM,UAAU,GAAG,GAAa,EAAE,CAAC,CAAC;IAClC,QAAQ,EAAE,IAAI,GAAG,EAAE;IACnB,MAAM,EAAE,KAAK;CACd,CAAC,CAAA;AAEF,MAAM,OAAO,SAAS;IACD,IAAI,GAAa,UAAU,EAAE,CAAA;IACtC,SAAS,GAAW,CAAC,CAAA;IAExB,GAAG,CAAC,IAAY;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAClC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACnC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG,UAAU,EAAE,CAAA;gBACpB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YAChC,CAAC;YACD,IAAI,GAAG,KAAK,CAAA;QACd,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;YAClB,IAAI,CAAC,SAAS,EAAE,CAAA;QAClB,CAAC;IACH,CAAC;IAEM,GAAG,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,CAAC;IAEM,OAAO,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,SAAS,CAAA;IAC1C,CAAC;IAEM,YAAY,CAAC,GAAW;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC/B,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACrD,CAAC;IAEM,aAAa,CAAC,GAAW;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAA;QACpB,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;QACpC,OAAO,MAAM,CAAA;IACf,CAAC;IAEM,QAAQ;QACb,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;QACxC,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAES,QAAQ,CAAC,IAAY;QAC7B,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,IAAI,CAAA;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAClC,IAAI,IAAI,GAAyB,IAAI,CAAC,IAAI,CAAA;QAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC9B,IAAI,CAAC,IAAI;gBAAE,OAAO,SAAS,CAAA;QAC7B,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,oEAAoE;IACpE,6EAA6E;IACnE,YAAY,CAAC,IAAc,EAAE,MAAc,EAAE,GAAa;QAClE,IAAI,IAAI,CAAC,MAAM;YAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACjC,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;YACrE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;CACF"}
@@ -2,6 +2,7 @@ import type { Metadata } from '../types/metadata.js';
2
2
  export interface MetadataRepository {
3
3
  has(path: string): boolean;
4
4
  get(path: string): Metadata | undefined;
5
+ getByXmlName(xmlName: string): Metadata | undefined;
5
6
  getFullyQualifiedName(path: string): string;
6
7
  values(): Metadata[];
7
8
  }
@@ -15,6 +15,7 @@ export declare class MetadataRepositoryImpl implements MetadataRepository {
15
15
  protected searchByExtension(parts: string[]): Metadata | undefined;
16
16
  protected searchByDirectory(parts: string[]): Metadata | undefined;
17
17
  protected searchByXmlName(xmlName: string): Metadata | undefined;
18
+ getByXmlName(xmlName: string): Metadata | undefined;
18
19
  getFullyQualifiedName(path: string): string;
19
20
  values(): Metadata[];
20
21
  private static UNSAFE_EXTENSION;
@@ -4,6 +4,7 @@ import { parse } from 'node:path/posix';
4
4
  import { DOT, PATH_SEP } from '../constant/fsConstants.js';
5
5
  import { CUSTOM_APPLICATION_SUFFIX, CUSTOM_METADATA_SUFFIX, EMAIL_SERVICES_FUNCTION_SUFFIX, METAFILE_SUFFIX, OBJECT_TRANSLATION_TYPE, OBJECT_TYPE, PERMISSIONSET_TYPE, SHARING_RULE_TYPE, SUB_OBJECT_TYPES, WORKFLOW_TYPE, } from '../constant/metadataConstants.js';
6
6
  import { log } from '../utils/LoggingDecorator.js';
7
+ const PATH_SEP_GLOBAL = new RegExp(PATH_SEP, 'g');
7
8
  export class MetadataRepositoryImpl {
8
9
  metadatas;
9
10
  metadataPerExt;
@@ -32,17 +33,14 @@ export class MetadataRepositoryImpl {
32
33
  this.addSharedFolderSuffix(metadata);
33
34
  }
34
35
  addSharedFolderSuffix(metadata) {
35
- if (metadata.content) {
36
- const metadataWithoutContent = {
37
- ...metadata,
38
- content: undefined,
39
- };
40
- for (const sharedFolderMetadataDef of metadata.content) {
41
- this.addSuffix({
42
- ...metadataWithoutContent,
43
- suffix: sharedFolderMetadataDef.suffix,
44
- });
45
- }
36
+ if (!metadata.content)
37
+ return;
38
+ const { content: _content, ...metadataWithoutContent } = metadata;
39
+ for (const sharedFolderMetadataDef of metadata.content) {
40
+ this.addSuffix({
41
+ ...metadataWithoutContent,
42
+ suffix: sharedFolderMetadataDef.suffix,
43
+ });
46
44
  }
47
45
  }
48
46
  addFolder(metadata) {
@@ -86,6 +84,9 @@ export class MetadataRepositoryImpl {
86
84
  searchByXmlName(xmlName) {
87
85
  return this.metadataPerXmlName.get(xmlName);
88
86
  }
87
+ getByXmlName(xmlName) {
88
+ return this.metadataPerXmlName.get(xmlName);
89
+ }
89
90
  getFullyQualifiedName(path) {
90
91
  let fullyQualifiedName = parse(path).base;
91
92
  const type = this.get(path);
@@ -95,7 +96,7 @@ export class MetadataRepositoryImpl {
95
96
  .find(part => this.metadataPerDir.has(part));
96
97
  fullyQualifiedName = path
97
98
  .slice(path.indexOf(parentType))
98
- .replace(new RegExp(PATH_SEP, 'g'), '');
99
+ .replace(PATH_SEP_GLOBAL, '');
99
100
  }
100
101
  return fullyQualifiedName;
101
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataRepositoryImpl.js","sourceRoot":"","sources":["../../src/metadata/MetadataRepositoryImpl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MetadataRepositoryImpl.js","sourceRoot":"","sources":["../../src/metadata/MetadataRepositoryImpl.ts"],"names":[],"mappings":"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"}
@@ -9,13 +9,15 @@ import { MetadataDefinitionMerger } from './metadataDefinitionMerger.js';
9
9
  import { SDRMetadataAdapter } from './sdrMetadataAdapter.js';
10
10
  let inFileMetadata = new Map();
11
11
  let sharedFolderMetadata = new Map();
12
+ let packableByXmlName = new Map();
12
13
  // For testing - clears the cached metadata maps
13
14
  export const resetMetadataCache = () => {
14
15
  inFileMetadata = new Map();
15
16
  sharedFolderMetadata = new Map();
17
+ packableByXmlName = new Map();
16
18
  };
17
19
  export const getLatestSupportedVersion = async () => {
18
- return parseInt(await SDRMetadataAdapter.getLatestApiVersion());
20
+ return parseInt(await SDRMetadataAdapter.getLatestApiVersion(), 10);
19
21
  };
20
22
  export const getDefinition = async (config) => {
21
23
  const { additionalMetadataRegistryPath } = config;
@@ -61,27 +63,33 @@ export const getDefinition = async (config) => {
61
63
  const metadataRepository = new MetadataRepositoryImpl(finalMetadata);
62
64
  return metadataRepository;
63
65
  };
64
- export const isPackable = (type) => Array.from(inFileMetadata.values()).find((inFileDef) => inFileDef.xmlName === type)?.excluded !== true;
66
+ export const isPackable = (type) => packableByXmlName.get(type) !== false;
65
67
  const granularExcludedTypes = new Set([
66
68
  'Translations',
67
69
  'StandardValueSetTranslation',
68
70
  'GlobalValueSetTranslation',
69
71
  ]);
70
- export const getInFileAttributes = (metadata) => inFileMetadata.size
71
- ? inFileMetadata
72
- : metadata
73
- .values()
74
- .filter((meta) => meta.xmlTag)
75
- .reduce((acc, meta) => {
72
+ export const getInFileAttributes = (metadata) => {
73
+ if (inFileMetadata.size)
74
+ return inFileMetadata;
75
+ for (const meta of metadata.values()) {
76
+ if (!meta.xmlTag)
77
+ continue;
76
78
  const isExcluded = granularExcludedTypes.has(meta.parentXmlName || '') ||
77
- granularExcludedTypes.has(meta.xmlName || '');
78
- acc.set(meta.xmlTag, {
79
+ granularExcludedTypes.has(meta.xmlName || '') ||
80
+ !!meta.excluded;
81
+ const entry = {
79
82
  xmlName: meta.xmlName,
80
83
  key: meta.key,
81
- excluded: isExcluded || !!meta.excluded,
82
- });
83
- return acc;
84
- }, inFileMetadata);
84
+ excluded: isExcluded,
85
+ };
86
+ inFileMetadata.set(meta.xmlTag, entry);
87
+ if (meta.xmlName) {
88
+ packableByXmlName.set(meta.xmlName, !isExcluded);
89
+ }
90
+ }
91
+ return inFileMetadata;
92
+ };
85
93
  export const getSharedFolderMetadata = (metadata) => sharedFolderMetadata.size
86
94
  ? sharedFolderMetadata
87
95
  : metadata