@datasworn-community/build-tools 0.2.9-experimental.19.d9bcc568c866 → 0.2.10

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.
package/README.md CHANGED
@@ -24,6 +24,38 @@ packageOutDir: dist/packages
24
24
  This writes flat `<package-id>.json` files, `manifest.json`, and `README.md`.
25
25
  Do not edit those generated files by hand.
26
26
 
27
+ ## In-memory builds
28
+
29
+ Embedded consumers such as Iron Vault can compile already-parsed fragments with
30
+ `RulesPackageBuilder`. Import it from `@datasworn-community/build-tools`, rather
31
+ than from a deep path in core, and initialize it with synchronous schema
32
+ validators before constructing a builder:
33
+
34
+ ```ts
35
+ import { RulesPackageBuilder } from '@datasworn-community/build-tools'
36
+
37
+ RulesPackageBuilder.init({ validator, sourceValidator })
38
+
39
+ const builder = new RulesPackageBuilder('my_ruleset', console)
40
+ builder.addFiles(
41
+ { name: 'package.md', data: packageFragment },
42
+ { name: 'oracles/characters.md', data: oracleFragment }
43
+ )
44
+
45
+ if (builder.errors.has('oracles/characters.md')) {
46
+ builder.files.delete('oracles/characters.md')
47
+ builder.errors.delete('oracles/characters.md')
48
+ }
49
+
50
+ const data = builder.build().toJSON()
51
+ ```
52
+
53
+ `files` and `errors` are keyed by fragment name, so consumers can inspect or
54
+ remove individual inputs before rebuilding. Semantic oracle validation runs as
55
+ part of `build()`. ID-reference validation remains a separate exported operation:
56
+ call `validateIdRefs(data, tree)` when the assembled package and its dependency
57
+ tree are available.
58
+
27
59
  The upstream TypeBox schema source is imported under `schema-source/` as source
28
60
  material for the schema generation work. Runtime validation uses the generated
29
61
  schemas shipped by core.
@@ -1 +1 @@
1
- {"version":3,"file":"content-package-builder.d.ts","sourceRoot":"","sources":["../src/content-package-builder.ts"],"names":[],"mappings":"AAMA,OAAO,EAEN,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,MAAM,4BAA4B,CAAA;AAKnC,UAAU,WAAW;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC,UAAU,EAAE,iBAAiB,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,8BAA8B;IAC9C,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAA;IACV,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAA;IACnB,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACzE,iFAAiF;IACjF,WAAW,EAAE,MAAM,CAAA;IACnB,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAA;IAClB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,2EAA2E;IAC3E,mBAAmB,CAAC,EAAE,8BAA8B,EAAE,CAAA;IACtD;;;OAGG;IACH,sBAAsB,CAAC,EAAE,8BAA8B,EAAE,CAAA;IACzD;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,KAAK,CAAC,EAAE,uBAAuB,CAAC,OAAO,CAAC,GAAG;QAC1C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;QACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;KACpB,CAAA;CACD;AAED,MAAM,WAAW,uBAAuB;IACvC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,iBAAiB,CAAA;IAC7B,QAAQ,EAAE,yBAAyB,EAAE,CAAA;CACrC;AAED,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACzE,MAAM,EAAE,yBAAyB,CAAA;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,WAAW,CAAA;CACxB;AAED,MAAM,WAAW,uBAAuB;IACvC,OAAO,EAAE,yBAAyB,EAAE,CAAA;IACpC,UAAU,EAAE,MAAM,EAAE,CAAA;CACpB;AAuWD,wBAAsB,oBAAoB,CACzC,MAAM,EAAE,uBAAuB,GAC7B,OAAO,CAAC,uBAAuB,CAAC,CAkDlC"}
1
+ {"version":3,"file":"content-package-builder.d.ts","sourceRoot":"","sources":["../src/content-package-builder.ts"],"names":[],"mappings":"AAUA,OAAO,EAEN,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,MAAM,4BAA4B,CAAA;AAKnC,UAAU,WAAW;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC,UAAU,EAAE,iBAAiB,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,8BAA8B;IAC9C,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAA;IACV,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAA;IACnB,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACzE,iFAAiF;IACjF,WAAW,EAAE,MAAM,CAAA;IACnB,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAA;IAClB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,2EAA2E;IAC3E,mBAAmB,CAAC,EAAE,8BAA8B,EAAE,CAAA;IACtD;;;OAGG;IACH,sBAAsB,CAAC,EAAE,8BAA8B,EAAE,CAAA;IACzD;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,KAAK,CAAC,EAAE,uBAAuB,CAAC,OAAO,CAAC,GAAG;QAC1C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;QACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;KACpB,CAAA;CACD;AAED,MAAM,WAAW,uBAAuB;IACvC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,iBAAiB,CAAA;IAC7B,QAAQ,EAAE,yBAAyB,EAAE,CAAA;CACrC;AAED,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACzE,MAAM,EAAE,yBAAyB,CAAA;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,WAAW,CAAA;CACxB;AAED,MAAM,WAAW,uBAAuB;IACvC,OAAO,EAAE,yBAAyB,EAAE,CAAA;IACpC,UAAU,EAAE,MAAM,EAAE,CAAA;CACpB;AAqXD,wBAAsB,oBAAoB,CACzC,MAAM,EAAE,uBAAuB,GAC7B,OAAO,CAAC,uBAAuB,CAAC,CAmDlC"}
@@ -1,7 +1,7 @@
1
1
  import { cp, mkdir, readFile, rm, writeFile } from 'node:fs/promises';
