@jbrowse/mobx-state-tree 5.4.4 → 5.4.6

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 (82) hide show
  1. package/README.md +1 -0
  2. package/dist/core/action.d.ts +87 -0
  3. package/dist/core/action.js.map +1 -0
  4. package/dist/core/actionContext.d.ts +27 -0
  5. package/dist/core/actionContext.js.map +1 -0
  6. package/dist/core/flow.d.ts +69 -0
  7. package/dist/core/flow.js.map +1 -0
  8. package/dist/core/json-patch.d.ts +46 -0
  9. package/dist/core/json-patch.js.map +1 -0
  10. package/dist/core/mst-operations.d.ts +459 -0
  11. package/dist/core/mst-operations.js.map +1 -0
  12. package/dist/core/node/BaseNode.d.ts +62 -0
  13. package/dist/core/node/BaseNode.js.map +1 -0
  14. package/dist/core/node/Hook.d.ts +17 -0
  15. package/dist/core/node/Hook.js.map +1 -0
  16. package/dist/core/node/create-node.d.ts +16 -0
  17. package/dist/core/node/create-node.js.map +1 -0
  18. package/dist/core/node/identifier-cache.d.ts +19 -0
  19. package/dist/core/node/identifier-cache.js.map +1 -0
  20. package/dist/core/node/livelinessChecking.d.ts +37 -0
  21. package/dist/core/node/livelinessChecking.js.map +1 -0
  22. package/dist/core/node/node-utils.d.ts +83 -0
  23. package/dist/core/node/node-utils.js.map +1 -0
  24. package/dist/core/node/object-node.d.ts +99 -0
  25. package/dist/core/node/object-node.js.map +1 -0
  26. package/dist/core/node/scalar-node.d.ts +19 -0
  27. package/dist/core/node/scalar-node.js.map +1 -0
  28. package/dist/core/process.d.ts +50 -0
  29. package/dist/core/process.js.map +1 -0
  30. package/dist/core/type/type-checker.d.ts +60 -0
  31. package/dist/core/type/type-checker.js.map +1 -0
  32. package/dist/core/type/type.d.ts +317 -0
  33. package/dist/core/type/type.js.map +1 -0
  34. package/dist/index.d.ts +2 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/internal.d.ts +38 -0
  37. package/dist/internal.js.map +1 -0
  38. package/dist/middlewares/create-action-tracking-middleware.d.ts +24 -0
  39. package/dist/middlewares/create-action-tracking-middleware.js.map +1 -0
  40. package/dist/middlewares/createActionTrackingMiddleware2.d.ts +34 -0
  41. package/dist/middlewares/createActionTrackingMiddleware2.js.map +1 -0
  42. package/dist/middlewares/on-action.d.ts +87 -0
  43. package/dist/middlewares/on-action.js.map +1 -0
  44. package/dist/types/complex-types/array.d.ts +80 -0
  45. package/dist/types/complex-types/array.js.map +1 -0
  46. package/dist/types/complex-types/map.d.ts +110 -0
  47. package/dist/types/complex-types/map.js.map +1 -0
  48. package/dist/types/complex-types/model.d.ts +192 -0
  49. package/dist/types/complex-types/model.js.map +1 -0
  50. package/dist/types/index.d.ts +32 -0
  51. package/dist/types/index.js.map +1 -0
  52. package/dist/types/primitives.d.ts +124 -0
  53. package/dist/types/primitives.js.map +1 -0
  54. package/dist/types/utility-types/custom.d.ts +74 -0
  55. package/dist/types/utility-types/custom.js.map +1 -0
  56. package/dist/types/utility-types/enumeration.d.ts +5 -0
  57. package/dist/types/utility-types/enumeration.js.map +1 -0
  58. package/dist/types/utility-types/frozen.d.ts +23 -0
  59. package/dist/types/utility-types/frozen.js.map +1 -0
  60. package/dist/types/utility-types/identifier.d.ts +86 -0
  61. package/dist/types/utility-types/identifier.js.map +1 -0
  62. package/dist/types/utility-types/late.d.ts +10 -0
  63. package/dist/types/utility-types/late.js.map +1 -0
  64. package/dist/types/utility-types/lazy.d.ts +22 -0
  65. package/dist/types/utility-types/lazy.js.map +1 -0
  66. package/dist/types/utility-types/literal.d.ts +37 -0
  67. package/dist/types/utility-types/literal.js.map +1 -0
  68. package/dist/types/utility-types/maybe.d.ts +26 -0
  69. package/dist/types/utility-types/maybe.js.map +1 -0
  70. package/dist/types/utility-types/optional.d.ts +41 -0
  71. package/dist/types/utility-types/optional.js.map +1 -0
  72. package/dist/types/utility-types/reference.d.ts +89 -0
  73. package/dist/types/utility-types/reference.js.map +1 -0
  74. package/dist/types/utility-types/refinement.d.ts +10 -0
  75. package/dist/types/utility-types/refinement.js.map +1 -0
  76. package/dist/types/utility-types/snapshotProcessor.d.ts +63 -0
  77. package/dist/types/utility-types/snapshotProcessor.js.map +1 -0
  78. package/dist/types/utility-types/union.d.ts +73 -0
  79. package/dist/types/utility-types/union.js.map +1 -0
  80. package/dist/utils.d.ts +230 -0
  81. package/dist/utils.js.map +1 -0
  82. package/package.json +6 -12
