@datasworn-community/build-tools 0.2.9 → 0.2.10-experimental.36.ef4479f3d136
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 +56 -2
- package/dist/cli/datasworn-build.js +3 -3
- package/dist/cli/datasworn-build.js.map +1 -1
- package/dist/in-memory-rules-package-builder.d.ts +39 -0
- package/dist/in-memory-rules-package-builder.d.ts.map +1 -0
- package/dist/in-memory-rules-package-builder.js +158 -0
- package/dist/in-memory-rules-package-builder.js.map +1 -0
- package/dist/index.d.ts +9 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -4
- package/dist/index.js.map +1 -1
- package/dist/node/config.d.ts.map +1 -0
- package/dist/node/config.js.map +1 -0
- package/dist/node/content-package-builder.d.ts.map +1 -0
- package/dist/{content-package-builder.js → node/content-package-builder.js} +15 -4
- package/dist/node/content-package-builder.js.map +1 -0
- package/dist/node/index.d.ts +10 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +10 -0
- package/dist/node/index.js.map +1 -0
- package/dist/{rules-package-builder.d.ts → node/rules-package-builder.d.ts} +2 -2
- package/dist/node/rules-package-builder.d.ts.map +1 -0
- package/dist/{rules-package-builder.js → node/rules-package-builder.js} +9 -27
- package/dist/node/rules-package-builder.js.map +1 -0
- package/dist/node/schema.d.ts.map +1 -0
- package/dist/node/schema.js.map +1 -0
- package/dist/node/validators.d.ts +9 -0
- package/dist/node/validators.d.ts.map +1 -0
- package/dist/node/validators.js +16 -0
- package/dist/node/validators.js.map +1 -0
- package/dist/semantic-validators.d.ts +15 -0
- package/dist/semantic-validators.d.ts.map +1 -0
- package/dist/semantic-validators.js +88 -0
- package/dist/semantic-validators.js.map +1 -0
- package/dist/validators.d.ts +0 -1
- package/dist/validators.d.ts.map +1 -1
- package/dist/validators.js +0 -8
- package/dist/validators.js.map +1 -1
- package/package.json +11 -6
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js.map +0 -1
- package/dist/content-package-builder.d.ts.map +0 -1
- package/dist/content-package-builder.js.map +0 -1
- package/dist/rules-package-builder.d.ts.map +0 -1
- package/dist/rules-package-builder.js.map +0 -1
- package/dist/schema.d.ts.map +0 -1
- package/dist/schema.js.map +0 -1
- /package/dist/{config.d.ts → node/config.d.ts} +0 -0
- /package/dist/{config.js → node/config.js} +0 -0
- /package/dist/{content-package-builder.d.ts → node/content-package-builder.d.ts} +0 -0
- /package/dist/{schema.d.ts → node/schema.d.ts} +0 -0
- /package/dist/{schema.js → node/schema.js} +0 -0
package/README.md
CHANGED
|
@@ -8,9 +8,31 @@ the files, validates the built package, and writes distribution JSON.
|
|
|
8
8
|
|
|
9
9
|
`datasworn-migrate` applies Datasworn ID replacement maps to JSON files.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
## Entry points
|
|
12
|
+
|
|
13
|
+
Despite the package name, most of what this package exports is portable. It has
|
|
14
|
+
two entry points, split by whether the code touches the filesystem:
|
|
15
|
+
|
|
16
|
+
| Import | Contains | Safe to bundle for browsers |
|
|
17
|
+
| --- | --- | --- |
|
|
18
|
+
| `@datasworn-community/build-tools` | `RulesPackageBuilder`, `createDataswornValidator`, semantic validators, ID-reference helpers | Yes |
|
|
19
|
+
| `@datasworn-community/build-tools/node` | `buildRulesPackage`, `buildContentPackages`, schema loading from disk, `createDataswornValidators` | No — imports Node builtins |
|
|
20
|
+
|
|
21
|
+
Nothing reachable from the package root imports a Node builtin, so embedded
|
|
22
|
+
consumers such as Iron Vault can bundle it for browsers, Obsidian plugins, and
|
|
23
|
+
web workers. This matters more than tree shaking suggests: esbuild resolves every
|
|
24
|
+
import during its scan pass, before tree shaking runs, so a single unreachable
|
|
25
|
+
`node:fs` import anywhere in the root's module graph is a hard build error for
|
|
26
|
+
those consumers. `sideEffects: false` does not change that.
|
|
27
|
+
|
|
28
|
+
The CLI binaries use the `/node` entry, so nothing about this split affects
|
|
29
|
+
`datasworn-build` or `datasworn-migrate`.
|
|
30
|
+
|
|
31
|
+
The `/node` entry resolves core's shipped schemas at runtime through
|
|
12
32
|
`@datasworn-community/core/json/*`, so consumers should install matching versions
|
|
13
|
-
of `@datasworn-community/core` and `@datasworn-community/build-tools`.
|
|
33
|
+
of `@datasworn-community/core` and `@datasworn-community/build-tools`. Consumers
|
|
34
|
+
that cannot read from disk should import those JSON files themselves and compile
|
|
35
|
+
them with `createDataswornValidator` from the package root.
|
|
14
36
|
|
|
15
37
|
Multi-package content builds can also write a checked-in, GitHub-friendly raw
|
|
16
38
|
JSON directory by setting `publicJsonOutDir`:
|
|
@@ -24,6 +46,38 @@ packageOutDir: dist/packages
|
|
|
24
46
|
This writes flat `<package-id>.json` files, `manifest.json`, and `README.md`.
|
|
25
47
|
Do not edit those generated files by hand.
|
|
26
48
|
|
|
49
|
+
## In-memory builds
|
|
50
|
+
|
|
51
|
+
Embedded consumers such as Iron Vault can compile already-parsed fragments with
|
|
52
|
+
`RulesPackageBuilder`. Import it from `@datasworn-community/build-tools`, rather
|
|
53
|
+
than from a deep path in core, and initialize it with synchronous schema
|
|
54
|
+
validators before constructing a builder:
|
|
55
|
+
|
|
56
|
+
```ts
|
|
57
|
+
import { RulesPackageBuilder } from '@datasworn-community/build-tools'
|
|
58
|
+
|
|
59
|
+
RulesPackageBuilder.init({ validator, sourceValidator })
|
|
60
|
+
|
|
61
|
+
const builder = new RulesPackageBuilder('my_ruleset', console)
|
|
62
|
+
builder.addFiles(
|
|
63
|
+
{ name: 'package.md', data: packageFragment },
|
|
64
|
+
{ name: 'oracles/characters.md', data: oracleFragment }
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
if (builder.errors.has('oracles/characters.md')) {
|
|
68
|
+
builder.files.delete('oracles/characters.md')
|
|
69
|
+
builder.errors.delete('oracles/characters.md')
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const data = builder.build().toJSON()
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
`files` and `errors` are keyed by fragment name, so consumers can inspect or
|
|
76
|
+
remove individual inputs before rebuilding. Semantic oracle validation runs as
|
|
77
|
+
part of `build()`. ID-reference validation remains a separate exported operation:
|
|
78
|
+
call `validateIdRefs(data, tree)` when the assembled package and its dependency
|
|
79
|
+
tree are available.
|
|
80
|
+
|
|
27
81
|
The upstream TypeBox schema source is imported under `schema-source/` as source
|
|
28
82
|
material for the schema generation work. Runtime validation uses the generated
|
|
29
83
|
schemas shipped by core.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { existsSync } from 'node:fs';
|
|
3
|
-
import { readBuildConfig } from '../config.js';
|
|
4
|
-
import { buildContentPackages } from '../content-package-builder.js';
|
|
5
|
-
import { buildRulesPackage } from '../rules-package-builder.js';
|
|
3
|
+
import { readBuildConfig } from '../node/config.js';
|
|
4
|
+
import { buildContentPackages } from '../node/content-package-builder.js';
|
|
5
|
+
import { buildRulesPackage } from '../node/rules-package-builder.js';
|
|
6
6
|
import { hasArg, readArg } from './args.js';
|
|
7
7
|
function usage() {
|
|
8
8
|
console.error(`Usage:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datasworn-build.js","sourceRoot":"","sources":["../../src/cli/datasworn-build.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"datasworn-build.js","sourceRoot":"","sources":["../../src/cli/datasworn-build.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EACN,oBAAoB,EAEpB,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACN,iBAAiB,EAEjB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAE3C,SAAS,KAAK;IACb,OAAO,CAAC,KAAK,CAAC;;iGAEkF,CAAC,CAAA;IACjG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAChB,CAAC;AAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAClC,IAAI,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;IAAE,KAAK,EAAE,CAAA;AAEzD,SAAS,oBAAoB,CAC5B,MAAyD;IAEzD,OAAO,UAAU,IAAI,MAAM,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;AAC5C,IAAI,MAAyD,CAAA;AAE7D,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;IACxB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAA;IACpF,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,CAAA;AAC3C,CAAC;KAAM,CAAC;IACP,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAoC,CAAA;IACvE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACxC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAEzC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;QAAE,KAAK,EAAE,CAAA;IACzD,MAAM,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;AACtC,CAAC;AAED,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAA;IACjD,OAAO,CAAC,GAAG,CACV,SAAS,MAAM,CAAC,OAAO,CAAC,MAAM,oCAAoC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChG,CAAA;AACF,CAAC;KAAM,CAAC;IACP,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAC9C,OAAO,CAAC,GAAG,CACV,SAAS,MAAM,CAAC,EAAE,SAAS,MAAM,CAAC,KAAK,CAAC,MAAM,aAAa,MAAM,CAAC,OAAO,EAAE,CAC3E,CAAA;AACF,CAAC"}
|
|
@@ -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
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
/**
|
|
2
|
+
* The package root is the portable entry point: nothing reachable from here
|
|
3
|
+
* imports a Node builtin, so it is safe to bundle for browsers, Obsidian
|
|
4
|
+
* plugins, and web workers. Filesystem-backed builds live in
|
|
5
|
+
* `@datasworn-community/build-tools/node`.
|
|
6
|
+
*/
|
|
7
|
+
export { RulesPackageBuilder, type Logger, type NamedRulesPackageSource } from './in-memory-rules-package-builder.js';
|
|
8
|
+
export { createDataswornValidator, type DataswornValidators, type SchemaValidator } from './validators.js';
|
|
9
|
+
export { Validators, validateDiceRange, validateOracleCollection, validateOracleRollable, validateOracleRollableRow } from './semantic-validators.js';
|
|
5
10
|
export { extractIdRefs, validateIdRefs, type IdRefReport } from './id-references.js';
|
|
6
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACN,mBAAmB,EACnB,KAAK,MAAM,EACX,KAAK,uBAAuB,EAC5B,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACN,wBAAwB,EACxB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,MAAM,iBAAiB,CAAA;AACxB,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
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
/**
|
|
2
|
+
* The package root is the portable entry point: nothing reachable from here
|
|
3
|
+
* imports a Node builtin, so it is safe to bundle for browsers, Obsidian
|
|
4
|
+
* plugins, and web workers. Filesystem-backed builds live in
|
|
5
|
+
* `@datasworn-community/build-tools/node`.
|
|
6
|
+
*/
|
|
7
|
+
export { RulesPackageBuilder } from './in-memory-rules-package-builder.js';
|
|
8
|
+
export { createDataswornValidator } from './validators.js';
|
|
9
|
+
export { Validators, validateDiceRange, validateOracleCollection, validateOracleRollable, validateOracleRollableRow } from './semantic-validators.js';
|
|
5
10
|
export { extractIdRefs, validateIdRefs } from './id-references.js';
|
|
6
11
|
//# 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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACN,mBAAmB,EAGnB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACN,wBAAwB,EAGxB,MAAM,iBAAiB,CAAA;AACxB,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/node/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAC3E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAEzE,MAAM,MAAM,oBAAoB,GAC7B,uBAAuB,GACvB,uBAAuB,CAAA;AAE1B,wBAAsB,eAAe,CACpC,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,oBAAoB,CAAC,CAM/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/node/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,IAAI,MAAM,MAAM,CAAA;AASvB,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,UAAkB;IAElB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACpC,MAAM,KAAK,GAAG,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAEnE,OAAO,KAA6B,CAAA;AACrC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-package-builder.d.ts","sourceRoot":"","sources":["../../src/node/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,9 +1,9 @@
|
|
|
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
|
-
import { validateIdRefs } from '
|
|
6
|
+
import { validateIdRefs } from '../id-references.js';
|
|
7
7
|
const require = createRequire(import.meta.url);
|
|
8
8
|
function currentSchemaLine() {
|
|
9
9
|
const [major, minor] = DATASWORN_SCHEMA_VERSION.split('.');
|
|
@@ -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\
|
|
238
|
-
writeFile(path.join(packageDir, 'index.d.ts'),
|
|
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 = [];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-package-builder.js","sourceRoot":"","sources":["../../src/node/content-package-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Filesystem-backed build entry point. Everything here reads or writes through
|
|
3
|
+
* Node builtins, so it must never be imported from the package root — see
|
|
4
|
+
* `../index.ts`.
|
|
5
|
+
*/
|
|
6
|
+
export { buildRulesPackage, type BuildRulesPackageOptions, type RulesPackageBuildConfig, type RulesPackageBuildResult } from './rules-package-builder.js';
|
|
7
|
+
export { buildContentPackages, type ContentPackageBuildConfig, type ContentPackageBuildResult, type ContentPackageDependencyConfig, type MultiPackageBuildConfig, type MultiPackageBuildResult, type PackageRepository } from './content-package-builder.js';
|
|
8
|
+
export { loadCoreSchema, loadCoreSchemas, resolveCoreSchemaPath, type CoreSchemaFileName } from './schema.js';
|
|
9
|
+
export { createDataswornValidators } from './validators.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,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,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Filesystem-backed build entry point. Everything here reads or writes through
|
|
3
|
+
* Node builtins, so it must never be imported from the package root — see
|
|
4
|
+
* `../index.ts`.
|
|
5
|
+
*/
|
|
6
|
+
export { buildRulesPackage } from './rules-package-builder.js';
|
|
7
|
+
export { buildContentPackages } from './content-package-builder.js';
|
|
8
|
+
export { loadCoreSchema, loadCoreSchemas, resolveCoreSchemaPath } from './schema.js';
|
|
9
|
+
export { createDataswornValidators } from './validators.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,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,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Datasworn, type DataswornSource } from '@datasworn-community/core';
|
|
2
|
-
import { type IdRefReport } from '
|
|
3
|
-
import {
|
|
2
|
+
import { type IdRefReport } from '../id-references.js';
|
|
3
|
+
import type { DataswornValidators } from '../validators.js';
|
|
4
4
|
export interface RulesPackageBuildConfig {
|
|
5
5
|
id: string;
|
|
6
6
|
type: Datasworn.RulesPackage['type'];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules-package-builder.d.ts","sourceRoot":"","sources":["../../src/node/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,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAG3D,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,8 +1,9 @@
|
|
|
1
1
|
import { mkdir, readdir, readFile, writeFile } from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
import { DATASWORN_SCHEMA_VERSION
|
|
3
|
+
import { DATASWORN_SCHEMA_VERSION } from '@datasworn-community/core';
|
|
4
4
|
import YAML from 'yaml';
|
|
5
|
-
import {
|
|
5
|
+
import { assembleRulesPackage } from '../in-memory-rules-package-builder.js';
|
|
6
|
+
import { validateIdRefs } from '../id-references.js';
|
|
6
7
|
import { createDataswornValidators } from './validators.js';
|
|
7
8
|
const sourceExtensions = new Set(['.json', '.yaml', '.yml']);
|
|
8
9
|
function isObject(value) {
|
|
@@ -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
|
|
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
|
-
|
|
80
|
-
mergeInto(merged, source);
|
|
61
|
+
sources.push({ name: filePath, data: source });
|
|
81
62
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules-package-builder.js","sourceRoot":"","sources":["../../src/node/rules-package-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/node/schema.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,kBAAkB,GAC3B,uBAAuB,GACvB,8BAA8B,CAAA;AAIjC,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CAE1E;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,kBAAkB,oCAGhE;AAED,wBAAsB,eAAe;;;GAOpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/node/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAM3C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAE9C,MAAM,UAAU,qBAAqB,CAAC,QAA4B;IACjE,OAAO,OAAO,CAAC,OAAO,CAAC,kCAAkC,QAAQ,EAAE,CAAC,CAAA;AACrE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAA4B;IAChE,MAAM,UAAU,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAA;IAClD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAA4B,CAAA;AACjF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACpC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC7C,cAAc,CAAC,uBAAuB,CAAC;QACvC,cAAc,CAAC,8BAA8B,CAAC;KAC9C,CAAC,CAAA;IAEF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAA;AAC7B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DataswornValidators } from '../validators.js';
|
|
2
|
+
/**
|
|
3
|
+
* Builds validators from the schemas shipped by `@datasworn-community/core`,
|
|
4
|
+
* reading them from disk. Embedded consumers that cannot touch the filesystem
|
|
5
|
+
* should compile their own schemas and use `createDataswornValidator` from the
|
|
6
|
+
* package root instead.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createDataswornValidators<TOutput, TSource>(): Promise<DataswornValidators<TOutput, TSource>>;
|
|
9
|
+
//# sourceMappingURL=validators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/node/validators.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAG3D;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAC3E,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CACrC,CAWA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { createDataswornValidator } from '../validators.js';
|
|
2
|
+
import { loadCoreSchemas } from './schema.js';
|
|
3
|
+
/**
|
|
4
|
+
* Builds validators from the schemas shipped by `@datasworn-community/core`,
|
|
5
|
+
* reading them from disk. Embedded consumers that cannot touch the filesystem
|
|
6
|
+
* should compile their own schemas and use `createDataswornValidator` from the
|
|
7
|
+
* package root instead.
|
|
8
|
+
*/
|
|
9
|
+
export async function createDataswornValidators() {
|
|
10
|
+
const schemas = await loadCoreSchemas();
|
|
11
|
+
return {
|
|
12
|
+
output: createDataswornValidator(schemas.datasworn, 'Datasworn'),
|
|
13
|
+
source: createDataswornValidator(schemas.source, 'Datasworn source', { useDefaults: 'empty' })
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=validators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/node/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB;IAG9C,MAAM,OAAO,GAAG,MAAM,eAAe,EAAE,CAAA;IAEvC,OAAO;QACN,MAAM,EAAE,wBAAwB,CAAU,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC;QACzE,MAAM,EAAE,wBAAwB,CAC/B,OAAO,CAAC,MAAM,EACd,kBAAkB,EAClB,EAAE,WAAW,EAAE,OAAO,EAAE,CACxB;KACD,CAAA;AACF,CAAC"}
|
|
@@ -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/dist/validators.d.ts
CHANGED
|
@@ -5,5 +5,4 @@ export interface DataswornValidators<TOutput, TSource> {
|
|
|
5
5
|
source: SchemaValidator<TSource>;
|
|
6
6
|
}
|
|
7
7
|
export declare function createDataswornValidator<TTarget>(schema: Record<string, unknown>, name: string, options?: Options): SchemaValidator<TTarget>;
|
|
8
|
-
export declare function createDataswornValidators<TOutput, TSource>(): Promise<DataswornValidators<TOutput, TSource>>;
|
|
9
8
|
//# sourceMappingURL=validators.d.ts.map
|
package/dist/validators.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAG/C,MAAM,MAAM,eAAe,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,CAAA;AAEzE,MAAM,WAAW,mBAAmB,CAAC,OAAO,EAAE,OAAO;IACpD,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;IAChC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;CAChC;AAeD,wBAAgB,wBAAwB,CAAC,OAAO,EAC/C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,OAAY,GACnB,eAAe,CAAC,OAAO,CAAC,CAkB1B"}
|
package/dist/validators.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Ajv } from 'ajv/dist/ajv.js';
|
|
2
2
|
import addFormatsModule from 'ajv-formats/dist/index.js';
|
|
3
|
-
import { loadCoreSchemas } from './schema.js';
|
|
4
3
|
function formatErrors(validate) {
|
|
5
4
|
return JSON.stringify(validate.errors?.map(({ instancePath, message, params, schemaPath }) => ({
|
|
6
5
|
instancePath,
|
|
@@ -26,11 +25,4 @@ export function createDataswornValidator(schema, name, options = {}) {
|
|
|
26
25
|
throw new Error(`${name} schema validation failed: ${formatErrors(validate)}`);
|
|
27
26
|
};
|
|
28
27
|
}
|
|
29
|
-
export async function createDataswornValidators() {
|
|
30
|
-
const schemas = await loadCoreSchemas();
|
|
31
|
-
return {
|
|
32
|
-
output: createDataswornValidator(schemas.datasworn, 'Datasworn'),
|
|
33
|
-
source: createDataswornValidator(schemas.source, 'Datasworn source', { useDefaults: 'empty' })
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
28
|
//# sourceMappingURL=validators.js.map
|
package/dist/validators.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAyB,MAAM,iBAAiB,CAAA;AAE5D,OAAO,gBAAgB,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAyB,MAAM,iBAAiB,CAAA;AAE5D,OAAO,gBAAgB,MAAM,2BAA2B,CAAA;AASxD,SAAS,YAAY,CAAC,QAA0B;IAC/C,OAAO,IAAI,CAAC,SAAS,CACpB,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QACxE,YAAY;QACZ,OAAO;QACP,MAAM;QACN,UAAU;KACV,CAAC,CAAC,IAAI,EAAE,EACT,SAAS,EACT,CAAC,CACD,CAAA;AACF,CAAC;AAED,MAAM,UAAU,wBAAwB,CACvC,MAA+B,EAC/B,IAAY,EACZ,UAAmB,EAAE;IAErB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;QACnB,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,IAAI;QACrB,MAAM,EAAE,KAAK;QACb,GAAG,OAAO;KACV,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,gBAAoD,CAAA;IACvE,UAAU,CAAC,GAAG,CAAC,CAAA;IACf,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IAE/B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAEpC,OAAO,CAAC,IAAa,EAAmB,EAAE;QACzC,IAAI,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;QAE/B,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,8BAA8B,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC/E,CAAC,CAAA;AACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@datasworn-community/build-tools",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.10-experimental.36.ef4479f3d136",
|
|
4
4
|
"description": "Build and migration tools for Datasworn source packages.",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"sideEffects": false,
|
|
6
7
|
"main": "./dist/index.js",
|
|
7
8
|
"types": "./dist/index.d.ts",
|
|
8
9
|
"exports": {
|
|
@@ -10,6 +11,10 @@
|
|
|
10
11
|
"types": "./dist/index.d.ts",
|
|
11
12
|
"default": "./dist/index.js"
|
|
12
13
|
},
|
|
14
|
+
"./node": {
|
|
15
|
+
"types": "./dist/node/index.d.ts",
|
|
16
|
+
"default": "./dist/node/index.js"
|
|
17
|
+
},
|
|
13
18
|
"./package.json": "./package.json"
|
|
14
19
|
},
|
|
15
20
|
"bin": {
|
|
@@ -42,20 +47,20 @@
|
|
|
42
47
|
],
|
|
43
48
|
"license": "MIT",
|
|
44
49
|
"dependencies": {
|
|
45
|
-
"@sinclair/typebox": "0.34.
|
|
50
|
+
"@sinclair/typebox": "0.34.52",
|
|
46
51
|
"ajv": "^8.20.0",
|
|
47
52
|
"ajv-formats": "^3.0.1",
|
|
48
53
|
"lodash-es": "^4.18.1",
|
|
49
54
|
"yaml": "^2.9.0"
|
|
50
55
|
},
|
|
51
56
|
"peerDependencies": {
|
|
52
|
-
"@datasworn-community/core": "0.2.
|
|
57
|
+
"@datasworn-community/core": "0.2.10-experimental.36.ef4479f3d136"
|
|
53
58
|
},
|
|
54
59
|
"devDependencies": {
|
|
55
|
-
"@datasworn-community/core": "0.2.
|
|
60
|
+
"@datasworn-community/core": "0.2.10-experimental.36.ef4479f3d136",
|
|
56
61
|
"json-schema": "^0.4.0",
|
|
57
|
-
"json-schema-library": "^11.
|
|
58
|
-
"type-fest": "^5.
|
|
62
|
+
"json-schema-library": "^11.6.2",
|
|
63
|
+
"type-fest": "^5.8.0"
|
|
59
64
|
},
|
|
60
65
|
"bugs": {
|
|
61
66
|
"url": "https://github.com/datasworn-community/datasworn/issues"
|
package/dist/config.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAC3E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAEzE,MAAM,MAAM,oBAAoB,GAC7B,uBAAuB,GACvB,uBAAuB,CAAA;AAE1B,wBAAsB,eAAe,CACpC,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,oBAAoB,CAAC,CAM/B"}
|
package/dist/config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,IAAI,MAAM,MAAM,CAAA;AASvB,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,UAAkB;IAElB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACpC,MAAM,KAAK,GAAG,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAEnE,OAAO,KAA6B,CAAA;AACrC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"content-package-builder.js","sourceRoot":"","sources":["../src/content-package-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rules-package-builder.js","sourceRoot":"","sources":["../src/rules-package-builder.ts"],"names":[],"mappings":"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"}
|
package/dist/schema.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,kBAAkB,GAC3B,uBAAuB,GACvB,8BAA8B,CAAA;AAIjC,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CAE1E;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,kBAAkB,oCAGhE;AAED,wBAAsB,eAAe;;;GAOpC"}
|
package/dist/schema.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAM3C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAE9C,MAAM,UAAU,qBAAqB,CAAC,QAA4B;IACjE,OAAO,OAAO,CAAC,OAAO,CAAC,kCAAkC,QAAQ,EAAE,CAAC,CAAA;AACrE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAA4B;IAChE,MAAM,UAAU,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAA;IAClD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAA4B,CAAA;AACjF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACpC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC7C,cAAc,CAAC,uBAAuB,CAAC;QACvC,cAAc,CAAC,8BAA8B,CAAC;KAC9C,CAAC,CAAA;IAEF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAA;AAC7B,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|