@hanseltime/template-repo-sync 2.3.0 → 2.4.0-alpha.0

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 (295) hide show
  1. package/CHANGELOG.md +37 -46
  2. package/dist/cjs/checkout-drivers/git-checkout.js +37 -0
  3. package/dist/cjs/checkout-drivers/git-checkout.spec.js +60 -0
  4. package/dist/cjs/checkout-drivers/index.js +21 -0
  5. package/dist/cjs/checkout-drivers/types.js +11 -0
  6. package/dist/cjs/clone-drivers/git-clone.js +25 -0
  7. package/dist/cjs/clone-drivers/index.js +21 -0
  8. package/dist/cjs/clone-drivers/types.js +8 -0
  9. package/dist/cjs/diff-drivers/git-diff.js +30 -0
  10. package/dist/cjs/diff-drivers/git-diff.spec.js +138 -0
  11. package/dist/cjs/diff-drivers/index.js +21 -0
  12. package/dist/cjs/diff-drivers/types.js +6 -0
  13. package/dist/cjs/formatting/index.js +21 -0
  14. package/dist/cjs/formatting/infer-json-indent.js +26 -0
  15. package/dist/cjs/formatting/infer-json-indent.spec.js +50 -0
  16. package/dist/cjs/formatting/sync-results-to-md.js +62 -0
  17. package/dist/cjs/formatting/sync-results-to-md.spec.js +45 -0
  18. package/dist/cjs/index.js +22 -0
  19. package/dist/cjs/load-plugin.js +44 -0
  20. package/dist/cjs/match.js +51 -0
  21. package/dist/cjs/match.spec.js +75 -0
  22. package/dist/cjs/merge-file.js +91 -0
  23. package/dist/cjs/merge-file.spec.js +508 -0
  24. package/dist/cjs/plugins/index.js +20 -0
  25. package/dist/cjs/plugins/json-merge.js +228 -0
  26. package/dist/cjs/plugins/json-merge.spec.js +514 -0
  27. package/dist/cjs/ref-drivers/git-current-ref.js +18 -0
  28. package/dist/cjs/ref-drivers/git-current-ref.spec.js +15 -0
  29. package/dist/cjs/ref-drivers/index.js +20 -0
  30. package/dist/cjs/ref-drivers/types.js +11 -0
  31. package/dist/cjs/template-sync.js +236 -0
  32. package/dist/cjs/template-sync.spec.js +521 -0
  33. package/dist/cjs/test-utils/index.js +26 -0
  34. package/dist/cjs/types.js +12 -0
  35. package/dist/esm/checkout-drivers/git-checkout.mjs +27 -0
  36. package/dist/esm/checkout-drivers/git-checkout.spec.mjs +56 -0
  37. package/dist/esm/checkout-drivers/index.mjs +4 -0
  38. package/dist/esm/checkout-drivers/types.mjs +8 -0
  39. package/dist/esm/clone-drivers/git-clone.mjs +15 -0
  40. package/dist/esm/clone-drivers/index.mjs +4 -0
  41. package/dist/esm/clone-drivers/types.mjs +8 -0
  42. package/dist/esm/diff-drivers/git-diff.mjs +26 -0
  43. package/dist/esm/diff-drivers/git-diff.spec.mjs +93 -0
  44. package/dist/esm/diff-drivers/index.mjs +4 -0
  45. package/dist/esm/diff-drivers/types.mjs +6 -0
  46. package/dist/esm/formatting/index.mjs +4 -0
  47. package/dist/esm/formatting/infer-json-indent.mjs +16 -0
  48. package/dist/esm/formatting/infer-json-indent.spec.mjs +46 -0
  49. package/dist/esm/formatting/sync-results-to-md.mjs +52 -0
  50. package/dist/esm/formatting/sync-results-to-md.spec.mjs +41 -0
  51. package/dist/esm/index.mjs +5 -0
  52. package/dist/esm/load-plugin.mjs +40 -0
  53. package/dist/esm/match.mjs +40 -0
  54. package/dist/esm/match.spec.mjs +71 -0
  55. package/dist/esm/merge-file.mjs +88 -0
  56. package/dist/esm/merge-file.spec.mjs +504 -0
  57. package/dist/esm/plugins/index.mjs +10 -0
  58. package/dist/esm/plugins/json-merge.mjs +164 -0
  59. package/dist/esm/plugins/json-merge.spec.mjs +469 -0
  60. package/dist/esm/ref-drivers/git-current-ref.mjs +8 -0
  61. package/dist/esm/ref-drivers/git-current-ref.spec.mjs +11 -0
  62. package/dist/esm/ref-drivers/index.mjs +3 -0
  63. package/dist/esm/ref-drivers/types.mjs +8 -0
  64. package/dist/esm/template-sync.mjs +174 -0
  65. package/dist/esm/template-sync.spec.mjs +517 -0
  66. package/dist/esm/test-utils/index.mjs +10 -0
  67. package/dist/esm/types.mjs +9 -0
  68. package/{lib/cjs → dist/types}/checkout-drivers/git-checkout.d.ts +1 -0
  69. package/dist/types/checkout-drivers/git-checkout.d.ts.map +1 -0
  70. package/dist/types/checkout-drivers/git-checkout.spec.d.ts +2 -0
  71. package/dist/types/checkout-drivers/git-checkout.spec.d.ts.map +1 -0
  72. package/{lib/cjs → dist/types}/checkout-drivers/index.d.ts +1 -0
  73. package/dist/types/checkout-drivers/index.d.ts.map +1 -0
  74. package/{lib/cjs → dist/types}/checkout-drivers/types.d.ts +1 -0
  75. package/dist/types/checkout-drivers/types.d.ts.map +1 -0
  76. package/{lib/cjs → dist/types}/clone-drivers/git-clone.d.ts +2 -1
  77. package/dist/types/clone-drivers/git-clone.d.ts.map +1 -0
  78. package/{lib/cjs → dist/types}/clone-drivers/index.d.ts +2 -1
  79. package/dist/types/clone-drivers/index.d.ts.map +1 -0
  80. package/{lib/cjs → dist/types}/clone-drivers/types.d.ts +1 -0
  81. package/dist/types/clone-drivers/types.d.ts.map +1 -0
  82. package/{lib/cjs → dist/types}/diff-drivers/git-diff.d.ts +1 -0
  83. package/dist/types/diff-drivers/git-diff.d.ts.map +1 -0
  84. package/dist/types/diff-drivers/git-diff.spec.d.ts +2 -0
  85. package/dist/types/diff-drivers/git-diff.spec.d.ts.map +1 -0
  86. package/{lib/cjs → dist/types}/diff-drivers/index.d.ts +2 -1
  87. package/dist/types/diff-drivers/index.d.ts.map +1 -0
  88. package/{lib/cjs → dist/types}/diff-drivers/types.d.ts +1 -0
  89. package/dist/types/diff-drivers/types.d.ts.map +1 -0
  90. package/{lib/cjs → dist/types}/formatting/index.d.ts +2 -1
  91. package/dist/types/formatting/index.d.ts.map +1 -0
  92. package/{lib/cjs → dist/types}/formatting/infer-json-indent.d.ts +1 -0
  93. package/dist/types/formatting/infer-json-indent.d.ts.map +1 -0
  94. package/dist/types/formatting/infer-json-indent.spec.d.ts +2 -0
  95. package/dist/types/formatting/infer-json-indent.spec.d.ts.map +1 -0
  96. package/dist/types/formatting/sync-results-to-md.d.ts +3 -0
  97. package/dist/types/formatting/sync-results-to-md.d.ts.map +1 -0
  98. package/dist/types/formatting/sync-results-to-md.spec.d.ts +2 -0
  99. package/dist/types/formatting/sync-results-to-md.spec.d.ts.map +1 -0
  100. package/{lib/cjs → dist/types}/index.d.ts +3 -2
  101. package/dist/types/index.d.ts.map +1 -0
  102. package/{lib/cjs → dist/types}/load-plugin.d.ts +2 -1
  103. package/dist/types/load-plugin.d.ts.map +1 -0
  104. package/{lib/cjs → dist/types}/match.d.ts +1 -0
  105. package/dist/types/match.d.ts.map +1 -0
  106. package/dist/types/match.spec.d.ts +2 -0
  107. package/dist/types/match.spec.d.ts.map +1 -0
  108. package/{lib/cjs → dist/types}/merge-file.d.ts +3 -2
  109. package/dist/types/merge-file.d.ts.map +1 -0
  110. package/dist/types/merge-file.spec.d.ts +2 -0
  111. package/dist/types/merge-file.spec.d.ts.map +1 -0
  112. package/{lib/cjs → dist/types}/plugins/index.d.ts +2 -1
  113. package/dist/types/plugins/index.d.ts.map +1 -0
  114. package/{lib/cjs → dist/types}/plugins/json-merge.d.ts +2 -1
  115. package/dist/types/plugins/json-merge.d.ts.map +1 -0
  116. package/dist/types/plugins/json-merge.spec.d.ts +2 -0
  117. package/dist/types/plugins/json-merge.spec.d.ts.map +1 -0
  118. package/{lib/cjs → dist/types}/ref-drivers/git-current-ref.d.ts +1 -0
  119. package/dist/types/ref-drivers/git-current-ref.d.ts.map +1 -0
  120. package/dist/types/ref-drivers/git-current-ref.spec.d.ts +2 -0
  121. package/dist/types/ref-drivers/git-current-ref.spec.d.ts.map +1 -0
  122. package/{lib/cjs → dist/types}/ref-drivers/index.d.ts +1 -0
  123. package/dist/types/ref-drivers/index.d.ts.map +1 -0
  124. package/{lib/cjs → dist/types}/ref-drivers/types.d.ts +1 -0
  125. package/dist/types/ref-drivers/types.d.ts.map +1 -0
  126. package/{lib/cjs → dist/types}/template-sync.d.ts +6 -5
  127. package/dist/types/template-sync.d.ts.map +1 -0
  128. package/dist/types/template-sync.spec.d.ts +2 -0
  129. package/dist/types/template-sync.spec.d.ts.map +1 -0
  130. package/{lib/cjs → dist/types}/test-utils/index.d.ts +1 -0
  131. package/dist/types/test-utils/index.d.ts.map +1 -0
  132. package/{lib/cjs → dist/types}/types.d.ts +1 -0
  133. package/dist/types/types.d.ts.map +1 -0
  134. package/package.json +26 -23
  135. package/.eslintrc.js +0 -10
  136. package/.github/CODEOWNERS +0 -6
  137. package/.github/workflows/pr-checks.yaml +0 -12
  138. package/.github/workflows/release.yaml +0 -47
  139. package/.github/workflows/test-flow.yaml +0 -63
  140. package/.husky/commit-msg +0 -4
  141. package/.prettierignore +0 -1
  142. package/.prettierrc +0 -1
  143. package/action.yml +0 -13
  144. package/commitlint.config.js +0 -3
  145. package/docs/merge-plugins/CURRENT_PLUGINS.md +0 -168
  146. package/docs/merge-plugins/PLUGIN_DEVELOPMENT.md +0 -122
  147. package/docs/merge-plugins/README.md +0 -75
  148. package/jest.config.js +0 -19
  149. package/lib/cjs/checkout-drivers/git-checkout.js +0 -29
  150. package/lib/cjs/checkout-drivers/index.js +0 -18
  151. package/lib/cjs/checkout-drivers/types.js +0 -2
  152. package/lib/cjs/clone-drivers/git-clone.js +0 -17
  153. package/lib/cjs/clone-drivers/index.js +0 -18
  154. package/lib/cjs/clone-drivers/types.js +0 -2
  155. package/lib/cjs/diff-drivers/git-diff.js +0 -41
  156. package/lib/cjs/diff-drivers/index.js +0 -18
  157. package/lib/cjs/diff-drivers/types.js +0 -2
  158. package/lib/cjs/formatting/index.js +0 -18
  159. package/lib/cjs/formatting/infer-json-indent.js +0 -18
  160. package/lib/cjs/formatting/sync-results-to-md.d.ts +0 -2
  161. package/lib/cjs/formatting/sync-results-to-md.js +0 -57
  162. package/lib/cjs/index.js +0 -19
  163. package/lib/cjs/load-plugin.js +0 -69
  164. package/lib/cjs/match.js +0 -45
  165. package/lib/cjs/merge-file.js +0 -98
  166. package/lib/cjs/plugins/index.js +0 -11
  167. package/lib/cjs/plugins/json-merge.js +0 -208
  168. package/lib/cjs/ref-drivers/git-current-ref.js +0 -12
  169. package/lib/cjs/ref-drivers/index.js +0 -17
  170. package/lib/cjs/ref-drivers/types.js +0 -2
  171. package/lib/cjs/template-sync.js +0 -204
  172. package/lib/cjs/test-utils/index.js +0 -10
  173. package/lib/cjs/types.js +0 -2
  174. package/lib/esm/checkout-drivers/git-checkout.js +0 -29
  175. package/lib/esm/checkout-drivers/index.js +0 -18
  176. package/lib/esm/checkout-drivers/types.js +0 -2
  177. package/lib/esm/clone-drivers/git-clone.js +0 -17
  178. package/lib/esm/clone-drivers/index.js +0 -18
  179. package/lib/esm/clone-drivers/types.js +0 -2
  180. package/lib/esm/diff-drivers/git-diff.js +0 -41
  181. package/lib/esm/diff-drivers/index.js +0 -18
  182. package/lib/esm/diff-drivers/types.js +0 -2
  183. package/lib/esm/formatting/index.js +0 -18
  184. package/lib/esm/formatting/infer-json-indent.js +0 -18
  185. package/lib/esm/formatting/sync-results-to-md.js +0 -57
  186. package/lib/esm/index.js +0 -19
  187. package/lib/esm/load-plugin.js +0 -46
  188. package/lib/esm/match.js +0 -45
  189. package/lib/esm/merge-file.js +0 -98
  190. package/lib/esm/plugins/index.js +0 -11
  191. package/lib/esm/plugins/json-merge.js +0 -208
  192. package/lib/esm/ref-drivers/git-current-ref.js +0 -12
  193. package/lib/esm/ref-drivers/index.js +0 -17
  194. package/lib/esm/ref-drivers/types.js +0 -2
  195. package/lib/esm/template-sync.js +0 -204
  196. package/lib/esm/test-utils/index.js +0 -10
  197. package/lib/esm/types.js +0 -2
  198. package/release.config.js +0 -40
  199. package/src/checkout-drivers/git-checkout.spec.ts +0 -69
  200. package/src/checkout-drivers/git-checkout.ts +0 -38
  201. package/src/checkout-drivers/index.ts +0 -2
  202. package/src/checkout-drivers/types.ts +0 -14
  203. package/src/clone-drivers/git-clone.ts +0 -20
  204. package/src/clone-drivers/index.ts +0 -2
  205. package/src/clone-drivers/types.ts +0 -20
  206. package/src/diff-drivers/git-diff.spec.ts +0 -73
  207. package/src/diff-drivers/git-diff.ts +0 -39
  208. package/src/diff-drivers/index.ts +0 -2
  209. package/src/diff-drivers/types.ts +0 -14
  210. package/src/formatting/__snapshots__/sync-results-to-md.spec.ts.snap +0 -39
  211. package/src/formatting/index.ts +0 -2
  212. package/src/formatting/infer-json-indent.spec.ts +0 -49
  213. package/src/formatting/infer-json-indent.ts +0 -16
  214. package/src/formatting/sync-results-to-md.spec.ts +0 -31
  215. package/src/formatting/sync-results-to-md.ts +0 -63
  216. package/src/index.ts +0 -3
  217. package/src/load-plugin.ts +0 -51
  218. package/src/match.spec.ts +0 -68
  219. package/src/match.ts +0 -52
  220. package/src/merge-file.spec.ts +0 -506
  221. package/src/merge-file.ts +0 -154
  222. package/src/plugins/index.ts +0 -12
  223. package/src/plugins/json-merge.spec.ts +0 -436
  224. package/src/plugins/json-merge.ts +0 -215
  225. package/src/ref-drivers/git-current-ref.spec.ts +0 -12
  226. package/src/ref-drivers/git-current-ref.ts +0 -9
  227. package/src/ref-drivers/index.ts +0 -1
  228. package/src/ref-drivers/types.ts +0 -10
  229. package/src/template-sync.spec.ts +0 -602
  230. package/src/template-sync.ts +0 -304
  231. package/src/test-utils/index.ts +0 -13
  232. package/src/types.ts +0 -129
  233. package/templatesync.local.json +0 -15
  234. package/test-fixtures/downstream/README.md +0 -3
  235. package/test-fixtures/downstream/package.json +0 -18
  236. package/test-fixtures/downstream/plugins/custom-plugin.js +0 -14
  237. package/test-fixtures/downstream/plugins/fail-validate-plugin.js +0 -14
  238. package/test-fixtures/downstream/src/index.js +0 -2
  239. package/test-fixtures/downstream/src/index.ts +0 -1
  240. package/test-fixtures/downstream/src/templated.js +0 -2
  241. package/test-fixtures/downstream/src/templated.ts +0 -1
  242. package/test-fixtures/downstream/templatesync.json +0 -16
  243. package/test-fixtures/downstream/templatesync.local.json +0 -10
  244. package/test-fixtures/dummy-plugin.js +0 -8
  245. package/test-fixtures/glob-test/folder1/something.js +0 -1
  246. package/test-fixtures/glob-test/folder1/something.ts +0 -0
  247. package/test-fixtures/glob-test/toplevel.js +0 -0
  248. package/test-fixtures/glob-test/toplevel.txt +0 -0
  249. package/test-fixtures/template/custom-bin/something.txt +0 -1
  250. package/test-fixtures/template/dummy-fail-plugin.js +0 -8
  251. package/test-fixtures/template/package.json +0 -17
  252. package/test-fixtures/template/src/index.js +0 -2
  253. package/test-fixtures/template/src/index.ts +0 -1
  254. package/test-fixtures/template/src/templated.js +0 -2
  255. package/test-fixtures/template/src/templated.ts +0 -1
  256. package/test-fixtures/template/templatesync.json +0 -16
  257. package/test-fixtures/testGitRepo/README.md +0 -17
  258. package/test-fixtures/testGitRepo/gitDir/COMMIT_EDITMSG +0 -14
  259. package/test-fixtures/testGitRepo/gitDir/HEAD +0 -1
  260. package/test-fixtures/testGitRepo/gitDir/config +0 -7
  261. package/test-fixtures/testGitRepo/gitDir/description +0 -1
  262. package/test-fixtures/testGitRepo/gitDir/hooks/applypatch-msg.sample +0 -15
  263. package/test-fixtures/testGitRepo/gitDir/hooks/commit-msg.sample +0 -24
  264. package/test-fixtures/testGitRepo/gitDir/hooks/fsmonitor-watchman.sample +0 -174
  265. package/test-fixtures/testGitRepo/gitDir/hooks/post-update.sample +0 -8
  266. package/test-fixtures/testGitRepo/gitDir/hooks/pre-applypatch.sample +0 -14
  267. package/test-fixtures/testGitRepo/gitDir/hooks/pre-commit.sample +0 -49
  268. package/test-fixtures/testGitRepo/gitDir/hooks/pre-merge-commit.sample +0 -13
  269. package/test-fixtures/testGitRepo/gitDir/hooks/pre-push.sample +0 -53
  270. package/test-fixtures/testGitRepo/gitDir/hooks/pre-rebase.sample +0 -169
  271. package/test-fixtures/testGitRepo/gitDir/hooks/pre-receive.sample +0 -24
  272. package/test-fixtures/testGitRepo/gitDir/hooks/prepare-commit-msg.sample +0 -42
  273. package/test-fixtures/testGitRepo/gitDir/hooks/push-to-checkout.sample +0 -78
  274. package/test-fixtures/testGitRepo/gitDir/hooks/sendemail-validate.sample +0 -77
  275. package/test-fixtures/testGitRepo/gitDir/hooks/update.sample +0 -128
  276. package/test-fixtures/testGitRepo/gitDir/index +0 -0
  277. package/test-fixtures/testGitRepo/gitDir/info/exclude +0 -6
  278. package/test-fixtures/testGitRepo/gitDir/logs/HEAD +0 -5
  279. package/test-fixtures/testGitRepo/gitDir/logs/refs/heads/master +0 -2
  280. package/test-fixtures/testGitRepo/gitDir/logs/refs/heads/test-branch +0 -2
  281. package/test-fixtures/testGitRepo/gitDir/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904 +0 -0
  282. package/test-fixtures/testGitRepo/gitDir/objects/6e/187bee8d02f39d0a1be8331dd8fe6a00c9b613 +0 -0
  283. package/test-fixtures/testGitRepo/gitDir/objects/73/185f1f3f5a6345e087d9f46dc4af77cc59449f +0 -2
  284. package/test-fixtures/testGitRepo/gitDir/objects/90/e7ea1089f939840e9649fd617584c1ad117159 +0 -3
  285. package/test-fixtures/testGitRepo/gitDir/objects/ba/99a452b9097047e9bfa8d5a08b3e452fcb364a +0 -0
  286. package/test-fixtures/testGitRepo/gitDir/objects/c5/8d400177cd5180b8566f82a127fafc5bf394b7 +0 -0
  287. package/test-fixtures/testGitRepo/gitDir/objects/e2/e668265db019249a7e8296d85f79000e3d71cf +0 -0
  288. package/test-fixtures/testGitRepo/gitDir/objects/e4/243e430c1ab69f3e344249f5b1859e90abc883 +0 -1
  289. package/test-fixtures/testGitRepo/gitDir/objects/ec/6c1cb72312605282ac61858cf1eaf1ea9f1d02 +0 -0
  290. package/test-fixtures/testGitRepo/gitDir/objects/fc/89cecc4ac0b5b075bd7d0ce9e09b2f50598b82 +0 -0
  291. package/test-fixtures/testGitRepo/gitDir/refs/heads/master +0 -1
  292. package/test-fixtures/testGitRepo/gitDir/refs/heads/test-branch +0 -1
  293. package/tsconfig.cjs.json +0 -12
  294. package/tsconfig.esm.json +0 -10
  295. package/tsconfig.json +0 -22
