@appium/docutils 0.1.6 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/README.md +2 -5
  2. package/build/lib/build/mkdocs.d.ts +58 -0
  3. package/build/lib/build/mkdocs.d.ts.map +1 -0
  4. package/build/lib/build/mkdocs.js +80 -0
  5. package/build/lib/build/mkdocs.js.map +1 -0
  6. package/build/lib/build/typedoc.d.ts +55 -0
  7. package/build/lib/build/typedoc.d.ts.map +1 -0
  8. package/build/lib/build/typedoc.js +120 -0
  9. package/build/lib/build/typedoc.js.map +1 -0
  10. package/build/lib/build-api.d.ts +18 -0
  11. package/build/lib/build-api.d.ts.map +1 -0
  12. package/build/lib/build-api.js +75 -0
  13. package/build/lib/build-api.js.map +1 -0
  14. package/build/lib/build.d.ts +21 -0
  15. package/build/lib/build.d.ts.map +1 -0
  16. package/build/lib/build.js +71 -0
  17. package/build/lib/build.js.map +1 -0
  18. package/build/lib/builder/deploy.d.ts +89 -0
  19. package/build/lib/builder/deploy.d.ts.map +1 -0
  20. package/build/lib/builder/deploy.js +105 -0
  21. package/build/lib/builder/deploy.js.map +1 -0
  22. package/build/lib/builder/index.d.ts +5 -0
  23. package/build/lib/builder/index.d.ts.map +1 -0
  24. package/build/lib/builder/index.js +21 -0
  25. package/build/lib/builder/index.js.map +1 -0
  26. package/build/lib/builder/nav.d.ts +81 -0
  27. package/build/lib/builder/nav.d.ts.map +1 -0
  28. package/build/lib/builder/nav.js +280 -0
  29. package/build/lib/builder/nav.js.map +1 -0
  30. package/build/lib/builder/reference.d.ts +57 -0
  31. package/build/lib/builder/reference.d.ts.map +1 -0
  32. package/build/lib/builder/reference.js +129 -0
  33. package/build/lib/builder/reference.js.map +1 -0
  34. package/build/lib/builder/site.d.ts +55 -0
  35. package/build/lib/builder/site.d.ts.map +1 -0
  36. package/build/lib/builder/site.js +81 -0
  37. package/build/lib/builder/site.js.map +1 -0
  38. package/build/lib/cli/command/build.d.ts +178 -0
  39. package/build/lib/cli/command/build.d.ts.map +1 -0
  40. package/build/lib/cli/command/build.js +223 -0
  41. package/build/lib/cli/command/build.js.map +1 -0
  42. package/build/lib/cli/command/deploy.d.ts +1 -0
  43. package/build/lib/cli/command/deploy.d.ts.map +1 -0
  44. package/build/lib/cli/command/deploy.js +2 -0
  45. package/build/lib/cli/command/deploy.js.map +1 -0
  46. package/build/lib/cli/command/index.d.ts +4 -0
  47. package/build/lib/cli/command/index.d.ts.map +1 -0
  48. package/build/lib/cli/command/index.js +13 -0
  49. package/build/lib/cli/command/index.js.map +1 -0
  50. package/build/lib/cli/command/init.d.ts +143 -0
  51. package/build/lib/cli/command/init.d.ts.map +1 -0
  52. package/build/lib/cli/command/init.js +164 -0
  53. package/build/lib/cli/command/init.js.map +1 -0
  54. package/build/lib/cli/command/validate.d.ts +76 -0
  55. package/build/lib/cli/command/validate.d.ts.map +1 -0
  56. package/build/lib/cli/command/validate.js +115 -0
  57. package/build/lib/cli/command/validate.js.map +1 -0
  58. package/build/lib/cli/command-init.d.ts +143 -0
  59. package/build/lib/cli/command-init.d.ts.map +1 -0
  60. package/build/lib/cli/command-init.js +164 -0
  61. package/build/lib/cli/command-init.js.map +1 -0
  62. package/build/lib/cli/command-validate.d.ts +52 -0
  63. package/build/lib/cli/command-validate.d.ts.map +1 -0
  64. package/build/lib/cli/command-validate.js +66 -0
  65. package/build/lib/cli/command-validate.js.map +1 -0
  66. package/build/lib/cli/config.d.ts +28 -0
  67. package/build/lib/cli/config.d.ts.map +1 -0
  68. package/build/lib/cli/config.js +114 -0
  69. package/build/lib/cli/config.js.map +1 -0
  70. package/build/lib/cli/index.d.ts +13 -0
  71. package/build/lib/cli/index.d.ts.map +1 -0
  72. package/build/lib/cli/index.js +91 -0
  73. package/build/lib/cli/index.js.map +1 -0
  74. package/build/lib/cli/init.d.ts +143 -0
  75. package/build/lib/cli/init.d.ts.map +1 -0
  76. package/build/lib/cli/init.js +164 -0
  77. package/build/lib/cli/init.js.map +1 -0
  78. package/build/lib/cli/options.d.ts +1 -0
  79. package/build/lib/cli/options.d.ts.map +1 -0
  80. package/build/lib/cli/options.js +2 -0
  81. package/build/lib/cli/options.js.map +1 -0
  82. package/build/lib/cli/validate.d.ts +1 -0
  83. package/build/lib/cli/validate.d.ts.map +1 -0
  84. package/build/lib/cli/validate.js +2 -0
  85. package/build/lib/cli/validate.js.map +1 -0
  86. package/build/lib/cli.d.ts +10 -0
  87. package/build/lib/cli.d.ts.map +1 -0
  88. package/build/lib/cli.js +328 -0
  89. package/build/lib/cli.js.map +1 -0
  90. package/build/lib/constants.d.ts +125 -0
  91. package/build/lib/constants.d.ts.map +1 -0
  92. package/build/lib/constants.js +133 -0
  93. package/build/lib/constants.js.map +1 -0
  94. package/build/lib/error.d.ts +3 -0
  95. package/build/lib/error.d.ts.map +1 -0
  96. package/build/lib/error.js +7 -0
  97. package/build/lib/error.js.map +1 -0
  98. package/build/lib/fs.d.ts +142 -0
  99. package/build/lib/fs.d.ts.map +1 -0
  100. package/build/lib/fs.js +237 -0
  101. package/build/lib/fs.js.map +1 -0
  102. package/build/lib/index.d.ts +5 -2
  103. package/build/lib/index.d.ts.map +1 -1
  104. package/build/lib/index.js +4 -1
  105. package/build/lib/index.js.map +1 -1
  106. package/build/lib/init-task.d.ts +49 -0
  107. package/build/lib/init-task.d.ts.map +1 -0
  108. package/build/lib/init-task.js +95 -0
  109. package/build/lib/init-task.js.map +1 -0
  110. package/build/lib/init.d.ts +202 -0
  111. package/build/lib/init.d.ts.map +1 -0
  112. package/build/lib/init.js +225 -0
  113. package/build/lib/init.js.map +1 -0
  114. package/build/lib/io.d.ts +1 -0
  115. package/build/lib/io.d.ts.map +1 -0
  116. package/build/lib/io.js +2 -0
  117. package/build/lib/io.js.map +1 -0
  118. package/build/lib/logger.d.ts +17 -2
  119. package/build/lib/logger.d.ts.map +1 -1
  120. package/build/lib/logger.js +187 -2
  121. package/build/lib/logger.js.map +1 -1
  122. package/build/lib/mike.d.ts +3 -0
  123. package/build/lib/mike.d.ts.map +1 -1
  124. package/build/lib/mike.js +4 -0
  125. package/build/lib/mike.js.map +1 -1
  126. package/build/lib/mkdocs.d.ts +51 -12
  127. package/build/lib/mkdocs.d.ts.map +1 -1
  128. package/build/lib/mkdocs.js +64 -32
  129. package/build/lib/mkdocs.js.map +1 -1
  130. package/build/lib/model.d.ts +80 -0
  131. package/build/lib/model.d.ts.map +1 -0
  132. package/build/lib/model.js +8 -0
  133. package/build/lib/model.js.map +1 -0
  134. package/build/lib/nav.d.ts +47 -0
  135. package/build/lib/nav.d.ts.map +1 -0
  136. package/build/lib/nav.js +132 -0
  137. package/build/lib/nav.js.map +1 -0
  138. package/build/lib/scaffold.d.ts +95 -0
  139. package/build/lib/scaffold.d.ts.map +1 -0
  140. package/build/lib/scaffold.js +103 -0
  141. package/build/lib/scaffold.js.map +1 -0
  142. package/build/lib/test.d.ts +9 -0
  143. package/build/lib/test.d.ts.map +1 -0
  144. package/build/lib/test.js +2 -0
  145. package/build/lib/test.js.map +1 -0
  146. package/build/lib/typedoc.d.ts +55 -0
  147. package/build/lib/typedoc.d.ts.map +1 -0
  148. package/build/lib/typedoc.js +122 -0
  149. package/build/lib/typedoc.js.map +1 -0
  150. package/build/lib/types.d.ts +52 -0
  151. package/build/lib/types.d.ts.map +1 -0
  152. package/build/lib/types.js +7 -0
  153. package/build/lib/types.js.map +1 -0
  154. package/build/lib/util.d.ts +42 -0
  155. package/build/lib/util.d.ts.map +1 -0
  156. package/build/lib/util.js +56 -0
  157. package/build/lib/util.js.map +1 -0
  158. package/build/lib/validate.d.ts +218 -0
  159. package/build/lib/validate.d.ts.map +1 -0
  160. package/build/lib/validate.js +501 -0
  161. package/build/lib/validate.js.map +1 -0
  162. package/build/lib/validation/base-validator.d.ts +218 -0
  163. package/build/lib/validation/base-validator.d.ts.map +1 -0
  164. package/build/lib/validation/base-validator.js +453 -0
  165. package/build/lib/validation/base-validator.js.map +1 -0
  166. package/build/lib/validation/mkdocs-validator.d.ts +5 -0
  167. package/build/lib/validation/mkdocs-validator.d.ts.map +1 -0
  168. package/build/lib/validation/mkdocs-validator.js +54 -0
  169. package/build/lib/validation/mkdocs-validator.js.map +1 -0
  170. package/build/lib/validation/python-validator.d.ts +1 -0
  171. package/build/lib/validation/python-validator.d.ts.map +1 -0
  172. package/build/lib/validation/python-validator.js +2 -0
  173. package/build/lib/validation/python-validator.js.map +1 -0
  174. package/build/lib/validation/python.d.ts +1 -0
  175. package/build/lib/validation/python.d.ts.map +1 -0
  176. package/build/lib/validation/python.js +2 -0
  177. package/build/lib/validation/python.js.map +1 -0
  178. package/build/lib/validation/validate.d.ts +221 -0
  179. package/build/lib/validation/validate.d.ts.map +1 -0
  180. package/build/lib/validation/validate.js +508 -0
  181. package/build/lib/validation/validate.js.map +1 -0
  182. package/build/lib/validation/validator.d.ts +220 -0
  183. package/build/lib/validation/validator.d.ts.map +1 -0
  184. package/build/lib/validation/validator.js +470 -0
  185. package/build/lib/validation/validator.js.map +1 -0
  186. package/lib/builder/deploy.ts +223 -0
  187. package/lib/builder/index.ts +4 -0
  188. package/lib/builder/nav.ts +399 -0
  189. package/lib/builder/reference.ts +191 -0
  190. package/lib/builder/site.ts +143 -0
  191. package/lib/cli/command/build.ts +229 -0
  192. package/lib/cli/command/index.ts +3 -0
  193. package/lib/cli/command/init.ts +166 -0
  194. package/lib/cli/command/validate.ts +122 -0
  195. package/lib/cli/config.ts +89 -0
  196. package/lib/cli/index.ts +88 -0
  197. package/lib/constants.ts +150 -0
  198. package/lib/error.ts +1 -0
  199. package/lib/fs.ts +274 -0
  200. package/lib/index.ts +5 -0
  201. package/lib/init.ts +319 -0
  202. package/lib/logger.ts +198 -0
  203. package/lib/mike.js +4 -0
  204. package/lib/model.ts +92 -0
  205. package/lib/scaffold.ts +225 -0
  206. package/lib/util.ts +76 -0
  207. package/lib/validate.ts +728 -0
  208. package/package.json +38 -6
  209. package/requirements.txt +4 -0
  210. package/tsconfig.json +2 -1
  211. package/build/tsconfig.tsbuildinfo +0 -1
  212. package/lib/index.js +0 -2
  213. package/lib/logger.js +0 -3
  214. package/lib/mkdocs.js +0 -43
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Functions which touch the filesystem
3
+ * @module
4
+ */
5
+ import { NormalizedPackageJson, PackageJson } from 'read-pkg';
6
+ import { JsonValue } from 'type-fest';
7
+ import { fs } from '@appium/support';
8
+ import _ from 'lodash';
9
+ import { MkDocsYml } from './model';
10
+ /**
11
+ * Finds path to closest `package.json`
12
+ *
13
+ * Caches result
14
+ */
15
+ export declare const findPkgDir: {
16
+ (cwd?: string | undefined): Promise<string | undefined>;
17
+ sync: (cwd?: string | undefined) => string | undefined;
18
+ } & _.MemoizedFunction;
19
+ /**
20
+ * Stringifies a thing into a YAML
21
+ * @param value Something to yamlify
22
+ * @returns Some nice YAML 4 u
23
+ */
24
+ export declare const stringifyYaml: (value: JsonValue) => string;
25
+ /**
26
+ * Stringifies something into JSON5. I think the only difference between this and `JSON.stringify`
27
+ * is that if an object has a `toJSON5()` method, it will be used.
28
+ * @param value Something to stringify
29
+ * @returns JSON5 string
30
+ */
31
+ export declare const stringifyJson5: (value: JsonValue) => string;
32
+ /**
33
+ * Pretty-stringifies a JSON value
34
+ * @param value Something to stringify
35
+ * @returns JSON string
36
+ */
37
+ export declare const stringifyJson: (value: JsonValue) => string;
38
+ /**
39
+ * Reads a YAML file, parses it and caches the result
40
+ */
41
+ export declare const readYaml: ((filepath: string) => Promise<any>) & _.MemoizedFunction;
42
+ /**
43
+ * Finds a file from `cwd`. Searches up to the package root (dir containing `package.json`).
44
+ *
45
+ * @param filename Filename to look for
46
+ * @param cwd Dir it should be in
47
+ * @returns
48
+ */
49
+ export declare function findInPkgDir(filename: string, cwd?: string): Promise<string | undefined>;
50
+ /**
51
+ * Finds a `typedoc.json`, expected to be a sibling of `package.json`
52
+ *
53
+ * Caches the result.
54
+ * @param cwd - Current working directory
55
+ * @returns Path to `typedoc.json`
56
+ */
57
+ export declare const findTypeDocJsonPath: ((cwd?: any) => Promise<string | undefined>) & _.MemoizedFunction;
58
+ /**
59
+ * Finds an `mkdocs.yml`, expected to be a sibling of `package.json`
60
+ *
61
+ * Caches the result.
62
+ * @param cwd - Current working directory
63
+ * @returns Path to `mkdocs.yml`
64
+ */
65
+ export declare const findMkDocsYml: ((cwd?: string | undefined) => Promise<string | undefined>) & _.MemoizedFunction;
66
+ /**
67
+ * Given a directory path, finds closest `package.json` and reads it.
68
+ * @param cwd - Current working directory
69
+ * @param normalize - Whether or not to normalize the result
70
+ * @returns A {@linkcode PackageJson} object if `normalize` is `false`, otherwise a {@linkcode NormalizedPackageJson} object
71
+ */
72
+ declare function _readPkgJson(cwd: string, normalize: true): Promise<{
73
+ pkgPath: string;
74
+ pkg: NormalizedPackageJson;
75
+ }>;
76
+ declare function _readPkgJson(cwd: string): Promise<{
77
+ pkgPath: string;
78
+ pkg: PackageJson;
79
+ }>;
80
+ /**
81
+ * Given a directory to start from, reads a `package.json` file and returns its path and contents
82
+ */
83
+ export declare const readPackageJson: typeof _readPkgJson & _.MemoizedFunction;
84
+ /**
85
+ * Reads a `typedoc.json` file and returns its parsed contents.
86
+ *
87
+ * TypeDoc expands the "extends" field, which is why we use its facilities. It, unfortunately, is a
88
+ * blocking operation.
89
+ */
90
+ export declare const readTypedocJson: ((typedocJsonPath: string) => Readonly<Partial<import("typedoc").TypeDocOptions>>) & _.MemoizedFunction;
91
+ /**
92
+ * Reads a JSON5 file and parses it
93
+ */
94
+ export declare const readJson5: (<T extends JsonValue>(filepath: string) => Promise<T>) & _.MemoizedFunction;
95
+ /**
96
+ * Reads a JSON file and parses it
97
+ */
98
+ export declare const readJson: (<T extends JsonValue>(filepath: string) => Promise<T>) & _.MemoizedFunction;
99
+ /**
100
+ * Writes a file, but will not overwrite an existing file unless `overwrite` is true
101
+ *
102
+ * Will stringify JSON objects
103
+ * @param filepath - Path to file
104
+ * @param content - File contents
105
+ * @param overwrite - If `true`, overwrite existing files
106
+ */
107
+ export declare function safeWriteFile(filepath: string, content: JsonValue, overwrite?: boolean): Promise<void>;
108
+ /**
109
+ * `which` with memoization
110
+ */
111
+ export declare const cachedWhich: typeof fs.which & _.MemoizedFunction;
112
+ /**
113
+ * Finds `mkdocs` executable
114
+ */
115
+ export declare const whichMkDocs: (options?: (fs.which.AsyncOptions & fs.which.OptionsFirst) | undefined) => Promise<string>;
116
+ /**
117
+ * Finds `npm` executable
118
+ */
119
+ export declare const whichNpm: (options?: (fs.which.AsyncOptions & fs.which.OptionsFirst) | undefined) => Promise<string>;
120
+ /**
121
+ * Finds `python` executable
122
+ */
123
+ export declare const whichPython: (options?: (fs.which.AsyncOptions & fs.which.OptionsFirst) | undefined) => Promise<string>;
124
+ /**
125
+ * Finds `mike` executable
126
+ */
127
+ export declare const whichMike: (options?: (fs.which.AsyncOptions & fs.which.OptionsFirst) | undefined) => Promise<string>;
128
+ /**
129
+ * Reads an `mkdocs.yml` file, merges inherited configs, and returns the result. The result is cached.
130
+ *
131
+ * **IMPORTANT**: The paths of `site_dir` and `docs_dir` are resolved to absolute paths, since they
132
+ * are expressed as relative paths, and each inherited config file can live in different paths.
133
+ * @param filepath Patgh to an `mkdocs.yml` file
134
+ * @returns Parsed `mkdocs.yml` file
135
+ */
136
+ export declare const readMkDocsYml: ((filepath: string, cwd?: any) => Promise<MkDocsYml>) & _.MemoizedFunction;
137
+ /**
138
+ * Given an abs path to a directory, return a list of all abs paths of all directories in it
139
+ */
140
+ export declare const findDirsIn: ((dirpath: string) => Promise<string[]>) & _.MemoizedFunction;
141
+ export {};
142
+ //# sourceMappingURL=fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../lib/fs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAgB,EAAC,qBAAqB,EAAE,WAAW,EAAC,MAAM,UAAU,CAAC;AAErE,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAC;AACpC,OAAO,EAAC,EAAE,EAAC,MAAM,iBAAiB,CAAC;AAEnC,OAAO,CAAC,MAAM,QAAQ,CAAC;AAcvB,OAAO,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAIlC;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;sBAAqB,CAAC;AAE7C;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAIjD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAEjD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAIjD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,cAA8B,MAAM,uCAKxD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,GAAG,SAAgB,GAClB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAM7B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,mEAI9B,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,kFAAsD,CAAC;AAEjF;;;;;GAKG;AACH,iBAAe,YAAY,CACzB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,IAAI,GACd,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,qBAAqB,CAAA;CAAC,CAAC,CAAC;AAC1D,iBAAe,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,WAAW,CAAA;CAAC,CAAC,CAAC;AAsBvF;;GAEG;AACH,eAAO,MAAM,eAAe,0CAA0B,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,qBAA+B,MAAM,8EAO/D,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS,mCACkB,MAAM,qCAE7C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,mCACmB,MAAM,qCAE7C,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,UAAQ,iBAMpF;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,sCAAsB,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,WAAW,4FAAsC,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,QAAQ,4FAAmC,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,WAAW,4FAAsC,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,SAAS,4FAAoC,CAAC;AAE3D;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,cACP,MAAM,gBAAwB,QAAQ,SAAS,CAAC,sBAyBlE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,aAA6B,MAAM,KAAG,QAAQ,MAAM,EAAE,CAAC,sBAM5E,CAAC"}
@@ -0,0 +1,237 @@
1
+ "use strict";
2
+ /**
3
+ * Functions which touch the filesystem
4
+ * @module
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || function (mod) {
23
+ if (mod && mod.__esModule) return mod;
24
+ var result = {};
25
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
+ __setModuleDefault(result, mod);
27
+ return result;
28
+ };
29
+ var __importDefault = (this && this.__importDefault) || function (mod) {
30
+ return (mod && mod.__esModule) ? mod : { "default": mod };
31
+ };
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ exports.findDirsIn = exports.readMkDocsYml = exports.whichMike = exports.whichPython = exports.whichNpm = exports.whichMkDocs = exports.cachedWhich = exports.safeWriteFile = exports.readJson = exports.readJson5 = exports.readTypedocJson = exports.readPackageJson = exports.findMkDocsYml = exports.findTypeDocJsonPath = exports.findInPkgDir = exports.readYaml = exports.stringifyJson = exports.stringifyJson5 = exports.stringifyYaml = exports.findPkgDir = void 0;
34
+ const find_up_1 = __importDefault(require("find-up"));
35
+ const yaml_1 = __importDefault(require("yaml"));
36
+ const read_pkg_1 = __importDefault(require("read-pkg"));
37
+ const node_path_1 = __importDefault(require("node:path"));
38
+ const support_1 = require("@appium/support");
39
+ const JSON5 = __importStar(require("json5"));
40
+ const lodash_1 = __importDefault(require("lodash"));
41
+ const pkg_dir_1 = __importDefault(require("pkg-dir"));
42
+ const logger_1 = __importDefault(require("./logger"));
43
+ const typedoc_1 = require("typedoc");
44
+ const constants_1 = require("./constants");
45
+ const error_1 = require("./error");
46
+ const log = logger_1.default.withTag('fs');
47
+ /**
48
+ * Finds path to closest `package.json`
49
+ *
50
+ * Caches result
51
+ */
52
+ exports.findPkgDir = lodash_1.default.memoize(pkg_dir_1.default);
53
+ /**
54
+ * Stringifies a thing into a YAML
55
+ * @param value Something to yamlify
56
+ * @returns Some nice YAML 4 u
57
+ */
58
+ exports.stringifyYaml = lodash_1.default.partialRight(yaml_1.default.stringify, { indent: 2 }, undefined);
59
+ /**
60
+ * Stringifies something into JSON5. I think the only difference between this and `JSON.stringify`
61
+ * is that if an object has a `toJSON5()` method, it will be used.
62
+ * @param value Something to stringify
63
+ * @returns JSON5 string
64
+ */
65
+ exports.stringifyJson5 = lodash_1.default.partialRight(JSON5.stringify, {
66
+ indent: 2,
67
+ });
68
+ /**
69
+ * Pretty-stringifies a JSON value
70
+ * @param value Something to stringify
71
+ * @returns JSON string
72
+ */
73
+ exports.stringifyJson = lodash_1.default.partialRight(JSON.stringify, 2, undefined);
74
+ /**
75
+ * Reads a YAML file, parses it and caches the result
76
+ */
77
+ exports.readYaml = lodash_1.default.memoize(async (filepath) => yaml_1.default.parse(await support_1.fs.readFile(filepath, 'utf8'), {
78
+ prettyErrors: false,
79
+ logLevel: 'silent',
80
+ }));
81
+ /**
82
+ * Finds a file from `cwd`. Searches up to the package root (dir containing `package.json`).
83
+ *
84
+ * @param filename Filename to look for
85
+ * @param cwd Dir it should be in
86
+ * @returns
87
+ */
88
+ async function findInPkgDir(filename, cwd = process.cwd()) {
89
+ const pkgDir = await (0, exports.findPkgDir)(cwd);
90
+ if (!pkgDir) {
91
+ return;
92
+ }
93
+ return node_path_1.default.join(pkgDir, filename);
94
+ }
95
+ exports.findInPkgDir = findInPkgDir;
96
+ /**
97
+ * Finds a `typedoc.json`, expected to be a sibling of `package.json`
98
+ *
99
+ * Caches the result.
100
+ * @param cwd - Current working directory
101
+ * @returns Path to `typedoc.json`
102
+ */
103
+ exports.findTypeDocJsonPath = lodash_1.default.memoize(async (cwd = process.cwd()) => {
104
+ const filepath = await (0, find_up_1.default)(constants_1.NAME_TYPEDOC_JSON, { cwd, type: 'file' });
105
+ log.debug('Found `typedoc.json` at %s', filepath);
106
+ return filepath;
107
+ });
108
+ /**
109
+ * Finds an `mkdocs.yml`, expected to be a sibling of `package.json`
110
+ *
111
+ * Caches the result.
112
+ * @param cwd - Current working directory
113
+ * @returns Path to `mkdocs.yml`
114
+ */
115
+ exports.findMkDocsYml = lodash_1.default.memoize(lodash_1.default.partial(findInPkgDir, constants_1.NAME_MKDOCS_YML));
116
+ async function _readPkgJson(cwd, normalize) {
117
+ const pkgDir = await (0, exports.findPkgDir)(cwd);
118
+ if (!pkgDir) {
119
+ throw new error_1.DocutilsError(`Could not find a ${constants_1.NAME_PACKAGE_JSON} near ${cwd}; please create it before using this utility`);
120
+ }
121
+ const pkgPath = node_path_1.default.join(pkgDir, constants_1.NAME_PACKAGE_JSON);
122
+ log.debug('Found `package.json` at %s', pkgPath);
123
+ if (normalize) {
124
+ const pkg = await (0, read_pkg_1.default)({ cwd: pkgDir, normalize });
125
+ return { pkg, pkgPath };
126
+ }
127
+ else {
128
+ const pkg = await (0, read_pkg_1.default)({ cwd: pkgDir });
129
+ return { pkg, pkgPath };
130
+ }
131
+ }
132
+ /**
133
+ * Given a directory to start from, reads a `package.json` file and returns its path and contents
134
+ */
135
+ exports.readPackageJson = lodash_1.default.memoize(_readPkgJson);
136
+ /**
137
+ * Reads a `typedoc.json` file and returns its parsed contents.
138
+ *
139
+ * TypeDoc expands the "extends" field, which is why we use its facilities. It, unfortunately, is a
140
+ * blocking operation.
141
+ */
142
+ exports.readTypedocJson = lodash_1.default.memoize((typedocJsonPath) => {
143
+ const app = new typedoc_1.Application();
144
+ app.options.setValue('plugin', 'none');
145
+ app.options.setValue('logger', 'none');
146
+ app.options.addReader(new typedoc_1.TypeDocReader());
147
+ app.bootstrap({ options: node_path_1.default.dirname(typedocJsonPath) });
148
+ return app.options.getRawValues();
149
+ });
150
+ /**
151
+ * Reads a JSON5 file and parses it
152
+ */
153
+ exports.readJson5 = lodash_1.default.memoize(async (filepath) => JSON5.parse(await support_1.fs.readFile(filepath, 'utf8')));
154
+ /**
155
+ * Reads a JSON file and parses it
156
+ */
157
+ exports.readJson = lodash_1.default.memoize(async (filepath) => JSON.parse(await support_1.fs.readFile(filepath, 'utf8')));
158
+ /**
159
+ * Writes a file, but will not overwrite an existing file unless `overwrite` is true
160
+ *
161
+ * Will stringify JSON objects
162
+ * @param filepath - Path to file
163
+ * @param content - File contents
164
+ * @param overwrite - If `true`, overwrite existing files
165
+ */
166
+ function safeWriteFile(filepath, content, overwrite = false) {
167
+ const data = lodash_1.default.isString(content) ? content : JSON.stringify(content, undefined, 2);
168
+ return support_1.fs.writeFile(filepath, data, {
169
+ encoding: 'utf8',
170
+ flag: overwrite ? 'w' : 'wx',
171
+ });
172
+ }
173
+ exports.safeWriteFile = safeWriteFile;
174
+ /**
175
+ * `which` with memoization
176
+ */
177
+ exports.cachedWhich = lodash_1.default.memoize(support_1.fs.which);
178
+ /**
179
+ * Finds `mkdocs` executable
180
+ */
181
+ exports.whichMkDocs = lodash_1.default.partial(exports.cachedWhich, constants_1.NAME_MKDOCS);
182
+ /**
183
+ * Finds `npm` executable
184
+ */
185
+ exports.whichNpm = lodash_1.default.partial(exports.cachedWhich, constants_1.NAME_NPM);
186
+ /**
187
+ * Finds `python` executable
188
+ */
189
+ exports.whichPython = lodash_1.default.partial(exports.cachedWhich, constants_1.NAME_PYTHON);
190
+ /**
191
+ * Finds `mike` executable
192
+ */
193
+ exports.whichMike = lodash_1.default.partial(exports.cachedWhich, constants_1.NAME_MIKE);
194
+ /**
195
+ * Reads an `mkdocs.yml` file, merges inherited configs, and returns the result. The result is cached.
196
+ *
197
+ * **IMPORTANT**: The paths of `site_dir` and `docs_dir` are resolved to absolute paths, since they
198
+ * are expressed as relative paths, and each inherited config file can live in different paths.
199
+ * @param filepath Patgh to an `mkdocs.yml` file
200
+ * @returns Parsed `mkdocs.yml` file
201
+ */
202
+ exports.readMkDocsYml = lodash_1.default.memoize(async (filepath, cwd = process.cwd()) => {
203
+ let mkDocsYml = await (0, exports.readYaml)(filepath);
204
+ if (mkDocsYml.site_dir) {
205
+ mkDocsYml.site_dir = node_path_1.default.resolve(cwd, node_path_1.default.dirname(filepath), mkDocsYml.site_dir);
206
+ }
207
+ if (mkDocsYml.INHERIT) {
208
+ let inheritPath = node_path_1.default.resolve(node_path_1.default.dirname(filepath), mkDocsYml.INHERIT);
209
+ while (inheritPath) {
210
+ const inheritYml = await (0, exports.readYaml)(inheritPath);
211
+ if (inheritYml.site_dir) {
212
+ inheritYml.site_dir = node_path_1.default.resolve(node_path_1.default.dirname(inheritPath), inheritYml.site_dir);
213
+ log.debug('Resolved site_dir to %s', inheritYml.site_dir);
214
+ }
215
+ if (inheritYml.docs_dir) {
216
+ inheritYml.docs_dir = node_path_1.default.resolve(node_path_1.default.dirname(inheritPath), inheritYml.docs_dir);
217
+ log.debug('Resolved docs_dir to %s', inheritYml.docs_dir);
218
+ }
219
+ mkDocsYml = lodash_1.default.defaultsDeep(mkDocsYml, inheritYml);
220
+ inheritPath = inheritYml.INHERIT
221
+ ? node_path_1.default.resolve(node_path_1.default.dirname(inheritPath), inheritYml.INHERIT)
222
+ : undefined;
223
+ }
224
+ }
225
+ return mkDocsYml;
226
+ });
227
+ /**
228
+ * Given an abs path to a directory, return a list of all abs paths of all directories in it
229
+ */
230
+ exports.findDirsIn = lodash_1.default.memoize(async (dirpath) => {
231
+ if (!node_path_1.default.isAbsolute(dirpath)) {
232
+ throw new error_1.DocutilsError(`Expected absolute path, got '${dirpath}'`);
233
+ }
234
+ const dirEnts = await support_1.fs.readdir(dirpath, { withFileTypes: true });
235
+ return dirEnts.filter((ent) => ent.isDirectory()).map((ent) => node_path_1.default.join(dirpath, ent.name));
236
+ });
237
+ //# sourceMappingURL=fs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../lib/fs.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
- export * from "./mkdocs";
2
- export * from "./mike";
1
+ export * from './mike';
2
+ export * from './builder';
3
+ export * from './validate';
4
+ export * from './scaffold';
5
+ export * from './constants';
3
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.js"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
@@ -14,6 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./mkdocs"), exports);
18
17
  __exportStar(require("./mike"), exports);
