bingo 0.8.2 → 0.9.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 (239) hide show
  1. package/lib/cli/createTrackingBranches.d.ts +4 -0
  2. package/lib/cli/createTrackingBranches.d.ts.map +1 -0
  3. package/lib/cli/createTrackingBranches.js +7 -0
  4. package/lib/cli/createTrackingBranches.js.map +1 -0
  5. package/lib/cli/createTrackingBranches.test.d.ts +2 -0
  6. package/lib/cli/createTrackingBranches.test.d.ts.map +1 -0
  7. package/lib/cli/createTrackingBranches.test.js +19 -0
  8. package/lib/cli/createTrackingBranches.test.js.map +1 -0
  9. package/lib/cli/display/runSpinnerTask.d.ts +1 -1
  10. package/lib/cli/getGitRepositoryType.d.ts +8 -0
  11. package/lib/cli/getGitRepositoryType.d.ts.map +1 -0
  12. package/lib/cli/getGitRepositoryType.js +18 -0
  13. package/lib/cli/getGitRepositoryType.js.map +1 -0
  14. package/lib/cli/getGitRepositoryType.test.d.ts +2 -0
  15. package/lib/cli/getGitRepositoryType.test.d.ts.map +1 -0
  16. package/lib/cli/getGitRepositoryType.test.js +33 -0
  17. package/lib/cli/getGitRepositoryType.test.js.map +1 -0
  18. package/lib/cli/isInGitRepository.test.js +1 -1
  19. package/lib/cli/isInGitRepository.test.js.map +1 -1
  20. package/lib/cli/isInGitRepositoryRoot.d.ts +3 -0
  21. package/lib/cli/isInGitRepositoryRoot.d.ts.map +1 -0
  22. package/lib/cli/isInGitRepositoryRoot.js +7 -0
  23. package/lib/cli/isInGitRepositoryRoot.js.map +1 -0
  24. package/lib/cli/isInGitRepositoryRoot.test.d.ts +2 -0
  25. package/lib/cli/isInGitRepositoryRoot.test.d.ts.map +1 -0
  26. package/lib/cli/isInGitRepositoryRoot.test.js +26 -0
  27. package/lib/cli/isInGitRepositoryRoot.test.js.map +1 -0
  28. package/lib/cli/parseProcessArgv.d.ts +1 -0
  29. package/lib/cli/parseProcessArgv.d.ts.map +1 -1
  30. package/lib/cli/parseProcessArgv.js +3 -0
  31. package/lib/cli/parseProcessArgv.js.map +1 -1
  32. package/lib/cli/prepareGitRepository.d.ts +4 -0
  33. package/lib/cli/prepareGitRepository.d.ts.map +1 -0
  34. package/lib/cli/prepareGitRepository.js +9 -0
  35. package/lib/cli/prepareGitRepository.js.map +1 -0
  36. package/lib/cli/remotes/createRemoteRepository.d.ts +6 -0
  37. package/lib/cli/remotes/createRemoteRepository.d.ts.map +1 -0
  38. package/lib/cli/remotes/createRemoteRepository.js +25 -0
  39. package/lib/cli/remotes/createRemoteRepository.js.map +1 -0
  40. package/lib/cli/remotes/createRemoteRepository.test.d.ts +2 -0
  41. package/lib/cli/remotes/createRemoteRepository.test.d.ts.map +1 -0
  42. package/lib/cli/remotes/createRemoteRepository.test.js +54 -0
  43. package/lib/cli/remotes/createRemoteRepository.test.js.map +1 -0
  44. package/lib/cli/remotes/createTrackingBranches.d.ts +4 -0
  45. package/lib/cli/remotes/createTrackingBranches.d.ts.map +1 -0
  46. package/lib/cli/remotes/createTrackingBranches.js +7 -0
  47. package/lib/cli/remotes/createTrackingBranches.js.map +1 -0
  48. package/lib/cli/remotes/createTrackingBranches.test.d.ts +2 -0
  49. package/lib/cli/remotes/createTrackingBranches.test.d.ts.map +1 -0
  50. package/lib/cli/remotes/createTrackingBranches.test.js +19 -0
  51. package/lib/cli/remotes/createTrackingBranches.test.js.map +1 -0
  52. package/lib/cli/remotes/resolveRemoteRepository.d.ts +19 -0
  53. package/lib/cli/remotes/resolveRemoteRepository.d.ts.map +1 -0
  54. package/lib/cli/remotes/resolveRemoteRepository.js +58 -0
  55. package/lib/cli/remotes/resolveRemoteRepository.js.map +1 -0
  56. package/lib/cli/remotes/resolveRemoteRepository.test.d.ts +2 -0
  57. package/lib/cli/remotes/resolveRemoteRepository.test.d.ts.map +1 -0
  58. package/lib/cli/remotes/resolveRemoteRepository.test.js +148 -0
  59. package/lib/cli/remotes/resolveRemoteRepository.test.js.map +1 -0
  60. package/lib/cli/remotes/resolveRemoteRepositoryFromOrigin.d.ts +4 -0
  61. package/lib/cli/remotes/resolveRemoteRepositoryFromOrigin.d.ts.map +1 -0
  62. package/lib/cli/remotes/resolveRemoteRepositoryFromOrigin.js +14 -0
  63. package/lib/cli/remotes/resolveRemoteRepositoryFromOrigin.js.map +1 -0
  64. package/lib/cli/remotes/resolveRemoteRepositoryFromOrigin.test.d.ts +2 -0
  65. package/lib/cli/remotes/resolveRemoteRepositoryFromOrigin.test.d.ts.map +1 -0
  66. package/lib/cli/remotes/resolveRemoteRepositoryFromOrigin.test.js +23 -0
  67. package/lib/cli/remotes/resolveRemoteRepositoryFromOrigin.test.js.map +1 -0
  68. package/lib/cli/remotes/resolveRemoteRepositoryToCreate.d.ts +5 -0
  69. package/lib/cli/remotes/resolveRemoteRepositoryToCreate.d.ts.map +1 -0
  70. package/lib/cli/remotes/resolveRemoteRepositoryToCreate.js +26 -0
  71. package/lib/cli/remotes/resolveRemoteRepositoryToCreate.js.map +1 -0
  72. package/lib/cli/remotes/resolveRemoteRepositoryToCreate.test.d.ts +2 -0
  73. package/lib/cli/remotes/resolveRemoteRepositoryToCreate.test.d.ts.map +1 -0
  74. package/lib/cli/remotes/resolveRemoteRepositoryToCreate.test.js +82 -0
  75. package/lib/cli/remotes/resolveRemoteRepositoryToCreate.test.js.map +1 -0
  76. package/lib/cli/remotes/resolveRepository.d.ts +19 -0
  77. package/lib/cli/remotes/resolveRepository.d.ts.map +1 -0
  78. package/lib/cli/remotes/resolveRepository.js +58 -0
  79. package/lib/cli/remotes/resolveRepository.js.map +1 -0
  80. package/lib/cli/remotes/resolveRepository.test.d.ts +2 -0
  81. package/lib/cli/remotes/resolveRepository.test.d.ts.map +1 -0
  82. package/lib/cli/remotes/resolveRepository.test.js +148 -0
  83. package/lib/cli/remotes/resolveRepository.test.js.map +1 -0
  84. package/lib/cli/remotes/types.d.ts +5 -0
  85. package/lib/cli/remotes/types.d.ts.map +1 -0
  86. package/lib/cli/remotes/types.js +2 -0
  87. package/lib/cli/remotes/types.js.map +1 -0
  88. package/lib/cli/repository/clearLocalGitTags.d.ts +3 -0
  89. package/lib/cli/repository/clearLocalGitTags.d.ts.map +1 -0
  90. package/lib/cli/repository/clearLocalGitTags.js +7 -0
  91. package/lib/cli/repository/clearLocalGitTags.js.map +1 -0
  92. package/lib/cli/repository/clearLocalGitTags.test.d.ts +2 -0
  93. package/lib/cli/repository/clearLocalGitTags.test.d.ts.map +1 -0
  94. package/lib/cli/repository/clearLocalGitTags.test.js +16 -0
  95. package/lib/cli/repository/clearLocalGitTags.test.js.map +1 -0
  96. package/lib/cli/repository/createInitialCommit.d.ts +7 -0
  97. package/lib/cli/repository/createInitialCommit.d.ts.map +1 -0
  98. package/lib/cli/repository/createInitialCommit.js +10 -0
  99. package/lib/cli/repository/createInitialCommit.js.map +1 -0
  100. package/lib/cli/repository/createInitialCommit.test.d.ts +2 -0
  101. package/lib/cli/repository/createInitialCommit.test.d.ts.map +1 -0
  102. package/lib/cli/repository/createInitialCommit.test.js +50 -0
  103. package/lib/cli/repository/createInitialCommit.test.js.map +1 -0
  104. package/lib/cli/repository/createTrackingBranches.d.ts +4 -0
  105. package/lib/cli/repository/createTrackingBranches.d.ts.map +1 -0
  106. package/lib/cli/repository/createTrackingBranches.js +7 -0
  107. package/lib/cli/repository/createTrackingBranches.js.map +1 -0
  108. package/lib/cli/repository/createTrackingBranches.test.d.ts +2 -0
  109. package/lib/cli/repository/createTrackingBranches.test.d.ts.map +1 -0
  110. package/lib/cli/repository/createTrackingBranches.test.js +19 -0
  111. package/lib/cli/repository/createTrackingBranches.test.js.map +1 -0
  112. package/lib/cli/repository/prepareGitRepository.d.ts +4 -0
  113. package/lib/cli/repository/prepareGitRepository.d.ts.map +1 -0
  114. package/lib/cli/repository/prepareGitRepository.js +9 -0
  115. package/lib/cli/repository/prepareGitRepository.js.map +1 -0
  116. package/lib/cli/repository/prepareGitRepository.test.d.ts +2 -0
  117. package/lib/cli/repository/prepareGitRepository.test.d.ts.map +1 -0
  118. package/lib/cli/repository/prepareGitRepository.test.js +32 -0
  119. package/lib/cli/repository/prepareGitRepository.test.js.map +1 -0
  120. package/lib/cli/repository/resolveLocalRepository.d.ts +21 -0
  121. package/lib/cli/repository/resolveLocalRepository.d.ts.map +1 -0
  122. package/lib/cli/repository/resolveLocalRepository.js +57 -0
  123. package/lib/cli/repository/resolveLocalRepository.js.map +1 -0
  124. package/lib/cli/repository/resolveLocalRepository.test.d.ts +2 -0
  125. package/lib/cli/repository/resolveLocalRepository.test.d.ts.map +1 -0
  126. package/lib/cli/repository/resolveLocalRepository.test.js +167 -0
  127. package/lib/cli/repository/resolveLocalRepository.test.js.map +1 -0
  128. package/lib/cli/repository/resolveRepository.d.ts +21 -0
  129. package/lib/cli/repository/resolveRepository.d.ts.map +1 -0
  130. package/lib/cli/repository/resolveRepository.js +57 -0
  131. package/lib/cli/repository/resolveRepository.js.map +1 -0
  132. package/lib/cli/repository/resolveRepository.test.d.ts +2 -0
  133. package/lib/cli/repository/resolveRepository.test.d.ts.map +1 -0
  134. package/lib/cli/repository/resolveRepository.test.js +148 -0
  135. package/lib/cli/repository/resolveRepository.test.js.map +1 -0
  136. package/lib/cli/runCLI.d.ts +3 -4
  137. package/lib/cli/runCLI.d.ts.map +1 -1
  138. package/lib/cli/runCLI.js +2 -0
  139. package/lib/cli/runCLI.js.map +1 -1
  140. package/lib/cli/runTemplateCLI.d.ts +1 -4
  141. package/lib/cli/runTemplateCLI.d.ts.map +1 -1
  142. package/lib/cli/runTemplateCLI.js +0 -2
  143. package/lib/cli/runTemplateCLI.js.map +1 -1
  144. package/lib/cli/setup/createRepositoryOnGitHub.d.ts +0 -1
  145. package/lib/cli/setup/createRepositoryOnGitHub.d.ts.map +1 -1
  146. package/lib/cli/setup/createRepositoryOnGitHub.js.map +1 -1
  147. package/lib/cli/setup/createTrackingBranches.d.ts +1 -1
  148. package/lib/cli/setup/createTrackingBranches.d.ts.map +1 -1
  149. package/lib/cli/setup/createTrackingBranches.js.map +1 -1
  150. package/lib/cli/setup/getRemoteRepository.d.ts +2 -0
  151. package/lib/cli/setup/getRemoteRepository.d.ts.map +1 -0
  152. package/lib/cli/setup/getRemoteRepository.js +2 -0
  153. package/lib/cli/setup/getRemoteRepository.js.map +1 -0
  154. package/lib/cli/setup/remotes/checkTemplateRemoteSupport.d.ts +4 -0
  155. package/lib/cli/setup/remotes/checkTemplateRemoteSupport.d.ts.map +1 -0
  156. package/lib/cli/setup/remotes/checkTemplateRemoteSupport.js +15 -0
  157. package/lib/cli/setup/remotes/checkTemplateRemoteSupport.js.map +1 -0
  158. package/lib/cli/setup/remotes/createRemoteRepository.d.ts +5 -0
  159. package/lib/cli/setup/remotes/createRemoteRepository.d.ts.map +1 -0
  160. package/lib/cli/setup/remotes/createRemoteRepository.js +16 -0
  161. package/lib/cli/setup/remotes/createRemoteRepository.js.map +1 -0
  162. package/lib/cli/setup/remotes/createRepositoryOnGitHub.d.ts +6 -0
  163. package/lib/cli/setup/remotes/createRepositoryOnGitHub.d.ts.map +1 -0
  164. package/lib/cli/setup/remotes/createRepositoryOnGitHub.js +36 -0
  165. package/lib/cli/setup/remotes/createRepositoryOnGitHub.js.map +1 -0
  166. package/lib/cli/setup/remotes/createRepositoryOnGitHub.test.d.ts +2 -0
  167. package/lib/cli/setup/remotes/createRepositoryOnGitHub.test.d.ts.map +1 -0
  168. package/lib/cli/setup/remotes/createRepositoryOnGitHub.test.js +157 -0
  169. package/lib/cli/setup/remotes/createRepositoryOnGitHub.test.js.map +1 -0
  170. package/lib/cli/setup/remotes/resolveExistingRemoteRepository.d.ts +4 -0
  171. package/lib/cli/setup/remotes/resolveExistingRemoteRepository.d.ts.map +1 -0
  172. package/lib/cli/setup/remotes/resolveExistingRemoteRepository.js +14 -0
  173. package/lib/cli/setup/remotes/resolveExistingRemoteRepository.js.map +1 -0
  174. package/lib/cli/setup/remotes/resolveExistingRemoteRepository.test.d.ts +2 -0
  175. package/lib/cli/setup/remotes/resolveExistingRemoteRepository.test.d.ts.map +1 -0
  176. package/lib/cli/setup/remotes/resolveExistingRemoteRepository.test.js +23 -0
  177. package/lib/cli/setup/remotes/resolveExistingRemoteRepository.test.js.map +1 -0
  178. package/lib/cli/setup/remotes/resolveRemoteRepository.d.ts +18 -0
  179. package/lib/cli/setup/remotes/resolveRemoteRepository.d.ts.map +1 -0
  180. package/lib/cli/setup/remotes/resolveRemoteRepository.js +47 -0
  181. package/lib/cli/setup/remotes/resolveRemoteRepository.js.map +1 -0
  182. package/lib/cli/setup/remotes/resolveRemoteRepository.test.d.ts +2 -0
  183. package/lib/cli/setup/remotes/resolveRemoteRepository.test.d.ts.map +1 -0
  184. package/lib/cli/setup/remotes/resolveRemoteRepository.test.js +103 -0
  185. package/lib/cli/setup/remotes/resolveRemoteRepository.test.js.map +1 -0
  186. package/lib/cli/setup/remotes/resolveRemoteRepositoryFromOrigin.d.ts +4 -0
  187. package/lib/cli/setup/remotes/resolveRemoteRepositoryFromOrigin.d.ts.map +1 -0
  188. package/lib/cli/setup/remotes/resolveRemoteRepositoryFromOrigin.js +14 -0
  189. package/lib/cli/setup/remotes/resolveRemoteRepositoryFromOrigin.js.map +1 -0
  190. package/lib/cli/setup/remotes/resolveRemoteRepositoryFromOrigin.test.d.ts +2 -0
  191. package/lib/cli/setup/remotes/resolveRemoteRepositoryFromOrigin.test.d.ts.map +1 -0
  192. package/lib/cli/setup/remotes/resolveRemoteRepositoryFromOrigin.test.js +23 -0
  193. package/lib/cli/setup/remotes/resolveRemoteRepositoryFromOrigin.test.js.map +1 -0
  194. package/lib/cli/setup/remotes/resolveRemoteRepositoryToCreate.d.ts +5 -0
  195. package/lib/cli/setup/remotes/resolveRemoteRepositoryToCreate.d.ts.map +1 -0
  196. package/lib/cli/setup/remotes/resolveRemoteRepositoryToCreate.js +26 -0
  197. package/lib/cli/setup/remotes/resolveRemoteRepositoryToCreate.js.map +1 -0
  198. package/lib/cli/setup/remotes/resolveRemoteRepositoryToCreate.test.d.ts +2 -0
  199. package/lib/cli/setup/remotes/resolveRemoteRepositoryToCreate.test.d.ts.map +1 -0
  200. package/lib/cli/setup/remotes/resolveRemoteRepositoryToCreate.test.js +82 -0
  201. package/lib/cli/setup/remotes/resolveRemoteRepositoryToCreate.test.js.map +1 -0
  202. package/lib/cli/setup/remotes/templateSupportsRemoteCreation.d.ts +3 -0
  203. package/lib/cli/setup/remotes/templateSupportsRemoteCreation.d.ts.map +1 -0
  204. package/lib/cli/setup/remotes/templateSupportsRemoteCreation.js +9 -0
  205. package/lib/cli/setup/remotes/templateSupportsRemoteCreation.js.map +1 -0
  206. package/lib/cli/setup/remotes/types.d.ts +5 -0
  207. package/lib/cli/setup/remotes/types.d.ts.map +1 -0
  208. package/lib/cli/setup/remotes/types.js +2 -0
  209. package/lib/cli/setup/remotes/types.js.map +1 -0
  210. package/lib/cli/setup/resolveExistingRemote.d.ts +2 -0
  211. package/lib/cli/setup/resolveExistingRemote.d.ts.map +1 -0
  212. package/lib/cli/setup/resolveExistingRemote.js +2 -0
  213. package/lib/cli/setup/resolveExistingRemote.js.map +1 -0
  214. package/lib/cli/setup/resolveRemoteRepository.d.ts +26 -0
  215. package/lib/cli/setup/resolveRemoteRepository.d.ts.map +1 -0
  216. package/lib/cli/setup/resolveRemoteRepository.js +49 -0
  217. package/lib/cli/setup/resolveRemoteRepository.js.map +1 -0
  218. package/lib/cli/setup/runModeSetup.d.ts +4 -4
  219. package/lib/cli/setup/runModeSetup.d.ts.map +1 -1
  220. package/lib/cli/setup/runModeSetup.js +24 -39
  221. package/lib/cli/setup/runModeSetup.js.map +1 -1
  222. package/lib/cli/setup/runModeSetup.test.js +128 -68
  223. package/lib/cli/setup/runModeSetup.test.js.map +1 -1
  224. package/lib/cli/transition/runModeTransition.d.ts +4 -4
  225. package/lib/cli/transition/runModeTransition.d.ts.map +1 -1
  226. package/lib/cli/transition/runModeTransition.js +17 -4
  227. package/lib/cli/transition/runModeTransition.js.map +1 -1
  228. package/lib/cli/transition/runModeTransition.test.js +43 -12
  229. package/lib/cli/transition/runModeTransition.test.js.map +1 -1
  230. package/lib/predicates/isTemplate.d.ts +1 -2
  231. package/lib/predicates/isTemplate.d.ts.map +1 -1
  232. package/lib/predicates/isTemplate.js.map +1 -1
  233. package/lib/types/templates.d.ts +2 -1
  234. package/lib/types/templates.d.ts.map +1 -1
  235. package/lib/utils/tryCatch.d.ts +2 -1
  236. package/lib/utils/tryCatch.d.ts.map +1 -1
  237. package/lib/utils/tryCatch.js +8 -0
  238. package/lib/utils/tryCatch.js.map +1 -1
  239. package/package.json +4 -4