2
2
  import { createRequire } from 'node:module';
3
3
  import path from 'node:path';
4
- import { DATASWORN_SCHEMA_VERSION } from '@datasworn-community/core';
4
+ import { DATASWORN_SCHEMA_VERSION, IdElements } from '@datasworn-community/core';
5
5
  import { buildRulesPackage } from './rules-package-builder.js';
6
6
  import { validateIdRefs } from './id-references.js';
7
7
  const require = createRequire(import.meta.url);
@@ -33,6 +33,12 @@ function assertNoDuplicatePackageIds(packages) {
33
33
  seen.add(config.id);
34
34
  }
35
35
  }
36
+ function assertPackageIds(packages) {
37
+ for (const config of packages) {
38
+ if (!IdElements.TypeGuard.RulesPackageId(config.id))
39
+ throw new Error(`${config.id}: package ID must match ${IdElements.Pattern.RulesPackageId.toString()}`);
40
+ }
41
+ }
36
42
  function assertPackageRepository(repository) {
37
43
  if (repository == null)
38
44
  throw new Error('Multi-package content build config requires repository');
@@ -229,13 +235,17 @@ async function writePublishableArtifacts(config, result, builtPackages, packageO
229
235
  const packageJson = packageJsonFor(config, dependencies, repository);
230
236
  const packageDir = path.join(packageOutDir, config.id);
231
237
  const jsonDir = path.join(packageDir, 'json');
238
+ const packageType = config.type === 'ruleset' ? 'Ruleset' : 'Expansion';
239
+ const namedExports = config.id === 'data' || config.id === 'default'
240
+ ? 'export { data }'
241
+ : `export { data, data as ${config.id} }`;
232
242
  await mkdir(jsonDir, { recursive: true });
233
243
  await copyPackageAssets(config, packageDir, packageJson);
234
244
  await copyPackageMigrationArtifacts(config, packageDir, packageJson);
235
245
  await Promise.all([
236
246
  writeFile(path.join(packageDir, 'package.json'), stableJson(packageJson)),
237
- writeFile(path.join(packageDir, 'index.js'), `import data from './json/${config.id}.json' with { type: 'json' }\n\nexport { data }\nexport default data\n`),
238
- writeFile(path.join(packageDir, 'index.d.ts'), "import type { Datasworn } from '@datasworn-community/core'\n\ndeclare const data: Datasworn.RulesPackage\nexport { data }\nexport default data\n"),
247
+ writeFile(path.join(packageDir, 'index.js'), `import data from './json/${config.id}.json' with { type: 'json' }\n\n${namedExports}\nexport default data\n`),
248
+ writeFile(path.join(packageDir, 'index.d.ts'), `import type { Datasworn } from '@datasworn-community/core'\n\ndeclare const data: Datasworn.${packageType}\n${namedExports}\nexport default data\n`),
239
249
  writeFile(path.join(jsonDir, `${config.id}.json`), stableJson(result.data))
240
250
  ]);
241
251
  return { ...result, config, packageDir, packageJson };
@@ -245,6 +255,7 @@ export async function buildContentPackages(config) {
245
255
  const outDir = config.outDir ?? 'datasworn';
246
256
  const publicJsonOutDir = config.publicJsonOutDir;
247
257
  const packageOutDir = config.packageOutDir ?? 'dist/packages';
258
+ assertPackageIds(config.packages);
248
259
  const ordered = topologicalPackageOrder(config.packages);
249
260
  const builtPackages = new Map();
250
261
  const results = [];
@@ -1 +1 @@
1
- {"version":3,"file":"content-package-builder.js","sourceRoot":"","sources":["../src/content-package-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content-package-builder.js","sourceRoot":"","sources":["../src/content-package-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { type Datasworn, type DataswornSource } from '@datasworn-community/core';
2
+ import type { DataswornValidators, SchemaValidator } from './validators.js';
3
+ export interface NamedRulesPackageSource<TSource extends DataswornSource.RulesPackage = DataswornSource.RulesPackage> {
4
+ name: string;
5
+ data: TSource;
6
+ }
7
+ export interface RulesPackageMetadata {
8
+ id: string;
9
+ type?: Datasworn.RulesPackage['type'];
10
+ }
11
+ export interface AssembledRulesPackage<TTarget extends Datasworn.RulesPackage = Datasworn.RulesPackage> {
12
+ data: TTarget;
13
+ index: Map<string, unknown>;
14
+ }
15
+ export type Logger = Record<'warn' | 'info' | 'debug' | 'error', (message?: unknown, ...optionalParams: unknown[]) => unknown>;
16
+ /** Assemble already-parsed source fragments without doing filesystem work. */
17
+ export declare function assembleRulesPackage<TTarget extends Datasworn.RulesPackage = Datasworn.RulesPackage, TSource extends DataswornSource.RulesPackage = DataswornSource.RulesPackage>(namedSources: readonly NamedRulesPackageSource<TSource>[], validators: DataswornValidators<TTarget, TSource>, expected: RulesPackageMetadata): AssembledRulesPackage<TTarget>;
18
+ /** Iron Vault-compatible stateful adapter around the in-memory assembler. */
19
+ export declare class RulesPackageBuilder<TSource extends DataswornSource.RulesPackage = DataswornSource.RulesPackage, TTarget extends Datasworn.RulesPackage = Datasworn.RulesPackage> {
20
+ #private;
21
+ static init({ validator, sourceValidator }: {
22
+ validator: SchemaValidator<Datasworn.RulesPackage>;
23
+ sourceValidator: SchemaValidator<DataswornSource.RulesPackage>;
24
+ }): typeof RulesPackageBuilder;
25
+ static get schemaValidator(): SchemaValidator<Datasworn.RulesPackage>;
26
+ static get sourceSchemaValidator(): SchemaValidator<DataswornSource.RulesPackage>;
27
+ static get isInitialized(): boolean;
28
+ readonly files: Map<string, NamedRulesPackageSource<TSource>>;
29
+ readonly errors: Map<string, unknown>;
30
+ readonly index: Map<string, unknown>;
31
+ readonly logger: Logger;
32
+ readonly id: string;
33
+ constructor(id: string, logger: Logger);
34
+ get packageType(): Datasworn.RulesPackage['type'] | undefined;
35
+ addFiles(...files: NamedRulesPackageSource<TSource>[]): this;
36
+ build(): this;
37
+ toJSON(): TTarget;
38
+ }
39
+ //# sourceMappingURL=in-memory-rules-package-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory-rules-package-builder.d.ts","sourceRoot":"","sources":["../src/in-memory-rules-package-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,MAAM,2BAA2B,CAAA;AAGlC,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAI3E,MAAM,WAAW,uBAAuB,CACvC,OAAO,SAAS,eAAe,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY;IAE3E,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,CAAA;CACb;AAED,MAAM,WAAW,oBAAoB;IACpC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;CACrC;AAED,MAAM,WAAW,qBAAqB,CACrC,OAAO,SAAS,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY;IAE/D,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC3B;AAED,MAAM,MAAM,MAAM,GAAG,MAAM,CAC1B,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,EACnC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,KAAK,OAAO,CAC5D,CAAA;AAiED,8EAA8E;AAC9E,wBAAgB,oBAAoB,CACnC,OAAO,SAAS,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,EAC/D,OAAO,SAAS,eAAe,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,EAE3E,YAAY,EAAE,SAAS,uBAAuB,CAAC,OAAO,CAAC,EAAE,EACzD,UAAU,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,EACjD,QAAQ,EAAE,oBAAoB,GAC5B,qBAAqB,CAAC,OAAO,CAAC,CA6BhC;AAED,6EAA6E;AAC7E,qBAAa,mBAAmB,CAC/B,OAAO,SAAS,eAAe,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,EAC3E,OAAO,SAAS,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY;;IAK/D,MAAM,CAAC,IAAI,CAAC,EACX,SAAS,EACT,eAAe,EACf,EAAE;QACF,SAAS,EAAE,eAAe,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QAClD,eAAe,EAAE,eAAe,CAAC,eAAe,CAAC,YAAY,CAAC,CAAA;KAC9D,GAAG,OAAO,mBAAmB;IAM9B,MAAM,KAAK,eAAe,IAAI,eAAe,CAAC,SAAS,CAAC,YAAY,CAAC,CAIpE;IAED,MAAM,KAAK,qBAAqB,IAAI,eAAe,CAAC,eAAe,CAAC,YAAY,CAAC,CAIhF;IAED,MAAM,KAAK,aAAa,IAAI,OAAO,CAKlC;IAED,QAAQ,CAAC,KAAK,gDAAsD;IACpE,QAAQ,CAAC,MAAM,uBAA6B;IAC5C,QAAQ,CAAC,KAAK,uBAA6B;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;gBAGP,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAStC,IAAI,WAAW,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,SAAS,CAG5D;IAED,QAAQ,CAAC,GAAG,KAAK,EAAE,uBAAuB,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI;IAqB5D,KAAK,IAAI,IAAI;IAsBb,MAAM,IAAI,OAAO;CAGjB"}
@@ -0,0 +1,158 @@
1
+ import { DATASWORN_SCHEMA_VERSION, IdParser } from '@datasworn-community/core';
2
+ import { Validators } from './semantic-validators.js';
3
+ function isObject(value) {
4
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
5
+ }
6
+ function cloneJsonValue(value) {
7
+ return JSON.parse(JSON.stringify(value));
8
+ }
9
+ function mergeInto(target, source) {
10
+ for (const [key, value] of Object.entries(source)) {
11
+ if (isObject(value)) {
12
+ const current = target[key];
13
+ if (!isObject(current))
14
+ target[key] = {};
15
+ mergeInto(target[key], value);
16
+ }
17
+ else
18
+ target[key] = cloneJsonValue(value);
19
+ }
20
+ }
21
+ function validateMetadata(name, source, expected) {
22
+ if (source._id != null && source._id !== expected.id)
23
+ throw new Error(`${name}: package _id ${source._id} does not match configured id ${expected.id}`);
24
+ if (expected.type != null && source.type != null && source.type !== expected.type)
25
+ throw new Error(`${name}: package type ${source.type} does not match configured type ${expected.type}`);
26
+ }
27
+ function validateSource(name, data, validator) {
28
+ try {
29
+ if (validator(data))
30
+ return;
31
+ throw new Error("doesn't match the DataswornSource schema");
32
+ }
33
+ catch (error) {
34
+ throw new Error(`${name}: source validation failed: ${String(error)}`, {
35
+ cause: error
36
+ });
37
+ }
38
+ }
39
+ function validateSemantics(index) {
40
+ for (const [id, node] of index) {
41
+ if (!isObject(node) || typeof node.type !== 'string')
42
+ continue;
43
+ const validator = Validators[node.type];
44
+ if (validator == null)
45
+ continue;
46
+ try {
47
+ validator(node);
48
+ }
49
+ catch (error) {
50
+ throw new Error(`<${id}> ${String(error)}`);
51
+ }
52
+ }
53
+ }
54
+ /** Assemble already-parsed source fragments without doing filesystem work. */
55
+ export function assembleRulesPackage(namedSources, validators, expected) {
56
+ const sources = namedSources
57
+ .map(({ name, data }) => ({ name, data: cloneJsonValue(data) }))
58
+ .sort((left, right) => left.name.localeCompare(right.name, 'en-US'));
59
+ const inferredType = expected.type ?? sources.find(({ data }) => data.type != null)?.data.type;
60
+ const metadata = { ...expected, type: inferredType };
61
+ const merged = {
62
+ _id: expected.id,
63
+ ...(inferredType == null ? {} : { type: inferredType }),
64
+ datasworn_version: DATASWORN_SCHEMA_VERSION
65
+ };
66
+ for (const { name, data } of sources) {
67
+ validateSource(name, data, validators.source);
68
+ validateMetadata(name, data, metadata);
69
+ mergeInto(merged, data);
70
+ }
71
+ const index = new Map();
72
+ IdParser.assignIdsInRulesPackage(merged, index);
73
+ const data = merged;
74
+ if (!validators.output(data))
75
+ throw new Error('Datasworn schema validation failed');
76
+ validateSemantics(index);
77
+ return { data, index };
78
+ }
79
+ /** Iron Vault-compatible stateful adapter around the in-memory assembler. */
80
+ export class RulesPackageBuilder {
81
+ static #schemaValidator;
82
+ static #sourceSchemaValidator;
83
+ static init({ validator, sourceValidator }) {
84
+ RulesPackageBuilder.#schemaValidator = validator;
85
+ RulesPackageBuilder.#sourceSchemaValidator = sourceValidator;
86
+ return RulesPackageBuilder;
87
+ }
88
+ static get schemaValidator() {
89
+ if (RulesPackageBuilder.#schemaValidator == null)
90
+ throw new Error('RulesPackageBuilder has not been initialized');
91
+ return RulesPackageBuilder.#schemaValidator;
92
+ }
93
+ static get sourceSchemaValidator() {
94
+ if (RulesPackageBuilder.#sourceSchemaValidator == null)
95
+ throw new Error('RulesPackageBuilder has not been initialized');
96
+ return RulesPackageBuilder.#sourceSchemaValidator;
97
+ }
98
+ static get isInitialized() {
99
+ return (RulesPackageBuilder.#schemaValidator != null &&
100
+ RulesPackageBuilder.#sourceSchemaValidator != null);
101
+ }
102
+ files = new Map();
103
+ errors = new Map();
104
+ index = new Map();
105
+ logger;
106
+ id;
107
+ #result = {};
108
+ constructor(id, logger) {
109
+ if (!RulesPackageBuilder.isInitialized)
110
+ throw new Error('RulesPackageBuilder constructor is missing validator functions. Set them with RulesPackageBuilder.init before creating an instance.');
111
+ this.id = id;
112
+ this.logger = logger;
113
+ }
114
+ get packageType() {
115
+ for (const { data } of this.files.values())
116
+ if (data.type != null)
117
+ return data.type;
118
+ return undefined;
119
+ }
120
+ addFiles(...files) {
121
+ for (const file of files) {
122
+ this.files.set(file.name, file);
123
+ this.errors.delete(file.name);
124
+ try {
125
+ validateSource(file.name, file.data, RulesPackageBuilder.sourceSchemaValidator);
126
+ validateMetadata(file.name, file.data, {
127
+ id: this.id,
128
+ type: this.packageType
129
+ });
130
+ }
131
+ catch (error) {
132
+ this.errors.set(file.name, error);
133
+ }
134
+ }
135
+ return this;
136
+ }
137
+ build() {
138
+ if (this.errors.size > 0) {
139
+ const details = [...this.errors]
140
+ .map(([name, error]) => `"${name}" failed validation: ${String(error)}`)
141
+ .join('\n');
142
+ throw new Error(`Couldn't build "${this.id}". ${details}`);
143
+ }
144
+ const result = assembleRulesPackage([...this.files.values()], {
145
+ output: RulesPackageBuilder.schemaValidator,
146
+ source: RulesPackageBuilder.sourceSchemaValidator
147
+ }, { id: this.id, type: this.packageType });
148
+ this.#result = result.data;
149
+ this.index.clear();
150
+ for (const [id, node] of result.index)
151
+ this.index.set(id, node);
152
+ return this;
153
+ }
154
+ toJSON() {
155
+ return this.#result;
156
+ }
157
+ }
158
+ //# sourceMappingURL=in-memory-rules-package-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory-rules-package-builder.js","sourceRoot":"","sources":["../src/in-memory-rules-package-builder.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,5 +2,7 @@ export { buildRulesPackage, type BuildRulesPackageOptions, type RulesPackageBuil
2
2
  export { buildContentPackages, type ContentPackageBuildConfig, type ContentPackageBuildResult, type ContentPackageDependencyConfig, type MultiPackageBuildConfig, type MultiPackageBuildResult, type PackageRepository } from './content-package-builder.js';
3
3
  export { loadCoreSchema, loadCoreSchemas, resolveCoreSchemaPath, type CoreSchemaFileName } from './schema.js';
4
4
  export { createDataswornValidator, createDataswornValidators, type SchemaValidator } from './validators.js';
5
+ export { RulesPackageBuilder, type Logger, type NamedRulesPackageSource } from './in-memory-rules-package-builder.js';
6
+ export { Validators, validateDiceRange, validateOracleCollection, validateOracleRollable, validateOracleRollableRow } from './semantic-validators.js';
5
7
  export { extractIdRefs, validateIdRefs, type IdRefReport } from './id-references.js';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACN,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,8BAA8B,EACnC,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACN,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,MAAM,aAAa,CAAA;AACpB,OAAO,EACN,wBAAwB,EACxB,yBAAyB,EACzB,KAAK,eAAe,EACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACN,aAAa,EACb,cAAc,EACd,KAAK,WAAW,EAChB,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACN,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,8BAA8B,EACnC,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACN,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,MAAM,aAAa,CAAA;AACpB,OAAO,EACN,wBAAwB,EACxB,yBAAyB,EACzB,KAAK,eAAe,EACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACN,mBAAmB,EACnB,KAAK,MAAM,EACX,KAAK,uBAAuB,EAC5B,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACN,UAAU,EACV,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,yBAAyB,EACzB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACN,aAAa,EACb,cAAc,EACd,KAAK,WAAW,EAChB,MAAM,oBAAoB,CAAA"}
package/dist/index.js CHANGED
@@ -2,5 +2,7 @@ export { buildRulesPackage } from './rules-package-builder.js';
2
2
  export { buildContentPackages } from './content-package-builder.js';
3
3
  export { loadCoreSchema, loadCoreSchemas, resolveCoreSchemaPath } from './schema.js';
4
4
  export { createDataswornValidator, createDataswornValidators } from './validators.js';
5
+ export { RulesPackageBuilder } from './in-memory-rules-package-builder.js';
6
+ export { Validators, validateDiceRange, validateOracleCollection, validateOracleRollable, validateOracleRollableRow } from './semantic-validators.js';
5
7
  export { extractIdRefs, validateIdRefs } from './id-references.js';
6
8
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,iBAAiB,EAIjB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACN,oBAAoB,EAOpB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACN,cAAc,EACd,eAAe,EACf,qBAAqB,EAErB,MAAM,aAAa,CAAA;AACpB,OAAO,EACN,wBAAwB,EACxB,yBAAyB,EAEzB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACN,aAAa,EACb,cAAc,EAEd,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,iBAAiB,EAIjB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACN,oBAAoB,EAOpB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACN,cAAc,EACd,eAAe,EACf,qBAAqB,EAErB,MAAM,aAAa,CAAA;AACpB,OAAO,EACN,wBAAwB,EACxB,yBAAyB,EAEzB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACN,mBAAmB,EAGnB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACN,UAAU,EACV,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,yBAAyB,EACzB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACN,aAAa,EACb,cAAc,EAEd,MAAM,oBAAoB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"rules-package-builder.d.ts","sourceRoot":"","sources":["../src/rules-package-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAGN,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,MAAM,2BAA2B,CAAA;AAGlC,OAAO,EAEN,KAAK,WAAW,EAChB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAEN,KAAK,mBAAmB,EACxB,MAAM,iBAAiB,CAAA;AAExB,MAAM,WAAW,uBAAuB;IACvC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE;QACP,MAAM,EAAE,MAAM,CAAA;KACd,CAAA;IACD;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB;AAED,MAAM,WAAW,wBAAwB;IACxC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,mBAAmB,CAC/B,SAAS,CAAC,YAAY,EACtB,eAAe,CAAC,YAAY,CAC5B,CAAA;IACD;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,SAAS,CAAC,YAAY,EAAE,CAAA;IAChD;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,uBAAuB;IACvC,IAAI,EAAE,SAAS,CAAC,YAAY,CAAA;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,0EAA0E;IAC1E,MAAM,EAAE,WAAW,CAAA;CACnB;AA4ED,wBAAsB,iBAAiB,CACtC,MAAM,EAAE,uBAAuB,EAC/B,OAAO,GAAE,wBAA6B,GACpC,OAAO,CAAC,uBAAuB,CAAC,CAwDlC"}
1
+ {"version":3,"file":"rules-package-builder.d.ts","sourceRoot":"","sources":["../src/rules-package-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAEN,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,MAAM,2BAA2B,CAAA;AAOlC,OAAO,EAEN,KAAK,WAAW,EAChB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAEN,KAAK,mBAAmB,EACxB,MAAM,iBAAiB,CAAA;AAExB,MAAM,WAAW,uBAAuB;IACvC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE;QACP,MAAM,EAAE,MAAM,CAAA;KACd,CAAA;IACD;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB;AAED,MAAM,WAAW,wBAAwB;IACxC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,mBAAmB,CAC/B,SAAS,CAAC,YAAY,EACtB,eAAe,CAAC,YAAY,CAC5B,CAAA;IACD;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,SAAS,CAAC,YAAY,EAAE,CAAA;IAChD;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,uBAAuB;IACvC,IAAI,EAAE,SAAS,CAAC,YAAY,CAAA;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,0EAA0E;IAC1E,MAAM,EAAE,WAAW,CAAA;CACnB;AA8DD,wBAAsB,iBAAiB,CACtC,MAAM,EAAE,uBAAuB,EAC/B,OAAO,GAAE,wBAA6B,GACpC,OAAO,CAAC,uBAAuB,CAAC,CA8ClC"}
@@ -1,7 +1,8 @@
1
1
  import { mkdir, readdir, readFile, writeFile } from 'node:fs/promises';
2
2
  import path from 'node:path';
3
- import { DATASWORN_SCHEMA_VERSION, IdParser } from '@datasworn-community/core';
3
+ import { DATASWORN_SCHEMA_VERSION } from '@datasworn-community/core';
4
4
  import YAML from 'yaml';
5
+ import { assembleRulesPackage } from './in-memory-rules-package-builder.js';
5
6
  import { validateIdRefs } from './id-references.js';
6
7
  import { createDataswornValidators } from './validators.js';
7
8
  const sourceExtensions = new Set(['.json', '.yaml', '.yml']);
@@ -11,20 +12,6 @@ function isObject(value) {
11
12
  function cloneJsonValue(value) {
12
13
  return JSON.parse(JSON.stringify(value));
13
14
  }
14
- function mergeInto(target, source) {
15
- for (const [key, value] of Object.entries(source)) {
16
- if (isObject(value)) {
17
- const nextTarget = target[key];
18
- if (!isObject(nextTarget))
19
- target[key] = {};
20
- mergeInto(target[key], value);
21
- }
22
- else {
23
- target[key] = value;
24
- }
25
- }
26
- return target;
27
- }
28
15
  function sortValue(value) {
29
16
  if (Array.isArray(value))
30
17
  return value.map(sortValue);
@@ -68,20 +55,15 @@ export async function buildRulesPackage(config, options = {}) {
68
55
  (await createDataswornValidators());
69
56
  const outDir = options.outDir ?? normalizedConfig.outDir ?? 'datasworn';
70
57
  const files = await collectSourceFiles(normalizedConfig.source);
71
- const index = new Map();
72
- const merged = {
73
- _id: normalizedConfig.id,
74
- type: normalizedConfig.type,
75
- datasworn_version: DATASWORN_SCHEMA_VERSION
76
- };
58
+ const sources = [];
77
59
  for (const filePath of files) {
78
60
  const source = await readSourceFile(filePath);
79
- validators.source(source);
80
- mergeInto(merged, source);
61
+ sources.push({ name: filePath, data: source });
81
62
  }
82
- IdParser.assignIdsInRulesPackage(merged, index);
83
- const data = merged;
84
- validators.output(data);
63
+ const { data } = assembleRulesPackage(sources, validators, {
64
+ id: normalizedConfig.id,
65
+ type: normalizedConfig.type
66
+ });
85
67
  // Validate ID references against a tree of this package plus any preloaded
86
68
  // dependencies. This catches cross-package references (e.g. an expansion
87
69
  // pointing at its ruleset) that AJV structural validation cannot.
@@ -1 +1 @@
1
- {"version":3,"file":"rules-package-builder.js","sourceRoot":"","sources":["../src/rules-package-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules-package-builder.js","sourceRoot":"","sources":["../src/rules-package-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Datasworn } from '@datasworn-community/core';
2
+ /** Ensure a dice range is ordered from its minimum to its maximum. */
3
+ export declare function validateDiceRange(range: Datasworn.DiceRange): true;
4
+ /** Validate the optional roll range on one oracle row. */
5
+ export declare function validateOracleRollableRow(row: Datasworn.OracleRollableRow): true;
6
+ /** Validate dice bounds and adjacency of the numbered rows in an oracle. */
7
+ export declare function validateOracleRollable(oracle: Datasworn.OracleRollable): true;
8
+ /** Validate the parallel columns represented by a shared oracle collection. */
9
+ export declare function validateOracleCollection(collection: Datasworn.OracleCollection): true;
10
+ /** Semantic validators applied after a package passes output-schema validation. */
11
+ export declare const Validators: {
12
+ readonly oracle_rollable: typeof validateOracleRollable;
13
+ readonly oracle_collection: typeof validateOracleCollection;
14
+ };
15
+ //# sourceMappingURL=semantic-validators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-validators.d.ts","sourceRoot":"","sources":["../src/semantic-validators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAK1D,sEAAsE;AACtE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,GAAG,IAAI,CAMlE;AAED,0DAA0D;AAC1D,wBAAgB,yBAAyB,CACxC,GAAG,EAAE,SAAS,CAAC,iBAAiB,GAC9B,IAAI,CAGN;AAgBD,4EAA4E;AAC5E,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,SAAS,CAAC,cAAc,GAC9B,IAAI,CA6BN;AAuCD,+EAA+E;AAC/E,wBAAgB,wBAAwB,CACvC,UAAU,EAAE,SAAS,CAAC,gBAAgB,GACpC,IAAI,CAqBN;AAED,mFAAmF;AACnF,eAAO,MAAM,UAAU;;;CAGb,CAAA"}
@@ -0,0 +1,88 @@
1
+ const diceExpressionPattern = /^(?<count>[1-9][0-9]*)d(?<sides>[1-9][0-9]*)(?<modifier>[+-][1-9][0-9]*)?$/;
2
+ /** Ensure a dice range is ordered from its minimum to its maximum. */
3
+ export function validateDiceRange(range) {
4
+ if (range.max < range.min)
5
+ throw new Error(`DiceRange min (${range.min}) is greater than max (${range.max})`);
6
+ return true;
7
+ }
8
+ /** Validate the optional roll range on one oracle row. */
9
+ export function validateOracleRollableRow(row) {
10
+ if (row.roll != null)
11
+ validateDiceRange(row.roll);
12
+ return true;
13
+ }
14
+ function diceRange(expression) {
15
+ const groups = diceExpressionPattern.exec(expression)?.groups;
16
+ if (groups == null)
17
+ throw new Error(`Could not parse ${expression} as a dice expression.`);
18
+ const count = Number(groups.count);
19
+ const sides = Number(groups.sides);
20
+ const modifier = groups.modifier == null ? 0 : Number(groups.modifier);
21
+ return {
22
+ min: count + modifier,
23
+ max: count * sides + modifier
24
+ };
25
+ }
26
+ /** Validate dice bounds and adjacency of the numbered rows in an oracle. */
27
+ export function validateOracleRollable(oracle) {
28
+ const possible = diceRange(oracle.dice);
29
+ const numberedRows = oracle.rows
30
+ .map((row, index) => ({ row, index }))
31
+ .filter((entry) => entry.row.roll != null);
32
+ for (let position = 0; position < numberedRows.length; position++) {
33
+ const { row, index } = numberedRows[position];
34
+ validateOracleRollableRow(row);
35
+ if (row.roll.min < possible.min)
36
+ throw new Error(`@ index ${index}: roll.min (${row.roll.min}) is less than the minimum possible roll of ${oracle.dice} (${possible.min})`);
37
+ if (row.roll.max > possible.max)
38
+ throw new Error(`@ index ${index}: roll.max (${row.roll.max}) is greater than the maximum possible roll of ${oracle.dice} (${possible.max})`);
39
+ const previous = numberedRows[position - 1]?.row;
40
+ if (previous != null && row.roll.min !== previous.roll.max + 1)
41
+ throw new Error(`@ index ${index}: Roll range (${row.roll.min}-${row.roll.max}) is not sequential with previous numbered row (${previous.roll.min}-${previous.roll.max}).`);
42
+ }
43
+ return true;
44
+ }
45
+ function compareParallelRows(contents, equal, description) {
46
+ const entries = Object.entries(contents);
47
+ if (entries.length < 2)
48
+ return;
49
+ const [primaryKey, primary] = entries[0];
50
+ for (const [secondaryKey, secondary] of entries.slice(1)) {
51
+ if (secondary.rows.length !== primary.rows.length)
52
+ throw new Error(`${description}: <${secondaryKey}> has ${secondary.rows.length} rows; expected ${primary.rows.length} to match <${primaryKey}>`);
53
+ for (let index = 0; index < primary.rows.length; index++) {
54
+ if (!equal(primary.rows[index], secondary.rows[index]))
55
+ throw new Error(`${description}: row ${index} of <${secondaryKey}> does not match <${primaryKey}>`);
56
+ }
57
+ }
58
+ }
59
+ function rowsHaveSameRoll(left, right) {
60
+ return left.roll?.min === right.roll?.min && left.roll?.max === right.roll?.max;
61
+ }
62
+ const textProperties = ['text', 'text2', 'text3'];
63
+ function rowsHaveSameText(left, right) {
64
+ const leftRecord = left;
65
+ const rightRecord = right;
66
+ return textProperties.every((key) => leftRecord[key] === rightRecord[key]);
67
+ }
68
+ /** Validate the parallel columns represented by a shared oracle collection. */
69
+ export function validateOracleCollection(collection) {
70
+ const contents = collection.contents ?? {};
71
+ switch (collection.oracle_type) {
72
+ case 'table_shared_rolls':
73
+ compareParallelRows(contents, rowsHaveSameRoll, 'table_shared_rolls child OracleRollables must have the same roll ranges in their rows, in the same order');
74
+ break;
75
+ case 'table_shared_text':
76
+ case 'table_shared_text2':
77
+ case 'table_shared_text3':
78
+ compareParallelRows(contents, rowsHaveSameText, `${collection.oracle_type} child OracleRollables must have the same text content in their rows, in the same order`);
79
+ break;
80
+ }
81
+ return true;
82
+ }
83
+ /** Semantic validators applied after a package passes output-schema validation. */
84
+ export const Validators = {
85
+ oracle_rollable: validateOracleRollable,
86
+ oracle_collection: validateOracleCollection
87
+ };
88
+ //# sourceMappingURL=semantic-validators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-validators.js","sourceRoot":"","sources":["../src/semantic-validators.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datasworn-community/build-tools",
3
- "version": "0.2.9-experimental.19.d9bcc568c866",
3
+ "version": "0.2.10",
4
4
  "description": "Build and migration tools for Datasworn source packages.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -42,20 +42,20 @@
42
42
  ],
43
43
  "license": "MIT",
44
44
  "dependencies": {
45
- "@sinclair/typebox": "0.34.41",
45
+ "@sinclair/typebox": "0.34.52",
46
46
  "ajv": "^8.20.0",
47
47
  "ajv-formats": "^3.0.1",
48
48
  "lodash-es": "^4.18.1",
49
49
  "yaml": "^2.9.0"
50
50
  },
51
51
  "peerDependencies": {
52
- "@datasworn-community/core": "0.2.9-experimental.19.d9bcc568c866"
52
+ "@datasworn-community/core": "0.2.10"
53
53
  },
54
54
  "devDependencies": {
55
- "@datasworn-community/core": "0.2.9-experimental.19.d9bcc568c866",
55
+ "@datasworn-community/core": "0.2.10",
56
56
  "json-schema": "^0.4.0",
57
- "json-schema-library": "^11.4.1",
58
- "type-fest": "^5.6.0"
57
+ "json-schema-library": "^11.6.2",
58
+ "type-fest": "^5.8.0"
59
59
  },
60
60
  "bugs": {
61
61
  "url": "https://github.com/datasworn-community/datasworn/issues"
@@ -59,12 +59,6 @@ const RulesPackageBase = Type.Object({
59
59
  description: 'A dictionary object of truth categories.'
60
60
  })
61
61
  ),
62
- worlds: Type.Optional(
63
- Generic.Dictionary(Type.Ref('World'), {
64
- description:
65
- 'A dictionary object of named worlds and their associated setting truths.'
66
- })
67
- ),
68
62
  rarities: Type.Optional(
69
63
  Generic.Dictionary(Type.Ref('Rarity'), {
70
64
  description:
@@ -6,30 +6,6 @@ import { EntityPrompt } from './entities/EntityPrompt.js'
6
6
  import * as Generic from './Generic.js'
7
7
  import { EmbeddedOracleRollable } from './oracles/EmbeddedOracleRollable.js'
8
8
 
9
- export const World = Type.Object(
10
- {
11
- name: Type.Ref(Text.Label, {
12
- description: 'The player-facing name of this world.',
13
- examples: ['The Ironlands', 'The Forge']
14
- }),
15
- description: Type.Optional(
16
- Type.Ref(Text.MarkdownString, {
17
- description: 'A player-facing description of this world.'
18
- })
19
- ),
20
- truths: Type.Array(Type.Ref('TruthId'), {
21
- minItems: 1,
22
- uniqueItems: true
23
- })
24
- },
25
- {
26
- $id: 'World',
27
- description: 'A named world and its associated set of setting truths.'
28
- }
29
- )
30
-
31
- export type World = Static<typeof World>
32
-
33
9
  export type TruthOption = Static<typeof TruthOption>
34
10
 
35
11
  export const TruthOption = Generic.IdNode(