@kensio/colophon 2.5.0 → 2.6.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 (622) hide show
  1. package/README.md +91 -13
  2. package/dist/astro/index.d.ts +49 -0
  3. package/dist/astro/index.d.ts.map +1 -0
  4. package/dist/astro/index.js +42 -0
  5. package/dist/astro/index.js.map +1 -0
  6. package/dist/cli/args/command.d.ts +13 -0
  7. package/dist/cli/args/command.d.ts.map +1 -0
  8. package/dist/cli/args/command.js +22 -0
  9. package/dist/cli/args/command.js.map +1 -0
  10. package/dist/cli/args/index.d.ts +28 -0
  11. package/dist/cli/args/index.d.ts.map +1 -0
  12. package/dist/cli/args/index.js +75 -0
  13. package/dist/cli/args/index.js.map +1 -0
  14. package/dist/cli/args/switches.d.ts +18 -0
  15. package/dist/cli/args/switches.d.ts.map +1 -0
  16. package/dist/cli/args/switches.js +42 -0
  17. package/dist/cli/args/switches.js.map +1 -0
  18. package/dist/cli/args/usage.d.ts +3 -0
  19. package/dist/cli/args/usage.d.ts.map +1 -0
  20. package/dist/cli/args/usage.js +34 -0
  21. package/dist/cli/args/usage.js.map +1 -0
  22. package/dist/cli/args/values.d.ts +11 -0
  23. package/dist/cli/args/values.d.ts.map +1 -0
  24. package/dist/cli/args/values.js +29 -0
  25. package/dist/cli/args/values.js.map +1 -0
  26. package/dist/cli/build.d.ts +10 -0
  27. package/dist/cli/build.d.ts.map +1 -0
  28. package/dist/cli/build.js +41 -0
  29. package/dist/cli/build.js.map +1 -0
  30. package/dist/cli/eject/adapters.d.ts +20 -0
  31. package/dist/cli/eject/adapters.d.ts.map +1 -0
  32. package/dist/cli/eject/adapters.js +29 -0
  33. package/dist/cli/eject/adapters.js.map +1 -0
  34. package/dist/cli/eject/astro.d.ts +13 -0
  35. package/dist/cli/eject/astro.d.ts.map +1 -0
  36. package/dist/cli/eject/astro.js +35 -0
  37. package/dist/cli/eject/astro.js.map +1 -0
  38. package/dist/cli/eject/hugo.d.ts +19 -0
  39. package/dist/cli/eject/hugo.d.ts.map +1 -0
  40. package/dist/cli/eject/hugo.js +127 -0
  41. package/dist/cli/eject/hugo.js.map +1 -0
  42. package/dist/cli/eject/index.d.ts +15 -0
  43. package/dist/cli/eject/index.d.ts.map +1 -0
  44. package/dist/cli/eject/index.js +46 -0
  45. package/dist/cli/eject/index.js.map +1 -0
  46. package/dist/cli/index.js +25 -20
  47. package/dist/cli/index.js.map +1 -1
  48. package/dist/cli/init/fs.d.ts +5 -0
  49. package/dist/cli/init/fs.d.ts.map +1 -0
  50. package/dist/cli/init/fs.js +19 -0
  51. package/dist/cli/init/fs.js.map +1 -0
  52. package/dist/cli/init/guess.d.ts +9 -0
  53. package/dist/cli/init/guess.d.ts.map +1 -0
  54. package/dist/cli/init/guess.js +27 -0
  55. package/dist/cli/init/guess.js.map +1 -0
  56. package/dist/cli/init/index.d.ts +11 -0
  57. package/dist/cli/init/index.d.ts.map +1 -0
  58. package/dist/cli/init/index.js +36 -0
  59. package/dist/cli/init/index.js.map +1 -0
  60. package/dist/cli/init/module.d.ts +12 -0
  61. package/dist/cli/init/module.d.ts.map +1 -0
  62. package/dist/cli/init/module.js +45 -0
  63. package/dist/cli/init/module.js.map +1 -0
  64. package/dist/cli/init/scaffold.d.ts +10 -0
  65. package/dist/cli/init/scaffold.d.ts.map +1 -0
  66. package/dist/cli/init/scaffold.js +52 -0
  67. package/dist/cli/init/scaffold.js.map +1 -0
  68. package/dist/cli/message.d.ts +7 -0
  69. package/dist/cli/message.d.ts.map +1 -0
  70. package/dist/cli/message.js +9 -0
  71. package/dist/cli/message.js.map +1 -0
  72. package/dist/cli/preview/index.d.ts +13 -0
  73. package/dist/cli/preview/index.d.ts.map +1 -0
  74. package/dist/cli/preview/index.js +27 -0
  75. package/dist/cli/preview/index.js.map +1 -0
  76. package/dist/cli/preview/open.d.ts +10 -0
  77. package/dist/cli/preview/open.d.ts.map +1 -0
  78. package/dist/cli/preview/open.js +32 -0
  79. package/dist/cli/preview/open.js.map +1 -0
  80. package/dist/cli/preview/render.d.ts +23 -0
  81. package/dist/cli/preview/render.d.ts.map +1 -0
  82. package/dist/cli/preview/render.js +40 -0
  83. package/dist/cli/preview/render.js.map +1 -0
  84. package/dist/cli/preview/root.d.ts +17 -0
  85. package/dist/cli/preview/root.d.ts.map +1 -0
  86. package/dist/cli/preview/root.js +22 -0
  87. package/dist/cli/preview/root.js.map +1 -0
  88. package/dist/cli/preview/size.d.ts +7 -0
  89. package/dist/cli/preview/size.d.ts.map +1 -0
  90. package/dist/cli/preview/size.js +13 -0
  91. package/dist/cli/preview/size.js.map +1 -0
  92. package/dist/cli/report.d.ts +6 -0
  93. package/dist/cli/report.d.ts.map +1 -0
  94. package/dist/cli/report.js +23 -0
  95. package/dist/cli/report.js.map +1 -0
  96. package/dist/cli/watch/filter.d.ts +14 -0
  97. package/dist/cli/watch/filter.d.ts.map +1 -0
  98. package/dist/cli/watch/filter.js +16 -0
  99. package/dist/cli/watch/filter.js.map +1 -0
  100. package/dist/cli/watch/index.d.ts +27 -0
  101. package/dist/cli/watch/index.d.ts.map +1 -0
  102. package/dist/cli/watch/index.js +38 -0
  103. package/dist/cli/watch/index.js.map +1 -0
  104. package/dist/cli/watch/queue.d.ts +24 -0
  105. package/dist/cli/watch/queue.d.ts.map +1 -0
  106. package/dist/cli/watch/queue.js +57 -0
  107. package/dist/cli/watch/queue.js.map +1 -0
  108. package/dist/config/defaults.d.ts +39 -1
  109. package/dist/config/defaults.d.ts.map +1 -1
  110. package/dist/config/defaults.js +38 -0
  111. package/dist/config/defaults.js.map +1 -1
  112. package/dist/config/index.d.ts +1 -1
  113. package/dist/config/index.d.ts.map +1 -1
  114. package/dist/config/index.js +18 -4
  115. package/dist/config/index.js.map +1 -1
  116. package/dist/config/output.d.ts +26 -0
  117. package/dist/config/output.d.ts.map +1 -0
  118. package/dist/config/output.js +45 -0
  119. package/dist/config/output.js.map +1 -0
  120. package/dist/config/resolve.d.ts +10 -0
  121. package/dist/config/resolve.d.ts.map +1 -1
  122. package/dist/config/resolve.js +20 -1
  123. package/dist/config/resolve.js.map +1 -1
  124. package/dist/content/index.d.ts +1 -0
  125. package/dist/content/index.d.ts.map +1 -1
  126. package/dist/content/index.js +1 -0
  127. package/dist/content/index.js.map +1 -1
  128. package/dist/content/read.d.ts +15 -0
  129. package/dist/content/read.d.ts.map +1 -0
  130. package/dist/content/read.js +36 -0
  131. package/dist/content/read.js.map +1 -0
  132. package/dist/content/walk.d.ts.map +1 -1
  133. package/dist/content/walk.js +4 -30
  134. package/dist/content/walk.js.map +1 -1
  135. package/dist/core/index.d.ts +37 -0
  136. package/dist/core/index.d.ts.map +1 -0
  137. package/dist/core/index.js +13 -0
  138. package/dist/core/index.js.map +1 -0
  139. package/dist/encode/fit.d.ts +16 -0
  140. package/dist/encode/fit.d.ts.map +1 -0
  141. package/dist/encode/fit.js +23 -0
  142. package/dist/encode/fit.js.map +1 -0
  143. package/dist/encode/format.d.ts +12 -0
  144. package/dist/encode/format.d.ts.map +1 -0
  145. package/dist/encode/format.js +40 -0
  146. package/dist/encode/format.js.map +1 -0
  147. package/dist/encode/index.d.ts +14 -0
  148. package/dist/encode/index.d.ts.map +1 -0
  149. package/dist/encode/index.js +52 -0
  150. package/dist/encode/index.js.map +1 -0
  151. package/dist/encode/sharp.d.ts +19 -0
  152. package/dist/encode/sharp.d.ts.map +1 -0
  153. package/dist/encode/sharp.js +57 -0
  154. package/dist/encode/sharp.js.map +1 -0
  155. package/dist/encode/warn.d.ts +10 -0
  156. package/dist/encode/warn.d.ts.map +1 -0
  157. package/dist/encode/warn.js +31 -0
  158. package/dist/encode/warn.js.map +1 -0
  159. package/dist/fonts/resolve.d.ts.map +1 -1
  160. package/dist/fonts/resolve.js +2 -8
  161. package/dist/fonts/resolve.js.map +1 -1
  162. package/dist/generate/index.d.ts +4 -0
  163. package/dist/generate/index.d.ts.map +1 -1
  164. package/dist/generate/index.js +10 -4
  165. package/dist/generate/index.js.map +1 -1
  166. package/dist/generate/options.d.ts +11 -1
  167. package/dist/generate/options.d.ts.map +1 -1
  168. package/dist/generate/options.js.map +1 -1
  169. package/dist/generate/output-path.d.ts +6 -2
  170. package/dist/generate/output-path.d.ts.map +1 -1
  171. package/dist/generate/output-path.js +7 -2
  172. package/dist/generate/output-path.js.map +1 -1
  173. package/dist/generate/plan.d.ts.map +1 -1
  174. package/dist/generate/plan.js +3 -3
  175. package/dist/generate/plan.js.map +1 -1
  176. package/dist/generate/render-image.d.ts +6 -0
  177. package/dist/generate/render-image.d.ts.map +1 -1
  178. package/dist/generate/render-image.js +14 -4
  179. package/dist/generate/render-image.js.map +1 -1
  180. package/dist/image/index.d.ts +3 -1
  181. package/dist/image/index.d.ts.map +1 -1
  182. package/dist/image/index.js +4 -3
  183. package/dist/image/index.js.map +1 -1
  184. package/dist/image/jpeg.d.ts +5 -4
  185. package/dist/image/jpeg.d.ts.map +1 -1
  186. package/dist/image/jpeg.js +13 -36
  187. package/dist/image/jpeg.js.map +1 -1
  188. package/dist/image/load.d.ts.map +1 -1
  189. package/dist/image/load.js +4 -15
  190. package/dist/image/load.js.map +1 -1
  191. package/dist/image/resolve.d.ts.map +1 -1
  192. package/dist/image/resolve.js +2 -8
  193. package/dist/image/resolve.js.map +1 -1
  194. package/dist/image/uri.d.ts.map +1 -1
  195. package/dist/image/uri.js +2 -3
  196. package/dist/image/uri.js.map +1 -1
  197. package/dist/index.d.ts +8 -4
  198. package/dist/index.d.ts.map +1 -1
  199. package/dist/index.js +10 -3
  200. package/dist/index.js.map +1 -1
  201. package/dist/jpeg/index.d.ts +10 -0
  202. package/dist/jpeg/index.d.ts.map +1 -0
  203. package/dist/jpeg/index.js +2 -0
  204. package/dist/jpeg/index.js.map +1 -0
  205. package/dist/jpeg/segments.d.ts +32 -0
  206. package/dist/jpeg/segments.d.ts.map +1 -0
  207. package/dist/jpeg/segments.js +66 -0
  208. package/dist/jpeg/segments.js.map +1 -0
  209. package/dist/layout/draw.d.ts +20 -0
  210. package/dist/layout/draw.d.ts.map +1 -0
  211. package/dist/layout/draw.js +32 -0
  212. package/dist/layout/draw.js.map +1 -0
  213. package/dist/layout/extent.d.ts +19 -0
  214. package/dist/layout/extent.d.ts.map +1 -0
  215. package/dist/layout/extent.js +24 -0
  216. package/dist/layout/extent.js.map +1 -0
  217. package/dist/layout/index.d.ts +7 -4
  218. package/dist/layout/index.d.ts.map +1 -1
  219. package/dist/layout/index.js +5 -3
  220. package/dist/layout/index.js.map +1 -1
  221. package/dist/layout/lines.d.ts +0 -17
  222. package/dist/layout/lines.d.ts.map +1 -1
  223. package/dist/layout/lines.js +2 -35
  224. package/dist/layout/lines.js.map +1 -1
  225. package/dist/measure/faces.d.ts.map +1 -1
  226. package/dist/measure/faces.js +8 -2
  227. package/dist/measure/faces.js.map +1 -1
  228. package/dist/meta/index.d.ts +1 -0
  229. package/dist/meta/index.d.ts.map +1 -1
  230. package/dist/meta/index.js +1 -0
  231. package/dist/meta/index.js.map +1 -1
  232. package/dist/meta/path.d.ts +24 -0
  233. package/dist/meta/path.d.ts.map +1 -0
  234. package/dist/meta/path.js +41 -0
  235. package/dist/meta/path.js.map +1 -0
  236. package/dist/meta/tags.d.ts.map +1 -1
  237. package/dist/meta/tags.js +6 -1
  238. package/dist/meta/tags.js.map +1 -1
  239. package/dist/placement/index.d.ts +7 -2
  240. package/dist/placement/index.d.ts.map +1 -1
  241. package/dist/placement/index.js +9 -3
  242. package/dist/placement/index.js.map +1 -1
  243. package/dist/placement/relative.d.ts +8 -3
  244. package/dist/placement/relative.d.ts.map +1 -1
  245. package/dist/placement/relative.js +12 -5
  246. package/dist/placement/relative.js.map +1 -1
  247. package/dist/platform/base64.d.ts +13 -0
  248. package/dist/platform/base64.d.ts.map +1 -0
  249. package/dist/platform/base64.js +35 -0
  250. package/dist/platform/base64.js.map +1 -0
  251. package/dist/platform/rasteriser.browser.d.ts +16 -0
  252. package/dist/platform/rasteriser.browser.d.ts.map +1 -0
  253. package/dist/platform/rasteriser.browser.js +20 -0
  254. package/dist/platform/rasteriser.browser.js.map +1 -0
  255. package/dist/platform/rasteriser.node.d.ts +2 -0
  256. package/dist/platform/rasteriser.node.d.ts.map +1 -0
  257. package/dist/platform/rasteriser.node.js +2 -0
  258. package/dist/platform/rasteriser.node.js.map +1 -0
  259. package/dist/platform/read-file.browser.d.ts +17 -0
  260. package/dist/platform/read-file.browser.d.ts.map +1 -0
  261. package/dist/platform/read-file.browser.js +23 -0
  262. package/dist/platform/read-file.browser.js.map +1 -0
  263. package/dist/platform/read-file.node.d.ts +19 -0
  264. package/dist/platform/read-file.node.d.ts.map +1 -0
  265. package/dist/platform/read-file.node.js +31 -0
  266. package/dist/platform/read-file.node.js.map +1 -0
  267. package/dist/png/chunk.d.ts +23 -0
  268. package/dist/png/chunk.d.ts.map +1 -0
  269. package/dist/png/chunk.js +48 -0
  270. package/dist/png/chunk.js.map +1 -0
  271. package/dist/png/index.d.ts +13 -0
  272. package/dist/png/index.d.ts.map +1 -0
  273. package/dist/png/index.js +3 -0
  274. package/dist/png/index.js.map +1 -0
  275. package/dist/png/recompress.d.ts +23 -0
  276. package/dist/png/recompress.d.ts.map +1 -0
  277. package/dist/png/recompress.js +81 -0
  278. package/dist/png/recompress.js.map +1 -0
  279. package/dist/props.d.ts +11 -0
  280. package/dist/props.d.ts.map +1 -1
  281. package/dist/props.js +16 -0
  282. package/dist/props.js.map +1 -1
  283. package/dist/render/image.d.ts +20 -0
  284. package/dist/render/image.d.ts.map +1 -0
  285. package/dist/render/image.js +29 -0
  286. package/dist/render/image.js.map +1 -0
  287. package/dist/render/index.d.ts +2 -1
  288. package/dist/render/index.d.ts.map +1 -1
  289. package/dist/render/index.js +5 -4
  290. package/dist/render/index.js.map +1 -1
  291. package/dist/render/png.d.ts +14 -4
  292. package/dist/render/png.d.ts.map +1 -1
  293. package/dist/render/png.js +22 -23
  294. package/dist/render/png.js.map +1 -1
  295. package/dist/render/rasterise.d.ts +15 -0
  296. package/dist/render/rasterise.d.ts.map +1 -0
  297. package/dist/render/rasterise.js +34 -0
  298. package/dist/render/rasterise.js.map +1 -0
  299. package/dist/render/svg.d.ts.map +1 -1
  300. package/dist/render/svg.js +1 -0
  301. package/dist/render/svg.js.map +1 -1
  302. package/dist/sign/base64url.d.ts +16 -0
  303. package/dist/sign/base64url.d.ts.map +1 -0
  304. package/dist/sign/base64url.js +24 -0
  305. package/dist/sign/base64url.js.map +1 -0
  306. package/dist/sign/index.d.ts +49 -0
  307. package/dist/sign/index.d.ts.map +1 -0
  308. package/dist/sign/index.js +133 -0
  309. package/dist/sign/index.js.map +1 -0
  310. package/dist/stamp/carrier/index.d.ts +7 -0
  311. package/dist/stamp/carrier/index.d.ts.map +1 -0
  312. package/dist/stamp/carrier/index.js +27 -0
  313. package/dist/stamp/carrier/index.js.map +1 -0
  314. package/dist/stamp/carrier/isobmff.d.ts +7 -0
  315. package/dist/stamp/carrier/isobmff.d.ts.map +1 -0
  316. package/dist/stamp/carrier/isobmff.js +55 -0
  317. package/dist/stamp/carrier/isobmff.js.map +1 -0
  318. package/dist/stamp/carrier/jpeg.d.ts +4 -0
  319. package/dist/stamp/carrier/jpeg.d.ts.map +1 -0
  320. package/dist/stamp/carrier/jpeg.js +76 -0
  321. package/dist/stamp/carrier/jpeg.js.map +1 -0
  322. package/dist/stamp/carrier/png.d.ts +7 -0
  323. package/dist/stamp/carrier/png.d.ts.map +1 -0
  324. package/dist/stamp/carrier/png.js +50 -0
  325. package/dist/stamp/carrier/png.js.map +1 -0
  326. package/dist/stamp/carrier/riff.d.ts +4 -0
  327. package/dist/stamp/carrier/riff.d.ts.map +1 -0
  328. package/dist/stamp/carrier/riff.js +54 -0
  329. package/dist/stamp/carrier/riff.js.map +1 -0
  330. package/dist/stamp/carrier/types.d.ts +25 -0
  331. package/dist/stamp/carrier/types.d.ts.map +1 -0
  332. package/dist/stamp/carrier/types.js +2 -0
  333. package/dist/stamp/carrier/types.js.map +1 -0
  334. package/dist/stamp/chunk.d.ts +0 -2
  335. package/dist/stamp/chunk.d.ts.map +1 -1
  336. package/dist/stamp/chunk.js +10 -18
  337. package/dist/stamp/chunk.js.map +1 -1
  338. package/dist/stamp/config-digest.d.ts +18 -0
  339. package/dist/stamp/config-digest.d.ts.map +1 -1
  340. package/dist/stamp/config-digest.js +24 -0
  341. package/dist/stamp/config-digest.js.map +1 -1
  342. package/dist/stamp/index.d.ts +2 -2
  343. package/dist/stamp/index.d.ts.map +1 -1
  344. package/dist/stamp/index.js +2 -2
  345. package/dist/stamp/index.js.map +1 -1
  346. package/dist/stamp/payload.d.ts +28 -0
  347. package/dist/stamp/payload.d.ts.map +1 -0
  348. package/dist/stamp/payload.js +42 -0
  349. package/dist/stamp/payload.js.map +1 -0
  350. package/dist/stamp/read.d.ts +5 -4
  351. package/dist/stamp/read.d.ts.map +1 -1
  352. package/dist/stamp/read.js +26 -43
  353. package/dist/stamp/read.js.map +1 -1
  354. package/dist/stamp/window.d.ts +11 -0
  355. package/dist/stamp/window.d.ts.map +1 -0
  356. package/dist/stamp/window.js +11 -0
  357. package/dist/stamp/window.js.map +1 -0
  358. package/dist/stamp/write.d.ts +21 -0
  359. package/dist/stamp/write.d.ts.map +1 -0
  360. package/dist/stamp/write.js +31 -0
  361. package/dist/stamp/write.js.map +1 -0
  362. package/dist/templates/article/bottom.d.ts +15 -0
  363. package/dist/templates/article/bottom.d.ts.map +1 -0
  364. package/dist/templates/article/bottom.js +61 -0
  365. package/dist/templates/article/bottom.js.map +1 -0
  366. package/dist/templates/article/index.d.ts +12 -0
  367. package/dist/templates/article/index.d.ts.map +1 -0
  368. package/dist/templates/article/index.js +42 -0
  369. package/dist/templates/article/index.js.map +1 -0
  370. package/dist/templates/article/lines.d.ts +27 -0
  371. package/dist/templates/article/lines.d.ts.map +1 -0
  372. package/dist/templates/article/lines.js +53 -0
  373. package/dist/templates/article/lines.js.map +1 -0
  374. package/dist/templates/article/tags.d.ts +25 -0
  375. package/dist/templates/article/tags.d.ts.map +1 -0
  376. package/dist/templates/article/tags.js +63 -0
  377. package/dist/templates/article/tags.js.map +1 -0
  378. package/dist/templates/attribution.d.ts +2 -6
  379. package/dist/templates/attribution.d.ts.map +1 -1
  380. package/dist/templates/attribution.js +8 -22
  381. package/dist/templates/attribution.js.map +1 -1
  382. package/dist/templates/banner/version.d.ts.map +1 -1
  383. package/dist/templates/banner/version.js +4 -4
  384. package/dist/templates/banner/version.js.map +1 -1
  385. package/dist/templates/bottom.d.ts +23 -0
  386. package/dist/templates/bottom.d.ts.map +1 -0
  387. package/dist/templates/bottom.js +37 -0
  388. package/dist/templates/bottom.js.map +1 -0
  389. package/dist/templates/byline.d.ts +19 -0
  390. package/dist/templates/byline.d.ts.map +1 -0
  391. package/dist/templates/byline.js +45 -0
  392. package/dist/templates/byline.js.map +1 -0
  393. package/dist/templates/code/clip.js +1 -1
  394. package/dist/templates/code/clip.js.map +1 -1
  395. package/dist/templates/code/fit.js +1 -1
  396. package/dist/templates/code/fit.js.map +1 -1
  397. package/dist/templates/code/warn.d.ts +1 -1
  398. package/dist/templates/code/warn.d.ts.map +1 -1
  399. package/dist/templates/code/warn.js +2 -2
  400. package/dist/templates/code/warn.js.map +1 -1
  401. package/dist/templates/docs/chrome.d.ts +17 -0
  402. package/dist/templates/docs/chrome.d.ts.map +1 -0
  403. package/dist/templates/docs/chrome.js +44 -0
  404. package/dist/templates/docs/chrome.js.map +1 -0
  405. package/dist/templates/docs/crumbs.d.ts +14 -0
  406. package/dist/templates/docs/crumbs.d.ts.map +1 -0
  407. package/dist/templates/docs/crumbs.js +32 -0
  408. package/dist/templates/docs/crumbs.js.map +1 -0
  409. package/dist/templates/docs/index.d.ts +13 -0
  410. package/dist/templates/docs/index.d.ts.map +1 -0
  411. package/dist/templates/docs/index.js +47 -0
  412. package/dist/templates/docs/index.js.map +1 -0
  413. package/dist/templates/docs/lines.d.ts +14 -0
  414. package/dist/templates/docs/lines.d.ts.map +1 -0
  415. package/dist/templates/docs/lines.js +29 -0
  416. package/dist/templates/docs/lines.js.map +1 -0
  417. package/dist/templates/event/index.d.ts +12 -0
  418. package/dist/templates/event/index.d.ts.map +1 -0
  419. package/dist/templates/event/index.js +59 -0
  420. package/dist/templates/event/index.js.map +1 -0
  421. package/dist/templates/event/lines.d.ts +14 -0
  422. package/dist/templates/event/lines.d.ts.map +1 -0
  423. package/dist/templates/event/lines.js +29 -0
  424. package/dist/templates/event/lines.js.map +1 -0
  425. package/dist/templates/event/plate.d.ts +16 -0
  426. package/dist/templates/event/plate.d.ts.map +1 -0
  427. package/dist/templates/event/plate.js +36 -0
  428. package/dist/templates/event/plate.js.map +1 -0
  429. package/dist/templates/frame.d.ts +68 -0
  430. package/dist/templates/frame.d.ts.map +1 -0
  431. package/dist/templates/frame.js +63 -0
  432. package/dist/templates/frame.js.map +1 -0
  433. package/dist/templates/index.d.ts +9 -0
  434. package/dist/templates/index.d.ts.map +1 -1
  435. package/dist/templates/index.js +27 -0
  436. package/dist/templates/index.js.map +1 -1
  437. package/dist/templates/photo/index.d.ts +17 -0
  438. package/dist/templates/photo/index.d.ts.map +1 -0
  439. package/dist/templates/photo/index.js +51 -0
  440. package/dist/templates/photo/index.js.map +1 -0
  441. package/dist/templates/photo/lines.d.ts +21 -0
  442. package/dist/templates/photo/lines.d.ts.map +1 -0
  443. package/dist/templates/photo/lines.js +36 -0
  444. package/dist/templates/photo/lines.js.map +1 -0
  445. package/dist/templates/pill.d.ts +33 -0
  446. package/dist/templates/pill.d.ts.map +1 -0
  447. package/dist/templates/pill.js +50 -0
  448. package/dist/templates/pill.js.map +1 -0
  449. package/dist/templates/portrait.d.ts +40 -0
  450. package/dist/templates/portrait.d.ts.map +1 -0
  451. package/dist/templates/portrait.js +56 -0
  452. package/dist/templates/portrait.js.map +1 -0
  453. package/dist/templates/quote/index.d.ts +11 -0
  454. package/dist/templates/quote/index.d.ts.map +1 -0
  455. package/dist/templates/quote/index.js +60 -0
  456. package/dist/templates/quote/index.js.map +1 -0
  457. package/dist/templates/quote/lines.d.ts +24 -0
  458. package/dist/templates/quote/lines.d.ts.map +1 -0
  459. package/dist/templates/quote/lines.js +35 -0
  460. package/dist/templates/quote/lines.js.map +1 -0
  461. package/dist/templates/quote/mark.d.ts +13 -0
  462. package/dist/templates/quote/mark.d.ts.map +1 -0
  463. package/dist/templates/quote/mark.js +39 -0
  464. package/dist/templates/quote/mark.js.map +1 -0
  465. package/dist/templates/quote/speaker.d.ts +18 -0
  466. package/dist/templates/quote/speaker.d.ts.map +1 -0
  467. package/dist/templates/quote/speaker.js +41 -0
  468. package/dist/templates/quote/speaker.js.map +1 -0
  469. package/dist/templates/release/block.d.ts +8 -0
  470. package/dist/templates/release/block.d.ts.map +1 -0
  471. package/dist/templates/release/block.js +16 -0
  472. package/dist/templates/release/block.js.map +1 -0
  473. package/dist/templates/release/changes.d.ts +23 -0
  474. package/dist/templates/release/changes.d.ts.map +1 -0
  475. package/dist/templates/release/changes.js +45 -0
  476. package/dist/templates/release/changes.js.map +1 -0
  477. package/dist/templates/release/index.d.ts +11 -0
  478. package/dist/templates/release/index.d.ts.map +1 -0
  479. package/dist/templates/release/index.js +55 -0
  480. package/dist/templates/release/index.js.map +1 -0
  481. package/dist/templates/release/lines.d.ts +21 -0
  482. package/dist/templates/release/lines.d.ts.map +1 -0
  483. package/dist/templates/release/lines.js +36 -0
  484. package/dist/templates/release/lines.js.map +1 -0
  485. package/dist/templates/stat/index.d.ts +11 -0
  486. package/dist/templates/stat/index.d.ts.map +1 -0
  487. package/dist/templates/stat/index.js +43 -0
  488. package/dist/templates/stat/index.js.map +1 -0
  489. package/dist/templates/stat/lines.d.ts +23 -0
  490. package/dist/templates/stat/lines.d.ts.map +1 -0
  491. package/dist/templates/stat/lines.js +47 -0
  492. package/dist/templates/stat/lines.js.map +1 -0
  493. package/dist/templates/terminal/index.d.ts +16 -0
  494. package/dist/templates/terminal/index.d.ts.map +1 -0
  495. package/dist/templates/terminal/index.js +62 -0
  496. package/dist/templates/terminal/index.js.map +1 -0
  497. package/dist/templates/terminal/session.d.ts +17 -0
  498. package/dist/templates/terminal/session.d.ts.map +1 -0
  499. package/dist/templates/terminal/session.js +86 -0
  500. package/dist/templates/terminal/session.js.map +1 -0
  501. package/dist/templates/terminal/window.d.ts +14 -0
  502. package/dist/templates/terminal/window.d.ts.map +1 -0
  503. package/dist/templates/terminal/window.js +84 -0
  504. package/dist/templates/terminal/window.js.map +1 -0
  505. package/dist/templates/version.d.ts +16 -0
  506. package/dist/templates/version.d.ts.map +1 -0
  507. package/dist/templates/version.js +23 -0
  508. package/dist/templates/version.js.map +1 -0
  509. package/dist/templates/wordmark/index.d.ts +13 -0
  510. package/dist/templates/wordmark/index.d.ts.map +1 -0
  511. package/dist/templates/wordmark/index.js +53 -0
  512. package/dist/templates/wordmark/index.js.map +1 -0
  513. package/dist/templates/wordmark/lines.d.ts +22 -0
  514. package/dist/templates/wordmark/lines.d.ts.map +1 -0
  515. package/dist/templates/wordmark/lines.js +61 -0
  516. package/dist/templates/wordmark/lines.js.map +1 -0
  517. package/dist/templates/wordmark/mark.d.ts +16 -0
  518. package/dist/templates/wordmark/mark.d.ts.map +1 -0
  519. package/dist/templates/wordmark/mark.js +30 -0
  520. package/dist/templates/wordmark/mark.js.map +1 -0
  521. package/dist/text/clamp.d.ts +12 -0
  522. package/dist/text/clamp.d.ts.map +1 -0
  523. package/dist/text/clamp.js +41 -0
  524. package/dist/text/clamp.js.map +1 -0
  525. package/dist/text/ellipsis.d.ts +3 -0
  526. package/dist/text/ellipsis.d.ts.map +1 -0
  527. package/dist/text/ellipsis.js +3 -0
  528. package/dist/text/ellipsis.js.map +1 -0
  529. package/dist/text/index.d.ts +2 -0
  530. package/dist/text/index.d.ts.map +1 -1
  531. package/dist/text/index.js +2 -0
  532. package/dist/text/index.js.map +1 -1
  533. package/dist/types.d.ts +158 -6
  534. package/dist/types.d.ts.map +1 -1
  535. package/dist/validate/collect.d.ts.map +1 -1
  536. package/dist/validate/collect.js +2 -1
  537. package/dist/validate/collect.js.map +1 -1
  538. package/dist/validate/keys.d.ts +6 -0
  539. package/dist/validate/keys.d.ts.map +1 -1
  540. package/dist/validate/keys.js +17 -0
  541. package/dist/validate/keys.js.map +1 -1
  542. package/dist/validate/values.d.ts +6 -0
  543. package/dist/validate/values.d.ts.map +1 -1
  544. package/dist/validate/values.js +12 -1
  545. package/dist/validate/values.js.map +1 -1
  546. package/package.json +16 -2
  547. package/dist/background.d.ts +0 -13
  548. package/dist/background.d.ts.map +0 -1
  549. package/dist/background.js +0 -65
  550. package/dist/background.js.map +0 -1
  551. package/dist/cli/args.d.ts +0 -14
  552. package/dist/cli/args.d.ts.map +0 -1
  553. package/dist/cli/args.js +0 -67
  554. package/dist/cli/args.js.map +0 -1
  555. package/dist/cli.d.ts +0 -3
  556. package/dist/cli.d.ts.map +0 -1
  557. package/dist/cli.js +0 -102
  558. package/dist/cli.js.map +0 -1
  559. package/dist/config.d.ts +0 -95
  560. package/dist/config.d.ts.map +0 -1
  561. package/dist/config.js +0 -208
  562. package/dist/config.js.map +0 -1
  563. package/dist/fonts.d.ts +0 -18
  564. package/dist/fonts.d.ts.map +0 -1
  565. package/dist/fonts.js +0 -102
  566. package/dist/fonts.js.map +0 -1
  567. package/dist/generate.d.ts +0 -63
  568. package/dist/generate.d.ts.map +0 -1
  569. package/dist/generate.js +0 -109
  570. package/dist/generate.js.map +0 -1
  571. package/dist/highlight.d.ts +0 -75
  572. package/dist/highlight.d.ts.map +0 -1
  573. package/dist/highlight.js +0 -137
  574. package/dist/highlight.js.map +0 -1
  575. package/dist/render.d.ts +0 -24
  576. package/dist/render.d.ts.map +0 -1
  577. package/dist/render.js +0 -77
  578. package/dist/render.js.map +0 -1
  579. package/dist/stamp.d.ts +0 -29
  580. package/dist/stamp.d.ts.map +0 -1
  581. package/dist/stamp.js +0 -198
  582. package/dist/stamp.js.map +0 -1
  583. package/dist/templates/banner.d.ts +0 -9
  584. package/dist/templates/banner.d.ts.map +0 -1
  585. package/dist/templates/banner.js +0 -115
  586. package/dist/templates/banner.js.map +0 -1
  587. package/dist/templates/card.d.ts +0 -7
  588. package/dist/templates/card.d.ts.map +0 -1
  589. package/dist/templates/card.js +0 -72
  590. package/dist/templates/card.js.map +0 -1
  591. package/dist/templates/code.d.ts +0 -12
  592. package/dist/templates/code.d.ts.map +0 -1
  593. package/dist/templates/code.js +0 -275
  594. package/dist/templates/code.js.map +0 -1
  595. package/dist/templates/measure.d.ts +0 -11
  596. package/dist/templates/measure.d.ts.map +0 -1
  597. package/dist/templates/measure.js +0 -11
  598. package/dist/templates/measure.js.map +0 -1
  599. package/dist/templates/props.d.ts +0 -7
  600. package/dist/templates/props.d.ts.map +0 -1
  601. package/dist/templates/props.js +0 -17
  602. package/dist/templates/props.js.map +0 -1
  603. package/dist/templates/text.d.ts +0 -37
  604. package/dist/templates/text.d.ts.map +0 -1
  605. package/dist/templates/text.js +0 -26
  606. package/dist/templates/text.js.map +0 -1
  607. package/dist/text/stack.d.ts +0 -24
  608. package/dist/text/stack.d.ts.map +0 -1
  609. package/dist/text/stack.js +0 -18
  610. package/dist/text/stack.js.map +0 -1
  611. package/dist/text.d.ts +0 -56
  612. package/dist/text.d.ts.map +0 -1
  613. package/dist/text.js +0 -78
  614. package/dist/text.js.map +0 -1
  615. package/dist/validate/sizes.d.ts +0 -9
  616. package/dist/validate/sizes.d.ts.map +0 -1
  617. package/dist/validate/sizes.js +0 -27
  618. package/dist/validate/sizes.js.map +0 -1
  619. package/dist/validate.d.ts +0 -15
  620. package/dist/validate.d.ts.map +0 -1
  621. package/dist/validate.js +0 -300
  622. package/dist/validate.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/cli/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,iEAAiE;AACjE,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAa;IAC1C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,iBAAiB,CAAC;IAExD,MAAM,KAAK,GAAG,KAAK,IAAmB,EAAE;QACtC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC;YAC7B,UAAU;YACV,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;YACvC,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;YACxE,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;gBACnB,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;SACF,CAAC,CAAC;QAEH,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,KAAK,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IAED,MAAM,YAAY,CAAC;QACjB,GAAG,EAAE,UAAU;QACf,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,IAAI,wBAAwB;QACnE,KAAK;KACN,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,20 @@