@@ -0,0 +1,82 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ import { z } from "zod";
3
+ import { createTemplate } from "../../../creators/createTemplate.js";
4
+ import { resolveRemoteRepositoryToCreate } from "./resolveRemoteRepositoryToCreate.js";
5
+ const mockPromptForOptionSchema = vi.fn();
6
+ vi.mock("../../prompts/promptForOptionSchema.js", () => ({
7
+ get promptForOptionSchema() {
8
+ return mockPromptForOptionSchema;
9
+ },
10
+ }));
11
+ const stubOwner = "stub-owner";
12
+ const stubRepository = "stub-repo";
13
+ const mockSystem = {
14
+ fetchers: {
15
+ fetch: vi.fn(),
16
+ octokit: {},
17
+ },
18
+ fs: {},
19
+ runner: vi.fn(),
20
+ };
21
+ describe(resolveRemoteRepositoryToCreate, () => {
22
+ it("returns the locator if locator.owner is provided", async () => {
23
+ const locator = { owner: stubOwner, repository: stubRepository };
24
+ const result = await resolveRemoteRepositoryToCreate(locator, mockSystem, createTemplate({ produce: vi.fn() }));
25
+ expect(result).toEqual(locator);
26
+ });
27
+ it("returns the username as owner if gh config get user resolves one", async () => {
28
+ const result = await resolveRemoteRepositoryToCreate({ repository: stubRepository }, {
29
+ ...mockSystem,
30
+ runner: vi.fn().mockResolvedValueOnce({
31
+ stdout: stubOwner,
32
+ }),
33
+ }, createTemplate({ produce: vi.fn() }));
34
+ expect(result).toEqual({ owner: stubOwner, repository: stubRepository });
35
+ });
36
+ it("returns an error if an owner cannot be inferred and the template doesn't have a string owner option", async () => {
37
+ const result = await resolveRemoteRepositoryToCreate({ repository: stubRepository }, {
38
+ ...mockSystem,
39
+ runner: vi.fn().mockResolvedValueOnce({}),
40
+ }, createTemplate({ produce: vi.fn() }));
41
+ expect(result).toEqual(new Error("--remote requested, but could not infer an owner because this template lacks an 'owner' option."));
42
+ });
43
+ it("returns an error if an owner cannot be inferred and the template's owner option is not a string-like", async () => {
44
+ const result = await resolveRemoteRepositoryToCreate({ repository: stubRepository }, {
45
+ ...mockSystem,
46
+ runner: vi.fn().mockResolvedValueOnce({}),
47
+ }, createTemplate({
48
+ options: {
49
+ owner: z.object({ value: z.number() }),
50
+ },
51
+ produce: vi.fn(),
52
+ }));
53
+ expect(result).toEqual(new Error("--remote requested, but could not infer an owner because this template's owner option is not a string-like."));
54
+ });
55
+ it("returns the prompted owner when prompting succeeds", async () => {
56
+ mockPromptForOptionSchema.mockResolvedValueOnce(stubOwner);
57
+ const actual = await resolveRemoteRepositoryToCreate({ repository: stubRepository }, {
58
+ ...mockSystem,
59
+ runner: vi.fn().mockResolvedValueOnce({}),
60
+ }, createTemplate({
61
+ options: {
62
+ owner: z.string(),
63
+ },
64
+ produce: vi.fn(),
65
+ }));
66
+ expect(actual).toEqual({ owner: stubOwner, repository: stubRepository });
67
+ });
68
+ it("returns an error when prompting fails", async () => {
69
+ mockPromptForOptionSchema.mockResolvedValueOnce(new Error("Cancelled."));
70
+ const actual = await resolveRemoteRepositoryToCreate({ repository: stubRepository }, {
71
+ ...mockSystem,
72
+ runner: vi.fn().mockResolvedValueOnce({}),
73
+ }, createTemplate({
74
+ options: {
75
+ owner: z.string(),
76
+ },
77
+ produce: vi.fn(),
78
+ }));
79
+ expect(actual).toEqual(new Error("--remote requested, but no owner was provided."));
80
+ });
81
+ });
82
+ //# sourceMappingURL=resolveRemoteRepositoryToCreate.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveRemoteRepositoryToCreate.test.js","sourceRoot":"","sources":["../../../../src/cli/setup/remotes/resolveRemoteRepositoryToCreate.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { AnyShape } from "../../../types/shapes.js";
2
+ export declare function templateSupportsRemoteCreation(options: AnyShape): boolean;
3
+ //# sourceMappingURL=templateSupportsRemoteCreation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateSupportsRemoteCreation.d.ts","sourceRoot":"","sources":["../../../../src/cli/setup/remotes/templateSupportsRemoteCreation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,QAAQ,WAK/D"}
@@ -0,0 +1,9 @@
1
+ import { isStringLikeSchema } from "../../schemas/isStringLikeSchema.js";
2
+ export function templateSupportsRemoteCreation(options) {
3
+ return (hasStringLikeOption(options, "owner") &&
4
+ hasStringLikeOption(options, "repository"));
5
+ }
6
+ function hasStringLikeOption(options, key) {
7
+ return key in options && isStringLikeSchema(options[key]);
8
+ }
9
+ //# sourceMappingURL=templateSupportsRemoteCreation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateSupportsRemoteCreation.js","sourceRoot":"","sources":["../../../../src/cli/setup/remotes/templateSupportsRemoteCreation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,MAAM,UAAU,8BAA8B,CAAC,OAAiB;IAC/D,OAAO,CACN,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC;QACrC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAC1C,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAiB,EAAE,GAAW;IAC1D,OAAO,GAAG,IAAI,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,5 @@
1
+ export interface PartialRepositoryLocator {
2
+ owner?: string;
3
+ repository: string;
4
+ }
5
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/cli/setup/remotes/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,wBAAwB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/cli/setup/remotes/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=resolveExistingRemote.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveExistingRemote.d.ts","sourceRoot":"","sources":["../../../src/cli/setup/resolveExistingRemote.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=resolveExistingRemote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveExistingRemote.js","sourceRoot":"","sources":["../../../src/cli/setup/resolveExistingRemote.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ import { BingoSystem } from "bingo-systems";
2
+ import { RepositoryLocator } from "new-github-repository";
3
+ import { AnyShape } from "../../types/shapes.js";
4
+ import { RequestedSkips } from "../../types/skips.js";
5
+ import { Template } from "../../types/templates.js";
6
+ import { ClackDisplay } from "../display/createClackDisplay.js";
7
+ import { PartialRepositoryLocator } from "./createRepositoryOnGitHub.js";
8
+ export interface RemoteRepositoryRequest {
9
+ offline?: boolean | undefined;
10
+ /**
11
+ * Whether to create or sync with a remote repository on GitHub.
12
+ * If true, defaults to the running user and repository title.
13
+ * If a string, that's used as the remote.
14
+ */
15
+ remote?: boolean | string | undefined;
16
+ }
17
+ export interface ResolvedRemoteMessage {
18
+ level: "info" | "warn";
19
+ text: string;
20
+ }
21
+ export interface ResolvedRemoteRepository {
22
+ message?: ResolvedRemoteMessage | undefined;
23
+ remote: Error | RepositoryLocator | undefined;
24
+ }
25
+ export declare function resolveRemoteRepository<OptionsShape extends AnyShape, Refinements>(display: ClackDisplay, locator: PartialRepositoryLocator, request: RemoteRepositoryRequest, skips: RequestedSkips, system: BingoSystem, template: Template<OptionsShape, Refinements>): Promise<ResolvedRemoteRepository>;
26
+ //# sourceMappingURL=resolveRemoteRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveRemoteRepository.d.ts","sourceRoot":"","sources":["../../../src/cli/setup/resolveRemoteRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAEN,wBAAwB,EACxB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,WAAW,uBAAuB;IACvC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAE9B;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;CACtC;AAED,MAAM,WAAW,qBAAqB;IACrC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,wBAAwB;IACxC,OAAO,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAC5C,MAAM,EAAE,KAAK,GAAG,iBAAiB,GAAG,SAAS,CAAC;CAC9C;AAED,wBAAsB,uBAAuB,CAC5C,YAAY,SAAS,QAAQ,EAC7B,WAAW,EAEX,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,wBAAwB,EACjC,OAAO,EAAE,uBAAuB,EAChC,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,GAC3C,OAAO,CAAC,wBAAwB,CAAC,CA8DnC"}
@@ -0,0 +1,49 @@
1
+ import { createRepositoryOnGitHub, } from "./createRepositoryOnGitHub.js";
2
+ export async function resolveRemoteRepository(display, locator, request, skips, system, template) {
3
+ if (request.offline) {
4
+ return {
5
+ message: {
6
+ level: "info",
7
+ text: "Running in --offline mode, which skips network requests and remote repository syncing.",
8
+ },
9
+ remote: undefined,
10
+ };
11
+ }
12
+ if (!system.fetchers.octokit) {
13
+ return {
14
+ message: {
15
+ level: "info",
16
+ text: "No GitHub credentials found. Running without syncing to a remote GitHub repository.",
17
+ },
18
+ remote: undefined,
19
+ };
20
+ }
21
+ if (skips.requests) {
22
+ return {
23
+ message: {
24
+ level: "info",
25
+ text: "Running without syncing to a remote GitHub repository due to --skip-requests.",
26
+ },
27
+ remote: undefined,
28
+ };
29
+ }
30
+ const existingRemote = await resolveExistingRemote(request.remote, system.runner);
31
+ if (existingRemote) {
32
+ return {
33
+ message: {
34
+ level: "info",
35
+ text: `Synchronizing repository with remote on GitHub: ${existingRemote}.`,
36
+ },
37
+ remote: existingRemote,
38
+ };
39
+ }
40
+ const createdRemote = await createRepositoryOnGitHub(display, locator, request.offline, system.fetchers.octokit, system.runner, template);
41
+ return {
42
+ message: {
43
+ level: "info",
44
+ text: `Created new remote repository on GitHub: ${createdRemote}.`,
45
+ },
46
+ remote: createdRemote,
47
+ };
48
+ }
49
+ //# sourceMappingURL=resolveRemoteRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveRemoteRepository.js","sourceRoot":"","sources":["../../../src/cli/setup/resolveRemoteRepository.ts"],"names":[],"mappings":"AAOA,OAAO,EACN,wBAAwB,GAExB,MAAM,+BAA+B,CAAC;AAuBvC,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAI5C,OAAqB,EACrB,OAAiC,EACjC,OAAgC,EAChC,KAAqB,EACrB,MAAmB,EACnB,QAA6C;IAE7C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO;YACN,OAAO,EAAE;gBACR,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,wFAAwF;aAC9F;YACD,MAAM,EAAE,SAAS;SACjB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC9B,OAAO;YACN,OAAO,EAAE;gBACR,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,qFAAqF;aAC3F;YACD,MAAM,EAAE,SAAS;SACjB,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO;YACN,OAAO,EAAE;gBACR,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,+EAA+E;aACrF;YACD,MAAM,EAAE,SAAS;SACjB,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,qBAAqB,CACjD,OAAO,CAAC,MAAM,EACd,MAAM,CAAC,MAAM,CACb,CAAC;IAEF,IAAI,cAAc,EAAE,CAAC;QACpB,OAAO;YACN,OAAO,EAAE;gBACR,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,mDAAmD,cAAc,GAAG;aAC1E;YACD,MAAM,EAAE,cAAc;SACtB,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,wBAAwB,CACnD,OAAO,EACP,OAAO,EACP,OAAO,CAAC,OAAO,EACf,MAAM,CAAC,QAAQ,CAAC,OAAO,EACvB,MAAM,CAAC,MAAM,EACb,QAAQ,CACR,CAAC;IAEF,OAAO;QACN,OAAO,EAAE;YACR,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,4CAA4C,aAAa,GAAG;SAClE;QACD,MAAM,EAAE,aAAa;KACrB,CAAC;AACH,CAAC"}
@@ -1,17 +1,17 @@
1
- import { AnyShape } from "../../types/shapes.js";
2
1
  import { RequestedSkips } from "../../types/skips.js";
