@my-react/react-reconciler-compact 0.0.10 → 0.0.11

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.
@@ -19,7 +19,7 @@ export declare const createDispatch: (rootNode: any, rootFiber: MyReactFiberRoot
19
19
  commitUnsetRef(_fiber: MyReactFiberNode): void;
20
20
  commitClear(_fiber: MyReactFiberNode): void;
21
21
  reconcileCommit(_fiber: MyReactFiberNode): void;
22
- reconcileUpdate(_list: ListTree<MyReactFiberNode>): void;
22
+ reconcileUpdate(_list: ListTree<MyReactFiberNode>, sync?: boolean): void;
23
23
  patchToFiberInitial(_fiber: MyReactFiberNode): void;
24
24
  patchToFiberUnmount(_fiber: MyReactFiberNode): void;
25
25
  dispatchState(_params: UpdateQueue): void;
@@ -279,62 +279,97 @@ export declare const createDispatch: (rootNode: any, rootFiber: MyReactFiberRoot
279
279
  trigger(_fiber: MyReactFiberNode, _state?: import("@my-react/react-shared").STATE_TYPE, cb?: () => void): void;
280
280
  onFiberInitial(cb: (_fiber: MyReactFiberNode) => void): () => boolean;
281
281
  onceFiberInitial(cb: (_fiber: MyReactFiberNode) => void): void;
282
+ callOnFiberInitial(_fiber: MyReactFiberNode): void;
282
283
  onFiberUpdate(cb: (_fiber: MyReactFiberNode) => void): () => boolean;
284
+ onceFiberUpdate(cb: (_fiber: MyReactFiberNode) => void): void;
285
+ callOnFiberUpdate(_fiber: MyReactFiberNode): void;
283
286
  onFiberChange(cb: (_list: ListTree<MyReactFiberNode>) => void): () => boolean;
284
287
  onceFiberChange(cb: (_list: ListTree<MyReactFiberNode>) => void): void;
285
- onceFiberUpdate(cb: (_fiber: MyReactFiberNode) => void): void;
288
+ callOnFiberChange(_list: ListTree<MyReactFiberNode>): void;
286
289
  onFiberUnmount(cb: (_fiber: MyReactFiberNode) => void): () => boolean;
287
290
  onceFiberUnmount(cb: (_fiber: MyReactFiberNode) => void): void;
291
+ callOnFiberUnmount(_fiber: MyReactFiberNode): void;
288
292
  onFiberState(cb: (_fiber: MyReactFiberNode, _updater: UpdateQueue) => void): () => boolean;
289
293
  onceFiberState(cb: (_fiber: MyReactFiberNode, _updater: UpdateQueue) => void): void;
294
+ callOnFiberState(_fiber: MyReactFiberNode, _updater: UpdateQueue): void;
290
295
  onFiberTrigger(cb: (_fiber: MyReactFiberNode, _state: import("@my-react/react-reconciler").UpdateState) => void): () => boolean;
291
296
  onceFiberTrigger(cb: (_fiber: MyReactFiberNode, _state: import("@my-react/react-reconciler").UpdateState) => void): void;
297
+ callOnFiberTrigger(_fiber: MyReactFiberNode, _state: import("@my-react/react-reconciler").UpdateState): void;
292
298
  onFiberHMR(cb: (_fiber: MyReactFiberNode, _forceRefresh?: boolean) => void): () => boolean;
293
299
  onceFiberHMR(cb: (_fiber: MyReactFiberNode, _forceRefresh?: boolean) => void): void;
300
+ callOnFiberHMR(_fiber: MyReactFiberNode, _forceRefresh?: boolean): void;
294
301
  onFiberWarn(cb: (_fiber: MyReactFiberNode, ...args: any) => void): () => boolean;
295
302
  onceFiberWarn(cb: (_fiber: MyReactFiberNode, ...args: any) => void): void;
303
+ callOnFiberWarn(_fiber: MyReactFiberNode, ...args: any): void;
296
304
  onFiberError(cb: (_fiber: MyReactFiberNode, ...args: any) => void): () => boolean;
297
305
  onceFiberError(cb: (_fiber: MyReactFiberNode, ...args: any) => void): void;
298
- onPerformanceWarn(cb: (_fiber: MyReactFiberNode) => void): () => boolean;
299
- oncePerformanceWarn(cb: (_fiber: MyReactFiberNode) => void): void;
306
+ callOnFiberError(_fiber: MyReactFiberNode, ...args: any): void;
307
+ onPerformanceWarn(cb: (_fiber: MyReactFiberNode, _renderTime: number) => void): () => boolean;
308
+ oncePerformanceWarn(cb: (_fiber: MyReactFiberNode, _renderTime: number) => void): void;
309
+ callOnPerformanceWarn(_fiber: MyReactFiberNode, _renderTime: number): void;
300
310
  onBeforeFiberRun(cb: (_fiber: MyReactFiberNode) => void): () => boolean;
301
311
  onceBeforeFiberRun(cb: (_fiber: MyReactFiberNode) => void): void;
312
+ callOnBeforeFiberRun(_fiber: MyReactFiberNode): void;
302
313
  onAfterFiberRun(cb: (_fiber: MyReactFiberNode) => void): () => boolean;
303
314
  onceAfterFiberRun(cb: (_fiber: MyReactFiberNode) => void): void;
315
+ callOnAfterFiberRun(_fiber: MyReactFiberNode): void;
304
316
  onAfterFiberDone(cb: (_fiber: MyReactFiberNode) => void): () => boolean;
305
317
  onceAfterFiberDone(cb: (_fiber: MyReactFiberNode) => void): void;
306
- onBeforeDispatchRender(cb: (renderDispatch: CustomRenderDispatch) => void): () => boolean;
307
- onceBeforeDispatchRender(cb: (renderDispatch: CustomRenderDispatch) => void): void;
318
+ callOnAfterFiberDone(_fiber: MyReactFiberNode): void;
319
+ onBeforeDispatchRender(cb: (renderDispatch: CustomRenderDispatch, fiber: MyReactFiberNode) => void): () => boolean;
320
+ onceBeforeDispatchRender(cb: (renderDispatch: CustomRenderDispatch, fiber: MyReactFiberNode) => void): void;
321
+ callOnBeforeDispatchRender(renderDispatch: CustomRenderDispatch, fiber: MyReactFiberNode): void;
322
+ onAfterDispatchRender(cb: (renderDispatch: CustomRenderDispatch) => void): () => boolean;
323
+ onceAfterDispatchRender(cb: (renderDispatch: CustomRenderDispatch) => void): void;
324
+ callOnAfterDispatchRender(renderDispatch: CustomRenderDispatch): void;
308
325
  onBeforeDispatchUpdate(cb: (renderDispatch: CustomRenderDispatch, list: MyReactFiberNode[]) => void): () => boolean;
309
326
  onceBeforeDispatchUpdate(cb: (renderDispatch: CustomRenderDispatch, list: MyReactFiberNode[]) => void): void;
327
+ callOnBeforeDispatchUpdate(renderDispatch: CustomRenderDispatch, list: MyReactFiberNode[]): void;
328
+ onAfterDispatchUpdate(cb: (renderDispatch: CustomRenderDispatch) => void): () => boolean;
329
+ onceAfterDispatchUpdate(cb: (renderDispatch: CustomRenderDispatch) => void): void;
330
+ callOnAfterDispatchUpdate(renderDispatch: CustomRenderDispatch): void;
310
331
  onInstanceInitial(cb: (_instance: import("@my-react/react").MyReactComponent<any, any, any>, _fiber: MyReactFiberNode) => void): () => boolean;
311
332
  onceInstanceInitial(cb: (_instance: import("@my-react/react").MyReactComponent<any, any, any>, _fiber: MyReactFiberNode) => void): void;
333
+ callOnInstanceInitial(_instance: import("@my-react/react").MyReactComponent<any, any, any>, _fiber: MyReactFiberNode): void;
312
334
  onInstanceUpdate(cb: (_instance: import("@my-react/react").MyReactComponent<any, any, any>, _fiber: MyReactFiberNode) => void): () => boolean;
313
335
  onceInstanceUpdate(cb: (_instance: import("@my-react/react").MyReactComponent<any, any, any>, _fiber: MyReactFiberNode) => void): void;
336
+ callOnInstanceUpdate(_instance: import("@my-react/react").MyReactComponent<any, any, any>, _fiber: MyReactFiberNode): void;
314
337
  onInstanceState(cb: (_instance: import("@my-react/react").MyReactComponent<any, any, any>, _fiber: MyReactFiberNode, _updater: UpdateQueue) => void): () => boolean;
315
338
  onceInstanceState(cb: (_instance: import("@my-react/react").MyReactComponent<any, any, any>, _fiber: MyReactFiberNode, _updater: UpdateQueue) => void): void;
339
+ callOnInstanceState(_instance: import("@my-react/react").MyReactComponent<any, any, any>, _fiber: MyReactFiberNode, _updater: UpdateQueue): void;
316
340
  onInstanceUnmount(cb: (_instance: import("@my-react/react").MyReactComponent<any, any, any>, _fiber: MyReactFiberNode) => void): () => boolean;
317
341
  onceInstanceUnmount(cb: (_instance: import("@my-react/react").MyReactComponent<any, any, any>, _fiber: MyReactFiberNode) => void): void;
318
- onHookInitial(cb: (_hook: import("@my-react/react-reconciler").MyReactHookNode) => void): () => boolean;
319
- onceHookInitial(cb: (_hook: import("@my-react/react-reconciler").MyReactHookNode) => void): void;
320
- onHookUpdate(cb: (_hook: import("@my-react/react-reconciler").MyReactHookNode) => void): () => boolean;
321
- onceHookUpdate(cb: (_hook: import("@my-react/react-reconciler").MyReactHookNode) => void): void;
322
- onHookUnmount(cb: (_hook: import("@my-react/react-reconciler").MyReactHookNode) => void): () => boolean;
323
- onceHookUnmount(cb: (_hook: import("@my-react/react-reconciler").MyReactHookNode) => void): void;
342
+ callOnInstanceUnmount(_instance: import("@my-react/react").MyReactComponent<any, any, any>, _fiber: MyReactFiberNode): void;
343
+ onHookInitial(cb: (_hook: import("@my-react/react-reconciler").MyReactHookNode, _fiber: MyReactFiberNode) => void): () => boolean;
344
+ onceHookInitial(cb: (_hook: import("@my-react/react-reconciler").MyReactHookNode, _fiber: MyReactFiberNode) => void): void;
345
+ callOnHookInitial(_hook: import("@my-react/react-reconciler").MyReactHookNode, _fiber?: MyReactFiberNode): void;
346
+ onHookUpdate(cb: (_hook: import("@my-react/react-reconciler").MyReactHookNode, _fiber: MyReactFiberNode) => void): () => boolean;
347
+ onceHookUpdate(cb: (_hook: import("@my-react/react-reconciler").MyReactHookNode, _fiber: MyReactFiberNode) => void): void;
348
+ callOnHookUpdate(_hook: import("@my-react/react-reconciler").MyReactHookNode, _fiber?: MyReactFiberNode): void;
349
+ onHookUnmount(cb: (_hook: import("@my-react/react-reconciler").MyReactHookNode, _fiber: MyReactFiberNode) => void): () => boolean;
350
+ onceHookUnmount(cb: (_hook: import("@my-react/react-reconciler").MyReactHookNode, _fiber: MyReactFiberNode) => void): void;
351
+ callOnHookUnmount(_hook: import("@my-react/react-reconciler").MyReactHookNode, _fiber?: MyReactFiberNode): void;
324
352
  onHookState(cb: (_hook: import("@my-react/react-reconciler").MyReactHookNode, _fiber: MyReactFiberNode, _updater: UpdateQueue) => void): () => boolean;
325
353
  onceHookTrigger(cb: (_hook: import("@my-react/react-reconciler").MyReactHookNode, _fiber: MyReactFiberNode, _updater: UpdateQueue) => void): void;
326
- onBeforeCommitMount(cb: () => void): () => boolean;
327
- onceBeforeCommitMount(cb: () => void): void;
328
- onAfterCommitMount(cb: () => void): () => boolean;
329
- onceAfterCommitMount(cb: () => void): void;
330
- onBeforeCommitUpdate(cb: () => void): () => boolean;
331
- onceBeforeCommitUpdate(cb: () => void): void;
332
- onAfterCommitUpdate(cb: () => void): () => boolean;
333
- onceAfterCommitUpdate(cb: () => void): void;
334
- onBeforeCommitUnmount(cb: () => void): () => boolean;
335
- onceBeforeCommitUnmount(cb: () => void): void;
336
- onAfterCommitUnmount(cb: () => void): () => boolean;
337
- onceAfterCommitUnmount(cb: () => void): void;
354
+ callOnHookState(_hook: import("@my-react/react-reconciler").MyReactHookNode, _fiber: MyReactFiberNode, _updater: UpdateQueue): void;
355
+ onBeforeCommitMount(cb: (renderDispatch: CustomRenderDispatch) => void): () => boolean;
356
+ onceBeforeCommitMount(cb: (renderDispatch: CustomRenderDispatch) => void): void;
357
+ callOnBeforeCommitMount(renderDispatch: CustomRenderDispatch): void;
358
+ onAfterCommitMount(cb: (renderDispatch: CustomRenderDispatch) => void): () => boolean;
359
+ onceAfterCommitMount(cb: (renderDispatch: CustomRenderDispatch) => void): void;
360
+ callOnAfterCommitMount(renderDispatch: CustomRenderDispatch): void;
361
+ onBeforeCommitUpdate(cb: (renderDispatch: CustomRenderDispatch) => void): () => boolean;
362
+ onceBeforeCommitUpdate(cb: (renderDispatch: CustomRenderDispatch) => void): void;
363
+ callOnBeforeCommitUpdate(renderDispatch: CustomRenderDispatch): void;
364
+ onAfterCommitUpdate(cb: (renderDispatch: CustomRenderDispatch) => void): () => boolean;
365
+ onceAfterCommitUpdate(cb: (renderDispatch: CustomRenderDispatch) => void): void;
366
+ callOnAfterCommitUpdate(renderDispatch: CustomRenderDispatch): void;
367
+ onBeforeCommitUnmount(cb: (renderDispatch: CustomRenderDispatch) => void): () => boolean;
368
+ onceBeforeCommitUnmount(cb: (renderDispatch: CustomRenderDispatch) => void): void;
369
+ callOnBeforeCommitUnmount(renderDispatch: CustomRenderDispatch): void;
370
+ onAfterCommitUnmount(cb: (renderDispatch: CustomRenderDispatch) => void): () => boolean;
371
+ onceAfterCommitUnmount(cb: (renderDispatch: CustomRenderDispatch) => void): void;
372
+ callOnAfterCommitUnmount(renderDispatch: CustomRenderDispatch): void;
338
373
  readonly isMyReactInstance: boolean;
339
374
  _reactInternals: import("@my-react/react").RenderFiber;
340
375
  };
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/dispatch.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,SAAS,EAeV,MAAM,4BAA4B,CAAC;AAQpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAO,MAAM,4BAA4B,CAAC;AAC1F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAgBvD,eAAO,MAAM,cAAc,aAAc,GAAG,aAAa,gBAAgB,eAAe,kBAAkB,UAAU,GAAG,QAAQ,MAAM;;;;;;;;0BAa3G,gBAAgB,GAAG,IAAI;yBAIxB,gBAAgB,GAAG,IAAI;yBAIvB,gBAAgB,GAAG,IAAI;yBAIvB,gBAAgB,GAAG,IAAI;2BAIrB,gBAAgB,GAAG,IAAI;yBAIzB,gBAAgB,GAAG,IAAI;2BAIrB,gBAAgB,GAAG,IAAI;wBAI1B,gBAAgB,GAAG,IAAI;4BAInB,gBAAgB,GAAG,IAAI;2BA0BxB,SAAS,gBAAgB,CAAC,GAAG,IAAI;gCA0B5B,gBAAgB,GAAG,IAAI;gCAIvB,gBAAgB,GAAG,IAAI;2BAI5B,WAAW,GAAG,IAAI;0BAInB,gBAAgB,GAAG,OAAO;6BAIvB;QAAE,KAAK,CAAC,EAAE,gBAAgB,CAAC;QAAC,OAAO,CAAC,EAAE,QAAQ,OAAO,CAAC,CAAA;KAAE,GAAG,kBAAkB;qCAIrE;QAAE,KAAK,CAAC,EAAE,gBAAgB,CAAC;QAAC,OAAO,CAAC,EAAE,QAAQ,OAAO,CAAC,CAAC;KAAE,GAAG,kBAAkB;2BAIxF;QAAE,KAAK,CAAC,EAAE,gBAAgB,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuC1F,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/dispatch.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,SAAS,EAcV,MAAM,4BAA4B,CAAC;AAQpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAO,MAAM,4BAA4B,CAAC;AAC1F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAgBvD,eAAO,MAAM,cAAc,aAAc,GAAG,aAAa,gBAAgB,eAAe,kBAAkB,UAAU,GAAG,QAAQ,MAAM;;;;;;;;0BAa3G,gBAAgB,GAAG,IAAI;yBAIxB,gBAAgB,GAAG,IAAI;yBAIvB,gBAAgB,GAAG,IAAI;yBAIvB,gBAAgB,GAAG,IAAI;2BAIrB,gBAAgB,GAAG,IAAI;yBAIzB,gBAAgB,GAAG,IAAI;2BAIrB,gBAAgB,GAAG,IAAI;wBAI1B,gBAAgB,GAAG,IAAI;4BAInB,gBAAgB,GAAG,IAAI;2BA0BxB,SAAS,gBAAgB,CAAC,SAAS,OAAO,GAAG,IAAI;gCA0B5C,gBAAgB,GAAG,IAAI;gCAIvB,gBAAgB,GAAG,IAAI;2BAI5B,WAAW,GAAG,IAAI;0BAInB,gBAAgB,GAAG,OAAO;6BAIvB;QAAE,KAAK,CAAC,EAAE,gBAAgB,CAAC;QAAC,OAAO,CAAC,EAAE,QAAQ,OAAO,CAAC,CAAA;KAAE,GAAG,kBAAkB;qCAIrE;QAAE,KAAK,CAAC,EAAE,gBAAgB,CAAC;QAAC,OAAO,CAAC,EAAE,QAAQ,OAAO,CAAC,CAAA;KAAE,GAAG,kBAAkB;2BAIvF;QAAE,KAAK,CAAC,EAAE,gBAAgB,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuC1F,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { ReconcilerDispatch } from "./dispatch";
2
2
  import type { MyReactFiberNode } from "@my-react/react-reconciler";
3
3
  import type { ListTree } from "@my-react/react-shared";
4
- export declare const ReconcilerDispatchUpdate: (_dispatch: ReconcilerDispatch, _list: ListTree<MyReactFiberNode>, config: any) => void;
4
+ export declare const ReconcilerDispatchUpdate: (_dispatch: ReconcilerDispatch, _list: ListTree<MyReactFiberNode>, config: any, sync?: boolean) => void;
5
5
  //# sourceMappingURL=dispatchUpdate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dispatchUpdate.d.ts","sourceRoot":"","sources":["../../src/dispatchUpdate.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAMvD,eAAO,MAAM,wBAAwB,cAAe,kBAAkB,SAAS,SAAS,gBAAgB,CAAC,UAAU,GAAG,SAgJrH,CAAC"}
1
+ {"version":3,"file":"dispatchUpdate.d.ts","sourceRoot":"","sources":["../../src/dispatchUpdate.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAMvD,eAAO,MAAM,wBAAwB,cAAe,kBAAkB,SAAS,SAAS,gBAAgB,CAAC,UAAU,GAAG,SAAS,OAAO,SAgJrI,CAAC"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "@my-react/react-reconciler-compact",
4
4
  "author": "MrWangJustToDo",
5
5
  "license": "MIT",
6
- "version": "0.0.10",
6
+ "version": "0.0.11",
7
7
  "main": "index.js",
8
8
  "types": "index.d.ts",
9
9
  "files": [
@@ -39,11 +39,11 @@
39
39
  }
40
40
  ],
41
41
  "devDependencies": {
42
- "@my-react/react-reconciler": "^0.3.19",
43
- "@my-react/react-shared": "^0.3.19",
42
+ "@my-react/react-reconciler": "^0.3.20",
43
+ "@my-react/react-shared": "^0.3.20",
44
44
  "@types/react-reconciler": "^0.31.0"
45
45
  },
46
46
  "peerDependencies": {
47
- "@my-react/react": ">=0.3.19"
47
+ "@my-react/react": ">=0.3.20"
48
48
  }
49
49
  }