1
+ /** A template a site can have written into it, and where it goes. */
2
+ export interface Adapter {
3
+ /** Path the file is written to, relative to the site root. */
4
+ readonly file: string;
5
+ readonly contents: string;
6
+ /** What to do with it once it is there. */
7
+ readonly usage: string;
8
+ }
9
+ /**
10
+ * The adapters `colophon eject` knows about.
11
+ *
12
+ * One so far. It is a record rather than a special case for Hugo because the
13
+ * command has to name the ones it does know when asked for one it does not,
14
+ * and because the next generator is a second entry rather than a second
15
+ * command.
16
+ */
17
+ export declare const adapters: Readonly<Record<string, Adapter>>;
18
+ /** The adapter names, for the help text and for a run that misspells one. */
19
+ export declare const adapterNames: readonly string[];
20
+ //# sourceMappingURL=adapters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../../src/cli/eject/adapters.ts"],"names":[],"mappings":"AAGA,qEAAqE;AACrE,MAAM,WAAW,OAAO;IACtB,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiBtD,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EAA0B,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { astroComponent } from "./astro.js";
2
+ import { hugoPartial } from "./hugo.js";
3
+ /**
4
+ * The adapters `colophon eject` knows about.
5
+ *
6
+ * One so far. It is a record rather than a special case for Hugo because the
7
+ * command has to name the ones it does know when asked for one it does not,
8
+ * and because the next generator is a second entry rather than a second
9
+ * command.
10
+ */
11
+ export const adapters = {
12
+ astro: {
13
+ file: "src/components/ColophonMeta.astro",
14
+ contents: astroComponent,
15
+ usage: `Use it in your layout's head:\n` +
16
+ ` <ColophonMeta />\n` +
17
+ `and point the config's manifest option at src/data/colophon.json.`,
18
+ },
19
+ hugo: {
20
+ file: "layouts/partials/colophon.html",
21
+ contents: hugoPartial,
22
+ usage: `Call it from your head:\n` +
23
+ ` {{ partial "colophon.html" . }}\n` +
24
+ `and point the config's manifest option at data/colophon.json.`,
25
+ },
26
+ };
27
+ /** The adapter names, for the help text and for a run that misspells one. */
28
+ export const adapterNames = Object.keys(adapters);
29
+ //# sourceMappingURL=adapters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../../src/cli/eject/adapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAWxC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAsC;IACzD,KAAK,EAAE;QACL,IAAI,EAAE,mCAAmC;QACzC,QAAQ,EAAE,cAAc;QACxB,KAAK,EACH,iCAAiC;YACjC,sBAAsB;YACtB,mEAAmE;KACtE;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,WAAW;QACrB,KAAK,EACH,2BAA2B;YAC3B,qCAAqC;YACrC,+DAA+D;KAClE;CACF,CAAC;AAEF,6EAA6E;AAC7E,MAAM,CAAC,MAAM,YAAY,GAAsB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * The Astro component `colophon eject astro` writes.
3
+ *
4
+ * Ejected rather than exported, for the reason the Hugo partial is: a `<head>`
5
+ * is something a site owns. A shipped component would also be a `.astro` file
6
+ * in the published package, which nothing in this build compiles or typechecks,
7
+ * and which would then have to be kept working across Astro versions.
8
+ *
9
+ * The route is mapped to a manifest key by `metaTagsForPath`, which is in the
10
+ * package and tested there, so what is ejected stays small enough to read.
11
+ */
12
+ export declare const astroComponent = "---\n/**\n * Social meta tags for the current route, from the images Colophon generated.\n *\n * Use it in your layout's <head>:\n *\n * <ColophonMeta />\n *\n * The manifest import path is where the config's `manifest` option points.\n * The cast is because a JSON import types \"version\" as number rather than as\n * the literal 1 the Manifest type asks for.\n */\nimport { metaTagsForPath } from \"@kensio/colophon/meta\";\nimport type { Manifest } from \"@kensio/colophon\";\nimport manifest from \"../data/colophon.json\";\n\nconst tags = metaTagsForPath(manifest as Manifest, Astro.url.pathname, {\n baseUrl: Astro.site?.href,\n});\n---\n\n{tags.map((tag) => <meta {...tag} />)}\n";
13
+ //# sourceMappingURL=astro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"astro.d.ts","sourceRoot":"","sources":["../../../src/cli/eject/astro.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,yrBAsB1B,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * The Astro component `colophon eject astro` writes.
3
+ *
4
+ * Ejected rather than exported, for the reason the Hugo partial is: a `<head>`
5
+ * is something a site owns. A shipped component would also be a `.astro` file
6
+ * in the published package, which nothing in this build compiles or typechecks,
7
+ * and which would then have to be kept working across Astro versions.
8
+ *
9
+ * The route is mapped to a manifest key by `metaTagsForPath`, which is in the
10
+ * package and tested there, so what is ejected stays small enough to read.
11
+ */
12
+ export const astroComponent = `---
13
+ /**
14
+ * Social meta tags for the current route, from the images Colophon generated.
15
+ *
16
+ * Use it in your layout's <head>:
17
+ *
18
+ * <ColophonMeta />
19
+ *
20
+ * The manifest import path is where the config's \`manifest\` option points.
21
+ * The cast is because a JSON import types "version" as number rather than as
22
+ * the literal 1 the Manifest type asks for.
23
+ */
24
+ import { metaTagsForPath } from "@kensio/colophon/meta";
25
+ import type { Manifest } from "@kensio/colophon";
26
+ import manifest from "../data/colophon.json";
27
+
28
+ const tags = metaTagsForPath(manifest as Manifest, Astro.url.pathname, {
29
+ baseUrl: Astro.site?.href,
30
+ });
31
+ ---
32
+
33
+ {tags.map((tag) => <meta {...tag} />)}
34
+ `;
35
+ //# sourceMappingURL=astro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"astro.js","sourceRoot":"","sources":["../../../src/cli/eject/astro.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsB7B,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * The Hugo partial `colophon eject hugo` writes.
3
+ *
4
+ * It is a lookup in the manifest a build wrote, which is the whole point: the
5
+ * two Hugo sites this was taken from spent 50 and 58 lines respectively globbing
6
+ * for `*-og.png` and hardcoding the dimensions, because nothing told them what
7
+ * had been generated.
8
+ *
9
+ * Ejected rather than imported. A partial shipped in `node_modules` would have
10
+ * to be mounted into the site's own `layouts`, and a site that wants to change
11
+ * the fallback chain, or emit one more tag, should be able to just edit it.
12
+ *
13
+ * Verified against Hugo 0.162 over a site covering each branch: a route key, a
14
+ * basename key, a frontmatter slug, a page bundle, a manifest entry with no
15
+ * URL, a page override, a page the manifest does not have, a page with no file
16
+ * at all, and a site with no manifest.
17
+ */
18
+ export declare const hugoPartial = "{{- /*\n Colophon: social meta tags for the current page, from the image manifest.\n\n Call it from your <head>, passing the page:\n\n {{ partial \"colophon.html\" . }}\n\n It reads the manifest as site data, so point the config's `manifest` option\n at `data/colophon.json`.\n\n Needs Hugo 0.156 or newer for `hugo.Data`. On an older Hugo, change the two\n references below to `site.Data`.\n\n Colophon writes this file for you and then leaves it alone: it is yours to\n edit. Re-running `colophon eject hugo --force` replaces it.\n*/ -}}\n\n{{- $pages := dict -}}\n{{- with hugo.Data.colophon -}}\n {{- with .pages -}}\n {{- $pages = . -}}\n {{- end -}}\n{{- end -}}\n\n{{- /* The manifest is keyed by slug, and which slug depends on the\n `slugStrategy` the build used. The route key is tried first and the\n basename second, so one partial covers both without being told which. */ -}}\n{{- $keys := slice -}}\n{{- with .Params.colophon_key -}}\n {{- $keys = $keys | append . -}}\n{{- end -}}\n{{- with .Slug -}}\n {{- $keys = $keys | append . -}}\n{{- end -}}\n{{- $route := strings.TrimPrefix \"/\" .Path -}}\n{{- $keys = $keys | append (cond (eq $route \"\") \"index\" $route) -}}\n{{- with .File -}}\n {{- $keys = $keys | append .ContentBaseName -}}\n{{- end -}}\n\n{{- $entry := dict -}}\n{{- range $keys -}}\n {{- if not $entry -}}\n {{- with index $pages . -}}\n {{- $entry = . -}}\n {{- end -}}\n {{- end -}}\n{{- end -}}\n\n{{- /* The generated image, where the manifest has one with an address. A\n placement without `urlBase` records dimensions and no URL, which is\n nothing to point a crawler at. */ -}}\n{{- $image := false -}}\n{{- with $entry.images -}}\n {{- $widest := index . $entry.widest -}}\n {{- if $widest -}}\n {{- if $widest.url -}}\n {{- $image = $widest -}}\n {{- end -}}\n {{- end -}}\n{{- end -}}\n\n{{- /* An explicit page override wins, then the generated image, then whatever\n the site falls back to. Width, height and alt describe the generated\n image, so they go only with that one. */ -}}\n{{- $url := \"\" -}}\n{{- with .Params.images -}}\n {{- $url = index . 0 -}}\n {{- $image = false -}}\n{{- else -}}\n {{- with $image -}}\n {{- $url = .url -}}\n {{- else -}}\n {{- with site.Params.images -}}\n {{- $url = index . 0 -}}\n {{- end -}}\n {{- end -}}\n{{- end -}}\n\n{{- with $url -}}\n {{- $alt := \"\" -}}\n {{- if $image -}}\n {{- with $entry.alt -}}\n {{- $alt = . -}}\n {{- end -}}\n {{- end -}}\n {{- /* `summary_large_image` is specified for 2:1 and the Open Graph\n landscape is 1.91:1, so both clear this; a square is shown better by\n a plain summary card. Only a generated image has dimensions to judge\n by, so anything else is assumed to be a landscape share image. */ -}}\n {{- $large := true -}}\n {{- with $image -}}\n {{- $large = ge (div (float .width) (float .height)) 1.5 -}}\n {{- end -}}\n<meta property=\"og:image\" content=\"{{ . | absURL }}\" />\n {{- with $image }}\n<meta property=\"og:image:width\" content=\"{{ .width }}\" />\n<meta property=\"og:image:height\" content=\"{{ .height }}\" />\n {{- end }}\n {{- with $alt }}\n<meta property=\"og:image:alt\" content=\"{{ . }}\" />\n {{- end }}\n<meta name=\"twitter:card\" content=\"{{ cond $large \"summary_large_image\" \"summary\" }}\" />\n<meta name=\"twitter:image\" content=\"{{ $url | absURL }}\" />\n {{- with $alt }}\n<meta name=\"twitter:image:alt\" content=\"{{ . }}\" />\n {{- end }}\n{{- end -}}\n";
19
+ //# sourceMappingURL=hugo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hugo.d.ts","sourceRoot":"","sources":["../../../src/cli/eject/hugo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,WAAW,sgHA4GvB,CAAC"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * The Hugo partial `colophon eject hugo` writes.
3
+ *
4
+ * It is a lookup in the manifest a build wrote, which is the whole point: the
5
+ * two Hugo sites this was taken from spent 50 and 58 lines respectively globbing
6
+ * for `*-og.png` and hardcoding the dimensions, because nothing told them what
7
+ * had been generated.
8
+ *
9
+ * Ejected rather than imported. A partial shipped in `node_modules` would have
10
+ * to be mounted into the site's own `layouts`, and a site that wants to change
11
+ * the fallback chain, or emit one more tag, should be able to just edit it.
12
+ *
13
+ * Verified against Hugo 0.162 over a site covering each branch: a route key, a
14
+ * basename key, a frontmatter slug, a page bundle, a manifest entry with no
15
+ * URL, a page override, a page the manifest does not have, a page with no file
16
+ * at all, and a site with no manifest.
17
+ */
18
+ export const hugoPartial = `{{- /*
19
+ Colophon: social meta tags for the current page, from the image manifest.
20
+
21
+ Call it from your <head>, passing the page:
22
+
23
+ {{ partial "colophon.html" . }}
24
+
25
+ It reads the manifest as site data, so point the config's \`manifest\` option
26
+ at \`data/colophon.json\`.
27
+
28
+ Needs Hugo 0.156 or newer for \`hugo.Data\`. On an older Hugo, change the two
29
+ references below to \`site.Data\`.
30
+
31
+ Colophon writes this file for you and then leaves it alone: it is yours to
32
+ edit. Re-running \`colophon eject hugo --force\` replaces it.
33
+ */ -}}
34
+
35
+ {{- $pages := dict -}}
36
+ {{- with hugo.Data.colophon -}}
37
+ {{- with .pages -}}
38
+ {{- $pages = . -}}
39
+ {{- end -}}
40
+ {{- end -}}
41
+
42
+ {{- /* The manifest is keyed by slug, and which slug depends on the
43
+ \`slugStrategy\` the build used. The route key is tried first and the
44
+ basename second, so one partial covers both without being told which. */ -}}
45
+ {{- $keys := slice -}}
46
+ {{- with .Params.colophon_key -}}
47
+ {{- $keys = $keys | append . -}}
48
+ {{- end -}}
49
+ {{- with .Slug -}}
50
+ {{- $keys = $keys | append . -}}
51
+ {{- end -}}
52
+ {{- $route := strings.TrimPrefix "/" .Path -}}
53
+ {{- $keys = $keys | append (cond (eq $route "") "index" $route) -}}
54
+ {{- with .File -}}
55
+ {{- $keys = $keys | append .ContentBaseName -}}
56
+ {{- end -}}
57
+
58
+ {{- $entry := dict -}}
59
+ {{- range $keys -}}
60
+ {{- if not $entry -}}
61
+ {{- with index $pages . -}}
62
+ {{- $entry = . -}}
63
+ {{- end -}}
64
+ {{- end -}}
65
+ {{- end -}}
66
+
67
+ {{- /* The generated image, where the manifest has one with an address. A
68
+ placement without \`urlBase\` records dimensions and no URL, which is
69
+ nothing to point a crawler at. */ -}}
70
+ {{- $image := false -}}
71
+ {{- with $entry.images -}}
72
+ {{- $widest := index . $entry.widest -}}
73
+ {{- if $widest -}}
74
+ {{- if $widest.url -}}
75
+ {{- $image = $widest -}}
76
+ {{- end -}}
77
+ {{- end -}}
78
+ {{- end -}}
79
+
80
+ {{- /* An explicit page override wins, then the generated image, then whatever
81
+ the site falls back to. Width, height and alt describe the generated
82
+ image, so they go only with that one. */ -}}
83
+ {{- $url := "" -}}
84
+ {{- with .Params.images -}}
85
+ {{- $url = index . 0 -}}
86
+ {{- $image = false -}}
87
+ {{- else -}}
88
+ {{- with $image -}}
89
+ {{- $url = .url -}}
90
+ {{- else -}}
91
+ {{- with site.Params.images -}}
92
+ {{- $url = index . 0 -}}
93
+ {{- end -}}
94
+ {{- end -}}
95
+ {{- end -}}
96
+
97
+ {{- with $url -}}
98
+ {{- $alt := "" -}}
99
+ {{- if $image -}}
100
+ {{- with $entry.alt -}}
101
+ {{- $alt = . -}}
102
+ {{- end -}}
103
+ {{- end -}}
104
+ {{- /* \`summary_large_image\` is specified for 2:1 and the Open Graph
105
+ landscape is 1.91:1, so both clear this; a square is shown better by
106
+ a plain summary card. Only a generated image has dimensions to judge
107
+ by, so anything else is assumed to be a landscape share image. */ -}}
108
+ {{- $large := true -}}
109
+ {{- with $image -}}
110
+ {{- $large = ge (div (float .width) (float .height)) 1.5 -}}
111
+ {{- end -}}
112
+ <meta property="og:image" content="{{ . | absURL }}" />
113
+ {{- with $image }}
114
+ <meta property="og:image:width" content="{{ .width }}" />
115
+ <meta property="og:image:height" content="{{ .height }}" />
116
+ {{- end }}
117
+ {{- with $alt }}
118
+ <meta property="og:image:alt" content="{{ . }}" />
119
+ {{- end }}
120
+ <meta name="twitter:card" content="{{ cond $large "summary_large_image" "summary" }}" />
121
+ <meta name="twitter:image" content="{{ $url | absURL }}" />
122
+ {{- with $alt }}
123
+ <meta name="twitter:image:alt" content="{{ . }}" />
124
+ {{- end }}
125
+ {{- end -}}
126
+ `;
127
+ //# sourceMappingURL=hugo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hugo.js","sourceRoot":"","sources":["../../../src/cli/eject/hugo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4G1B,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { CliArgs } from "../args/index.js";
2
+ /**
3
+ * Write a generator's template into the site, and say how to use it.
4
+ *
5
+ * Ejecting rather than importing is the point. The file lands in the site's own
6
+ * tree, where a project can read it, change the fallback chain and add a tag,
7
+ * without Colophon having to grow an option for every decision a site makes
8
+ * about its own head. What it replaces is 50-odd lines of globbing for images
9
+ * that the build already knew the names of.
10
+ *
11
+ * `dir` is the site root, the working directory by default, and a parameter
12
+ * because a test cannot `chdir`.
13
+ */
14
+ export declare function runEject(args: CliArgs, dir?: string): Promise<void>;
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/eject/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AA6BhD;;;;;;;;;;;GAWG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,OAAO,EACb,GAAG,SAAgB,GAClB,OAAO,CAAC,IAAI,CAAC,CAgBf"}
@@ -0,0 +1,46 @@
1
+ import { mkdir, writeFile } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { nearestName } from "../../validate/suggest.js";
4
+ import { isFile } from "../init/fs.js";
5
+ import { adapterNames, adapters } from "./adapters.js";
6
+ /** The adapter a run named, or a complaint naming the ones there are. */
7
+ function selectAdapter(name) {
8
+ if (name === undefined) {
9
+ throw new Error(`colophon eject needs something to eject: ${adapterNames.join(", ")}.`);
10
+ }
11
+ const adapter = adapters[name];
12
+ if (adapter !== undefined) {
13
+ return adapter;
14
+ }
15
+ // The same slip, and the same answer, as a mistyped config option.
16
+ const suggestion = nearestName(name, adapterNames);
17
+ const help = suggestion === undefined
18
+ ? `Try one of: ${adapterNames.join(", ")}.`
19
+ : `Did you mean "${suggestion}"?`;
20
+ throw new Error(`Cannot eject "${name}". ${help}`);
21
+ }
22
+ /**
23
+ * Write a generator's template into the site, and say how to use it.
24
+ *
25
+ * Ejecting rather than importing is the point. The file lands in the site's own
26
+ * tree, where a project can read it, change the fallback chain and add a tag,
27
+ * without Colophon having to grow an option for every decision a site makes
28
+ * about its own head. What it replaces is 50-odd lines of globbing for images
29
+ * that the build already knew the names of.
30
+ *
31
+ * `dir` is the site root, the working directory by default, and a parameter
32
+ * because a test cannot `chdir`.
33
+ */
34
+ export async function runEject(args, dir = process.cwd()) {
35
+ const adapter = selectAdapter(args.adapter);
36
+ const target = path.join(dir, adapter.file);
37
+ if ((await isFile(target)) && !args.overwrite) {
38
+ throw new Error(`${adapter.file} is already there. Pass --force to replace it,` +
39
+ ` remembering that it is a file you were meant to edit.`);
40
+ }
41
+ await mkdir(path.dirname(target), { recursive: true });
42
+ await writeFile(target, adapter.contents, "utf8");
43
+ console.log(`Wrote ${adapter.file}.`);
44
+ console.log(adapter.usage);
45
+ }
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/eject/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEvD,yEAAyE;AACzE,SAAS,aAAa,CAAC,IAAwB;IAC7C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,4CAA4C,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACvE,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE/B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,mEAAmE;IACnE,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACnD,MAAM,IAAI,GACR,UAAU,KAAK,SAAS;QACtB,CAAC,CAAC,eAAe,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QAC3C,CAAC,CAAC,iBAAiB,UAAU,IAAI,CAAC;IAEtC,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,MAAM,IAAI,EAAE,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,IAAa,EACb,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IAEnB,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5C,IAAI,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,CAAC,IAAI,gDAAgD;YAC7D,wDAAwD,CAC3D,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAElD,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC"}
package/dist/cli/index.js CHANGED
@@ -1,35 +1,40 @@
1
1
  #!/usr/bin/env node