package/README.md CHANGED
@@ -12,3 +12,4 @@ Fork of mobx-state-tree v5.4.2 for use in jbrowse
12
12
  - converted tests to vitest
13
13
  - remove unused dependencies
14
14
  - updated tslint to eslint and typescript-eslint
15
+ - attempted to make it a dual CJS/'pure ESM' package but did not work quite yet, using main (CJS) and module (ESM-ish) fields for now since dual build causes trouble with both being imported in vite
@@ -0,0 +1,87 @@
1
+ import type { IActionContext, IAnyStateTreeNode, IDisposer } from "../internal.ts";
2
+ export type IMiddlewareEventType = "action" | "flow_spawn" | "flow_resume" | "flow_resume_error" | "flow_return" | "flow_throw";
3
+ export interface IMiddlewareEvent extends IActionContext {
4
+ /** Event type */
5
+ readonly type: IMiddlewareEventType;
6
+ /** Parent event unique id */
7
+ readonly parentId: number;
8
+ /** Parent event object */
9
+ readonly parentEvent: IMiddlewareEvent | undefined;
10
+ /** Root event unique id */
11
+ readonly rootId: number;
12
+ /** Id of all events, from root until current (excluding current) */
13
+ readonly allParentIds: number[];
14
+ }
15
+ export interface FunctionWithFlag extends Function {
16
+ _isMSTAction?: boolean;
17
+ _isFlowAction?: boolean;
18
+ }
19
+ /**
20
+ * @internal
21
+ * @hidden
22
+ */
23
+ export type IMiddleware = {
24
+ handler: IMiddlewareHandler;
25
+ includeHooks: boolean;
26
+ };
27
+ export type IMiddlewareHandler = (actionCall: IMiddlewareEvent, next: (actionCall: IMiddlewareEvent, callback?: (value: any) => any) => void, abort: (value: any) => void) => any;
28
+ /**
29
+ * @internal
30
+ * @hidden
31
+ */
32
+ export declare function getCurrentActionContext(): IMiddlewareEvent | undefined;
33
+ /**
34
+ * @internal
35
+ * @hidden
36
+ */
37
+ export declare function getNextActionId(): number;
38
+ /**
39
+ * @internal
40
+ * @hidden
41
+ */
42
+ export declare function runWithActionContext(context: IMiddlewareEvent, fn: Function): any;
43
+ /**
44
+ * @internal
45
+ * @hidden
46
+ */
47
+ export declare function getParentActionContext(parentContext: IMiddlewareEvent | undefined): IMiddlewareEvent | undefined;
48
+ /**
49
+ * @internal
50
+ * @hidden
51
+ */
52
+ export declare function createActionInvoker<T extends FunctionWithFlag>(target: IAnyStateTreeNode, name: string, fn: T): () => any;
53
+ /**
54
+ * Middleware can be used to intercept any action is invoked on the subtree where it is attached.
55
+ * If a tree is protected (by default), this means that any mutation of the tree will pass through your middleware.
56
+ *
57
+ * For more details, see the [middleware docs](concepts/middleware.md)
58
+ *
59
+ * @param target Node to apply the middleware to.
60
+ * @param middleware Middleware to apply.
61
+ * @returns A callable function to dispose the middleware.
62
+ */
63
+ export declare function addMiddleware(target: IAnyStateTreeNode, handler: IMiddlewareHandler, includeHooks?: boolean): IDisposer;
64
+ /**
65
+ * Binds middleware to a specific action.
66
+ *
67
+ * Example:
68
+ * ```ts
69
+ * type.actions(self => {
70
+ * function takeA____() {
71
+ * self.toilet.donate()
72
+ * self.wipe()
73
+ * self.wipe()
74
+ * self.toilet.flush()
75
+ * }
76
+ * return {
77
+ * takeA____: decorate(atomic, takeA____)
78
+ * }
79
+ * })
80
+ * ```
81
+ *
82
+ * @param handler
83
+ * @param fn
84
+ * @param includeHooks
85
+ * @returns The original function
86
+ */
87
+ export declare function decorate<T extends Function>(handler: IMiddlewareHandler, fn: T, includeHooks?: boolean): T;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.js","sourceRoot":"","sources":["../../src/core/action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { type IAnyStateTreeNode, type IMiddlewareEvent } from "../internal.ts";
2
+ export interface IActionContext {
3
+ /** Event name (action name for actions) */
4
+ readonly name: string;
5
+ /** Event unique id */
6
+ readonly id: number;
7
+ /** Parent action event object */
8
+ readonly parentActionEvent: IMiddlewareEvent | undefined;
9
+ /** Event context (node where the action was invoked) */
10
+ readonly context: IAnyStateTreeNode;
11
+ /** Event tree (root node of the node where the action was invoked) */
12
+ readonly tree: IAnyStateTreeNode;
13
+ /** Event arguments in an array (action arguments for actions) */
14
+ readonly args: any[];
15
+ }
16
+ /**
17
+ * Returns the currently executing MST action context, or undefined if none.
18
+ */
19
+ export declare function getRunningActionContext(): IActionContext | undefined;
20
+ /**
21
+ * Returns if the given action context is a parent of this action context.
22
+ */
23
+ export declare function isActionContextChildOf(actionContext: IActionContext, parent: number | IActionContext | IMiddlewareEvent): boolean;
24
+ /**
25
+ * Returns if the given action context is this or a parent of this action context.
26
+ */
27
+ export declare function isActionContextThisOrChildOf(actionContext: IActionContext, parentOrThis: number | IActionContext | IMiddlewareEvent): boolean;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionContext.js","sourceRoot":"","sources":["../../src/core/actionContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAqBrD;;GAEG;AACH,MAAM,UAAU,uBAAuB;IACrC,IAAI,OAAO,GAAG,uBAAuB,EAAE,CAAA;IACvC,OAAO,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAA;IACrC,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,6BAA6B,CACpC,aAA6B,EAC7B,YAAwD,EACxD,WAAoB;IAEpB,MAAM,QAAQ,GACZ,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAA;IAEnE,IAAI,OAAO,GAAkD,WAAW;QACtE,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,aAAa,CAAC,iBAAiB,CAAA;IACnC,OAAO,OAAO,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAA;IACrC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,aAA6B,EAC7B,MAAkD;IAElD,OAAO,6BAA6B,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;AACpE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAC1C,aAA6B,EAC7B,YAAwD;IAExD,OAAO,6BAA6B,CAAC,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;AACzE,CAAC"}
@@ -0,0 +1,69 @@
1
+ import type { FunctionWithFlag } from "./action.ts";
2
+ /**
3
+ * @hidden
4
+ */
5
+ export type FlowReturn<R> = R extends Promise<infer T> ? T : R;
6
+ /**
7
+ * See [asynchronous actions](concepts/async-actions.md).
8
+ *
9
+ * @returns The flow as a promise.
10
+ */
11
+ export declare function flow<R, Args extends any[]>(generator: (...args: Args) => Generator<PromiseLike<any>, R, any>): (...args: Args) => Promise<FlowReturn<R>>;
12
+ /**
13
+ * @deprecated Not needed since TS3.6.
14
+ * Used for TypeScript to make flows that return a promise return the actual promise result.
15
+ *
16
+ * @param val
17
+ * @returns
18
+ */
19
+ export declare function castFlowReturn<T>(val: T): T;
20
+ /**
21
+ * @experimental
22
+ * experimental api - might change on minor/patch releases
23
+ *
24
+ * Convert a promise-returning function to a generator-returning one.
25
+ * This is intended to allow for usage of `yield*` in async actions to
26
+ * retain the promise return type.
27
+ *
28
+ * Example:
29
+ * ```ts
30
+ * function getDataAsync(input: string): Promise<number> { ... }
31
+ * const getDataGen = toGeneratorFunction(getDataAsync);
32
+ *
33
+ * const someModel.actions(self => ({
34
+ * someAction: flow(function*() {
35
+ * // value is typed as number
36
+ * const value = yield* getDataGen("input value");
37
+ * ...
38
+ * })
39
+ * }))
40
+ * ```
41
+ */
42
+ export declare function toGeneratorFunction<R, Args extends any[]>(p: (...args: Args) => Promise<R>): (...args: Args) => Generator<Promise<R>, R, R>;
43
+ /**
44
+ * @experimental
45
+ * experimental api - might change on minor/patch releases
46
+ *
47
+ * Convert a promise to a generator yielding that promise
48
+ * This is intended to allow for usage of `yield*` in async actions to
49
+ * retain the promise return type.
50
+ *
51
+ * Example:
52
+ * ```ts
53
+ * function getDataAsync(input: string): Promise<number> { ... }
54
+ *
55
+ * const someModel.actions(self => ({
56
+ * someAction: flow(function*() {
57
+ * // value is typed as number
58
+ * const value = yield* toGenerator(getDataAsync("input value"));
59
+ * ...
60
+ * })
61
+ * }))
62
+ * ```
63
+ */
64
+ export declare function toGenerator<R>(p: Promise<R>): Generator<Promise<R>, R, R>;
65
+ /**
66
+ * @internal
67
+ * @hidden
68
+ */
69
+ export declare function createFlowSpawner(name: string, generator: FunctionWithFlag): (this: any) => Promise<unknown>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/core/flow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * https://tools.ietf.org/html/rfc6902
3
+ * http://jsonpatch.com/
4
+ */
5
+ export interface IJsonPatch {
6
+ readonly op: "replace" | "add" | "remove";
7
+ readonly path: string;
8
+ readonly value?: any;
9
+ }
10
+ export interface IReversibleJsonPatch extends IJsonPatch {
11
+ readonly oldValue: any;
12
+ }
13
+ /**
14
+ * @internal
15
+ * @hidden
16
+ */
17
+ export declare function splitPatch(patch: IReversibleJsonPatch): [IJsonPatch, IJsonPatch];
18
+ /**
19
+ * @internal
20
+ * @hidden
21
+ */
22
+ export declare function stripPatch(patch: IReversibleJsonPatch): IJsonPatch;
23
+ /**
24
+ * Escape slashes and backslashes.
25
+ *
26
+ * http://tools.ietf.org/html/rfc6901
27
+ */
28
+ export declare function escapeJsonPath(path: string): string;
29
+ /**
30
+ * Unescape slashes and backslashes.
31
+ */
32
+ export declare function unescapeJsonPath(path: string): string;
33
+ /**
34
+ * Generates a json-path compliant json path from path parts.
35
+ *
36
+ * @param path
37
+ * @returns
38
+ */
39
+ export declare function joinJsonPath(path: string[]): string;
40
+ /**
41
+ * Splits and decodes a json path into several parts.
42
+ *
43
+ * @param path
44
+ * @returns
45
+ */
46
+ export declare function splitJsonPath(path: string): string[];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-patch.js","sourceRoot":"","sources":["../../src/core/json-patch.ts"],"names":[],"mappings":"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"}