@blac/core 2.0.0-rc.1 → 2.0.0-rc.10

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 (146) hide show
  1. package/dist/adapter/framework-adapter.d.ts +33 -0
  2. package/dist/adapter/index.d.ts +7 -2
  3. package/dist/constants.d.ts +82 -0
  4. package/dist/core/Cubit.d.ts +40 -0
  5. package/dist/core/StateContainer.d.ts +78 -0
  6. package/dist/core/StateContainerRegistry.d.ts +119 -0
  7. package/dist/core/Vertex.d.ts +74 -0
  8. package/dist/decorators/blac.d.ts +31 -0
  9. package/dist/decorators/index.d.ts +2 -0
  10. package/dist/index.cjs +1870 -38
  11. package/dist/index.d.cts +21 -0
  12. package/dist/index.d.ts +19 -15
  13. package/dist/index.js +1789 -37
  14. package/dist/logging/Logger.d.ts +57 -0
  15. package/dist/plugin/BlacPlugin.d.ts +46 -0
  16. package/dist/plugin/PluginManager.d.ts +38 -0
  17. package/dist/registry/index.d.ts +20 -0
  18. package/dist/test-utils/index.d.ts +43 -0
  19. package/dist/tracking/dependency-tracker.d.ts +21 -0
  20. package/dist/tracking/getter-tracker.d.ts +31 -0
  21. package/dist/tracking/index.d.ts +38 -0
  22. package/dist/tracking/path-utils.d.ts +39 -0
  23. package/dist/tracking/proxy-tracker.d.ts +88 -0
  24. package/dist/types/branded.d.ts +9 -0
  25. package/dist/types/events.d.ts +13 -0
  26. package/dist/types/utilities.d.ts +19 -0
  27. package/dist/utils/equality.d.ts +9 -0
  28. package/dist/utils/idGenerator.d.ts +76 -0
  29. package/dist/utils/immutable.d.ts +16 -0
  30. package/dist/utils/stack-trace.d.ts +19 -0
  31. package/dist/utils/static-props.d.ts +29 -0
  32. package/package.json +31 -13
  33. package/dist/.tsbuildinfo +0 -1
  34. package/dist/Blac.d.ts +0 -246
  35. package/dist/Blac.d.ts.map +0 -1
  36. package/dist/Blac.js +0 -624
  37. package/dist/Blac.js.map +0 -1
  38. package/dist/Bloc.d.ts +0 -41
  39. package/dist/Bloc.d.ts.map +0 -1
  40. package/dist/Bloc.js +0 -140
  41. package/dist/Bloc.js.map +0 -1
  42. package/dist/BlocBase.d.ts +0 -110
  43. package/dist/BlocBase.d.ts.map +0 -1
  44. package/dist/BlocBase.js +0 -287
  45. package/dist/BlocBase.js.map +0 -1
  46. package/dist/Cubit.d.ts +0 -25
  47. package/dist/Cubit.d.ts.map +0 -1
  48. package/dist/Cubit.js +0 -64
  49. package/dist/Cubit.js.map +0 -1
  50. package/dist/adapter/BlacAdapter.d.ts +0 -67
  51. package/dist/adapter/BlacAdapter.d.ts.map +0 -1
  52. package/dist/adapter/BlacAdapter.js +0 -263
  53. package/dist/adapter/BlacAdapter.js.map +0 -1
  54. package/dist/adapter/ProxyFactory.d.ts +0 -50
  55. package/dist/adapter/ProxyFactory.d.ts.map +0 -1
  56. package/dist/adapter/ProxyFactory.js +0 -150
  57. package/dist/adapter/ProxyFactory.js.map +0 -1
  58. package/dist/adapter/index.d.ts.map +0 -1
  59. package/dist/adapter/index.js +0 -19
  60. package/dist/adapter/index.js.map +0 -1
  61. package/dist/errors/BlacError.d.ts +0 -38
  62. package/dist/errors/BlacError.d.ts.map +0 -1
  63. package/dist/errors/BlacError.js +0 -55
  64. package/dist/errors/BlacError.js.map +0 -1
  65. package/dist/errors/ErrorManager.d.ts +0 -39
  66. package/dist/errors/ErrorManager.d.ts.map +0 -1
  67. package/dist/errors/ErrorManager.js +0 -91
  68. package/dist/errors/ErrorManager.js.map +0 -1
  69. package/dist/errors/handleError.d.ts +0 -24
  70. package/dist/errors/handleError.d.ts.map +0 -1
  71. package/dist/errors/handleError.js +0 -62
  72. package/dist/errors/handleError.js.map +0 -1
  73. package/dist/errors/index.d.ts +0 -5
  74. package/dist/errors/index.d.ts.map +0 -1
  75. package/dist/errors/index.js +0 -13
  76. package/dist/errors/index.js.map +0 -1
  77. package/dist/events.d.ts +0 -11
  78. package/dist/events.d.ts.map +0 -1
  79. package/dist/events.js +0 -17
  80. package/dist/events.js.map +0 -1
  81. package/dist/index.d.ts.map +0 -1
  82. package/dist/index.js.map +0 -1
  83. package/dist/lifecycle/BlocLifecycle.d.ts +0 -51
  84. package/dist/lifecycle/BlocLifecycle.d.ts.map +0 -1
  85. package/dist/lifecycle/BlocLifecycle.js +0 -123
  86. package/dist/lifecycle/BlocLifecycle.js.map +0 -1
  87. package/dist/lifecycle/index.d.ts +0 -2
  88. package/dist/lifecycle/index.d.ts.map +0 -1
  89. package/dist/lifecycle/index.js +0 -18
  90. package/dist/lifecycle/index.js.map +0 -1
  91. package/dist/plugins/BlocPluginRegistry.d.ts +0 -58
  92. package/dist/plugins/BlocPluginRegistry.d.ts.map +0 -1
  93. package/dist/plugins/BlocPluginRegistry.js +0 -201
  94. package/dist/plugins/BlocPluginRegistry.js.map +0 -1
  95. package/dist/plugins/SystemPluginRegistry.d.ts +0 -79
  96. package/dist/plugins/SystemPluginRegistry.d.ts.map +0 -1
  97. package/dist/plugins/SystemPluginRegistry.js +0 -184
  98. package/dist/plugins/SystemPluginRegistry.js.map +0 -1
  99. package/dist/plugins/index.d.ts +0 -4
  100. package/dist/plugins/index.d.ts.map +0 -1
  101. package/dist/plugins/index.js +0 -26
  102. package/dist/plugins/index.js.map +0 -1
  103. package/dist/plugins/types.d.ts +0 -103
  104. package/dist/plugins/types.d.ts.map +0 -1
  105. package/dist/plugins/types.js +0 -3
  106. package/dist/plugins/types.js.map +0 -1
  107. package/dist/subscription/SubscriptionManager.d.ts +0 -67
  108. package/dist/subscription/SubscriptionManager.d.ts.map +0 -1
  109. package/dist/subscription/SubscriptionManager.js +0 -317
  110. package/dist/subscription/SubscriptionManager.js.map +0 -1
  111. package/dist/subscription/index.d.ts +0 -3
  112. package/dist/subscription/index.d.ts.map +0 -1
  113. package/dist/subscription/index.js +0 -19
  114. package/dist/subscription/index.js.map +0 -1
  115. package/dist/subscription/types.d.ts +0 -65
  116. package/dist/subscription/types.d.ts.map +0 -1
  117. package/dist/subscription/types.js +0 -3
  118. package/dist/subscription/types.js.map +0 -1
  119. package/dist/testing.d.ts +0 -33
  120. package/dist/testing.d.ts.map +0 -1
  121. package/dist/testing.js +0 -68
  122. package/dist/testing.js.map +0 -1
  123. package/dist/types.d.ts +0 -57
  124. package/dist/types.d.ts.map +0 -1
  125. package/dist/types.js +0 -3
  126. package/dist/types.js.map +0 -1
  127. package/dist/utils/BatchingManager.d.ts +0 -28
  128. package/dist/utils/BatchingManager.d.ts.map +0 -1
  129. package/dist/utils/BatchingManager.js +0 -48
  130. package/dist/utils/BatchingManager.js.map +0 -1
  131. package/dist/utils/RerenderLogger.d.ts +0 -60
  132. package/dist/utils/RerenderLogger.d.ts.map +0 -1
  133. package/dist/utils/RerenderLogger.js +0 -205
  134. package/dist/utils/RerenderLogger.js.map +0 -1
  135. package/dist/utils/generateInstanceId.d.ts +0 -11
  136. package/dist/utils/generateInstanceId.d.ts.map +0 -1
  137. package/dist/utils/generateInstanceId.js +0 -50
  138. package/dist/utils/generateInstanceId.js.map +0 -1
  139. package/dist/utils/shallowEqual.d.ts +0 -9
  140. package/dist/utils/shallowEqual.d.ts.map +0 -1
  141. package/dist/utils/shallowEqual.js +0 -35
  142. package/dist/utils/shallowEqual.js.map +0 -1
  143. package/dist/utils/uuid.d.ts +0 -10
  144. package/dist/utils/uuid.d.ts.map +0 -1
  145. package/dist/utils/uuid.js +0 -24
  146. package/dist/utils/uuid.js.map +0 -1
