mvc-kit 2.6.0 → 2.7.0

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 (42) hide show
  1. package/README.md +6 -0
  2. package/agent-config/claude-code/skills/guide/api-reference.md +12 -1
  3. package/agent-config/claude-code/skills/guide/patterns.md +7 -2
  4. package/agent-config/copilot/copilot-instructions.md +2 -2
  5. package/agent-config/cursor/cursorrules +2 -2
  6. package/dist/Channel.cjs.map +1 -1
  7. package/dist/Channel.d.ts +6 -2
  8. package/dist/Channel.d.ts.map +1 -1
  9. package/dist/Channel.js.map +1 -1
  10. package/dist/Controller.cjs.map +1 -1
  11. package/dist/Controller.d.ts +4 -2
  12. package/dist/Controller.d.ts.map +1 -1
  13. package/dist/Controller.js.map +1 -1
  14. package/dist/Model.cjs.map +1 -1
  15. package/dist/Model.d.ts +4 -2
  16. package/dist/Model.d.ts.map +1 -1
  17. package/dist/Model.js.map +1 -1
  18. package/dist/ViewModel.cjs +7 -0
  19. package/dist/ViewModel.cjs.map +1 -1
  20. package/dist/ViewModel.d.ts +11 -2
  21. package/dist/ViewModel.d.ts.map +1 -1
  22. package/dist/ViewModel.js +7 -0
  23. package/dist/ViewModel.js.map +1 -1
  24. package/dist/index.d.ts +1 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/react/provider.cjs.map +1 -1
  27. package/dist/react/provider.d.ts +4 -0
  28. package/dist/react/provider.d.ts.map +1 -1
  29. package/dist/react/provider.js.map +1 -1
  30. package/dist/react/use-singleton.cjs.map +1 -1
  31. package/dist/react/use-singleton.d.ts +12 -0
  32. package/dist/react/use-singleton.d.ts.map +1 -1
  33. package/dist/react/use-singleton.js.map +1 -1
  34. package/dist/singleton.cjs +1 -1
  35. package/dist/singleton.cjs.map +1 -1
  36. package/dist/singleton.d.ts +6 -0
  37. package/dist/singleton.d.ts.map +1 -1
  38. package/dist/singleton.js +1 -1
  39. package/dist/singleton.js.map +1 -1
  40. package/dist/types.d.ts +12 -1
  41. package/dist/types.d.ts.map +1 -1
  42. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"singleton.cjs","sources":["../src/singleton.ts"],"sourcesContent":["import type { Disposable } from './types';\n\n// Using 'any' for registry types to avoid variance issues with generics\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyDisposableClass = new (...args: any[]) => Disposable;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst registry = new Map<AnyDisposableClass, Disposable>();\n\n/**\n * Get-or-create a singleton instance for the given class.\n * Returns the existing instance if one exists and is not disposed; otherwise creates a new one.\n */\nexport function singleton<T extends Disposable, Args extends unknown[]>(\n Class: new (...args: Args) => T,\n ...args: Args\n): T {\n const existing = registry.get(Class as AnyDisposableClass);\n\n if (existing && !existing.disposed) {\n return existing as T;\n }\n\n const instance = new Class(...args);\n registry.set(Class as AnyDisposableClass, instance);\n return instance;\n}\n\n/**\n * Check if a singleton instance exists for a class.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function hasSingleton(Class: new (...args: any[]) => Disposable): boolean {\n const existing = registry.get(Class);\n return existing !== undefined && !existing.disposed;\n}\n\n/**\n * Disposes and removes the singleton instance for the given class.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function teardown(Class: new (...args: any[]) => Disposable): void {\n const instance = registry.get(Class);\n if (instance) {\n instance.dispose();\n registry.delete(Class);\n }\n}\n\n/**\n * Disposes all singletons and clears the registry. Typically used in test cleanup.\n */\nexport function teardownAll(): void {\n for (const instance of registry.values()) {\n instance.dispose();\n }\n registry.clear();\n}\n"],"names":[],"mappings":";;AAMA,MAAM,+BAAe,IAAA;AAMd,SAAS,UACd,UACG,MACA;AACH,QAAM,WAAW,SAAS,IAAI,KAA2B;AAEzD,MAAI,YAAY,CAAC,SAAS,UAAU;AAClC,WAAO;AAAA,EACT;AAEA,QAAM,WAAW,IAAI,MAAM,GAAG,IAAI;AAClC,WAAS,IAAI,OAA6B,QAAQ;AAClD,SAAO;AACT;AAMO,SAAS,aAAa,OAAoD;AAC/E,QAAM,WAAW,SAAS,IAAI,KAAK;AACnC,SAAO,aAAa,UAAa,CAAC,SAAS;AAC7C;AAMO,SAAS,SAAS,OAAiD;AACxE,QAAM,WAAW,SAAS,IAAI,KAAK;AACnC,MAAI,UAAU;AACZ,aAAS,QAAA;AACT,aAAS,OAAO,KAAK;AAAA,EACvB;AACF;AAKO,SAAS,cAAoB;AAClC,aAAW,YAAY,SAAS,UAAU;AACxC,aAAS,QAAA;AAAA,EACX;AACA,WAAS,MAAA;AACX;;;;;"}