2
- import { generate } from "../generate/index.js";
3
- import { parseCliArgs, usage } from "./args.js";
4
- import { loadConfig } from "./config.js";
2
+ import { parseCliArgs, usage } from "./args/index.js";
3
+ import { runBuild } from "./build.js";
4
+ import { runEject } from "./eject/index.js";
5
+ import { runInit } from "./init/index.js";
6
+ import { messageOf } from "./message.js";
7
+ import { runPreview } from "./preview/index.js";
8
+ /** Run whichever command the arguments asked for. */
9
+ async function run(args) {
10
+ switch (args.command) {
11
+ case "init": {
12
+ return runInit(args);
13
+ }
14
+ case "preview": {
15
+ return runPreview(args);
16
+ }
17
+ case "eject": {
18
+ return runEject(args);
19
+ }
20
+ case "generate": {
21
+ return runBuild(args);
22
+ }
23
+ }
24
+ }
5
25
  async function main() {
6
26
  const argv = process.argv.slice(2);
7
27
  if (argv.includes("-h") || argv.includes("--help")) {
8
28
  console.log(usage);
9
29
  return;
10
30
  }
11
- const args = parseCliArgs(argv);
12
- const config = await loadConfig(args.configPath);
13
- const results = await generate({
14
- contentDir: args.contentDir,
15
- overwrite: args.overwrite,
16
- ...(config !== undefined && { config }),
17
- ...(args.concurrency !== undefined && { concurrency: args.concurrency }),
18
- onResult: (result) => {
19
- // The URL is the half of a placement nothing else on the command line
20
- // would show, and the quickest way to see a `urlBase` is wrong.
21
- const served = result.url === undefined ? "" : ` -> ${result.url}`;
22
- console.log(`${result.skipped ? "skip " : "wrote"} ${result.outputPath}${served}`);
23
- },
24
- });
25
- const written = results.filter((result) => !result.skipped).length;
26
- console.log(`Done: ${String(written)} written, ${String(results.length - written)} skipped.`);
31
+ await run(parseCliArgs(argv));
27
32
  }