@@ -1,38 +0,0 @@
1
- export declare enum ErrorCategory {
2
- LIFECYCLE = "LIFECYCLE",
3
- STATE = "STATE",
4
- PLUGIN = "PLUGIN",
5
- VALIDATION = "VALIDATION",
6
- DISPOSAL = "DISPOSAL",
7
- CONSUMER = "CONSUMER"
8
- }
9
- export declare enum ErrorSeverity {
10
- FATAL = "FATAL",// System cannot continue
11
- ERROR = "ERROR",// Operation failed but system continues
12
- WARNING = "WARNING",// Potential issue but operation succeeded
13
- INFO = "INFO"
14
- }
15
- export type BlacErrorContext = {
16
- blocName?: string;
17
- blocId?: string;
18
- consumerId?: string;
19
- pluginName?: string;
20
- operation?: string;
21
- metadata?: Record<string, unknown>;
22
- };
23
- export declare class BlacError extends Error {
24
- readonly category: ErrorCategory;
25
- readonly severity: ErrorSeverity;
26
- readonly context?: BlacErrorContext | undefined;
27
- readonly cause?: unknown | undefined;
28
- constructor(message: string, category: ErrorCategory, severity: ErrorSeverity, context?: BlacErrorContext | undefined, cause?: unknown | undefined);
29
- toString(): string;
30
- }
31
- export type ErrorHandler = (error: BlacError) => void;
32
- export type ErrorHandlingStrategy = {
33
- shouldPropagate: (error: BlacError) => boolean;
34
- shouldLog: (error: BlacError) => boolean;
35
- handle: (error: BlacError) => void;
36
- };
37
- export declare const DefaultErrorStrategy: ErrorHandlingStrategy;
38
- //# sourceMappingURL=BlacError.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BlacError.d.ts","sourceRoot":"","sources":["../../src/errors/BlacError.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;IACvB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED,oBAAY,aAAa;IACvB,KAAK,UAAU,CAAE,yBAAyB;IAC1C,KAAK,UAAU,CAAE,wCAAwC;IACzD,OAAO,YAAY,CAAE,0CAA0C;IAC/D,IAAI,SAAS;CACd;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,qBAAa,SAAU,SAAQ,KAAK;aAGhB,QAAQ,EAAE,aAAa;aACvB,QAAQ,EAAE,aAAa;aACvB,OAAO,CAAC,EAAE,gBAAgB;aAC1B,KAAK,CAAC,EAAE,OAAO;gBAJ/B,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,gBAAgB,YAAA,EAC1B,KAAK,CAAC,EAAE,OAAO,YAAA;IASjC,QAAQ,IAAI,MAAM;CAUnB;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;AAEtD,MAAM,MAAM,qBAAqB,GAAG;IAClC,eAAe,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC;IAC/C,SAAS,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC;IACzC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,qBAQlC,CAAC"}
@@ -1,55 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DefaultErrorStrategy = exports.BlacError = exports.ErrorSeverity = exports.ErrorCategory = void 0;
4
- var ErrorCategory;
5
- (function (ErrorCategory) {
6
- ErrorCategory["LIFECYCLE"] = "LIFECYCLE";
7
- ErrorCategory["STATE"] = "STATE";
8
- ErrorCategory["PLUGIN"] = "PLUGIN";
9
- ErrorCategory["VALIDATION"] = "VALIDATION";
10
- ErrorCategory["DISPOSAL"] = "DISPOSAL";
11
- ErrorCategory["CONSUMER"] = "CONSUMER";
12
- })(ErrorCategory || (exports.ErrorCategory = ErrorCategory = {}));
13
- var ErrorSeverity;
14
- (function (ErrorSeverity) {
15
- ErrorSeverity["FATAL"] = "FATAL";
16
- ErrorSeverity["ERROR"] = "ERROR";
17
- ErrorSeverity["WARNING"] = "WARNING";
18
- ErrorSeverity["INFO"] = "INFO";
19
- })(ErrorSeverity || (exports.ErrorSeverity = ErrorSeverity = {}));
20
- class BlacError extends Error {
21
- category;
22
- severity;
23
- context;
24
- cause;
25
- constructor(message, category, severity, context, cause) {
26
- super(message);
27
- this.category = category;
28
- this.severity = severity;
29
- this.context = context;
30
- this.cause = cause;
31
- this.name = 'BlacError';
32
- // Ensure proper prototype chain
33
- Object.setPrototypeOf(this, BlacError.prototype);
34
- }
35
- toString() {
36
- const contextStr = this.context
37
- ? ` [${Object.entries(this.context)
38
- .filter(([_, v]) => v !== undefined)
39
- .map(([k, v]) => `${k}: ${v}`)
40
- .join(', ')}]`
41
- : '';
42
- return `${this.name} [${this.severity}/${this.category}]: ${this.message}${contextStr}`;
43
- }
44
- }
45
- exports.BlacError = BlacError;
46
- exports.DefaultErrorStrategy = {
47
- shouldPropagate: (error) => error.severity === ErrorSeverity.FATAL,
48
- shouldLog: (error) => error.severity !== ErrorSeverity.INFO,
49
- handle: (error) => {
50
- if (exports.DefaultErrorStrategy.shouldLog(error)) {
51
- console.error(error.toString(), error.cause);
52
- }
53
- },
54
- };
55
- //# sourceMappingURL=BlacError.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BlacError.js","sourceRoot":"","sources":["../../src/errors/BlacError.ts"],"names":[],"mappings":";;;AAAA,IAAY,aAOX;AAPD,WAAY,aAAa;IACvB,wCAAuB,CAAA;IACvB,gCAAe,CAAA;IACf,kCAAiB,CAAA;IACjB,0CAAyB,CAAA;IACzB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;AACvB,CAAC,EAPW,aAAa,6BAAb,aAAa,QAOxB;AAED,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,gCAAe,CAAA;IACf,gCAAe,CAAA;IACf,oCAAmB,CAAA;IACnB,8BAAa,CAAA;AACf,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB;AAWD,MAAa,SAAU,SAAQ,KAAK;IAGhB;IACA;IACA;IACA;IALlB,YACE,OAAe,EACC,QAAuB,EACvB,QAAuB,EACvB,OAA0B,EAC1B,KAAe;QAE/B,KAAK,CAAC,OAAO,CAAC,CAAC;QALC,aAAQ,GAAR,QAAQ,CAAe;QACvB,aAAQ,GAAR,QAAQ,CAAe;QACvB,YAAO,GAAP,OAAO,CAAmB;QAC1B,UAAK,GAAL,KAAK,CAAU;QAG/B,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QAExB,gCAAgC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAED,QAAQ;QACN,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO;YAC7B,CAAC,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;iBAC9B,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;iBACnC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;iBAC7B,IAAI,CAAC,IAAI,CAAC,GAAG;YAClB,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,OAAO,GAAG,UAAU,EAAE,CAAC;IAC1F,CAAC;CACF;AAzBD,8BAyBC;AAUY,QAAA,oBAAoB,GAA0B;IACzD,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,aAAa,CAAC,KAAK;IAClE,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,aAAa,CAAC,IAAI;IAC3D,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;QAChB,IAAI,4BAAoB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -1,39 +0,0 @@
1
- import { BlacError, ErrorHandler, ErrorHandlingStrategy } from './BlacError';
2
- /**
3
- * Centralized error management system for BlaC framework.
4
- * Handles error processing, logging, and propagation strategies.
5
- */
6
- export declare class ErrorManager {
7
- private static instance;
8
- private handlers;
9
- private strategy;
10
- /**
11
- * Get the singleton instance of ErrorManager
12
- */
13
- static getInstance(): ErrorManager;
14
- /**
15
- * Set a custom error handling strategy
16
- */
17
- setStrategy(strategy: ErrorHandlingStrategy): void;
18
- /**
19
- * Add a custom error handler that will be called for all errors
20
- */
21
- addHandler(handler: ErrorHandler): void;
22
- /**
23
- * Remove a previously added error handler
24
- */
25
- removeHandler(handler: ErrorHandler): void;
26
- /**
27
- * Process an error through all handlers and apply the configured strategy
28
- */
29
- handle(error: BlacError): void;
30
- /**
31
- * Convenience method for wrapping operations with error handling
32
- */
33
- wrap<T>(operation: () => T, errorFactory: (error: unknown) => BlacError): T;
34
- /**
35
- * Async version of wrap
36
- */
37
- wrapAsync<T>(operation: () => Promise<T>, errorFactory: (error: unknown) => BlacError): Promise<T>;
38
- }
39
- //# sourceMappingURL=ErrorManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ErrorManager.d.ts","sourceRoot":"","sources":["../../src/errors/ErrorManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,qBAAqB,EAEtB,MAAM,aAAa,CAAC;AAErB;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,QAAQ,CAA+C;IAE/D;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,YAAY;IAOlC;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAIlD;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIvC;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAI1C;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAoB9B;;OAEG;IACH,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,SAAS,GAAG,CAAC;IAW3E;;OAEG;IACG,SAAS,CAAC,CAAC,EACf,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,SAAS,GAC1C,OAAO,CAAC,CAAC,CAAC;CAUd"}
@@ -1,91 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ErrorManager = void 0;
4
- const BlacError_1 = require("./BlacError");
5
- /**
6
- * Centralized error management system for BlaC framework.
7
- * Handles error processing, logging, and propagation strategies.
8
- */
9
- class ErrorManager {
10
- static instance;
11
- handlers = new Set();
12
- strategy = BlacError_1.DefaultErrorStrategy;
13
- /**
14
- * Get the singleton instance of ErrorManager
15
- */
16
- static getInstance() {
17
- if (!ErrorManager.instance) {
18
- ErrorManager.instance = new ErrorManager();
19
- }
20
- return ErrorManager.instance;
21
- }
22
- /**
23
- * Set a custom error handling strategy
24
- */
25
- setStrategy(strategy) {
26
- this.strategy = strategy;
27
- }
28
- /**
29
- * Add a custom error handler that will be called for all errors
30
- */
31
- addHandler(handler) {
32
- this.handlers.add(handler);
33
- }
34
- /**
35
- * Remove a previously added error handler
36
- */
37
- removeHandler(handler) {
38
- this.handlers.delete(handler);
39
- }
40
- /**
41
- * Process an error through all handlers and apply the configured strategy
42
- */
43
- handle(error) {
44
- // Always notify handlers first
45
- this.handlers.forEach((handler) => {
46
- try {
47
- handler(error);
48
- }
49
- catch (handlerError) {
50
- // Prevent handler errors from breaking error handling
51
- console.error('Error in error handler:', handlerError);
52
- }
53
- });
54
- // Apply strategy
55
- this.strategy.handle(error);
56
- // Propagate if needed
57
- if (this.strategy.shouldPropagate(error)) {
58
- throw error;
59
- }
60
- }
61
- /**
62
- * Convenience method for wrapping operations with error handling
63
- */
64
- wrap(operation, errorFactory) {
65
- try {
66
- return operation();
67
- }
68
- catch (error) {
69
- const blacError = errorFactory(error);
70
- this.handle(blacError);
71
- // Will only reach here if strategy says not to propagate
72
- return undefined;
73
- }
74
- }
75
- /**
76
- * Async version of wrap
77
- */
78
- async wrapAsync(operation, errorFactory) {
79
- try {
80
- return await operation();
81
- }
82
- catch (error) {
83
- const blacError = errorFactory(error);
84
- this.handle(blacError);
85
- // Will only reach here if strategy says not to propagate
86
- return undefined;
87
- }
88
- }
89
- }
90
- exports.ErrorManager = ErrorManager;
91
- //# sourceMappingURL=ErrorManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ErrorManager.js","sourceRoot":"","sources":["../../src/errors/ErrorManager.ts"],"names":[],"mappings":";;;AAAA,2CAKqB;AAErB;;;GAGG;AACH,MAAa,YAAY;IACf,MAAM,CAAC,QAAQ,CAAe;IAC9B,QAAQ,GAAsB,IAAI,GAAG,EAAE,CAAC;IACxC,QAAQ,GAA0B,gCAAoB,CAAC;IAE/D;;OAEG;IACH,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC3B,YAAY,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,YAAY,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,QAA+B;QACzC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAqB;QAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,OAAqB;QACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAgB;QACrB,+BAA+B;QAC/B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAChC,IAAI,CAAC;gBACH,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;YAAC,OAAO,YAAY,EAAE,CAAC;gBACtB,sDAAsD;gBACtD,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;YACzD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,iBAAiB;QACjB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE5B,sBAAsB;QACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;YACzC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,CAAI,SAAkB,EAAE,YAA2C;QACrE,IAAI,CAAC;YACH,OAAO,SAAS,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACvB,yDAAyD;YACzD,OAAO,SAAc,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CACb,SAA2B,EAC3B,YAA2C;QAE3C,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACvB,yDAAyD;YACzD,OAAO,SAAc,CAAC;QACxB,CAAC;IACH,CAAC;CACF;AAzFD,oCAyFC"}
@@ -1,24 +0,0 @@
1
- import { ErrorCategory, ErrorSeverity, BlacErrorContext } from './BlacError';
2
- /**
3
- * Standard error handling helper for BlaC
4
- *
5
- * Usage:
6
- * - For fatal errors that should propagate: handleError.fatal(...)
7
- * - For recoverable errors: handleError.error(...)
8
- * - For warnings: handleError.warn(...)
9
- */
10
- export declare const handleError: {
11
- fatal: (message: string, category: ErrorCategory, context?: BlacErrorContext, cause?: unknown) => never;
12
- error: (message: string, category: ErrorCategory, context?: BlacErrorContext, cause?: unknown) => void;
13
- warn: (message: string, category: ErrorCategory, context?: BlacErrorContext, cause?: unknown) => void;
14
- info: (message: string, category: ErrorCategory, context?: BlacErrorContext) => void;
15
- /**
16
- * Wraps a function to catch and handle errors
17
- */
18
- wrap: <T>(fn: () => T, category: ErrorCategory, context?: BlacErrorContext, severity?: ErrorSeverity) => T | undefined;
19
- /**
20
- * Wraps an async function to catch and handle errors
21
- */
22
- wrapAsync: <T>(fn: () => Promise<T>, category: ErrorCategory, context?: BlacErrorContext, severity?: ErrorSeverity) => Promise<T | undefined>;
23
- };
24
- //# sourceMappingURL=handleError.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handleError.d.ts","sourceRoot":"","sources":["../../src/errors/handleError.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACb,aAAa,EACb,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAGrB;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW;qBAEX,MAAM,YACL,aAAa,YACb,gBAAgB,UAClB,OAAO,KACd,KAAK;qBAcG,MAAM,YACL,aAAa,YACb,gBAAgB,UAClB,OAAO,KACd,IAAI;oBAYI,MAAM,YACL,aAAa,YACb,gBAAgB,UAClB,OAAO,KACd,IAAI;oBAYI,MAAM,YACL,aAAa,YACb,gBAAgB,KACzB,IAAI;IAKP;;OAEG;WACI,CAAC,MACF,MAAM,CAAC,YACD,aAAa,YACb,gBAAgB,aAChB,aAAa,KACtB,CAAC,GAAG,SAAS;IAWhB;;OAEG;gBACe,CAAC,MACb,MAAM,OAAO,CAAC,CAAC,CAAC,YACV,aAAa,YACb,gBAAgB,aAChB,aAAa,KACtB,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;CAU1B,CAAC"}
@@ -1,62 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleError = void 0;
4
- const BlacError_1 = require("./BlacError");
5
- const ErrorManager_1 = require("./ErrorManager");
6
- /**
7
- * Standard error handling helper for BlaC
8
- *
9
- * Usage:
10
- * - For fatal errors that should propagate: handleError.fatal(...)
11
- * - For recoverable errors: handleError.error(...)
12
- * - For warnings: handleError.warn(...)
13
- */
14
- exports.handleError = {
15
- fatal: (message, category, context, cause) => {
16
- const error = new BlacError_1.BlacError(message, category, BlacError_1.ErrorSeverity.FATAL, context, cause);
17
- ErrorManager_1.ErrorManager.getInstance().handle(error);
18
- // This will always throw due to FATAL severity
19
- throw error;
20
- },
21
- error: (message, category, context, cause) => {
22
- const error = new BlacError_1.BlacError(message, category, BlacError_1.ErrorSeverity.ERROR, context, cause);
23
- ErrorManager_1.ErrorManager.getInstance().handle(error);
24
- },
25
- warn: (message, category, context, cause) => {
26
- const error = new BlacError_1.BlacError(message, category, BlacError_1.ErrorSeverity.WARNING, context, cause);
27
- ErrorManager_1.ErrorManager.getInstance().handle(error);
28
- },
29
- info: (message, category, context) => {
30
- const error = new BlacError_1.BlacError(message, category, BlacError_1.ErrorSeverity.INFO, context);
31
- ErrorManager_1.ErrorManager.getInstance().handle(error);
32
- },
33
- /**
34
- * Wraps a function to catch and handle errors
35
- */
36
- wrap: (fn, category, context, severity = BlacError_1.ErrorSeverity.ERROR) => {
37
- try {
38
- return fn();
39
- }
40
- catch (cause) {
41
- const message = cause instanceof Error ? cause.message : String(cause);
42
- const error = new BlacError_1.BlacError(message, category, severity, context, cause);
43
- ErrorManager_1.ErrorManager.getInstance().handle(error);
44
- return undefined;
45
- }
46
- },
47
- /**
48
- * Wraps an async function to catch and handle errors
49
- */
50
- wrapAsync: async (fn, category, context, severity = BlacError_1.ErrorSeverity.ERROR) => {
51
- try {
52
- return await fn();
53
- }
54
- catch (cause) {
55
- const message = cause instanceof Error ? cause.message : String(cause);
56
- const error = new BlacError_1.BlacError(message, category, severity, context, cause);
57
- ErrorManager_1.ErrorManager.getInstance().handle(error);
58
- return undefined;
59
- }
60
- },
61
- };
62
- //# sourceMappingURL=handleError.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handleError.js","sourceRoot":"","sources":["../../src/errors/handleError.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export { BlacError, ErrorCategory, ErrorSeverity, DefaultErrorStrategy, } from './BlacError';
2
- export type { BlacErrorContext, ErrorHandler, ErrorHandlingStrategy, } from './BlacError';
3
- export { ErrorManager } from './ErrorManager';
4
- export { handleError } from './handleError';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,aAAa,EACb,aAAa,EACb,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleError = exports.ErrorManager = exports.DefaultErrorStrategy = exports.ErrorSeverity = exports.ErrorCategory = exports.BlacError = void 0;
4
- var BlacError_1 = require("./BlacError");
5
- Object.defineProperty(exports, "BlacError", { enumerable: true, get: function () { return BlacError_1.BlacError; } });
6
- Object.defineProperty(exports, "ErrorCategory", { enumerable: true, get: function () { return BlacError_1.ErrorCategory; } });
7
- Object.defineProperty(exports, "ErrorSeverity", { enumerable: true, get: function () { return BlacError_1.ErrorSeverity; } });
8
- Object.defineProperty(exports, "DefaultErrorStrategy", { enumerable: true, get: function () { return BlacError_1.DefaultErrorStrategy; } });
9
- var ErrorManager_1 = require("./ErrorManager");
10
- Object.defineProperty(exports, "ErrorManager", { enumerable: true, get: function () { return ErrorManager_1.ErrorManager; } });
11
- var handleError_1 = require("./handleError");
12
- Object.defineProperty(exports, "handleError", { enumerable: true, get: function () { return handleError_1.handleError; } });
13
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";;;AAAA,yCAKqB;AAJnB,sGAAA,SAAS,OAAA;AACT,0GAAA,aAAa,OAAA;AACb,0GAAA,aAAa,OAAA;AACb,iHAAA,oBAAoB,OAAA;AAOtB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,6CAA4C;AAAnC,0GAAA,WAAW,OAAA"}
package/dist/events.d.ts DELETED
@@ -1,11 +0,0 @@
1
- /**
2
- * Event fired when props are updated on a Bloc or Cubit instance.
3
- * This is primarily used internally by the framework to notify
4
- * about prop changes in React components.
5
- * @template P - The type of props being updated
6
- */
7
- export declare class PropsUpdated<P = any> {
8
- readonly props: P;
9
- constructor(props: P);
10
- }
11
- //# sourceMappingURL=events.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,YAAY,CAAC,CAAC,GAAG,GAAG;aACH,KAAK,EAAE,CAAC;gBAAR,KAAK,EAAE,CAAC;CACrC"}
package/dist/events.js DELETED
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PropsUpdated = void 0;
4
- /**
5
- * Event fired when props are updated on a Bloc or Cubit instance.
6
- * This is primarily used internally by the framework to notify
7
- * about prop changes in React components.
8
- * @template P - The type of props being updated
9
- */
10
- class PropsUpdated {
11
- props;
12
- constructor(props) {
13
- this.props = props;
14
- }
15
- }
16
- exports.PropsUpdated = PropsUpdated;
17
- //# sourceMappingURL=events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,MAAa,YAAY;IACK;IAA5B,YAA4B,KAAQ;QAAR,UAAK,GAAL,KAAK,CAAG;IAAG,CAAC;CACzC;AAFD,oCAEC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAG5B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AAGvC,cAAc,WAAW,CAAC;AAG1B,cAAc,WAAW,CAAC;AAG1B,cAAc,WAAW,CAAC;AAG1B,cAAc,UAAU,CAAC"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,yCAAuB;AACvB,6CAA2B;AAC3B,0CAAwB;AACxB,0CAAwB;AACxB,2CAAyB;AACzB,iDAA+B;AAC/B,8CAA4B;AAE5B,YAAY;AACZ,+CAA6B;AAC7B,uDAAqC;AACrC,6DAA2C;AAC3C,yDAAuC;AAEvC,iBAAiB;AACjB,4CAA0B;AAE1B,UAAU;AACV,4CAA0B;AAE1B,UAAU;AACV,4CAA0B;AAE1B,iBAAiB;AACjB,2CAAyB"}
@@ -1,51 +0,0 @@
1
- /**
2
- * Enum representing the lifecycle states of a Bloc instance
3
- */
4
- export declare enum BlocLifecycleState {
5
- ACTIVE = "active",
6
- DISPOSAL_REQUESTED = "disposal_requested",
7
- DISPOSING = "disposing",
8
- DISPOSED = "disposed"
9
- }
10
- export interface StateTransitionResult {
11
- success: boolean;
12
- currentState: BlocLifecycleState;
13
- previousState: BlocLifecycleState;
14
- }
15
- /**
16
- * Manages the lifecycle state transitions for Bloc instances.
17
- * Ensures atomic state transitions to prevent race conditions during disposal.
18
- */
19
- export declare class BlocLifecycleManager {
20
- private disposalState;
21
- private disposalLock;
22
- private disposalTimer?;
23
- private disposalHandler?;
24
- get currentState(): BlocLifecycleState;
25
- get isDisposed(): boolean;
26
- /**
27
- * Atomic state transition for disposal
28
- */
29
- atomicStateTransition(expectedState: BlocLifecycleState, newState: BlocLifecycleState): StateTransitionResult;
30
- /**
31
- * Schedule disposal after a delay
32
- */
33
- scheduleDisposal(delay: number, canDispose: () => boolean, onDispose: () => void): void;
34
- /**
35
- * Cancel disposal if in disposal requested state
36
- */
37
- cancelDisposal(): boolean;
38
- /**
39
- * Set disposal handler
40
- */
41
- setDisposalHandler(handler: (bloc: unknown) => void): void;
42
- /**
43
- * Get disposal handler
44
- */
45
- getDisposalHandler(): ((bloc: unknown) => void) | undefined;
46
- /**
47
- * Clear disposal timer
48
- */
49
- clearDisposalTimer(): void;
50
- }
51
- //# sourceMappingURL=BlocLifecycle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BlocLifecycle.d.ts","sourceRoot":"","sources":["../../src/lifecycle/BlocLifecycle.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,kBAAkB;IAC5B,MAAM,WAAW;IACjB,kBAAkB,uBAAuB;IACzC,SAAS,cAAc;IACvB,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,kBAAkB,CAAC;IACjC,aAAa,EAAE,kBAAkB,CAAC;CACnC;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,aAAa,CAAC,CAA0B;IAChD,OAAO,CAAC,eAAe,CAAC,CAA0B;IAElD,IAAI,YAAY,IAAI,kBAAkB,CAErC;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACH,qBAAqB,CACnB,aAAa,EAAE,kBAAkB,EACjC,QAAQ,EAAE,kBAAkB,GAC3B,qBAAqB;IAgCxB;;OAEG;IACH,gBAAgB,CACd,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,OAAO,EACzB,SAAS,EAAE,MAAM,IAAI,GACpB,IAAI;IA+BP;;OAEG;IACH,cAAc,IAAI,OAAO;IAmBzB;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAI1D;;OAEG;IACH,kBAAkB,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS;IAI3D;;OAEG;IACH,kBAAkB,IAAI,IAAI;CAM3B"}
@@ -1,123 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BlocLifecycleManager = exports.BlocLifecycleState = void 0;
4
- /**
5
- * Enum representing the lifecycle states of a Bloc instance
6
- */
7
- var BlocLifecycleState;
8
- (function (BlocLifecycleState) {
9
- BlocLifecycleState["ACTIVE"] = "active";
10
- BlocLifecycleState["DISPOSAL_REQUESTED"] = "disposal_requested";
11
- BlocLifecycleState["DISPOSING"] = "disposing";
12
- BlocLifecycleState["DISPOSED"] = "disposed";
13
- })(BlocLifecycleState || (exports.BlocLifecycleState = BlocLifecycleState = {}));
14
- /**
15
- * Manages the lifecycle state transitions for Bloc instances.
16
- * Ensures atomic state transitions to prevent race conditions during disposal.
17
- */
18
- class BlocLifecycleManager {
19
- disposalState = BlocLifecycleState.ACTIVE;
20
- disposalLock = false;
21
- disposalTimer;
22
- disposalHandler;
23
- get currentState() {
24
- return this.disposalState;
25
- }
26
- get isDisposed() {
27
- return this.disposalState === BlocLifecycleState.DISPOSED;
28
- }
29
- /**
30
- * Atomic state transition for disposal
31
- */
32
- atomicStateTransition(expectedState, newState) {
33
- if (this.disposalLock) {
34
- return {
35
- success: false,
36
- currentState: this.disposalState,
37
- previousState: this.disposalState,
38
- };
39
- }
40
- this.disposalLock = true;
41
- try {
42
- if (this.disposalState !== expectedState) {
43
- return {
44
- success: false,
45
- currentState: this.disposalState,
46
- previousState: this.disposalState,
47
- };
48
- }
49
- const previousState = this.disposalState;
50
- this.disposalState = newState;
51
- return {
52
- success: true,
53
- currentState: newState,
54
- previousState,
55
- };
56
- }
57
- finally {
58
- this.disposalLock = false;
59
- }
60
- }
61
- /**
62
- * Schedule disposal after a delay
63
- */
64
- scheduleDisposal(delay, canDispose, onDispose) {
65
- // Cancel any existing disposal timer
66
- if (this.disposalTimer) {
67
- clearTimeout(this.disposalTimer);
68
- this.disposalTimer = undefined;
69
- }
70
- const transitionResult = this.atomicStateTransition(BlocLifecycleState.ACTIVE, BlocLifecycleState.DISPOSAL_REQUESTED);
71
- if (!transitionResult.success) {
72
- return;
73
- }
74
- this.disposalTimer = setTimeout(() => {
75
- if (canDispose() &&
76
- this.disposalState === BlocLifecycleState.DISPOSAL_REQUESTED) {
77
- onDispose();
78
- }
79
- else {
80
- this.atomicStateTransition(BlocLifecycleState.DISPOSAL_REQUESTED, BlocLifecycleState.ACTIVE);
81
- }
82
- }, delay);
83
- }
84
- /**
85
- * Cancel disposal if in disposal requested state
86
- */
87
- cancelDisposal() {
88
- if (this.disposalState === BlocLifecycleState.DISPOSAL_REQUESTED) {
89
- // Cancel disposal timer
90
- if (this.disposalTimer) {
91
- clearTimeout(this.disposalTimer);
92
- this.disposalTimer = undefined;
93
- }
94
- // Transition back to active state
95
- const result = this.atomicStateTransition(BlocLifecycleState.DISPOSAL_REQUESTED, BlocLifecycleState.ACTIVE);
96
- return result.success;
97
- }
98
- return false;
99
- }
100
- /**
101
- * Set disposal handler
102
- */
103
- setDisposalHandler(handler) {
104
- this.disposalHandler = handler;
105
- }
106
- /**
107
- * Get disposal handler
108
- */
109
- getDisposalHandler() {
110
- return this.disposalHandler;
111
- }
112
- /**
113
- * Clear disposal timer
114
- */
115
- clearDisposalTimer() {
116
- if (this.disposalTimer) {
117
- clearTimeout(this.disposalTimer);
118
- this.disposalTimer = undefined;
119
- }
120
- }
121
- }
122
- exports.BlocLifecycleManager = BlocLifecycleManager;
123
- //# sourceMappingURL=BlocLifecycle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BlocLifecycle.js","sourceRoot":"","sources":["../../src/lifecycle/BlocLifecycle.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export * from './BlocLifecycle';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lifecycle/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./BlocLifecycle"), exports);
18
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lifecycle/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC"}