3
2
  import { Template } from "../../types/templates.js";
4
3
  import { ClackDisplay } from "../display/createClackDisplay.js";
5
4
  import { ModeResults } from "../types.js";
6
- export interface RunModeSetupSettings<OptionsShape extends AnyShape, Refinements> {
5
+ export interface RunModeSetupSettings {
7
6
  argv: string[];
8
7
  directory?: string;
9
8
  display: ClackDisplay;
10
9
  from: string;
11
10
  offline?: boolean;
11
+ remote?: boolean;
12
12
  repository?: string;
13
13
  skips?: RequestedSkips;
14
- template: Template<OptionsShape, Refinements>;
14
+ template: Template;
15
15
  }
16
- export declare function runModeSetup<OptionsShape extends AnyShape, Refinements>({ argv, repository: requestedRepository, directory: requestedDirectory, display, from, offline: requestedOffline, skips, template, }: RunModeSetupSettings<OptionsShape, Refinements>): Promise<ModeResults>;
16
+ export declare function runModeSetup({ argv, repository: requestedRepository, directory: requestedDirectory, display, from, offline, remote: requestedRemote, skips, template, }: RunModeSetupSettings): Promise<ModeResults>;
17
17
  //# sourceMappingURL=runModeSetup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runModeSetup.d.ts","sourceRoot":"","sources":["../../../src/cli/setup/runModeSetup.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAUhE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK1C,MAAM,WAAW,oBAAoB,CACpC,YAAY,SAAS,QAAQ,EAC7B,WAAW;IAEX,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;CAC9C;AAED,wBAAsB,YAAY,CAAC,YAAY,SAAS,QAAQ,EAAE,WAAW,EAAE,EAC9E,IAAI,EACJ,UAAU,EAAE,mBAAmB,EAC/B,SAAS,EAAE,kBAAwC,EACnD,OAAO,EACP,IAAI,EACJ,OAAO,EAAE,gBAAwB,EACjC,KAAU,EACV,QAAQ,GACR,EAAE,oBAAoB,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAsJxE"}
1
+ {"version":3,"file":"runModeSetup.d.ts","sourceRoot":"","sources":["../../../src/cli/setup/runModeSetup.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAYhE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;CACnB;AAED,wBAAsB,YAAY,CAAC,EAClC,IAAI,EACJ,UAAU,EAAE,mBAAmB,EAC/B,SAAS,EAAE,kBAAwC,EACnD,OAAO,EACP,IAAI,EACJ,OAAe,EACf,MAAM,EAAE,eAAe,EACvB,KAAU,EACV,QAAQ,GACR,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,CAuI7C"}
@@ -4,22 +4,20 @@ import { z } from "zod";
4
4
  import { createSystemContextWithAuth } from "../../contexts/createSystemContextWithAuth.js";
5
5
  import { prepareOptions } from "../../preparation/prepareOptions.js";
6
6
  import { runTemplate } from "../../runners/runTemplate.js";
7
- import { clearLocalGitTags } from "../clearLocalGitTags.js";
8
- import { createInitialCommit } from "../createInitialCommit.js";
9
7
  import { runSpinnerTask } from "../display/runSpinnerTask.js";
10
- import { isInGitRepository } from "../isInGitRepository.js";
8
+ import { GitRepositoryType } from "../getGitRepositoryType.js";
11
9
  import { logRerunSuggestion } from "../loggers/logRerunSuggestion.js";
12
10
  import { logStartText } from "../loggers/logStartText.js";
13
11
  import { CLIMessage } from "../messages.js";
14
12
  import { parseZodArgs } from "../parsers/parseZodArgs.js";
15
13
  import { promptForDirectory } from "../prompts/promptForDirectory.js";
16
14
  import { promptForOptionSchemas } from "../prompts/promptForOptionSchemas.js";
15
+ import { prepareGitRepository } from "../repository/prepareGitRepository.js";
16
+ import { resolveLocalRepository } from "../repository/resolveLocalRepository.js";
17
17
  import { CLIStatus } from "../status.js";
18
18
  import { makeRelative } from "../utils.js";
19
- import { createRepositoryOnGitHub } from "./createRepositoryOnGitHub.js";
20
- import { createTrackingBranches } from "./createTrackingBranches.js";
21
- export async function runModeSetup({ argv, repository: requestedRepository, directory: requestedDirectory = requestedRepository, display, from, offline: requestedOffline = false, skips = {}, template, }) {
22
- logStartText("setup", requestedOffline);
19
+ export async function runModeSetup({ argv, repository: requestedRepository, directory: requestedDirectory = requestedRepository, display, from, offline = false, remote: requestedRemote, skips = {}, template, }) {
20
+ logStartText("setup", offline);
23
21
  const directory = await promptForDirectory({
24
22
  requestedDirectory,
25
23
  requestedRepository,
@@ -31,7 +29,7 @@ export async function runModeSetup({ argv, repository: requestedRepository, dire
31
29
  const system = await createSystemContextWithAuth({
32
30
  directory,
33
31
  display,
34
- offline: requestedOffline,
32
+ offline,
35
33
  });
36
34
  const providedOptions = parseZodArgs(argv, {
37
35
  directory: z.string().optional(),
@@ -43,7 +41,7 @@ export async function runModeSetup({ argv, repository: requestedRepository, dire
43
41
  return await prepareOptions(template, {
44
42
  ...system,
45
43
  existing: { ...providedOptions, directory },
46
- offline: requestedOffline,
44
+ offline,
47
45
  });
48
46
  });
49
47
  if (preparedOptions instanceof Error) {
@@ -64,21 +62,13 @@ export async function runModeSetup({ argv, repository: requestedRepository, dire
64
62
  logRerunSuggestion(argv, baseOptions.prompted);
65
63
  return { status: CLIStatus.Cancelled };
66
64
  }
67
- const { offline, remote, warning } = requestedOffline || !system.fetchers.octokit
68
- ? { offline: true, remote: undefined }
69
- : skips.requests
70
- ? {
71
- offline: false,
72
- remote: undefined,
73
- warning: "Running without creating a repository on GitHub due to --skip-requests.",
74
- }
75
- : await createRepositoryOnGitHub(display, { repository, ...baseOptions.completed }, requestedOffline, system.fetchers.octokit, system.runner, template);
65
+ const { message, remote, repositoryType } = await resolveLocalRepository(display, { repository, ...baseOptions.completed }, { offline, remote: requestedRemote }, system, template);
76
66
  if (remote instanceof Error) {
77
67
  logRerunSuggestion(argv, baseOptions.prompted);
78
68
  return { error: remote, status: CLIStatus.Error };
79
69
  }
80
- if (warning) {
81
- prompts.log.warn(warning);
70
+ if (message) {
71
+ prompts.log[message.level](message.text);
82
72
  }
83
73
  const descriptor = template.about?.name ?? from;
84
74
  const creation = await runSpinnerTask(display, `Running the ${descriptor} template`, `Ran the ${descriptor} template`, async () => await runTemplate(template, {
@@ -87,7 +77,10 @@ export async function runModeSetup({ argv, repository: requestedRepository, dire
87
77
  mode: "setup",
88
78
  offline,
89
79
  options: baseOptions.completed,
90
- skips,
80
+ skips: {
81
+ ...skips,
82
+ requests: skips.requests ?? !remote,
83
+ },
91
84
  }));
92
85
  if (creation instanceof Error) {
93
86
  logRerunSuggestion(argv, baseOptions.prompted);
@@ -96,24 +89,16 @@ export async function runModeSetup({ argv, repository: requestedRepository, dire
96
89
  status: CLIStatus.Error,
97
90
  };
98
91
  }
99
- const preparationError = (await isInGitRepository(system.runner))
100
- ? undefined
101
- : await runSpinnerTask(display, "Preparing local repository", "Prepared local repository", async () => {
102
- await createTrackingBranches(remote, system.runner);
103
- await createInitialCommit(system.runner, { push: !!remote });
104
- await clearLocalGitTags(system.runner);
105
- });
106
- prompts.log.message([
107
- "You've got a new repository ready to use in:",
108
- ` ${chalk.green(makeRelative(directory))}`,
109
- ...(remote
110
- ? [
111
- "",
112
- "It's also pushed to GitHub on:",
113
- ` ${chalk.green(`https://github.com/${remote.owner}/${remote.repository}`)}`,
114
- ]
115
- : []),
116
- ].join("\n"));
92
+ const preparationError = repositoryType !== GitRepositoryType.Subdirectory &&
93
+ (await runSpinnerTask(display, "Preparing local Git repository", "Prepared local Git repository", async () => {
94
+ await prepareGitRepository(remote, system.runner);
95
+ }));
96
+ if (!remote && repositoryType !== GitRepositoryType.Subdirectory) {
97
+ prompts.log.info([
98
+ `Run ${chalk.blue(`${argv[1]} --remote`)} in ${chalk.green(makeRelative(directory))}`,
99
+ `to create and sync a remote repository on GitHub.`,
100
+ ].join("\n"));
101
+ }
117
102
  logRerunSuggestion(argv, baseOptions.prompted);
118
103
  if (preparationError) {
119
104
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"runModeSetup.js","sourceRoot":"","sources":["../../../src/cli/setup/runModeSetup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runModeSetup.js","sourceRoot":"","sources":["../../../src/cli/setup/runModeSetup.ts"],"names":[],"mappings":"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"}