@plyaz/core 1.9.3 → 1.9.4

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.
@@ -146,6 +146,8 @@ export declare abstract class BaseFrontendDomainService<TConfig extends CoreBase
146
146
  private readonly _rollbackStack;
147
147
  /** Maximum rollback stack size */
148
148
  private readonly _maxRollbackStackSize;
149
+ /** Polling timer reference */
150
+ private _pollingTimer;
149
151
  constructor(config: CoreBaseFrontendServiceConstructorConfig<TConfig, TStore, TData, TMapper, TValidator>);
150
152
  /**
151
153
  * Auto-resolve apiClientConfig from serviceConfig.apiBasePath if not explicitly provided.
@@ -568,6 +570,59 @@ export declare abstract class BaseFrontendDomainService<TConfig extends CoreBase
568
570
  * @param headers - Response headers (if available)
569
571
  */
570
572
  protected afterHead?<TInput>(resource: TInput | undefined, headers?: unknown): Promise<void>;
573
+ /**
574
+ * Check if polling is currently active.
575
+ */
576
+ get isPolling(): boolean;
577
+ /**
578
+ * Start polling for updates.
579
+ * Uses `config.pollingInterval` if set, otherwise uses DEFAULT_POLLING_INTERVAL_MS (30s).
580
+ * Polling calls fetchAll() at the configured interval.
581
+ *
582
+ * Override in subclass for custom polling behavior.
583
+ *
584
+ * @example
585
+ * ```typescript
586
+ * // Start polling with config interval
587
+ * service.startPolling();
588
+ *
589
+ * // Or override in subclass for custom behavior
590
+ * startPolling(): void {
591
+ * super.startPolling();
592
+ * // Custom polling logic
593
+ * }
594
+ * ```
595
+ */
596
+ startPolling(): void;
597
+ /**
598
+ * Stop polling.
599
+ * Safe to call even if polling is not active.
600
+ */
601
+ stopPolling(): void;
602
+ /**
603
+ * Dispose service and cleanup resources.
604
+ * Stops polling and performs base cleanup.
605
+ *
606
+ * Subclasses should override and call super.dispose() to ensure cleanup.
607
+ *
608
+ * @example
609
+ * ```typescript
610
+ * dispose(): void {
611
+ * // Custom cleanup
612
+ * this.customCleanup();
613
+ * // Always call super
614
+ * super.dispose();
615
+ * }
616
+ * ```
617
+ */
618
+ dispose(): void;
619
+ /**
620
+ * Check if service is available.
621
+ * Override in subclass for custom availability checks.
622
+ *
623
+ * @returns true if service is enabled and in a browser environment
624
+ */
625
+ isAvailable(): boolean;
571
626
  /**
572
627
  * Wrap error in CorePackageError with context
573
628
  *
@@ -1 +1 @@
1
- {"version":3,"file":"BaseFrontendDomainService.d.ts","sourceRoot":"","sources":["../../../src/domain/base/BaseFrontendDomainService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseFrontendDomainService.d.ts","sourceRoot":"","sources":["../../../src/domain/base/BaseFrontendDomainService.ts"],"names":[],"mappings":"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"}
@@ -76,7 +76,6 @@ export declare class FrontendExampleDomainService extends BaseFrontendDomainServ
76
76
  * Read-only store keys - inherits error and featureFlags from base
77
77
  * No need to redeclare them - they're always included by default
78
78
  */
79
- private pollingTimer;
80
79
  static readonly serviceKey: "example-frontend";
81
80
  /**
82
81
  * Primary store key for this service.
@@ -90,8 +89,6 @@ export declare class FrontendExampleDomainService extends BaseFrontendDomainServ
90
89
  */
91
90
  static create(config: _ExampleFrontendServiceConfig, options?: CoreServiceCreateOptions): Promise<FrontendExampleDomainService>;
92
91
  constructor(config?: _ExampleFrontendServiceConfig, options?: CoreServiceCreateOptions);
93
- isAvailable(): boolean;
94
- dispose(): void;
95
92
  /**
96
93
  * After fetchAll - emit event (store sync handled automatically)
97
94
  * Note: Base class automatically calls syncToStores() which uses storeHandlers
@@ -111,15 +108,6 @@ export declare class FrontendExampleDomainService extends BaseFrontendDomainServ
111
108
  * ```
112
109
  */
113
110
  on(event: ExampleFrontendEventType, handler: (data: unknown) => void): () => void;