1
+ {"version":3,"file":"singleton.cjs","sources":["../src/singleton.ts"],"sourcesContent":["import type { Disposable } from './types';\n\n// Using 'any' for registry types to avoid variance issues with generics\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyDisposableClass = new (...args: any[]) => Disposable;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst registry = new Map<AnyDisposableClass, Disposable>();\n\n/**\n * Get-or-create a singleton instance for the given class.\n * Returns the existing instance if one exists and is not disposed; otherwise creates a new one.\n *\n * If the class defines `static DEFAULT_STATE`, it is used as the constructor argument\n * when no args are passed — eliminating repeated object literals at every call site.\n */\nexport function singleton<T extends Disposable>(\n Class: (new (...args: any[]) => T) & { DEFAULT_STATE: unknown },\n): T;\nexport function singleton<T extends Disposable, Args extends unknown[]>(\n Class: new (...args: Args) => T,\n ...args: Args\n): T;\nexport function singleton<T extends Disposable>(\n Class: (new (...args: any[]) => T) & { DEFAULT_STATE?: unknown },\n ...args: unknown[]\n): T {\n const existing = registry.get(Class as AnyDisposableClass);\n\n if (existing && !existing.disposed) {\n return existing as T;\n }\n\n const instance = (args.length === 0 && 'DEFAULT_STATE' in Class)\n ? new Class(Class.DEFAULT_STATE)\n : new Class(...args);\n\n registry.set(Class as AnyDisposableClass, instance);\n return instance;\n}\n\n/**\n * Check if a singleton instance exists for a class.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function hasSingleton(Class: new (...args: any[]) => Disposable): boolean {\n const existing = registry.get(Class);\n return existing !== undefined && !existing.disposed;\n}\n\n/**\n * Disposes and removes the singleton instance for the given class.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function teardown(Class: new (...args: any[]) => Disposable): void {\n const instance = registry.get(Class);\n if (instance) {\n instance.dispose();\n registry.delete(Class);\n }\n}\n\n/**\n * Disposes all singletons and clears the registry. Typically used in test cleanup.\n */\nexport function teardownAll(): void {\n for (const instance of registry.values()) {\n instance.dispose();\n }\n registry.clear();\n}\n"],"names":[],"mappings":";;AAMA,MAAM,+BAAe,IAAA;AAgBd,SAAS,UACd,UACG,MACA;AACH,QAAM,WAAW,SAAS,IAAI,KAA2B;AAEzD,MAAI,YAAY,CAAC,SAAS,UAAU;AAClC,WAAO;AAAA,EACT;AAEA,QAAM,WAAY,KAAK,WAAW,KAAK,mBAAmB,QACtD,IAAI,MAAM,MAAM,aAAa,IAC7B,IAAI,MAAM,GAAG,IAAI;AAErB,WAAS,IAAI,OAA6B,QAAQ;AAClD,SAAO;AACT;AAMO,SAAS,aAAa,OAAoD;AAC/E,QAAM,WAAW,SAAS,IAAI,KAAK;AACnC,SAAO,aAAa,UAAa,CAAC,SAAS;AAC7C;AAMO,SAAS,SAAS,OAAiD;AACxE,QAAM,WAAW,SAAS,IAAI,KAAK;AACnC,MAAI,UAAU;AACZ,aAAS,QAAA;AACT,aAAS,OAAO,KAAK;AAAA,EACvB;AACF;AAKO,SAAS,cAAoB;AAClC,aAAW,YAAY,SAAS,UAAU;AACxC,aAAS,QAAA;AAAA,EACX;AACA,WAAS,MAAA;AACX;;;;;"}
@@ -2,7 +2,13 @@ import type { Disposable } from './types';
2
2
  /**
3
3
  * Get-or-create a singleton instance for the given class.
4
4
  * Returns the existing instance if one exists and is not disposed; otherwise creates a new one.
5
+ *
6
+ * If the class defines `static DEFAULT_STATE`, it is used as the constructor argument
7
+ * when no args are passed — eliminating repeated object literals at every call site.
5
8
  */
