@heroiclands/package-build 0.6.0 → 3.0.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 (127) hide show
  1. package/CHANGELOG-content-build.md +965 -0
  2. package/CHANGELOG.md +95 -0
  3. package/CONTENT.md +824 -0
  4. package/MIGRATING.md +127 -0
  5. package/README.md +29 -17
  6. package/bin/content-build.mjs +1082 -0
  7. package/bin/package-build.mjs +2 -2
  8. package/bin/report.mjs +2 -2
  9. package/config.mjs +21 -18
  10. package/content-config.mjs +1424 -0
  11. package/coverage.mjs +1 -1
  12. package/e2e.mjs +1 -1
  13. package/engine/abbreviations.mjs +0 -0
  14. package/engine/base-compiler.mjs +608 -0
  15. package/engine/code-fences.mjs +311 -0
  16. package/engine/compendiums.mjs +353 -0
  17. package/engine/content-address.mjs +141 -0
  18. package/engine/content-links.mjs +438 -0
  19. package/engine/content-lint.mjs +204 -0
  20. package/engine/content-package.mjs +67 -0
  21. package/engine/content-slug.mjs +169 -0
  22. package/engine/content-tables.mjs +1216 -0
  23. package/engine/content-tree.mjs +56 -0
  24. package/engine/diagnostics.mjs +270 -0
  25. package/engine/field-reference.mjs +242 -0
  26. package/engine/field-spec.mjs +218 -0
  27. package/engine/foreign-catalog.mjs +450 -0
  28. package/engine/foreign-manifests.mjs +129 -0
  29. package/engine/frontmatter-lint.mjs +343 -0
  30. package/engine/frontmatter.mjs +258 -0
  31. package/engine/generate.mjs +305 -0
  32. package/engine/helpers.mjs +809 -0
  33. package/engine/ids.mjs +192 -0
  34. package/engine/index.mjs +142 -0
  35. package/engine/item-docs.mjs +153 -0
  36. package/engine/item-registry.mjs +129 -0
  37. package/engine/journals.mjs +374 -0
  38. package/engine/kb-manifest.mjs +473 -0
  39. package/engine/macros.mjs +333 -0
  40. package/engine/manifest-emit.mjs +339 -0
  41. package/engine/map-notes.mjs +1302 -0
  42. package/engine/pack-config.mjs +479 -0
  43. package/engine/pack-router.mjs +254 -0
  44. package/engine/prose-config.mjs +238 -0
  45. package/engine/prose-lint.mjs +294 -0
  46. package/engine/region-events.mjs +79 -0
  47. package/engine/scene-levels.mjs +420 -0
  48. package/engine/scenes.mjs +528 -0
  49. package/engine/site-build.mjs +778 -0
  50. package/engine/site-index.mjs +332 -0
  51. package/engine/web-wikilinks.mjs +330 -0
  52. package/engine/wikilink-syntax.mjs +105 -0
  53. package/engine/wikilinks.mjs +645 -0
  54. package/index.mjs +42 -25
  55. package/lang.mjs +1 -1
  56. package/manifest.mjs +79 -5
  57. package/markdownlint-config.mjs +45 -0
  58. package/package.json +78 -34
  59. package/prettier-config.mjs +34 -0
  60. package/sohl/actors.mjs +581 -0
  61. package/sohl/affiliation-standings.mjs +44 -0
  62. package/sohl/being-info.mjs +173 -0
  63. package/sohl/default-item-art.mjs +82 -0
  64. package/sohl/index.mjs +55 -0
  65. package/sohl/item-builders.mjs +114 -0
  66. package/sohl/item-fields.mjs +867 -0
  67. package/sohl/items.mjs +197 -0
  68. package/sohl/kb-passes.mjs +207 -0
  69. package/sohl/note-schemas.mjs +322 -0
  70. package/templates.mjs +1 -1
  71. package/types/config.d.mts +1 -1
  72. package/types/content-config.d.mts +571 -0
  73. package/types/engine/abbreviations.d.mts +44 -0
  74. package/types/engine/base-compiler.d.mts +320 -0
  75. package/types/engine/code-fences.d.mts +102 -0
  76. package/types/engine/compendiums.d.mts +77 -0
  77. package/types/engine/content-address.d.mts +61 -0
  78. package/types/engine/content-links.d.mts +87 -0
  79. package/types/engine/content-lint.d.mts +47 -0
  80. package/types/engine/content-package.d.mts +36 -0
  81. package/types/engine/content-slug.d.mts +59 -0
  82. package/types/engine/content-tables.d.mts +131 -0
  83. package/types/engine/content-tree.d.mts +12 -0
  84. package/types/engine/diagnostics.d.mts +152 -0
  85. package/types/engine/field-reference.d.mts +20 -0
  86. package/types/engine/field-spec.d.mts +181 -0
  87. package/types/engine/foreign-catalog.d.mts +103 -0
  88. package/types/engine/foreign-manifests.d.mts +43 -0
  89. package/types/engine/frontmatter-lint.d.mts +74 -0
  90. package/types/engine/frontmatter.d.mts +99 -0
  91. package/types/engine/generate.d.mts +56 -0
  92. package/types/engine/helpers.d.mts +348 -0
  93. package/types/engine/ids.d.mts +126 -0
  94. package/types/engine/index.d.mts +33 -0
  95. package/types/engine/item-docs.d.mts +73 -0
  96. package/types/engine/item-registry.d.mts +57 -0
  97. package/types/engine/journals.d.mts +121 -0
  98. package/types/engine/kb-manifest.d.mts +214 -0
  99. package/types/engine/macros.d.mts +201 -0
  100. package/types/engine/manifest-emit.d.mts +137 -0
  101. package/types/engine/map-notes.d.mts +283 -0
  102. package/types/engine/pack-config.d.mts +77 -0
  103. package/types/engine/pack-router.d.mts +53 -0
  104. package/types/engine/prose-config.d.mts +121 -0
  105. package/types/engine/prose-lint.d.mts +59 -0
  106. package/types/engine/region-events.d.mts +43 -0
  107. package/types/engine/scene-levels.d.mts +36 -0
  108. package/types/engine/scenes.d.mts +48 -0
  109. package/types/engine/site-build.d.mts +214 -0
  110. package/types/engine/site-index.d.mts +141 -0
  111. package/types/engine/web-wikilinks.d.mts +67 -0
  112. package/types/engine/wikilink-syntax.d.mts +101 -0
  113. package/types/engine/wikilinks.d.mts +172 -0
  114. package/types/index.d.mts +3 -0
  115. package/types/manifest.d.mts +52 -4
  116. package/types/markdownlint-config.d.mts +8 -0
  117. package/types/prettier-config.d.mts +1 -0
  118. package/types/sohl/actors.d.mts +65 -0
  119. package/types/sohl/affiliation-standings.d.mts +22 -0
  120. package/types/sohl/being-info.d.mts +78 -0
  121. package/types/sohl/default-item-art.d.mts +28 -0
  122. package/types/sohl/index.d.mts +7 -0
  123. package/types/sohl/item-builders.d.mts +11 -0
  124. package/types/sohl/item-fields.d.mts +20 -0
  125. package/types/sohl/items.d.mts +19 -0
  126. package/types/sohl/kb-passes.d.mts +71 -0
  127. package/types/sohl/note-schemas.d.mts +7 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,100 @@
