@minecraft/server 2.10.0-beta.1.26.40-preview.31 → 2.11.0-beta.1.26.50-preview.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.d.ts +37 -367
  2. package/package.json +2 -2
package/index.d.ts CHANGED
@@ -16,7 +16,7 @@
16
16
  * ```json
17
17
  * {
18
18
  * "module_name": "@minecraft/server",
19
- * "version": "2.10.0-beta"
19
+ * "version": "2.11.0-beta"
20
20
  * }
21
21
  * ```
22
22
  *
@@ -53,7 +53,7 @@ export enum BlockComponentTypes {
53
53
  DynamicProperties = 'minecraft:dynamic_properties',
54
54
  FluidContainer = 'minecraft:fluid_container',
55
55
  /**
56
- * @beta
56
+ * @rc
57
57
  */
58
58
  Instrument = 'minecraft:instrument_sound',
59
59
  /**
@@ -202,7 +202,7 @@ export enum ButtonState {
202
202
  }
203
203
 
204
204
  /**
205
- * @beta
205
+ * @rc
206
206
  * Represents the type of shake to apply to the camera.
207
207
  */
208
208
  export enum CameraShakeType {
@@ -284,55 +284,6 @@ export enum CommandPermissionLevel {
284
284
  Owner = 4,
285
285
  }
286
286
 
287
- /**
288
- * @beta
289
- * The Action enum determines how the CompoundBlockVolume
290
- * considers the associated CompoundBlockVolumeItem when
291
- * performing inside/outside calculations.
292
- */
293
- export enum CompoundBlockVolumeAction {
294
- /**
295
- * @remarks
296
- * The associated BlockVolume is considered a positive space,
297
- * and any intersection tests are considered hits
298
- *
299
- */
300
- Add = 0,
301
- /**
302
- * @remarks
303
- * The associated BlockVolume is considered a negative or void
304
- * space, and any intersection tests are considered misses.
305
- * Using the Subtract action, it is possible to `punch holes`
306
- * in block volumes so that any intersection tests may pass
307
- * through such spaces
308
- *
309
- */
310
- Subtract = 1,
311
- }
312
-
313
- /**
314
- * @beta
315
- * An enum describing the relativity of the
316
- * CompoundBlockVolumeItem, relative to the parent
317
- * CompoundVolume.
318
- */
319
- export enum CompoundBlockVolumePositionRelativity {
320
- /**
321
- * @remarks
322
- * The locations within the associated BlockVolume are relative
323
- * to the CompoundBlockVolume to which they were added
324
- *
325
- */
326
- Relative = 0,
327
- /**
328
- * @remarks
329
- * The locations within the associated BlockVolume are in
330
- * absolute world space
331
- *
332
- */
333
- Absolute = 1,
334
- }
335
-
336
287
  /**
337
288
  * Reasons that the {@link
338
289
  * @minecraft/server.ContainerRulesError} was thrown.
@@ -5500,7 +5451,7 @@ export class BlockFluidContainerComponent extends BlockComponent {
5500
5451
  }
5501
5452
 
5502
5453
  /**
5503
- * @beta
5454
+ * @rc
5504
5455
  * Represents the instruments a block can have assigned to it's
5505
5456
  * up and down faces.
5506
5457
  */
@@ -6567,7 +6518,7 @@ export class BlockVolumeBase {
6567
6518
  */
6568
6519
  getCapacity(): number;
6569
6520
  /**
6570
- * @beta
6521
+ * @rc
6571
6522
  * @remarks
6572
6523
  * Returns a list of block positions within the volume that are
6573
6524
  * closest to a given location, sorted by distance (nearest
@@ -6583,7 +6534,7 @@ export class BlockVolumeBase {
6583
6534
  */
6584
6535
  getClosest(count: number, location: Vector3): Vector3[];
6585
6536
  /**
6586
- * @beta
6537
+ * @rc
6587
6538
  * @remarks
6588
6539
  * Returns a list of block positions within the volume that are
6589
6540
  * farthest from a given location, sorted by distance (farthest
@@ -6758,7 +6709,7 @@ export class Camera {
6758
6709
  */
6759
6710
  readonly isValid: boolean;
6760
6711
  /**
6761
- * @beta
6712
+ * @rc
6762
6713
  * @remarks
6763
6714
  * This function can't be called in restricted-execution mode.
6764
6715
  *
@@ -6875,7 +6826,7 @@ export class Camera {
6875
6826
  */
6876
6827
  setFov(fovCameraOptions?: CameraFovOptions): void;
6877
6828
  /**
6878
- * @beta
6829
+ * @rc
6879
6830
  * @remarks
6880
6831
  * This function can't be called in restricted-execution mode.
6881
6832
  *
@@ -7147,258 +7098,6 @@ export class Component {
7147
7098
  readonly typeId: string;
7148
7099
  }
7149
7100
 
7150
- /**
7151
- * @beta
7152
- * The Compound Block Volume is a collection of individual
7153
- * block volume definitions which, as a collection, define a
7154
- * larger volume of (sometimes non-contiguous) irregular
7155
- * shapes.
7156
- * This class is loosely based on the concept of CSG
7157
- * (Computational Solid Geometry) and allows a user to create
7158
- * complex volumes by building a stack of volumes and voids to
7159
- * make a larger single volume.
7160
- * For example - normally a creator would create a hollow cube
7161
- * by creating 6 "wall" surfaces for each face.
7162
- * With a Compound Block Volume, a creator can define a hollow
7163
- * cube by creating a single outer solid cube, and then
7164
- * defining a further single 'void' cube inside the larger one.
7165
- * Similarly, the Compound Block Volume can represent irregular
7166
- * shaped volumes (e.g. a tree consists of a trunk and lots of
7167
- * leaf cubes which are not necessarily contiguously placed).
7168
- * Each of the volumes added to the CompoundBlockVolume are (by
7169
- * default) relative to the origin set (either at construction
7170
- * or via one of the set functions).
7171
- * However, it is also possible to push volumes to the compound
7172
- * collection which are absolute in nature and are not affected
7173
- * by origin changes.
7174
- */
7175
- export class CompoundBlockVolume {
7176
- /**
7177
- * @remarks
7178
- * Return the 'capacity' of the bounding rectangle which
7179
- * represents the collection of volumes in the stack
7180
- *
7181
- */
7182
- readonly capacity: number;
7183
- readonly items: CompoundBlockVolumeItem[];
7184
- readonly itemsAbsolute: CompoundBlockVolumeItem[];
7185
- /**
7186
- * @remarks
7187
- * Return the number of volumes (positive and negative) in the
7188
- * volume stack
7189
- *
7190
- */
7191
- readonly volumeCount: number;
7192
- /**
7193
- * @remarks
7194
- * Create a CompoundBlockVolume object
7195
- *
7196
- * @param origin
7197
- * An optional world space origin on which to center the
7198
- * compound volume.
7199
- * If not specified, the origin is set to (0,0,0)
7200
- */
7201
- constructor(origin?: Vector3);
7202
- /**
7203
- * @remarks
7204
- * Clear the contents of the volume stack
7205
- *
7206
- * This function can't be called in restricted-execution mode.
7207
- *
7208
- */
7209
- clear(): void;
7210
- /**
7211
- * @remarks
7212
- * Fetch a Block Location Iterator for the Compound Block
7213
- * Volume. This iterator will allow a creator to iterate
7214
- * across all of the selected volumes within the larger
7215
- * bounding area.
7216
- * Areas of a volume which have been overridden by a
7217
- * subtractive volume will not be included in the iterator
7218
- * step.
7219
- * (i.e. if you push a cube to the stack, and then push a
7220
- * subtractive volume to the same location, then the iterator
7221
- * will step over the initial volume because it is considered
7222
- * negative space)
7223
- * Note that the Block Locations returned by this iterator are
7224
- * in absolute world space (irrespective of whether the
7225
- * compound volume items pushed are absolute or relative)
7226
- *
7227
- * This function can't be called in restricted-execution mode.
7228
- *
7229
- */
7230
- getBlockLocationIterator(): BlockLocationIterator;
7231
- /**
7232
- * @remarks
7233
- * Get the largest bounding box that represents a container for
7234
- * all of the volumes on the stack
7235
- * Note that the bounding box returned is represented in
7236
- * absolute world space (irrespective of whether the compound
7237
- * volume items pushed are absolute or relative)
7238
- *
7239
- * This function can't be called in restricted-execution mode.
7240
- *
7241
- */
7242
- getBoundingBox(): BlockBoundingBox;
7243
- /**
7244
- * @remarks
7245
- * Get the max block location of the outermost bounding
7246
- * rectangle which represents the volumes on the stack.
7247
- * Note that the max location returned is in absolute world
7248
- * space (irrespective of whether the compound volume items
7249
- * pushed are absolute or relative)
7250
- *
7251
- * This function can't be called in restricted-execution mode.
7252
- *
7253
- */
7254
- getMax(): Vector3;
7255
- /**
7256
- * @remarks
7257
- * Get the min block location of the outermost bounding
7258
- * rectangle which represents the volumes on the stack.
7259
- * Note that the min location returned is in absolute world
7260
- * space (irrespective of whether the compound volume items
7261
- * pushed are absolute or relative)
7262
- *
7263
- * This function can't be called in restricted-execution mode.
7264
- *
7265
- */
7266
- getMin(): Vector3;
7267
- /**
7268
- * @remarks
7269
- * Fetch the origin in world space of the compound volume
7270
- *
7271
- * This function can't be called in restricted-execution mode.
7272
- *
7273
- */
7274
- getOrigin(): Vector3;
7275
- /**
7276
- * @remarks
7277
- * Return a boolean which signals if there are any volume items
7278
- * pushed to the volume
7279
- *
7280
- * This function can't be called in restricted-execution mode.
7281
- *
7282
- */
7283
- isEmpty(): boolean;
7284
- /**
7285
- * @remarks
7286
- * Return a boolean representing whether or not a given
7287
- * absolute world space block location is inside a positive
7288
- * block volume.
7289
- * E.g. if the stack contains a large cube followed by a
7290
- * slightly smaller negative cube, and the test location is
7291
- * within the negative cube - the function will return false
7292
- * because it's not 'inside' a volume (it IS inside the
7293
- * bounding rectangle, but it is not inside a positively
7294
- * defined location)
7295
- *
7296
- * This function can't be called in restricted-execution mode.
7297
- *
7298
- */
7299
- isInside(worldLocation: Vector3): boolean;
7300
- /**
7301
- * @remarks
7302
- * Inspect the last entry pushed to the volume stack without
7303
- * affecting the stack contents.
7304
- *
7305
- * This function can't be called in restricted-execution mode.
7306
- *
7307
- * @param forceRelativity
7308
- * Determine whether the function returns a
7309
- * CompoundBlockVolumeItem which is forced into either relative
7310
- * or absolute coordinate system.
7311
- * `true` = force returned item to be relative to volume origin
7312
- * `false` = force returned item to be absolute world space
7313
- * location
7314
- *
7315
- * If no flag is specified, the item returned retains whatever
7316
- * relativity it had when it was pushed
7317
- * @returns
7318
- * Returns undefined if the stack is empty
7319
- */
7320
- peekLastVolume(forceRelativity?: CompoundBlockVolumePositionRelativity): CompoundBlockVolumeItem | undefined;
7321
- /**
7322
- * @remarks
7323
- * Remove the last entry from the volume stack. This will
7324
- * reduce the stack size by one
7325
- *
7326
- * This function can't be called in restricted-execution mode.
7327
- *
7328
- */
7329
- popVolume(): boolean;
7330
- /**
7331
- * @remarks
7332
- * Push a volume item to the stack. The volume item contains
7333
- * an 'action' parameter which determines whether this volume
7334
- * is a positive or negative space.
7335
- * The item also contains a `locationRelativity` which
7336
- * determines whether it is relative or absolute to the
7337
- * compound volume origin
7338
- *
7339
- * This function can't be called in restricted-execution mode.
7340
- *
7341
- * @param item
7342
- * Item to push to the end of the stack
7343
- */
7344
- pushVolume(item: CompoundBlockVolumeItem): void;
7345
- /**
7346
- * @remarks
7347
- * If the volume stack is empty, this function will push the
7348
- * specified item to the stack.
7349
- * If the volume stack is NOT empty, this function will replace
7350
- * the last item on the stack with the new item.
7351
- *
7352
- * This function can't be called in restricted-execution mode.
7353
- *
7354
- * @param item
7355
- * Item to add or replace
7356
- */
7357
- replaceOrAddLastVolume(item: CompoundBlockVolumeItem): boolean;
7358
- /**
7359
- * @remarks
7360
- * Set the origin of the compound volume to an absolute world
7361
- * space location
7362
- *
7363
- * This function can't be called in restricted-execution mode.
7364
- *
7365
- * @param preserveExistingVolumes
7366
- * This optional boolean flag determines whether the relative
7367
- * `CompoundBlockVolumeItem`'s are frozen in place, or are
7368
- * affected by the new origin.
7369
- * Imagine a scenario where you have a series of relative
7370
- * locations around an origin which make up a sphere; all of
7371
- * these locations are in the range of -2 to 2.
7372
- * Push each of these locations to the compound volume as
7373
- * relative items.
7374
- * Now, move the origin and all of the locations representing
7375
- * the sphere move accordingly.
7376
- * However, let's say you want to add a 2nd sphere next to the
7377
- * 1st.
7378
- * In this case, set the new origin a few locations over, but
7379
- * 'preserveExistingVolumes' = true.
7380
- * This will set a new origin, but the existing sphere
7381
- * locations will remain relative to the original origin.
7382
- * Now, you can push the relative sphere locations again (this
7383
- * time they will be relative to the new origin) - resulting in
7384
- * 2 spheres next to each other.
7385
- */
7386
- setOrigin(position: Vector3, preserveExistingVolumes?: boolean): void;
7387
- /**
7388
- * @remarks
7389
- * Similar to {@link CompoundBlockVolume.setOrigin} - this
7390
- * function will translate the origin by a given delta to a new
7391
- * position
7392
- *
7393
- * This function can't be called in restricted-execution mode.
7394
- *
7395
- * @param preserveExistingVolumes
7396
- * See the description for the arguments to {@link
7397
- * CompoundBlockVolume.setOrigin}
7398
- */
7399
- translateOrigin(delta: Vector3, preserveExistingVolumes?: boolean): void;
7400
- }
7401
-
7402
7101
  /**
7403
7102
  * Represents a container that can hold sets of items. Used
7404
7103
  * with entities such as Players, Chest Minecarts, Llamas, and
@@ -8708,6 +8407,7 @@ export class Dimension {
8708
8407
  */
8709
8408
  getBlockFromRay(location: Vector3, direction: Vector3, options?: BlockRaycastOptions): BlockRaycastHit | undefined;
8710
8409
  /**
8410
+ * @rc
8711
8411
  * @remarks
8712
8412
  * Gets all the blocks in a volume that satisfy the block query
8713
8413
  * options.
@@ -9599,8 +9299,6 @@ export class EffectTypes {
9599
9299
  * @remarks
9600
9300
  * Effect type for the given identifier.
9601
9301
  *
9602
- * This function can't be called in restricted-execution mode.
9603
- *
9604
9302
  * @param identifier
9605
9303
  * The identifier for the effect.
9606
9304
  * @returns
@@ -9612,8 +9310,6 @@ export class EffectTypes {
9612
9310
  * @remarks
9613
9311
  * Gets all effects.
9614
9312
  *
9615
- * This function can't be called in restricted-execution mode.
9616
- *
9617
9313
  * @returns
9618
9314
  * A list of all effects.
9619
9315
  */
@@ -14050,7 +13746,7 @@ export class EntityTameableComponent extends EntityComponent {
14050
13746
  }
14051
13747
 
14052
13748
  /**
14053
- * @beta
13749
+ * @rc
14054
13750
  * Contains data related to an entity being tamed.
14055
13751
  */
14056
13752
  export class EntityTamedAfterEvent {
@@ -14060,7 +13756,7 @@ export class EntityTamedAfterEvent {
14060
13756
  }
14061
13757
 
14062
13758
  /**
14063
- * @beta
13759
+ * @rc
14064
13760
  * Manages callbacks that are connected to when an entity is
14065
13761
  * tamed.
14066
13762
  */
@@ -14075,7 +13771,7 @@ export class EntityTamedAfterEventSignal {
14075
13771
  */
14076
13772
  subscribe(
14077
13773
  callback: (arg0: EntityTamedAfterEvent) => void,
14078
- options?: EntityTamedEventFilter,
13774
+ options?: EntityTamedEventOptions,
14079
13775
  ): (arg0: EntityTamedAfterEvent) => void;
14080
13776
  /**
14081
13777
  * @remarks
@@ -14088,7 +13784,7 @@ export class EntityTamedAfterEventSignal {
14088
13784
  }
14089
13785
 
14090
13786
  /**
14091
- * @beta
13787
+ * @rc
14092
13788
  * Contains information regarding an event before an entity is
14093
13789
  * tamed.
14094
13790
  */
@@ -14115,7 +13811,7 @@ export class EntityTamedBeforeEvent {
14115
13811
  }
14116
13812
 
14117
13813
  /**
14118
- * @beta
13814
+ * @rc
14119
13815
  * Manages callbacks that are connected to before an entity is
14120
13816
  * tamed.
14121
13817
  */
@@ -14134,7 +13830,7 @@ export class EntityTamedBeforeEventSignal {
14134
13830
  */
14135
13831
  subscribe(
14136
13832
  callback: (arg0: EntityTamedBeforeEvent) => void,
14137
- options?: EntityTamedEventFilter,
13833
+ options?: EntityTamedEventOptions,
14138
13834
  ): (arg0: EntityTamedBeforeEvent) => void;
14139
13835
  /**
14140
13836
  * @remarks
@@ -22291,7 +21987,7 @@ export class SmeltItemFunction extends LootItemFunction {
22291
21987
  }
22292
21988
 
22293
21989
  /**
22294
- * @beta
21990
+ * @rc
22295
21991
  * Contains information about a sound thats declared duration
22296
21992
  * elapsed.
22297
21993
  */
@@ -22308,7 +22004,7 @@ export class SoundCompletedAfterEvent {
22308
22004
  }
22309
22005
 
22310
22006
  /**
22311
- * @beta
22007
+ * @rc
22312
22008
  * Manages callbacks that are invoked when a tracked sound's
22313
22009
  * declared duration elapses.
22314
22010
  */
@@ -22406,7 +22102,7 @@ export class SoundDefinitionRegistry {
22406
22102
  }
22407
22103
 
22408
22104
  /**
22409
- * @beta
22105
+ * @rc
22410
22106
  * Provides duration and playback information for a sound whose
22411
22107
  * definition declares a duration.
22412
22108
  */
@@ -22450,28 +22146,28 @@ export class SoundDurationInfo {
22450
22146
  export class SoundInstance {
22451
22147
  private constructor();
22452
22148
  /**
22453
- * @beta
22149
+ * @rc
22454
22150
  * @remarks
22455
22151
  * Gets duration and playback information for this sound.
22456
22152
  *
22457
22153
  */
22458
22154
  readonly durationInfo?: SoundDurationInfo;
22459
22155
  /**
22460
- * @beta
22156
+ * @rc
22461
22157
  * @remarks
22462
22158
  * Unique identifier of this sound instance.
22463
22159
  *
22464
22160
  */
22465
22161
  readonly id: string;
22466
22162
  /**
22467
- * @beta
22163
+ * @rc
22468
22164
  * @remarks
22469
22165
  * Gets the player this sound was played for.
22470
22166
  *
22471
22167
  */
22472
22168
  readonly recipient?: Player;
22473
22169
  /**
22474
- * @beta
22170
+ * @rc
22475
22171
  * @remarks
22476
22172
  * Gets the identifier of the sound event this instance was
22477
22173
  * started with.
@@ -23400,6 +23096,14 @@ export class TextPrimitive extends PrimitiveShape {
23400
23096
  *
23401
23097
  */
23402
23098
  depthTest: boolean;
23099
+ /**
23100
+ * @beta
23101
+ * @remarks
23102
+ * This value determines the gap between lines for the
23103
+ * TextPrimitive. By default the line gap height is 0.
23104
+ *
23105
+ */
23106
+ lineGapHeight: number;
23403
23107
  /**
23404
23108
  * @remarks
23405
23109
  * Get the text of the debug text shape. Returns the RawText of
@@ -24708,7 +24412,7 @@ export class WorldAfterEvents {
24708
24412
  */
24709
24413
  readonly entityStopSneaking: EntityStopSneakingAfterEventSignal;
24710
24414
  /**
24711
- * @beta
24415
+ * @rc
24712
24416
  * @remarks
24713
24417
  * This event fires when an entity is tamed.
24714
24418
  *
@@ -25029,7 +24733,7 @@ export class WorldAfterEvents {
25029
24733
  */
25030
24734
  readonly projectileHitEntity: ProjectileHitEntityAfterEventSignal;
25031
24735
  /**
25032
- * @beta
24736
+ * @rc
25033
24737
  * @remarks
25034
24738
  * A tracked sound's declared duration elapsed.
25035
24739
  *
@@ -25155,7 +24859,7 @@ export class WorldBeforeEvents {
25155
24859
  */
25156
24860
  readonly entityRemove: EntityRemoveBeforeEventSignal;
25157
24861
  /**
25158
- * @beta
24862
+ * @rc
25159
24863
  * @remarks
25160
24864
  * Fires before an entity is tamed.
25161
24865
  *
@@ -25584,7 +25288,7 @@ export interface BlockHitInformation {
25584
25288
  }
25585
25289
 
25586
25290
  /**
25587
- * @beta
25291
+ * @rc
25588
25292
  * Options for querying blocks in a volume. Extends BlockFilter
25589
25293
  * with additional sorting and limiting options based on
25590
25294
  * distance from a location.
@@ -25788,7 +25492,7 @@ export interface CameraSetRotOptions {
25788
25492
  }
25789
25493
 
25790
25494
  /**
25791
- * @beta
25495
+ * @rc
25792
25496
  * Options for applying a camera shake effect to a player's
25793
25497
  * camera via `Camera.addShake`. Each call to `addShake` queues
25794
25498
  * a new independent shake event for the specified `type`;
@@ -25843,40 +25547,6 @@ export interface CameraTargetOptions {
25843
25547
  targetEntity: Entity;
25844
25548
  }
25845
25549
 
25846
- /**
25847
- * @beta
25848
- * This interface defines an entry into the {@link
25849
- * CompoundBlockVolume} which represents a volume of positive
25850
- * or negative space.
25851
- *
25852
- */
25853
- export interface CompoundBlockVolumeItem {
25854
- /**
25855
- * @remarks
25856
- * The 'action' defines how the block volume is represented in
25857
- * the compound block volume stack.
25858
- * 'Add' creates a block volume which is positively selected
25859
- * 'Subtract' creates a block volume which represents a hole or
25860
- * negative space in the overall compound block volume.
25861
- *
25862
- */
25863
- action?: CompoundBlockVolumeAction;
25864
- /**
25865
- * @remarks
25866
- * The relativity enumeration determines whether the
25867
- * BlockVolume specified is positioned relative to the parent
25868
- * compound block volume origin, or in absolute world space.
25869
- *
25870
- */
25871
- locationRelativity?: CompoundBlockVolumePositionRelativity;
25872
- /**
25873
- * @remarks
25874
- * The volume of space
25875
- *
25876
- */
25877
- volume: BlockVolume;
25878
- }
25879
-
25880
25550
  /**
25881
25551
  * Represents the source of a container access.
25882
25552
  */
@@ -26891,10 +26561,10 @@ export interface EntitySneakingChangedEventOptions {
26891
26561
  }
26892
26562
 
26893
26563
  /**
26894
- * @beta
26564
+ * @rc
26895
26565
  * Contains options for filtering entity tamed events.
26896
26566
  */
26897
- export interface EntityTamedEventFilter {
26567
+ export interface EntityTamedEventOptions {
26898
26568
  entityFilter?: EntityFilter;
26899
26569
  tamingEntityFilter?: EntityFilter;
26900
26570
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minecraft/server",
3
- "version": "2.10.0-beta.1.26.40-preview.31",
3
+ "version": "2.11.0-beta.1.26.50-preview.20",
4
4
  "description": "",
5
5
  "contributors": [
6
6
  {
@@ -14,7 +14,7 @@
14
14
  ],
15
15
  "peerDependencies": {
16
16
  "@minecraft/common": "^1.2.0",
17
- "@minecraft/vanilla-data": ">=1.20.70 || 1.26.40-preview.31"
17
+ "@minecraft/vanilla-data": ">=1.20.70 || 1.26.50-preview.20"
18
18
  },
19
19
  "license": "MIT"
20
20
  }