9
+ export declare function singleton<T extends Disposable>(Class: (new (...args: any[]) => T) & {
10
+ DEFAULT_STATE: unknown;
11
+ }): T;
6
12
  export declare function singleton<T extends Disposable, Args extends unknown[]>(Class: new (...args: Args) => T, ...args: Args): T;
7
13
  /**
8
14
  * Check if a singleton instance exists for a class.
@@ -1 +1 @@
1
- {"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../src/singleton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAQ1C;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,SAAS,OAAO,EAAE,EACpE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EAC/B,GAAG,IAAI,EAAE,IAAI,GACZ,CAAC,CAUH;AAED;;GAEG;AAEH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,UAAU,GAAG,OAAO,CAG/E;AAED;;GAEG;AAEH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,UAAU,GAAG,IAAI,CAMxE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAKlC"}
1
+ {"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../src/singleton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAQ1C;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,UAAU,EAC5C,KAAK,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,GAAG;IAAE,aAAa,EAAE,OAAO,CAAA;CAAE,GAC9D,CAAC,CAAC;AACL,wBAAgB,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,SAAS,OAAO,EAAE,EACpE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EAC/B,GAAG,IAAI,EAAE,IAAI,GACZ,CAAC,CAAC;AAmBL;;GAEG;AAEH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,UAAU,GAAG,OAAO,CAG/E;AAED;;GAEG;AAEH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,UAAU,GAAG,IAAI,CAMxE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAKlC"}
package/dist/singleton.js CHANGED
@@ -4,7 +4,7 @@ function singleton(Class, ...args) {
4
4
  if (existing && !existing.disposed) {
5
5
  return existing;
6
6
  }
7
- const instance = new Class(...args);
7
+ const instance = args.length === 0 && "DEFAULT_STATE" in Class ? new Class(Class.DEFAULT_STATE) : new Class(...args);
8
8
  registry.set(Class, instance);
9
9
  return instance;
10
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"singleton.js","sources":["../src/singleton.ts"],"sourcesContent":["import type { Disposable } from './types';\n\n// Using 'any' for registry types to avoid variance issues with generics\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyDisposableClass = new (...args: any[]) => Disposable;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst registry = new Map<AnyDisposableClass, Disposable>();\n\n/**\n * Get-or-create a singleton instance for the given class.\n * Returns the existing instance if one exists and is not disposed; otherwise creates a new one.\n */\nexport function singleton<T extends Disposable, Args extends unknown[]>(\n Class: new (...args: Args) => T,\n ...args: Args\n): T {\n const existing = registry.get(Class as AnyDisposableClass);\n\n if (existing && !existing.disposed) {\n return existing as T;\n }\n\n const instance = new Class(...args);\n registry.set(Class as AnyDisposableClass, instance);\n return instance;\n}\n\n/**\n * Check if a singleton instance exists for a class.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function hasSingleton(Class: new (...args: any[]) => Disposable): boolean {\n const existing = registry.get(Class);\n return existing !== undefined && !existing.disposed;\n}\n\n/**\n * Disposes and removes the singleton instance for the given class.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function teardown(Class: new (...args: any[]) => Disposable): void {\n const instance = registry.get(Class);\n if (instance) {\n instance.dispose();\n registry.delete(Class);\n }\n}\n\n/**\n * Disposes all singletons and clears the registry. Typically used in test cleanup.\n */\nexport function teardownAll(): void {\n for (const instance of registry.values()) {\n instance.dispose();\n }\n registry.clear();\n}\n"],"names":[],"mappings":"AAMA,MAAM,+BAAe,IAAA;AAMd,SAAS,UACd,UACG,MACA;AACH,QAAM,WAAW,SAAS,IAAI,KAA2B;AAEzD,MAAI,YAAY,CAAC,SAAS,UAAU;AAClC,WAAO;AAAA,EACT;AAEA,QAAM,WAAW,IAAI,MAAM,GAAG,IAAI;AAClC,WAAS,IAAI,OAA6B,QAAQ;AAClD,SAAO;AACT;AAMO,SAAS,aAAa,OAAoD;AAC/E,QAAM,WAAW,SAAS,IAAI,KAAK;AACnC,SAAO,aAAa,UAAa,CAAC,SAAS;AAC7C;AAMO,SAAS,SAAS,OAAiD;AACxE,QAAM,WAAW,SAAS,IAAI,KAAK;AACnC,MAAI,UAAU;AACZ,aAAS,QAAA;AACT,aAAS,OAAO,KAAK;AAAA,EACvB;AACF;AAKO,SAAS,cAAoB;AAClC,aAAW,YAAY,SAAS,UAAU;AACxC,aAAS,QAAA;AAAA,EACX;AACA,WAAS,MAAA;AACX;"}
1
+ {"version":3,"file":"singleton.js","sources":["../src/singleton.ts"],"sourcesContent":["import type { Disposable } from './types';\n\n// Using 'any' for registry types to avoid variance issues with generics\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyDisposableClass = new (...args: any[]) => Disposable;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst registry = new Map<AnyDisposableClass, Disposable>();\n\n/**\n * Get-or-create a singleton instance for the given class.\n * Returns the existing instance if one exists and is not disposed; otherwise creates a new one.\n *\n * If the class defines `static DEFAULT_STATE`, it is used as the constructor argument\n * when no args are passed — eliminating repeated object literals at every call site.\n */\nexport function singleton<T extends Disposable>(\n Class: (new (...args: any[]) => T) & { DEFAULT_STATE: unknown },\n): T;\nexport function singleton<T extends Disposable, Args extends unknown[]>(\n Class: new (...args: Args) => T,\n ...args: Args\n): T;\nexport function singleton<T extends Disposable>(\n Class: (new (...args: any[]) => T) & { DEFAULT_STATE?: unknown },\n ...args: unknown[]\n): T {\n const existing = registry.get(Class as AnyDisposableClass);\n\n if (existing && !existing.disposed) {\n return existing as T;\n }\n\n const instance = (args.length === 0 && 'DEFAULT_STATE' in Class)\n ? new Class(Class.DEFAULT_STATE)\n : new Class(...args);\n\n registry.set(Class as AnyDisposableClass, instance);\n return instance;\n}\n\n/**\n * Check if a singleton instance exists for a class.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function hasSingleton(Class: new (...args: any[]) => Disposable): boolean {\n const existing = registry.get(Class);\n return existing !== undefined && !existing.disposed;\n}\n\n/**\n * Disposes and removes the singleton instance for the given class.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function teardown(Class: new (...args: any[]) => Disposable): void {\n const instance = registry.get(Class);\n if (instance) {\n instance.dispose();\n registry.delete(Class);\n }\n}\n\n/**\n * Disposes all singletons and clears the registry. Typically used in test cleanup.\n */\nexport function teardownAll(): void {\n for (const instance of registry.values()) {\n instance.dispose();\n }\n registry.clear();\n}\n"],"names":[],"mappings":"AAMA,MAAM,+BAAe,IAAA;AAgBd,SAAS,UACd,UACG,MACA;AACH,QAAM,WAAW,SAAS,IAAI,KAA2B;AAEzD,MAAI,YAAY,CAAC,SAAS,UAAU;AAClC,WAAO;AAAA,EACT;AAEA,QAAM,WAAY,KAAK,WAAW,KAAK,mBAAmB,QACtD,IAAI,MAAM,MAAM,aAAa,IAC7B,IAAI,MAAM,GAAG,IAAI;AAErB,WAAS,IAAI,OAA6B,QAAQ;AAClD,SAAO;AACT;AAMO,SAAS,aAAa,OAAoD;AAC/E,QAAM,WAAW,SAAS,IAAI,KAAK;AACnC,SAAO,aAAa,UAAa,CAAC,SAAS;AAC7C;AAMO,SAAS,SAAS,OAAiD;AACxE,QAAM,WAAW,SAAS,IAAI,KAAK;AACnC,MAAI,UAAU;AACZ,aAAS,QAAA;AACT,aAAS,OAAO,KAAK;AAAA,EACvB;AACF;AAKO,SAAS,cAAoB;AAClC,aAAW,YAAY,SAAS,UAAU;AACxC,aAAS,QAAA;AAAA,EACX;AACA,WAAS,MAAA;AACX;"}
package/dist/types.d.ts CHANGED
@@ -43,9 +43,20 @@ export interface Subscribable<S> extends Disposable {
43
43
  }