114
- /**
115
- * Start polling for updates
116
- * Domain-specific feature - not part of base class
117
- */
118
- startPolling(): void;
119
- /**
120
- * Stop polling
121
- */
122
- stopPolling(): void;
123
111
  /**
124
112
  * Demo: Fetch all examples with optional filters
125
113
  * Demonstrates the fetchAll() method with typed query parameters
@@ -1 +1 @@
1
- {"version":3,"file":"FrontendExampleDomainService.d.ts","sourceRoot":"","sources":["../../../src/domain/example/FrontendExampleDomainService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAIH,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAc7D,YAAY,EACV,wBAAwB,EACxB,yBAAyB,EACzB,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EACzB,4BAA4B,IAAI,6BAA6B,EAC7D,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAMnE;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,4BAA6B,SAAQ,yBAAyB,CACzE,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,YAAY,CAAC,OAAO,kBAAkB,CAAC,EACvC,yBAAyB,EACzB,IAAI,CACL;IAKC;;;OAGG;IACH,SAAS,CAAC,WAAW,SAAa;IAElC;;;OAGG;IAOH,OAAO,CAAC,YAAY,CAA+C;IAMnE,MAAM,CAAC,QAAQ,CAAC,UAAU,qBAAiC;IAE3D;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,eAAe,YAAsB;IAErD;;;OAGG;WACU,MAAM,CACjB,MAAM,EAAE,6BAA6B,EACrC,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,4BAA4B,CAAC;gBAuB5B,MAAM,GAAE,6BAAkC,EAAE,OAAO,CAAC,EAAE,wBAAwB;IAgF1F,WAAW,IAAI,OAAO;IAItB,OAAO,IAAI,IAAI;IASf;;;OAGG;cACsB,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BhF;;;;;;;;;;;;OAYG;IACH,EAAE,CAAC,KAAK,EAAE,wBAAwB,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAQjF;;;OAGG;IACH,YAAY,IAAI,IAAI;IAapB;;OAEG;IACH,WAAW,IAAI,IAAI;IAYnB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,WAAW,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAItE;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAInD;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAIlD;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;CAkBtD"}
1
+ {"version":3,"file":"FrontendExampleDomainService.d.ts","sourceRoot":"","sources":["../../../src/domain/example/FrontendExampleDomainService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAIH,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAO7D,YAAY,EACV,wBAAwB,EACxB,yBAAyB,EACzB,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EACzB,4BAA4B,IAAI,6BAA6B,EAC7D,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAMnE;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,4BAA6B,SAAQ,yBAAyB,CACzE,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,YAAY,CAAC,OAAO,kBAAkB,CAAC,EACvC,yBAAyB,EACzB,IAAI,CACL;IAKC;;;OAGG;IACH,SAAS,CAAC,WAAW,SAAa;IAElC;;;OAGG;IAOH,MAAM,CAAC,QAAQ,CAAC,UAAU,qBAAiC;IAE3D;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,eAAe,YAAsB;IAErD;;;OAGG;WACU,MAAM,CACjB,MAAM,EAAE,6BAA6B,EACrC,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,4BAA4B,CAAC;gBAuB5B,MAAM,GAAE,6BAAkC,EAAE,OAAO,CAAC,EAAE,wBAAwB;IAkF1F;;;OAGG;cACsB,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BhF;;;;;;;;;;;;OAYG;IACH,EAAE,CAAC,KAAK,EAAE,wBAAwB,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IASjF;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,WAAW,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAItE;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAInD;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAIlD;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;CAkBtD"}
@@ -4583,12 +4583,13 @@ var init_BaseDomainService = __esm({
4583
4583
  };
4584
4584
  }
4585
4585
  });
4586
- var BaseFrontendDomainService;
4586
+ var DEFAULT_POLLING_INTERVAL_MS, BaseFrontendDomainService;
4587
4587
  var init_BaseFrontendDomainService = __esm({
4588
4588
  "src/domain/base/BaseFrontendDomainService.ts"() {
4589
4589
  init_BaseDomainService();
4590
4590
  init_CoreEventManager();
4591
4591
  init_CoreInitializer();
4592
+ DEFAULT_POLLING_INTERVAL_MS = 3e4;
4592
4593
  BaseFrontendDomainService = class _BaseFrontendDomainService extends exports.BaseDomainService {
4593
4594
  // ─────────────────────────────────────────────────────────────────────────
4594
4595
  // Constructor
@@ -4614,6 +4615,11 @@ var init_BaseFrontendDomainService = __esm({
4614
4615
  this._rollbackStack = [];
4615
4616
  /** Maximum rollback stack size */
4616
4617
  this._maxRollbackStackSize = 10;
