5etools-utils 0.13.7 → 0.13.9

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.
@@ -126,7 +126,10 @@ class _BrewFileTester {
126
126
  export class BrewCleaner {
127
127
  static _IS_FAIL_SLOW = !!process.env.FAIL_SLOW;
128
128
 
129
- static _RE_INVALID_WINDOWS_CHARS = /[<>:"/\\|?*]/;
129
+ // Exclude:
130
+ // - Characters which are invalid in Windows filenames
131
+ // - Characters which have significance in a URL
132
+ static _RE_INVALID_CHARS = /[<>:"/\\|?*#%@]/;
130
133
 
131
134
  static _cleanFolder (folder) {
132
135
  const ALL_ERRORS = [];
@@ -135,7 +138,7 @@ export class BrewCleaner {
135
138
  for (const file of files) {
136
139
  let contents = Uf.readJsonSync(file);
137
140
 
138
- if (this._RE_INVALID_WINDOWS_CHARS.test(file.split("/").slice(1).join("/"))) {
141
+ if (this._RE_INVALID_CHARS.test(file.split("/").slice(1).join("/"))) {
139
142
  ALL_ERRORS.push(`${file} contained invalid characters!`);
140
143
  if (!this._IS_FAIL_SLOW) break;
141
144
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "5etools-utils",
3
- "version": "0.13.7",
3
+ "version": "0.13.9",
4
4
  "description": "Shared utilities for the 5etools ecosystem.",
5
5
  "type": "module",
6
6
  "main": "lib/Api.js",
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "util-foundry.json",
4
4
  "title": "Util: Foundry",
5
- "version": "1.0.9",
5
+ "version": "1.0.10",
6
6
  "$defs": {
7
7
  "entryDataObject": {
8
8
  "description": "Additional \"5etools-type\" data to be stored on the entry.",
@@ -103,6 +103,17 @@
103
103
  "foundryImg": {
104
104
  "type": "string"
105
105
  },
106
+ "_foundryIdRef": {
107
+ "type": "object",
108
+ "properties": {
109
+ "foundryId": {
110
+ "$ref": "#/$defs/foundryIdShort"
111
+ }
112
+ },
113
+ "required": [
114
+ "foundryId"
115
+ ]
116
+ },
106
117
  "foundrySubEntitiesObject": {
107
118
  "description": "A 5etools-data-like object of additional entities to import.",
108
119
  "type": "object",
@@ -116,6 +127,10 @@
116
127
  "_foundryActivityObject_base": {
117
128
  "type": "object",
118
129
  "properties": {
130
+ "foundryId": {
131
+ "description": "Use only when required. For example, when linking a \"rider\".",
132
+ "$ref": "#/$defs/foundryIdShort"
133
+ },
119
134
  "consumption": {
120
135
  "type": "object",
121
136
  "properties": {
@@ -130,6 +145,7 @@
130
145
  "type": "string"
131
146
  },
132
147
  {
148
+ "description": "A link to an importable entity",
133
149
  "type": "object",
134
150
  "properties": {
135
151
  "prop": {
@@ -144,6 +160,28 @@
144
160
  "uid"
145
161
  ],
146
162
  "additionalProperties": false
163
+ },
164
+ {
165
+ "description": "A link to a 5etools-style resource",
166
+ "type": "object",
167
+ "properties": {
168
+ "consumes": {
169
+ "type": "object",
170
+ "properties": {
171
+ "name": {
172
+ "$ref": "util.json#/$defs/consumesName"
173
+ }
174
+ },
175
+ "required": [
176
+ "name"
177
+ ],
178
+ "additionalProperties": false
179
+ }
180
+ },
181
+ "required": [
182
+ "consumes"
183
+ ],
184
+ "additionalProperties": false
147
185
  }
148
186
  ]
149
187
  }
@@ -155,16 +193,88 @@
155
193
  "effects": {
156
194
  "type": "array",
157
195
  "items": {
158
- "type": "object",
159
- "properties": {
160
- "foundryId": {
161
- "$ref": "#/$defs/foundryIdShort"
196
+ "$ref": "#/$defs/_foundryIdRef"
197
+ }
198
+ }
199
+ },
200
+ "required": [
201
+ "type"
202
+ ]
203
+ },
204
+ "_foundryActivityObject_attack": {
205
+ "type": "object",
206
+ "properties": {
207
+ "foundryId": {
208
+ "description": "Use only when required. For example, when linking a \"rider\".",
209
+ "$ref": "#/$defs/foundryIdShort"
210
+ },
211
+ "consumption": {
212
+ "type": "object",
213
+ "properties": {
214
+ "targets": {
215
+ "type": "array",
216
+ "items": {
217
+ "type": "object",
218
+ "properties": {
219
+ "target": {
220
+ "oneOf": [
221
+ {
222
+ "type": "string"
223
+ },
224
+ {
225
+ "description": "A link to an importable entity",
226
+ "type": "object",
227
+ "properties": {
228
+ "prop": {
229
+ "type": "string"
230
+ },
231
+ "uid": {
232
+ "type": "string"
233
+ }
234
+ },
235
+ "required": [
236
+ "prop",
237
+ "uid"
238
+ ],
239
+ "additionalProperties": false
240
+ },
241
+ {
242
+ "description": "A link to a 5etools-style resource",
243
+ "type": "object",
244
+ "properties": {
245
+ "consumes": {
246
+ "type": "object",
247
+ "properties": {
248
+ "name": {
249
+ "$ref": "util.json#/$defs/consumesName"
250
+ }
251
+ },
252
+ "required": [
253
+ "name"
254
+ ],
255
+ "additionalProperties": false
256
+ }
257
+ },
258
+ "required": [
259
+ "consumes"
260
+ ],
261
+ "additionalProperties": false
262
+ }
263
+ ]
264
+ }
265
+ }
162
266
  }
163
- },
164
- "required": [
165
- "foundryId"
166
- ]
267
+ }
268
+ }
269
+ },
270
+ "effects": {
271
+ "type": "array",
272
+ "items": {
273
+ "$ref": "#/$defs/_foundryIdRef"
167
274
  }
275
+ },
276
+ "type": {
277
+ "const": "attack"
168
278
  }
169
279
  },
170
280
  "required": [
@@ -174,6 +284,10 @@
174
284
  "_foundryActivityObject_damage": {
175
285
  "type": "object",
176
286
  "properties": {
287
+ "foundryId": {
288
+ "description": "Use only when required. For example, when linking a \"rider\".",
289
+ "$ref": "#/$defs/foundryIdShort"
290
+ },
177
291
  "consumption": {
178
292
  "type": "object",
179
293
  "properties": {
@@ -188,6 +302,7 @@
188
302
  "type": "string"
189
303
  },
190
304
  {
305
+ "description": "A link to an importable entity",
191
306
  "type": "object",
192
307
  "properties": {
193
308
  "prop": {
@@ -202,6 +317,28 @@
202
317
  "uid"
203
318
  ],
204
319
  "additionalProperties": false
320
+ },
321
+ {
322
+ "description": "A link to a 5etools-style resource",
323
+ "type": "object",
324
+ "properties": {
325
+ "consumes": {
326
+ "type": "object",
327
+ "properties": {
328
+ "name": {
329
+ "$ref": "util.json#/$defs/consumesName"
330
+ }
331
+ },
332
+ "required": [
333
+ "name"
334
+ ],
335
+ "additionalProperties": false
336
+ }
337
+ },
338
+ "required": [
339
+ "consumes"
340
+ ],
341
+ "additionalProperties": false
205
342
  }
206
343
  ]
207
344
  }
@@ -213,15 +350,7 @@
213
350
  "effects": {
214
351
  "type": "array",
215
352
  "items": {
216
- "type": "object",
217
- "properties": {
218
- "foundryId": {
219
- "$ref": "#/$defs/foundryIdShort"
220
- }
221
- },
222
- "required": [
223
- "foundryId"
224
- ]
353
+ "$ref": "#/$defs/_foundryIdRef"
225
354
  }
226
355
  },
227
356
  "type": {
@@ -235,6 +364,10 @@
235
364
  "_foundryActivityObject_save": {
236
365
  "type": "object",
237
366
  "properties": {
367
+ "foundryId": {
368
+ "description": "Use only when required. For example, when linking a \"rider\".",
369
+ "$ref": "#/$defs/foundryIdShort"
370
+ },
238
371
  "consumption": {
239
372
  "type": "object",
240
373
  "properties": {
@@ -249,6 +382,7 @@
249
382
  "type": "string"
250
383
  },
251
384
  {
385
+ "description": "A link to an importable entity",
252
386
  "type": "object",
253
387
  "properties": {
254
388
  "prop": {
@@ -263,6 +397,28 @@
263
397
  "uid"
264
398
  ],
265
399
  "additionalProperties": false
400
+ },
401
+ {
402
+ "description": "A link to a 5etools-style resource",
403
+ "type": "object",
404
+ "properties": {
405
+ "consumes": {
406
+ "type": "object",
407
+ "properties": {
408
+ "name": {
409
+ "$ref": "util.json#/$defs/consumesName"
410
+ }
411
+ },
412
+ "required": [
413
+ "name"
414
+ ],
415
+ "additionalProperties": false
416
+ }
417
+ },
418
+ "required": [
419
+ "consumes"
420
+ ],
421
+ "additionalProperties": false
266
422
  }
267
423
  ]
268
424
  }
@@ -274,15 +430,7 @@
274
430
  "effects": {
275
431
  "type": "array",
276
432
  "items": {
277
- "type": "object",
278
- "properties": {
279
- "foundryId": {
280
- "$ref": "#/$defs/foundryIdShort"
281
- }
282
- },
283
- "required": [
284
- "foundryId"
285
- ]
433
+ "$ref": "#/$defs/_foundryIdRef"
286
434
  }
287
435
  },
288
436
  "type": {
@@ -296,6 +444,10 @@
296
444
  "_foundryActivityObject_heal": {
297
445
  "type": "object",
298
446
  "properties": {
447
+ "foundryId": {
448
+ "description": "Use only when required. For example, when linking a \"rider\".",
449
+ "$ref": "#/$defs/foundryIdShort"
450
+ },
299
451
  "consumption": {
300
452
  "type": "object",
301
453
  "properties": {
@@ -310,6 +462,7 @@
310
462
  "type": "string"
311
463
  },
312
464
  {
465
+ "description": "A link to an importable entity",
313
466
  "type": "object",
314
467
  "properties": {
315
468
  "prop": {
@@ -324,6 +477,28 @@
324
477
  "uid"
325
478
  ],
326
479
  "additionalProperties": false
480
+ },
481
+ {
482
+ "description": "A link to a 5etools-style resource",
483
+ "type": "object",
484
+ "properties": {
485
+ "consumes": {
486
+ "type": "object",
487
+ "properties": {
488
+ "name": {
489
+ "$ref": "util.json#/$defs/consumesName"
490
+ }
491
+ },
492
+ "required": [
493
+ "name"
494
+ ],
495
+ "additionalProperties": false
496
+ }
497
+ },
498
+ "required": [
499
+ "consumes"
500
+ ],
501
+ "additionalProperties": false
327
502
  }
328
503
  ]
329
504
  }
@@ -335,15 +510,7 @@
335
510
  "effects": {
336
511
  "type": "array",
337
512
  "items": {
338
- "type": "object",
339
- "properties": {
340
- "foundryId": {
341
- "$ref": "#/$defs/foundryIdShort"
342
- }
343
- },
344
- "required": [
345
- "foundryId"
346
- ]
513
+ "$ref": "#/$defs/_foundryIdRef"
347
514
  }
348
515
  },
349
516
  "type": {
@@ -354,9 +521,13 @@
354
521
  "type"
355
522
  ]
356
523
  },
357
- "_foundryActivityObject_utility": {
524
+ "_foundryActivityObject_enchant": {
358
525
  "type": "object",
359
526
  "properties": {
527
+ "foundryId": {
528
+ "description": "Use only when required. For example, when linking a \"rider\".",
529
+ "$ref": "#/$defs/foundryIdShort"
530
+ },
360
531
  "consumption": {
361
532
  "type": "object",
362
533
  "properties": {
@@ -371,6 +542,7 @@
371
542
  "type": "string"
372
543
  },
373
544
  {
545
+ "description": "A link to an importable entity",
374
546
  "type": "object",
375
547
  "properties": {
376
548
  "prop": {
@@ -385,6 +557,28 @@
385
557
  "uid"
386
558
  ],
387
559
  "additionalProperties": false
560
+ },
561
+ {
562
+ "description": "A link to a 5etools-style resource",
563
+ "type": "object",
564
+ "properties": {
565
+ "consumes": {
566
+ "type": "object",
567
+ "properties": {
568
+ "name": {
569
+ "$ref": "util.json#/$defs/consumesName"
570
+ }
571
+ },
572
+ "required": [
573
+ "name"
574
+ ],
575
+ "additionalProperties": false
576
+ }
577
+ },
578
+ "required": [
579
+ "consumes"
580
+ ],
581
+ "additionalProperties": false
388
582
  }
389
583
  ]
390
584
  }
@@ -396,15 +590,167 @@
396
590
  "effects": {
397
591
  "type": "array",
398
592
  "items": {
399
- "type": "object",
400
- "properties": {
401
- "foundryId": {
402
- "$ref": "#/$defs/foundryIdShort"
593
+ "$ref": "#/$defs/_foundryIdRef"
594
+ }
595
+ },
596
+ "type": {
597
+ "const": "enchant"
598
+ }
599
+ },
600
+ "required": [
601
+ "type"
602
+ ]
603
+ },
604
+ "_foundryActivityObject_summon": {
605
+ "type": "object",
606
+ "properties": {
607
+ "foundryId": {
608
+ "description": "Use only when required. For example, when linking a \"rider\".",
609
+ "$ref": "#/$defs/foundryIdShort"
610
+ },
611
+ "consumption": {
612
+ "type": "object",
613
+ "properties": {
614
+ "targets": {
615
+ "type": "array",
616
+ "items": {
617
+ "type": "object",
618
+ "properties": {
619
+ "target": {
620
+ "oneOf": [
621
+ {
622
+ "type": "string"
623
+ },
624
+ {
625
+ "description": "A link to an importable entity",
626
+ "type": "object",
627
+ "properties": {
628
+ "prop": {
629
+ "type": "string"
630
+ },
631
+ "uid": {
632
+ "type": "string"
633
+ }
634
+ },
635
+ "required": [
636
+ "prop",
637
+ "uid"
638
+ ],
639
+ "additionalProperties": false
640
+ },
641
+ {
642
+ "description": "A link to a 5etools-style resource",
643
+ "type": "object",
644
+ "properties": {
645
+ "consumes": {
646
+ "type": "object",
647
+ "properties": {
648
+ "name": {
649
+ "$ref": "util.json#/$defs/consumesName"
650
+ }
651
+ },
652
+ "required": [
653
+ "name"
654
+ ],
655
+ "additionalProperties": false
656
+ }
657
+ },
658
+ "required": [
659
+ "consumes"
660
+ ],
661
+ "additionalProperties": false
662
+ }
663
+ ]
664
+ }
665
+ }
403
666
  }
404
- },
405
- "required": [
406
- "foundryId"
407
- ]
667
+ }
668
+ }
669
+ },
670
+ "effects": {
671
+ "type": "array",
672
+ "items": {
673
+ "$ref": "#/$defs/_foundryIdRef"
674
+ }
675
+ },
676
+ "type": {
677
+ "const": "summon"
678
+ }
679
+ },
680
+ "required": [
681
+ "type"
682
+ ]
683
+ },
684
+ "_foundryActivityObject_utility": {
685
+ "type": "object",
686
+ "properties": {
687
+ "foundryId": {
688
+ "description": "Use only when required. For example, when linking a \"rider\".",
689
+ "$ref": "#/$defs/foundryIdShort"
690
+ },
691
+ "consumption": {
692
+ "type": "object",
693
+ "properties": {
694
+ "targets": {
695
+ "type": "array",
696
+ "items": {
697
+ "type": "object",
698
+ "properties": {
699
+ "target": {
700
+ "oneOf": [
701
+ {
702
+ "type": "string"
703
+ },
704
+ {
705
+ "description": "A link to an importable entity",
706
+ "type": "object",
707
+ "properties": {
708
+ "prop": {
709
+ "type": "string"
710
+ },
711
+ "uid": {
712
+ "type": "string"
713
+ }
714
+ },
715
+ "required": [
716
+ "prop",
717
+ "uid"
718
+ ],
719
+ "additionalProperties": false
720
+ },
721
+ {
722
+ "description": "A link to a 5etools-style resource",
723
+ "type": "object",
724
+ "properties": {
725
+ "consumes": {
726
+ "type": "object",
727
+ "properties": {
728
+ "name": {
729
+ "$ref": "util.json#/$defs/consumesName"
730
+ }
731
+ },
732
+ "required": [
733
+ "name"
734
+ ],
735
+ "additionalProperties": false
736
+ }
737
+ },
738
+ "required": [
739
+ "consumes"
740
+ ],
741
+ "additionalProperties": false
742
+ }
743
+ ]
744
+ }
745
+ }
746
+ }
747
+ }
748
+ }
749
+ },
750
+ "effects": {
751
+ "type": "array",
752
+ "items": {
753
+ "$ref": "#/$defs/_foundryIdRef"
408
754
  }
409
755
  },
410
756
  "type": {
@@ -417,6 +763,9 @@
417
763
  },
418
764
  "foundryActivityObject": {
419
765
  "anyOf": [
766
+ {
767
+ "$ref": "#/$defs/_foundryActivityObject_attack"
768
+ },
420
769
  {
421
770
  "$ref": "#/$defs/_foundryActivityObject_damage"
422
771
  },
@@ -426,6 +775,12 @@
426
775
  {
427
776
  "$ref": "#/$defs/_foundryActivityObject_heal"
428
777
  },
778
+ {
779
+ "$ref": "#/$defs/_foundryActivityObject_summon"
780
+ },
781
+ {
782
+ "$ref": "#/$defs/_foundryActivityObject_enchant"
783
+ },
429
784
  {
430
785
  "$ref": "#/$defs/_foundryActivityObject_utility"
431
786
  }
@@ -485,15 +840,19 @@
485
840
  "enum": [
486
841
  "bleeding",
487
842
  "blinded",
843
+ "burning",
488
844
  "charmed",
489
845
  "cursed",
490
846
  "deafened",
847
+ "dehydration",
491
848
  "diseased",
492
849
  "exhaustion",
850
+ "falling",
493
851
  "frightened",
494
852
  "grappled",
495
853
  "incapacitated",
496
854
  "invisible",
855
+ "malnutrition",
497
856
  "paralyzed",
498
857
  "petrified",
499
858
  "poisoned",
@@ -501,9 +860,12 @@
501
860
  "restrained",
502
861
  "silenced",
503
862
  "stunned",
863
+ "suffocation",
504
864
  "surprised",
505
865
  "transformed",
506
- "unconscious"
866
+ "unconscious",
867
+ "dodging",
868
+ "hiding"
507
869
  ]
508
870
  }
509
871
  },
@@ -582,6 +944,26 @@
582
944
  ]
583
945
  }
584
946
  ]
947
+ },
948
+ {
949
+ "description": "An effect with no functional changes, but an enchantment link.",
950
+ "allOf": [
951
+ {
952
+ "$ref": "#/$defs/_foundryEffectObject"
953
+ },
954
+ {
955
+ "type": "object",
956
+ "properties": {
957
+ "type": {
958
+ "const": "enchantment"
959
+ }
960
+ },
961
+ "required": [
962
+ "foundryId",
963
+ "type"
964
+ ]
965
+ }
966
+ ]
585
967
  }
586
968
  ]
587
969
  },