44
44
  /**
45
45
  * Structural type for event sources (Channel and EventBus both match).
46
- * Used by `listenTo` to constrain the source parameter.
46
+ * Exported as a public utility type. `listenTo` uses an inline structural
47
+ * type instead to avoid generic-to-generic variance issues.
47
48
  */
48
49
  export interface EventSource<E extends Record<string, any>> {
49
50
  on<K extends keyof E>(event: K, handler: (payload: E[K]) => void): () => void;
50
51
  }
52
+ /**
53
+ * Extracts the payload type for a specific event from an event source.
54
+ * Uses the `_types` phantom field (present on EventBus and Channel) for exact
55
+ * payload lookup. Falls back to conditional inference for structural sources.
56
+ */
57
+ export type EventPayload<Source, Event> = Source extends {
58
+ readonly _types: infer E extends Record<string, any>;
59
+ } ? Event extends keyof E ? E[Event] : never : Source extends {
60
+ on(event: Event, handler: (payload: infer P) => void): any;
61
+ } ? P : never;
51
62
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC;IACpC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,CAAE,SAAQ,UAAU;IACjD,KAAK,EAAE,CAAC,CAAC;IACT,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC;CAC9C;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACxD,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CAC/E"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC;IACpC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,CAAE,SAAQ,UAAU;IACjD,KAAK,EAAE,CAAC,CAAC;IACT,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC;CAC9C;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACxD,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CAC/E;AAED;;;;GAIG;AACH,MAAM,MAAM,YAAY,CAAC,MAAM,EAAE,KAAK,IACpC,MAAM,SAAS;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GACnE,KAAK,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,GACxC,MAAM,SAAS;IAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,GAAG,CAAA;CAAE,GAC3E,CAAC,GAAG,KAAK,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mvc-kit",
3
- "version": "2.6.0",
3
+ "version": "2.7.0",
4
4
  "description": "Zero-magic, class-based reactive ViewModel library",
5
5
  "type": "module",
6
6
  "main": "./dist/mvc-kit.cjs",