18
+ __exportStar(require("./builder"), exports);
19
+ __exportStar(require("./validate"), exports);
20
+ __exportStar(require("./scaffold"), exports);
21
+ __exportStar(require("./constants"), exports);
19
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,yCAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,4CAA0B;AAC1B,6CAA2B;AAC3B,6CAA2B;AAC3B,8CAA4B"}
@@ -0,0 +1,49 @@
1
+ import { NormalizedPackageJson } from 'read-pkg';
2
+ import { JsonValue, JsonObject } from 'type-fest';
3
+ export declare type TaskSpecificOpts<Opts extends ScaffoldTaskOptions> = Omit<Opts, 'overwrite' | 'cwd' | 'packageJson' | 'dest' | 'dryRun'>;
4
+ export declare type ScaffoldTask<Opts extends ScaffoldTaskOptions, T extends JsonObject> = (opts: Opts) => Promise<ScaffoldTaskResult<T>>;
5
+ /**
6
+ * Factory for a {@linkcode ScaffoldTask}.
7
+ *
8
+ * @param defaultFilename Default file to create
9
+ * @param defaultContent Default content to use
10
+ * @param description Description of task
11
+ * @param opts Options
12
+ * @returns A scaffold task
13
+ */
14
+ export declare function createScaffoldTask<Opts extends ScaffoldTaskOptions, T extends JsonObject>(defaultFilename: string, defaultContent: T, description: string, { transform, deserialize, serialize, }?: CreateScaffoldTaskOptions<Opts, T>): ScaffoldTask<Opts, T>;
15
+ export declare type ScaffoldTaskTransformer<Opts extends ScaffoldTaskOptions, T extends JsonValue> = (content: Readonly<T>, opts: TaskSpecificOpts<Opts>, pkg: NormalizedPackageJson) => T;
16
+ export declare type ScaffoldTaskDeserializer<T extends JsonValue> = (content: string) => T;
17
+ export declare type ScaffoldTaskSerializer<T extends JsonValue> = (content: T) => string;
18
+ export interface CreateScaffoldTaskOptions<Opts extends ScaffoldTaskOptions, T extends JsonValue> {
19
+ transform?: ScaffoldTaskTransformer<Opts, T>;
20
+ deserialize?: ScaffoldTaskDeserializer<T>;
21
+ serialize?: ScaffoldTaskSerializer<T>;
22
+ }
23
+ export interface ScaffoldTaskOptions {
24
+ /**
25
+ * Current working directory
26
+ */
27
+ cwd?: string;
28
+ /**
29
+ * Destination file
30
+ */
31
+ dest?: string;
32
+ /**
33
+ * If `true` will not write files
34
+ */
35
+ dryRun?: boolean;
36
+ /**
37
+ * If `true` will overwrite fields in `typedoc.json`
38
+ */
39
+ overwrite?: boolean;
40
+ /**
41
+ * Path to `package.json`
42
+ */
43
+ packageJson?: string;
44
+ }
45
+ export interface ScaffoldTaskResult<T> {
46
+ content: T;
47
+ path: string;
48
+ }
49
+ //# sourceMappingURL=init-task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-task.d.ts","sourceRoot":"","sources":["../../lib/init-task.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,qBAAqB,EAAC,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAC,SAAS,EAAE,UAAU,EAAC,MAAM,WAAW,CAAC;AAiChD,oBAAY,gBAAgB,CAAC,IAAI,SAAS,mBAAmB,IAAI,IAAI,CACnE,IAAI,EACJ,WAAW,GAAG,KAAK,GAAG,aAAa,GAAG,MAAM,GAAG,QAAQ,CACxD,CAAC;AAEF,oBAAY,YAAY,CAAC,IAAI,SAAS,mBAAmB,EAAE,CAAC,SAAS,UAAU,IAAI,CACjF,IAAI,EAAE,IAAI,KACP,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpC;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,SAAS,mBAAmB,EAAE,CAAC,SAAS,UAAU,EACvF,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,CAAC,EACjB,WAAW,EAAE,MAAM,EACnB,EACE,SAAsB,EACtB,WAAwB,EACxB,SAAyB,GAC1B,GAAE,yBAAyB,CAAC,IAAI,EAAE,CAAC,CAAM,GACzC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAqEvB;AAED,oBAAY,uBAAuB,CAAC,IAAI,SAAS,mBAAmB,EAAE,CAAC,SAAS,SAAS,IAAI,CAC3F,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EACpB,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAC5B,GAAG,EAAE,qBAAqB,KACvB,CAAC,CAAC;AAEP,oBAAY,wBAAwB,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,CAAC;AAEnF,oBAAY,sBAAsB,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,MAAM,CAAC;AAEjF,MAAM,WAAW,yBAAyB,CAAC,IAAI,SAAS,mBAAmB,EAAE,CAAC,SAAS,SAAS;IAC9F,SAAS,CAAC,EAAE,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7C,WAAW,CAAC,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAC1C,SAAS,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createScaffoldTask = void 0;
7
+ const support_1 = require("@appium/support");
8
+ const logger_1 = __importDefault(require("./logger"));
9
+ const node_path_1 = __importDefault(require("node:path"));
10
+ const diff_1 = require("diff");
11
+ const error_1 = require("./error");
12
+ const util_1 = require("./util");
13
+ const lodash_1 = __importDefault(require("lodash"));
14
+ const NAME_ERR_ENOENT = 'ENOENT';
15
+ const NAME_ERR_EEXIST = 'EEXIST';
16
+ const log = logger_1.default.withTag('init');
17
+ const dryRunLog = logger_1.default.withTag('dry-run');
18
+ const jsonStringify = lodash_1.default.partial(JSON.stringify, lodash_1.default, undefined, 2);
19
+ /**
20
+ * Creates a unified patch for display in "dry run" mode
21
+ * @param filename - File name to use
22
+ * @param oldData - Old data
23
+ * @param newData - New Data
24
+ * @returns Patch string
25
+ */
26
+ function makePatch(filename, oldData, newData, serializer = jsonStringify) {
27
+ return (0, diff_1.createPatch)(filename, lodash_1.default.isString(oldData) ? oldData : serializer(oldData), lodash_1.default.isString(newData) ? newData : serializer(newData));
28
+ }
29
+ /**
30
+ * Factory for a {@linkcode ScaffoldTask}.
31
+ *
32
+ * @param defaultFilename Default file to create
33
+ * @param defaultContent Default content to use
34
+ * @param description Description of task
35
+ * @param opts Options
36
+ * @returns A scaffold task
37
+ */
38
+ function createScaffoldTask(defaultFilename, defaultContent, description, { transform = lodash_1.default.identity, deserialize = JSON.parse, serialize = jsonStringify, } = {}) {
39
+ return async ({ overwrite = false, cwd = process.cwd(), packageJson: packageJsonPath, dest, dryRun = false, ...opts }) => {
40
+ const relativePath = (0, util_1.relative)(cwd);
41
+ const { pkgPath, pkg } = await (0, util_1.readPackageJson)(packageJsonPath ? node_path_1.default.dirname(packageJsonPath) : cwd, true);
42
+ const pkgDir = node_path_1.default.dirname(pkgPath);
43
+ dest = dest ?? node_path_1.default.join(pkgDir, defaultFilename);
44
+ const relativeDest = relativePath(dest);
45
+ log.debug('Initializing %s', relativeDest);
46
+ let shouldWriteDest = false;
47
+ let destContent;
48
+ let result;
49
+ try {
50
+ destContent = deserialize(await support_1.fs.readFile(dest, 'utf8'));
51
+ log.debug('Found existing file %s', relativeDest);
52
+ }
53
+ catch (e) {
54
+ const err = e;
55
+ if (err.code !== NAME_ERR_ENOENT) {
56
+ throw err;
57
+ }
58
+ shouldWriteDest = true;
59
+ log.debug('Creating new file %s', relativeDest);
60
+ destContent = {};
61
+ }
62
+ const defaults = transform(defaultContent, opts, pkg);
63
+ const finalDestContent = lodash_1.default.defaultsDeep({}, destContent, defaults);
64
+ shouldWriteDest = shouldWriteDest || !lodash_1.default.isEqual(destContent, finalDestContent);
65
+ if (shouldWriteDest) {
66
+ log.info('Changes needed to %s', relativeDest);
67
+ log.debug('Original %s: %O', relativeDest, destContent);
68
+ log.debug('Final %s: %O', relativeDest, finalDestContent);
69
+ const patch = makePatch(dest, destContent, finalDestContent, serialize);
70
+ if (dryRun) {
71
+ dryRunLog.info('Would apply the following patch: \n\n%s', patch);
72
+ result = { path: dest, content: finalDestContent };
73
+ return result;
74
+ }
75
+ try {
76
+ await (0, util_1.safeWriteFile)(dest, finalDestContent, overwrite);
77
+ }
78
+ catch (e) {
79
+ const err = e;
80
+ // this should only be thrown if `force` is false
81
+ if (err.code === NAME_ERR_EEXIST) {
82
+ throw new error_1.DocutilsError(`${relativeDest} already exists. To overwrite, use --force. Wanted to apply patch:\n\n${patch}`);
83
+ }
84
+ throw new error_1.DocutilsError(`Could not write to ${relativeDest}. Reason: ${err.message}`);
85
+ }
86
+ }
87
+ else {
88
+ log.info('No changes to %s', relativeDest);
89
+ }
90
+ log.success('Initialized %s', description);
91
+ return { path: dest, content: finalDestContent };
92
+ };
93
+ }
94
+ exports.createScaffoldTask = createScaffoldTask;
95
+ //# sourceMappingURL=init-task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-task.js","sourceRoot":"","sources":["../../lib/init-task.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAmC;AACnC,sDAA8B;AAC9B,0DAA6B;AAC7B,+BAAiC;AAGjC,mCAAsC;AACtC,iCAAgE;AAChE,oDAAuB;AAEvB,MAAM,eAAe,GAAG,QAAQ,CAAC;AACjC,MAAM,eAAe,GAAG,QAAQ,CAAC;AAEjC,MAAM,GAAG,GAAG,gBAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACnC,MAAM,SAAS,GAAG,gBAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAE5C,MAAM,aAAa,GAAG,gBAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AAEjE;;;;;;GAMG;AACH,SAAS,SAAS,CAChB,QAAgB,EAChB,OAA2B,EAC3B,OAA2B,EAC3B,UAAU,GAAG,aAAa;IAE1B,OAAO,IAAA,kBAAW,EAChB,QAAQ,EACR,gBAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EACnD,gBAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CACpD,CAAC;AACJ,CAAC;AAWD;;;;;;;;GAQG;AACH,SAAgB,kBAAkB,CAChC,eAAuB,EACvB,cAAiB,EACjB,WAAmB,EACnB,EACE,SAAS,GAAG,gBAAC,CAAC,QAAQ,EACtB,WAAW,GAAG,IAAI,CAAC,KAAK,EACxB,SAAS,GAAG,aAAa,MACa,EAAE;IAE1C,OAAO,KAAK,EAAE,EACZ,SAAS,GAAG,KAAK,EACjB,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,WAAW,EAAE,eAAe,EAC5B,IAAI,EACJ,MAAM,GAAG,KAAK,EACd,GAAG,IAAI,EACF,EAAkC,EAAE;QACzC,MAAM,YAAY,GAAG,IAAA,eAAQ,EAAC,GAAG,CAAC,CAAC;QACnC,MAAM,EAAC,OAAO,EAAE,GAAG,EAAC,GAAG,MAAM,IAAA,sBAAe,EAC1C,eAAe,CAAC,CAAC,CAAC,mBAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,EACrD,IAAI,CACL,CAAC;QACF,MAAM,MAAM,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,GAAG,IAAI,IAAI,mBAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACxC,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QAC3C,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,WAAc,CAAC;QACnB,IAAI,MAA6B,CAAC;QAClC,IAAI;YACF,WAAW,GAAG,WAAW,CAAC,MAAM,YAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YAC3D,GAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,YAAY,CAAC,CAAC;SACnD;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,GAAG,GAAG,CAA0B,CAAC;YACvC,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE;gBAChC,MAAM,GAAG,CAAC;aACX;YACD,eAAe,GAAG,IAAI,CAAC;YACvB,GAAG,CAAC,KAAK,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC;YAChD,WAAW,GAAG,EAAO,CAAC;SACvB;QAED,MAAM,QAAQ,GAAM,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACzD,MAAM,gBAAgB,GAAM,gBAAC,CAAC,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QAEtE,eAAe,GAAG,eAAe,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAE/E,IAAI,eAAe,EAAE;YACnB,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC;YAC/C,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;YACxD,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;YAC1D,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;YAExE,IAAI,MAAM,EAAE;gBACV,SAAS,CAAC,IAAI,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;gBACjE,MAAM,GAAG,EAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAC,CAAC;gBACjD,OAAO,MAAM,CAAC;aACf;YAED,IAAI;gBACF,MAAM,IAAA,oBAAa,EAAC,IAAI,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;aACxD;YAAC,OAAO,CAAC,EAAE;gBACV,MAAM,GAAG,GAAG,CAA0B,CAAC;gBACvC,iDAAiD;gBACjD,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE;oBAChC,MAAM,IAAI,qBAAa,CACrB,GAAG,YAAY,yEAAyE,KAAK,EAAE,CAChG,CAAC;iBACH;gBACD,MAAM,IAAI,qBAAa,CAAC,sBAAsB,YAAY,aAAa,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;aACvF;SACF;aAAM;YACL,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;SAC5C;QACD,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAC3C,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAC,CAAC;IACjD,CAAC,CAAC;AACJ,CAAC;AA9ED,gDA8EC"}