28
33
  try {
29
34
  await main();
30
35
  }
31
36
  catch (error) {
32
- console.error(error instanceof Error ? error.message : String(error));
37
+ console.error(messageOf(error));
33
38
  process.exitCode = 1;
34
39
  }
35
40
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEjD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC;QAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;QACvC,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACxE,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YACnB,sEAAsE;YACtE,gEAAgE;YAChE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC;YACnE,OAAO,CAAC,GAAG,CACT,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,GAAG,MAAM,EAAE,CACtE,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IACnE,OAAO,CAAC,GAAG,CACT,SAAS,MAAM,CAAC,OAAO,CAAC,aAAa,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,WAAW,CACjF,CAAC;AACJ,CAAC;AAED,IAAI,CAAC;IACH,MAAM,IAAI,EAAE,CAAC;AACf,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,qDAAqD;AACrD,KAAK,UAAU,GAAG,CAAC,IAAa;IAC9B,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,KAAK,MAAM,EAAE,CAAC;YACZ,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QACD,KAAK,SAAS,EAAE,CAAC;YACf,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,OAAO,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,KAAK,UAAU,EAAE,CAAC;YAChB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO;IACT,CAAC;IAED,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,IAAI,CAAC;IACH,MAAM,IAAI,EAAE,CAAC;AACf,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAChC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /** Whether a file is there to be read. */
2
+ export declare function isFile(target: string): Promise<boolean>;
3
+ /** Whether a directory is there to be walked. */
4
+ export declare function isDirectory(target: string): Promise<boolean>;
5
+ //# sourceMappingURL=fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../../src/cli/init/fs.ts"],"names":[],"mappings":"AAeA,0CAA0C;AAC1C,wBAAsB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE7D;AAED,iDAAiD;AACjD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAElE"}
@@ -0,0 +1,19 @@
1
+ import { stat } from "node:fs/promises";
2
+ /** Anything unreadable counts as absent, which is all these callers need. */
3
+ async function statMatches(target, isWanted) {
4
+ try {
5
+ return isWanted(await stat(target));
6
+ }
7
+ catch {
8
+ return false;
9
+ }
10
+ }
11
+ /** Whether a file is there to be read. */
12
+ export async function isFile(target) {
13
+ return statMatches(target, (stats) => stats.isFile());
14
+ }
15
+ /** Whether a directory is there to be walked. */
16
+ export async function isDirectory(target) {
17
+ return statMatches(target, (stats) => stats.isDirectory());
18
+ }
19
+ //# sourceMappingURL=fs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../src/cli/init/fs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,6EAA6E;AAC7E,KAAK,UAAU,WAAW,CACxB,MAAc,EACd,QAAmC;IAEnC,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,0CAA0C;AAC1C,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,MAAc;IACzC,OAAO,WAAW,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,iDAAiD;AACjD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAc;IAC9C,OAAO,WAAW,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Guess which directory holds the content, or return `undefined` where none of
3
+ * the usual ones is there.
4
+ *
5
+ * The guess only ever reaches the command line this prints for the project to
6
+ * run next, so being wrong costs a corrected argument rather than a wrong build.
7
+ */
8
+ export declare function guessContentDir(dir: string): Promise<string | undefined>;
9
+ //# sourceMappingURL=guess.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guess.d.ts","sourceRoot":"","sources":["../../../src/cli/init/guess.ts"],"names":[],"mappings":"AAkBA;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQ7B"}
@@ -0,0 +1,27 @@
1
+ import path from "node:path";
2
+ import { isDirectory } from "./fs.js";
3
+ /**
4
+ * Where a static site usually keeps its posts, in the order to prefer them.
5
+ * The list is short on purpose: a directory that is not on it is one the run
6
+ * can name itself, and guessing further would be guessing wrongly.
7
+ */
8
+ const candidates = [
9
+ "content",
10
+ "src/content",
11
+ "posts",
12
+ "src/posts",
13
+ "_posts",
14
+ "src/pages",
15
+ ];
16
+ /**
17
+ * Guess which directory holds the content, or return `undefined` where none of
18
+ * the usual ones is there.
19
+ *
20
+ * The guess only ever reaches the command line this prints for the project to
21
+ * run next, so being wrong costs a corrected argument rather than a wrong build.
22
+ */
23
+ export async function guessContentDir(dir) {
24
+ const found = await Promise.all(candidates.map(async (candidate) => (await isDirectory(path.join(dir, candidate))) ? candidate : undefined));
25
+ return found.find((candidate) => candidate !== undefined);
26
+ }
27
+ //# sourceMappingURL=guess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guess.js","sourceRoot":"","sources":["../../../src/cli/init/guess.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC;;;;GAIG;AACH,MAAM,UAAU,GAAG;IACjB,SAAS;IACT,aAAa;IACb,OAAO;IACP,WAAW;IACX,QAAQ;IACR,WAAW;CACZ,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAW;IAEX,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CACjC,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CACvE,CACF,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { CliArgs } from "../args/index.js";
2
+ /**
3
+ * Write a starter config module into `dir`, the working directory by default,
4
+ * and say what to run against it.
5
+ *
6
+ * A config that is already there is replaced only under `--force`, and then at
7
+ * its own path rather than at the one this would have chosen: a project that
8
+ * settled on a TypeScript config should not end up holding two.
9
+ */
10
+ export declare function runInit(args: CliArgs, dir?: string): Promise<void>;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/init/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAiBhD;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAC3B,IAAI,EAAE,OAAO,EACb,GAAG,SAAgB,GAClB,OAAO,CAAC,IAAI,CAAC,CAkBf"}
@@ -0,0 +1,36 @@
1
+ import { writeFile } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { guessContentDir } from "./guess.js";
4
+ import { configFilename, existingConfig } from "./module.js";
5
+ import { scaffold } from "./scaffold.js";
6
+ /** The command to run next, which is the whole point of the guess. */
7
+ function nextStep(config, contentDir) {
8
+ if (contentDir === undefined) {
9
+ return (`No content directory found. Point the CLI at yours:\n` +
10
+ ` colophon <contentDir> --config ${config}`);
11
+ }
12
+ return `Then render the images:\n colophon ${contentDir} --config ${config}`;
13
+ }
14
+ /**
15
+ * Write a starter config module into `dir`, the working directory by default,
16
+ * and say what to run against it.
17
+ *
18
+ * A config that is already there is replaced only under `--force`, and then at
19
+ * its own path rather than at the one this would have chosen: a project that
20
+ * settled on a TypeScript config should not end up holding two.
21
+ */
22
+ export async function runInit(args, dir = process.cwd()) {
23
+ const [existing, chosen, guessed] = await Promise.all([
24
+ existingConfig(dir),
25
+ configFilename(dir),
26
+ guessContentDir(dir),
27
+ ]);
28
+ if (existing !== undefined && !args.overwrite) {
29
+ throw new Error(`${existing} is already there. Pass --force to replace it.`);
30
+ }
31
+ const config = existing ?? chosen;
32
+ await writeFile(path.join(dir, config), scaffold, "utf8");
33
+ console.log(`Wrote ${config}.`);
34
+ console.log(nextStep(config, args.contentDir ?? guessed));
35
+ }
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/init/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,sEAAsE;AACtE,SAAS,QAAQ,CAAC,MAAc,EAAE,UAA8B;IAC9D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,CACL,uDAAuD;YACvD,oCAAoC,MAAM,EAAE,CAC7C,CAAC;IACJ,CAAC;IAED,OAAO,uCAAuC,UAAU,aAAa,MAAM,EAAE,CAAC;AAChF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,IAAa,EACb,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IAEnB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpD,cAAc,CAAC,GAAG,CAAC;QACnB,cAAc,CAAC,GAAG,CAAC;QACnB,eAAe,CAAC,GAAG,CAAC;KACrB,CAAC,CAAC;IAEH,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,GAAG,QAAQ,gDAAgD,CAC5D,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,IAAI,MAAM,CAAC;IAClC,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAE1D,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,12 @@
1
+ /** The config module a project already has, whatever it chose to call it. */
2
+ export declare function existingConfig(dir: string): Promise<string | undefined>;
3
+ /**
4
+ * What to call the config this command writes.
5
+ *
6
+ * A Colophon config is an ES module: `defineConfig` is imported and the config
7
+ * is the default export. In a project without `"type": "module"` a `.js` file
8
+ * is CommonJS, so `--config` would fail to import the very file `init` had just
9
+ * written. `.mjs` is that case's way out, and `.js` is right everywhere else.
10
+ */
11
+ export declare function configFilename(dir: string): Promise<string>;
12
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/cli/init/module.ts"],"names":[],"mappings":"AAiBA,6EAA6E;AAC7E,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQ7E;AAcD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIjE"}
@@ -0,0 +1,45 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { isFile } from "./fs.js";
4
+ /**
5
+ * The names a config module is written under, in the order a project is
6
+ * likeliest to have chosen. A `.ts` config works on a Node that strips types,
7
+ * and the docs use one, so it is the first thing to look for.
8
+ */
9
+ const configNames = [
10
+ "colophon.config.ts",
11
+ "colophon.config.mts",
12
+ "colophon.config.js",
13
+ "colophon.config.mjs",
14
+ ];
15
+ /** The config module a project already has, whatever it chose to call it. */
16
+ export async function existingConfig(dir) {
17
+ const found = await Promise.all(configNames.map(async (name) => (await isFile(path.join(dir, name))) ? name : undefined));
18
+ return found.find((name) => name !== undefined);
19
+ }
20
+ /** Whether the project has already declared itself an ES module. */
21
+ async function isModuleProject(dir) {
22
+ try {
23
+ const raw = await readFile(path.join(dir, "package.json"), "utf8");
24
+ return JSON.parse(raw).type === "module";
25
+ }
26
+ catch {
27
+ // No package.json, or one that is not JSON. Either way there is nothing
28
+ // saying the project is ESM, so the safe extension is the one to write.
29
+ return false;
30
+ }
31
+ }
32
+ /**
33
+ * What to call the config this command writes.
34
+ *
35
+ * A Colophon config is an ES module: `defineConfig` is imported and the config
36
+ * is the default export. In a project without `"type": "module"` a `.js` file
37
+ * is CommonJS, so `--config` would fail to import the very file `init` had just
38
+ * written. `.mjs` is that case's way out, and `.js` is right everywhere else.
39
+ */
40
+ export async function configFilename(dir) {
41
+ return (await isModuleProject(dir))
42
+ ? "colophon.config.js"
43
+ : "colophon.config.mjs";
44
+ }
45
+ //# sourceMappingURL=module.js.map