4618
+ // ─────────────────────────────────────────────────────────────────────────
4619
+ // Polling Properties
4620
+ // ─────────────────────────────────────────────────────────────────────────
4621
+ /** Polling timer reference */
4622
+ this._pollingTimer = null;
4617
4623
  this.storeHandlers = config.serviceConfig.storeHandlers;
4618
4624
  this.optimisticConfig = config.serviceConfig.optimisticUpdates;
4619
4625
  if (config.mapperClass) {
@@ -5640,6 +5646,87 @@ var init_BaseFrontendDomainService = __esm({
5640
5646
  this.logDebug(`Event emitted: ${eventName}`, payload);
5641
5647
  }
5642
5648
  // ─────────────────────────────────────────────────────────────────────────
5649
+ // Polling (Generic Feature)
5650
+ // ─────────────────────────────────────────────────────────────────────────
5651
+ /**
5652
+ * Check if polling is currently active.
5653
+ */
5654
+ get isPolling() {
5655
+ return this._pollingTimer !== null;
5656
+ }
5657
+ /**
5658
+ * Start polling for updates.
5659
+ * Uses `config.pollingInterval` if set, otherwise uses DEFAULT_POLLING_INTERVAL_MS (30s).
5660
+ * Polling calls fetchAll() at the configured interval.
5661
+ *
5662
+ * Override in subclass for custom polling behavior.
5663
+ *
5664
+ * @example
5665
+ * ```typescript
5666
+ * // Start polling with config interval
5667
+ * service.startPolling();
5668
+ *
5669
+ * // Or override in subclass for custom behavior
5670
+ * startPolling(): void {
5671
+ * super.startPolling();
5672
+ * // Custom polling logic
5673
+ * }
5674
+ * ```
5675
+ */
5676
+ startPolling() {
5677
+ if (this._pollingTimer) return;
5678
+ const interval = this.config.pollingInterval || DEFAULT_POLLING_INTERVAL_MS;
5679
+ this._pollingTimer = setInterval(() => {
5680
+ this.fetchAll().catch((error) => {
5681
+ this.logError("Polling fetch failed", { error });
5682
+ });
5683
+ }, interval);
5684
+ this.logDebug("Polling started", { interval });
5685
+ }
5686
+ /**
5687
+ * Stop polling.
5688
+ * Safe to call even if polling is not active.
5689
+ */
5690
+ stopPolling() {
5691
+ if (this._pollingTimer) {
5692
+ clearInterval(this._pollingTimer);
5693
+ this._pollingTimer = null;
5694
+ this.logDebug("Polling stopped");
5695
+ }
5696
+ }
5697
+ // ─────────────────────────────────────────────────────────────────────────
5698
+ // Lifecycle Management
5699
+ // ─────────────────────────────────────────────────────────────────────────
5700
+ /**
5701
+ * Dispose service and cleanup resources.
5702
+ * Stops polling and performs base cleanup.
5703
+ *
5704
+ * Subclasses should override and call super.dispose() to ensure cleanup.
5705
+ *
5706
+ * @example
5707
+ * ```typescript
5708
+ * dispose(): void {
5709
+ * // Custom cleanup
5710
+ * this.customCleanup();
5711
+ * // Always call super
5712
+ * super.dispose();
5713
+ * }
5714
+ * ```
5715
+ */
5716
+ dispose() {
5717
+ this.stopPolling();
5718
+ this.logInfo("Service disposed");
5719
+ }
5720
+ /**
5721
+ * Check if service is available.
5722
+ * Override in subclass for custom availability checks.
5723
+ *
5724
+ * @returns true if service is enabled and in a browser environment
5725
+ */
5726
+ isAvailable() {
5727
+ return this.isServiceEnabled && typeof window !== "undefined";
5728
+ }
5729
+ // ─────────────────────────────────────────────────────────────────────────
5643
5730
  // Error Handling Helpers
5644
5731
  // ─────────────────────────────────────────────────────────────────────────
5645
5732
  /**
@@ -7966,13 +8053,12 @@ var FrontendExampleDomainService_exports = {};
7966
8053
  __export(FrontendExampleDomainService_exports, {
7967
8054
  FrontendExampleDomainService: () => FrontendExampleDomainService
7968
8055
  });
7969
- var DEFAULT_POLLING_INTERVAL_MS, FrontendExampleDomainService;
8056
+ var FrontendExampleDomainService;
7970
8057
  var init_FrontendExampleDomainService = __esm({
7971
8058
  "src/domain/example/FrontendExampleDomainService.ts"() {
7972
8059
  init_BaseFrontendDomainService();
7973
8060
  init_CoreEventManager();
7974
8061
  init_ExampleMapper();
7975
- DEFAULT_POLLING_INTERVAL_MS = 3e4;
7976
8062
  FrontendExampleDomainService = class _FrontendExampleDomainService extends BaseFrontendDomainService {
7977
8063
  // ─────────────────────────────────────────────────────────────────────────
7978
8064
  // Constructor
@@ -8047,15 +8133,6 @@ var init_FrontendExampleDomainService = __esm({
8047
8133
  * Required by BaseFrontendDomainService
8048
8134
  */
8049
8135
  this.eventPrefix = "example";
8050
- /**
8051
- * Read-only store keys - inherits error and featureFlags from base
8052
- * No need to redeclare them - they're always included by default
8053
- */
8054
- // protected readStoreKeys = [...super.readStoreKeys]; // Already includes ERROR, FEATURE_FLAGS
8055
- // ─────────────────────────────────────────────────────────────────────────
8056
- // Domain-Specific Properties
8057
- // ─────────────────────────────────────────────────────────────────────────
8058
- this.pollingTimer = null;
8059
8136
  if (this.config.pollingInterval && this.config.pollingInterval > 0) {
8060
8137
  this.startPolling();
8061
8138
  }
@@ -8064,6 +8141,11 @@ var init_FrontendExampleDomainService = __esm({
8064
8141
  __name(this, "FrontendExampleDomainService");
8065
8142
  }
8066
8143
  static {
8144
+ /**
8145
+ * Read-only store keys - inherits error and featureFlags from base
8146
+ * No need to redeclare them - they're always included by default
8147
+ */
8148
+ // protected readStoreKeys = [...super.readStoreKeys]; // Already includes ERROR, FEATURE_FLAGS
8067
8149
  // ─────────────────────────────────────────────────────────────────────────
8068
8150
  // Static: Service Registry Interface
8069
8151
  // ─────────────────────────────────────────────────────────────────────────
@@ -8097,18 +8179,10 @@ var init_FrontendExampleDomainService = __esm({
8097
8179
  return service;
8098
8180
  }
8099
8181
  // ─────────────────────────────────────────────────────────────────────────
8100
- // Abstract Implementations (Required by BaseDomainService)
8101
- // ─────────────────────────────────────────────────────────────────────────
8102
- isAvailable() {
8103
- return this.isServiceEnabled && typeof window !== "undefined";
8104
- }
8105
- dispose() {
8106
- this.stopPolling();
8107
- this.logInfo("Service disposed");
8108
- }
8109
- // ─────────────────────────────────────────────────────────────────────────
8110
8182
  // Lifecycle Hooks (Optional Override Examples)
8111
8183
  // ─────────────────────────────────────────────────────────────────────────
8184
+ // Note: isAvailable(), dispose(), startPolling(), stopPolling() are inherited
8185
+ // from BaseFrontendDomainService. Override here only if custom behavior needed.
8112
8186
  /**
8113
8187
  * After fetchAll - emit event (store sync handled automatically)
8114
8188
  * Note: Base class automatically calls syncToStores() which uses storeHandlers
@@ -8156,35 +8230,9 @@ var init_FrontendExampleDomainService = __esm({
8156
8230
  return exports.CoreEventManager.on(event, handler);
8157
8231
  }
8158
8232
  // ─────────────────────────────────────────────────────────────────────────
8159
- // Polling (Domain-Specific Feature)
8160
- // ─────────────────────────────────────────────────────────────────────────
8161
- /**
8162
- * Start polling for updates
8163
- * Domain-specific feature - not part of base class
8164
- */
8165
- startPolling() {
8166
- if (this.pollingTimer) return;
8167
- const interval = this.config.pollingInterval ?? DEFAULT_POLLING_INTERVAL_MS;
8168
- this.pollingTimer = setInterval(() => {
8169
- this.fetchAll().catch((error) => {
8170
- this.logError("Polling fetch failed", { error });
8171
- });
8172
- }, interval);
8173
- this.logDebug("Polling started", { interval });
8174
- }
8175
- /**
8176
- * Stop polling
8177
- */
8178
- stopPolling() {
8179
- if (this.pollingTimer) {
8180
- clearInterval(this.pollingTimer);
8181
- this.pollingTimer = null;
8182
- this.logDebug("Polling stopped");
8183
- }
8184
- }
8185
- // ─────────────────────────────────────────────────────────────────────────
8186
8233
  // Demo Methods - fetchAll() with Query Examples
8187
8234
  // ─────────────────────────────────────────────────────────────────────────
8235
+ // Note: startPolling() and stopPolling() are inherited from BaseFrontendDomainService
8188
8236
  /**
8189
8237
  * Demo: Fetch all examples with optional filters
8190
8238
  * Demonstrates the fetchAll() method with typed query parameters