1
1
  # @heroiclands/package-build
2
2
 
3
+ ## 3.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - 3e6a6d7: Absorb `@heroiclands/content-build`. The two packages are one.
8
+
9
+ They split by input — content-build read `assets/content/**`, this package read
10
+ `lang/`, `styles/`, `src/` and the manifest template — on the theory that a
11
+ module would use one or the other. No consumer ever did: all three installed
12
+ both, and this package depended on the other besides. What the boundary cost was
13
+ a configuration file with two owners, two CLIs with a colliding `manifest`
14
+ command, and a two-repository dance for changes that touched a single idea.
15
+
16
+ Nothing about how a build works changed. Same modules, same CLI commands, same
17
+ configuration keys, one name.
18
+
19
+ **Breaking:**
20
+
21
+ - `@heroiclands/content-build/*` specifiers become `@heroiclands/package-build/*`.
22
+ - The content configuration contract moves from `./config` to `./content-config`,
23
+ because both packages exported a `./config` meaning different things. This
24
+ package's own `./config` is unchanged.
25
+ - **The configuration file is renamed**: `content-build.config.{yaml,yml,mjs}`
26
+ becomes `package-build.config.{yaml,yml,mjs}`, matching the one package that
27
+ now reads it. The old stem is not accepted — a deprecation window would let a
28
+ repository sit on a filename naming a package that no longer exists. Every key
29
+ inside the file is unchanged.
30
+ - `CONTENT_BUILD_CONFIG` becomes `PACKAGE_BUILD_CONFIG`. The old name is not read.
31
+ - `@heroiclands/content-build` is deprecated and gets no further releases.
32
+
33
+ **Unchanged:** every configuration key, every CLI command and flag — `content-build`
34
+ and `package-build` are both bin entries of the merged package — every engine and
35
+ `sohl` module export, and every compiled document id.
36
+
37
+ See `MIGRATING.md`.
38
+
39
+ ### Patch Changes
40
+
41
+ - 968fed8: Stop publishing a relationship's build-only keys into the manifest.
42
+
43
+ `relationships` was copied verbatim out of `content-build.config.yaml`, and that
44
+ block now has a second reader: content-build 1.8.0 added `itemCatalog: true` as
45
+ an opt-in on a declared dependency, selecting that package's Item packs as a
46
+ resolution source for the actors pass. It is a directive to the build, not a
47
+ fact about the shipped package — so `sohl-kethira-basic` shipped a `module.json`
48
+ whose `relationships.systems[0]` carried `"itemCatalog": true` beside `id`,
49
+ `manifest` and `compatibility`, with nothing to tell a consumer which was which.
50
+ Foundry's relationship schema does not define the key; nothing broke, because
51
+ Foundry ignores what it does not know.
52
+
53
+ The fix is the distinction rather than the one name: `BUILD_ONLY_RELATIONSHIP_KEYS`
54
+ lists the keys that answer _how is this built?_, and `publishedRelationships`
55
+ drops them on the way into the manifest. Everything else is copied — including a
56
+ key this package has never heard of, on the same reasoning that lets a declared
57
+ manifest key through unread. A list is enough here, and needs no prefix agreed
58
+ between the two packages, because content-build already normalises a
59
+ relationship to a closed set of keys and rejects the rest at configuration time.
60
+
61
+ ## 0.6.1
62
+
63
+ ### Patch Changes
64
+
65
+ - e5cfbbb: Move the release workflow to `changesets/action@v2`.
66
+
67
+ v2 renamed four of the inputs this workflow passes — `version` →
68
+ `version-script`, `publish` → `publish-script`, `commit` → `commit-message`,
69
+ `title` → `pr-title` — and **rejects the old names outright** rather than
70
+ warning and carrying on. So the bump and the rename have to land in the same
71
+ commit.
72
+
73
+ Taken deliberately rather than waiting for Dependabot, because Dependabot bumps
74
+ the pin without touching the inputs, and that combination has already broken the
75
+ release pipeline in three sibling repositories:
76
+ Song-of-Heroic-Lands-FoundryVTT#1729, sohl-thalorna#71 and
77
+ sohl-kethira-basic#42. In the first of those it went unnoticed for over two
78
+ weeks — a failing release job looks exactly like a repository nobody has
79
+ released lately.
80
+
81
+ Nothing else had to move: `version-script` already calls an npm script (#25), and
82
+ one command is what v2's tokenized, never-shelled input requires.
83
+ - d4a5a6e: Take `@heroiclands/content-build` 1.8.2.
84
+
85
+ The declared range was `^1.0.0`, which permitted this all along — the lockfile
86
+ was the thing four minors behind, pinned at **1.4.0**. So the two packages were
87
+ built and tested against a version no consumer would actually resolve. Pinning
88
+ the range at `^1.8.2` and refreshing the lockfile makes what CI tests and what a
89
+ consumer installs the same thing.
90
+
91
+ The jump matters more than a patch bump suggests: package-build imports
92
+ `loadPackConfig` from `content-build/engine/pack-config`, and 1.4.0 predates
93
+ both the move to YAML configuration and the switch to lazy config accessors.
94
+ Verified against the new version rather than assumed — 293 tests pass,
95
+ `build:types` and `format:check` are clean, and the CLI resolves its
96
+ configuration and lists its commands.
97
+
3
98
  ## 0.6.0
4
99
 
5
100
  ### Minor Changes