package/lib/cjs/types.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.gitCheckout = void 0;
4
- const child_process_1 = require("child_process");
5
- async function gitCheckout(options) {
6
- const { branch, remoteName, tmpDir } = options;
7
- const remoteInfo = (0, child_process_1.execSync)(`git remote show ${remoteName}`, {
8
- cwd: tmpDir,
9
- env: process.env,
10
- }).toString();
11
- const defaultMatch = /HEAD branch:\s*([a-zA-Z0-9_-]+)/.exec(remoteInfo);
12
- if (!defaultMatch || !defaultMatch[1]) {
13
- throw new Error(`Could not determine default branch of cloned repo.\nAttempted to find in remote info:\n${remoteInfo} `);
14
- }
15
- const defaultBranch = defaultMatch[1];
16
- // Skip this if the default branch is already pulled
17
- if (defaultBranch !== branch) {
18
- (0, child_process_1.execSync)(`git fetch ${remoteName} ${branch}`, {
19
- cwd: tmpDir,
20
- env: process.env,
21
- });
22
- (0, child_process_1.execSync)(`git checkout -b ${branch} --track ${remoteName}/${branch}`, {
23
- cwd: tmpDir,
24
- env: process.env,
25
- });
26
- }
27
- return true;
28
- }
29
- exports.gitCheckout = gitCheckout;
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./git-checkout"), exports);
18
- __exportStar(require("./types"), exports);
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.gitClone = void 0;
4
- const child_process_1 = require("child_process");
5
- const path_1 = require("path");
6
- const CLONE_DIR = "cloned_repo";
7
- async function gitClone(tmpDir, repoUrl) {
8
- (0, child_process_1.execSync)(`git clone ${repoUrl} ${CLONE_DIR}`, {
9
- cwd: tmpDir,
10
- env: process.env,
11
- });
12
- return {
13
- dir: (0, path_1.resolve)(tmpDir, CLONE_DIR),
14
- remoteName: "origin",
15
- };
16
- }
17
- exports.gitClone = gitClone;
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./types"), exports);
18
- __exportStar(require("./git-clone"), exports);
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.gitDiff = void 0;
4
- const child_process_1 = require("child_process");
5
- /**
6
- * For a given directory with a git configuration, this will return the modified, added, and
7
- * deleted files since the last afterRef
8
- * @param gitDir The git directory folder
9
- * @param afterRef The git ref to look for diffs after
10
- * @returns
11
- */
12
- async function gitDiff(gitDir, afterRef) {
13
- const baseCommand = `git diff ${afterRef}.. --no-renames --name-only`;
14
- const modifiedFiles = (0, child_process_1.execSync)(`${baseCommand} --diff-filter=M`, {
15
- cwd: gitDir,
16
- })
17
- .toString()
18
- .trim()
19
- .split("\n")
20
- .filter((s) => s !== "");
21
- const addedFiles = (0, child_process_1.execSync)(`${baseCommand} --diff-filter=A`, {
22
- cwd: gitDir,
23
- })
24
- .toString()
25
- .trim()
26
- .split("\n")
27
- .filter((s) => s !== "");
28
- const deletedFiles = (0, child_process_1.execSync)(`${baseCommand} --diff-filter=D`, {
29
- cwd: gitDir,
30
- })
31
- .toString()
32
- .trim()
33
- .split("\n")
34
- .filter((s) => s !== "");
35
- return {
36
- modified: modifiedFiles,
37
- added: addedFiles,
38
- deleted: deletedFiles,
39
- };
40
- }
41
- exports.gitDiff = gitDiff;
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./types"), exports);
18
- __exportStar(require("./git-diff"), exports);
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./sync-results-to-md"), exports);
18
- __exportStar(require("./infer-json-indent"), exports);
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.inferJSONIndent = void 0;
4
- const spacingRegex = /[{[]\n?(?<spacing>\s+)["tf\d]/;
5
- function inferJSONIndent(rawJSON) {
6
- const match = spacingRegex.exec(rawJSON);
7
- if (!match?.groups?.spacing) {
8
- // eslint-disable-next-line no-console
9
- console.warn(`Could not find json indentation for json string: ${rawJSON.slice(40)} ... \nDefaulting to 4 spaces`);
10
- // Four spaces
11
- return " ";
12
- }
13
- const spacing = match.groups.spacing;
14
- // Handle the case where there were multiple newlines before a value
15
- const lastNewLine = spacing.lastIndexOf("\n");
16
- return match?.groups.spacing.slice(lastNewLine >= 0 ? lastNewLine + 1 : 0);
17
- }
18
- exports.inferJSONIndent = inferJSONIndent;
@@ -1,57 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.syncResultsToMd = void 0;
4
- const template_sync_1 = require("../template-sync");
5
- function syncResultsToMd(result) {
6
- return `# ${template_sync_1.TEMPLATE_SYNC_LOCAL_CONFIG}
7
-
8
- ## Stopped the following files from syncing:
9
-
10
- ${result.localSkipFiles.reduce((s, file) => {
11
- return `${s}* ${file}\n`;
12
- }, "")}
13
-
14
- ## Changed the following files from what they would have synced:
15
-
16
- ${Object.keys(result.localFileChanges).reduce((s, file) => {
17
- return `${s}${file}
18
- \`\`\`diff
19
- ${result.localFileChanges[file].reduce((diffS, change) => {
20
- return `${diffS}\n${makeChangeIntoDiffLines(change)}`;
21
- }, "")}
22
- \`\`\``;
23
- }, "")}
24
-
25
- ## Files Modified (${result.modifiedFiles.total})
26
-
27
- Added:
28
- ${result.modifiedFiles.added.reduce((s, f) => {
29
- return `${s}\n- ${f}`;
30
- }, "")}
31
-
32
- Modified:
33
- ${result.modifiedFiles.modified.reduce((s, f) => {
34
- return `${s}\n- ${f}`;
35
- }, "")}
36
-
37
- Deleted:
38
- ${result.modifiedFiles.deleted.reduce((s, f) => {
39
- return `${s}\n- ${f}`;
40
- }, "")}
41
- `;
42
- }
43
- exports.syncResultsToMd = syncResultsToMd;
44
- function makeChangeIntoDiffLines(change, nonchangeMax = 3) {
45
- const operator = change.added ? "+" : change.removed ? "-" : "";
46
- if (!operator &&
47
- nonchangeMax > 0 &&
48
- change.count &&
49
- change.count > nonchangeMax) {
50
- const lines = change.value.split("\n");
51
- const partial = lines.slice(lines.length - nonchangeMax);
52
- return `...\n${partial.join("\n")}\n`;
53
- }
54
- return change.value.split("\n").reduce((s, line) => {
55
- return `${s}${operator}${line}\n`;
56
- }, "");
57
- }
package/lib/esm/index.js DELETED
@@ -1,19 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./types"), exports);
18
- __exportStar(require("./template-sync"), exports);
19
- __exportStar(require("./formatting"), exports);
@@ -1,46 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadPlugin = void 0;
4
- const plugins_1 = require("./plugins");
5
- const fs_1 = require("fs");
6
- const path_1 = require("path");
7
- /**
8
- * Loads the plugin associated with the merge config
9
- * @param mergeConfig
10
- * @param forExt
11
- * @param configDir
12
- * @returns
13
- */
14
- async function loadPlugin(mergeConfig, configDir) {
15
- if (mergeConfig.plugin.startsWith("_")) {
16
- const defaultHandler = Object.values(plugins_1.defaultExtensionMap).find((el) => el.builtinName === mergeConfig.plugin);
17
- if (!defaultHandler) {
18
- throw new Error(`No builtin merge function supplied for ${mergeConfig.plugin}. Cannot have merge config without custom plugin supplied.`);
19
- }
20
- return defaultHandler;
21
- }
22
- let handler;
23
- // First check if this is a local .js file
24
- const localPath = (0, path_1.resolve)(configDir, mergeConfig.plugin);
25
- const importPath = (0, fs_1.existsSync)(localPath) ? localPath : mergeConfig.plugin;
26
- try {
27
- // Sad workaround for testing since dynamic import segfaults
28
- if (process.env.JEST_WORKER_ID !== undefined) {
29
- // eslint-disable-next-line @typescript-eslint/no-var-requires
30
- handler = require(importPath);
31
- }
32
- else {
33
- handler = (await import(importPath));
34
- }
35
- if (!handler.merge) {
36
- handler = handler
37
- .default;
38
- }
39
- }
40
- catch (err) {
41
- console.error(err);
42
- throw err;
43
- }
44
- return handler;
45
- }
46
- exports.loadPlugin = loadPlugin;
package/lib/esm/match.js DELETED
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAllFilesInDir = exports.invertMatchPatterns = void 0;
4
- const fs_1 = require("fs");
5
- const micromatch_1 = require("micromatch");
6
- const path_1 = require("path");
7
- function invertMatchPatterns(patterns) {
8
- return patterns.map((pattern) => {
9
- if (pattern.startsWith("!")) {
10
- return pattern.slice(1);
11
- }
12
- return `!${pattern}`;
13
- });
14
- }
15
- exports.invertMatchPatterns = invertMatchPatterns;
16
- /**
17
- * Gets all the files in the directory recursively while avoiding any micromatch patterns
18
- * that would match for ignoring
19
- *
20
- * @param dir
21
- * @param ignorePatterns
22
- * @returns
23
- */
24
- function getAllFilesInDir(dir, ignorePatterns) {
25
- return recurseDirsForFiles(dir, ignorePatterns);
26
- }
27
- exports.getAllFilesInDir = getAllFilesInDir;
28
- function recurseDirsForFiles(dirpath, ignorePatterns, relativeRoot = "") {
29
- return (0, fs_1.readdirSync)(dirpath, {
30
- withFileTypes: true,
31
- }).reduce((files, f) => {
32
- const relPath = (0, path_1.join)(relativeRoot, f.name);
33
- if ((0, micromatch_1.some)(relPath, ignorePatterns)) {
34
- return files;
35
- }
36
- // Ensure we aren't ignoring these folders explicitly
37
- if (f.isDirectory()) {
38
- files.push(...recurseDirsForFiles((0, path_1.join)(dirpath, f.name), ignorePatterns, relPath));
39
- }
40
- else {
41
- files.push(relPath);
42
- }
43
- return files;
44
- }, []);
45
- }
@@ -1,98 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mergeFile = void 0;
4
- const micromatch_1 = require("micromatch");
5
- const path_1 = require("path");
6
- const fs_1 = require("fs");
7
- const promises_1 = require("fs/promises");
8
- const load_plugin_1 = require("./load-plugin");
9
- const diff_1 = require("diff");
10
- const fs_extra_1 = require("fs-extra");
11
- /**
12
- * Applies the merge to a file according to the context information.
13
- *
14
- * Returns true if merged and false if skipped
15
- * @param relPath
16
- * @param context
17
- * @returns
18
- */
19
- async function mergeFile(relPath, context) {
20
- const { localTemplateSyncConfig, templateSyncConfig, tempCloneDir, cwd } = context;
21
- if ((0, micromatch_1.some)(relPath, localTemplateSyncConfig.ignore)) {
22
- return {
23
- ignoredDueToLocal: true,
24
- };
25
- }
26
- const ext = (0, path_1.extname)(relPath);
27
- const filePath = (0, path_1.join)(cwd, relPath);
28
- const templatePath = (0, path_1.join)(tempCloneDir, relPath);
29
- // Unless there's a need, we remove files that were deleted and don't pass them to plugins yet
30
- if (context.fileOperation === "deleted") {
31
- if ((0, fs_1.existsSync)(filePath)) {
32
- await (0, promises_1.rm)(filePath);
33
- }
34
- return {
35
- ignoredDueToLocal: false,
36
- localChanges: [],
37
- };
38
- }
39
- const mergeConfig = templateSyncConfig.merge?.find((mergeConfig) => (0, micromatch_1.isMatch)(relPath, mergeConfig.glob));
40
- const localMergeConfig = localTemplateSyncConfig.merge?.find((mergeConfig) => (0, micromatch_1.isMatch)(relPath, mergeConfig.glob));
41
- const mergeHandler = mergeConfig
42
- ? await (0, load_plugin_1.loadPlugin)(mergeConfig, tempCloneDir)
43
- : undefined;
44
- const localMergeHandler = localMergeConfig
45
- ? await (0, load_plugin_1.loadPlugin)(localMergeConfig, cwd)
46
- : undefined;
47
- // Either write the merge or write the file
48
- let fileContents;
49
- const localChanges = [];
50
- if ((0, fs_1.existsSync)(filePath) && (mergeHandler || localMergeHandler)) {
51
- const originalCurrentFile = (await (0, promises_1.readFile)(filePath)).toString();
52
- if (mergeHandler) {
53
- fileContents = await safeMerge(mergeHandler, mergeConfig?.plugin ?? `default for ${ext}`, originalCurrentFile, (await (0, promises_1.readFile)(templatePath)).toString(), {
54
- relFilePath: relPath,
55
- mergeArguments: mergeConfig?.options ?? {},
56
- isLocalOptions: false,
57
- });
58
- }
59
- else {
60
- // Apply overwrite if we didn't set up merge
61
- fileContents = (await (0, promises_1.readFile)(templatePath)).toString();
62
- }
63
- // We apply the localMerge Config to the fileContent output by the template merge
64
- if (localMergeHandler) {
65
- const localContents = await safeMerge(localMergeHandler, localMergeConfig?.plugin ?? `default for ${ext}`, originalCurrentFile, fileContents, {
66
- relFilePath: relPath,
67
- mergeArguments: localMergeConfig?.options ?? {},
68
- isLocalOptions: true,
69
- });
70
- localChanges.push(...(0, diff_1.diffLines)(fileContents, localContents));
71
- fileContents = localContents;
72
- }
73
- }
74
- else {
75
- // Just perform simple overwrite
76
- fileContents = (await (0, promises_1.readFile)(templatePath)).toString();
77
- }
78
- await (0, fs_extra_1.outputFile)(filePath, fileContents);
79
- return {
80
- ignoredDueToLocal: false,
81
- localChanges,
82
- };
83
- }
84
- exports.mergeFile = mergeFile;
85
- /**
86
- * Simple helper function to ensure that we don't let bad plugins corrupt the call flow
87
- * @param plugin
88
- */
89
- async function safeMerge(plugin, pluginPath, current, fromTemplate, context) {
90
- const ret = await plugin.merge(current, fromTemplate, context);
91
- if (typeof ret !== "string") {
92
- throw new Error(`Plugin ${pluginPath} did not return string for merge function! This is not allowed!`);
93
- }
94
- if (!ret) {
95
- throw new Error(`Plugin ${pluginPath} should not make a merge be an empty string!`);
96
- }
97
- return ret;
98
- }
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defaultExtensionMap = void 0;
4
- const json_merge_1 = require("./json-merge");
5
- exports.defaultExtensionMap = {
6
- ".json": {
7
- merge: json_merge_1.merge,
8
- validate: json_merge_1.validate,
9
- builtinName: "_json",
10
- },
11
- };