@decaf-ts/for-nano 0.7.6 → 0.9.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.
@@ -237,4 +237,5 @@ class NanoDispatch extends core_1.Dispatch {
237
237
  }
238
238
  }
239
239
  exports.NanoDispatch = NanoDispatch;
240
+ //# sourceMappingURL=NanoDispatch.js.map
240
241
  //# sourceMappingURL=NanoDispatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NanoDispatch.js","sourceRoot":"","sources":["NanoDispatch.js"],"names":[],"mappings":"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"}
@@ -19,4 +19,5 @@ class NanoRepository extends for_couchdb_1.CouchDBRepository {
19
19
  }
20
20
  }
21
21
  exports.NanoRepository = NanoRepository;
22
+ //# sourceMappingURL=NanoRepository.js.map
22
23
  //# sourceMappingURL=NanoRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NanoRepository.js","sourceRoot":"","sources":["NanoRepository.js"],"names":[],"mappings":";;;AAAA,uDAA0D;AAC1D;;;;;;;GAOG;AACH,MAAa,cAAe,SAAQ,+BAAiB;IACjD,YAAY,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK;QACrC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,QAAQ,CAAC,KAAK;QACV,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;CACJ;AAPD,wCAOC;AACD,0CAA0C"}
@@ -10,9 +10,9 @@ const for_couchdb_1 = require("@decaf-ts/for-couchdb");
10
10
  const nano_1 = __importDefault(require("nano"));
11
11
  const decorator_validation_1 = require("@decaf-ts/decorator-validation");
12
12
  const core_1 = require("@decaf-ts/core");
13
- const constants_1 = require("./constants.cjs");
14
- const NanoRepository_1 = require("./NanoRepository.cjs");
15
- const NanoDispatch_1 = require("./NanoDispatch.cjs");
13
+ const constants_js_1 = require("./constants.cjs");
14
+ const NanoRepository_js_1 = require("./NanoRepository.cjs");
15
+ const NanoDispatch_js_1 = require("./NanoDispatch.cjs");
16
16
  const decoration_1 = require("@decaf-ts/decoration");
17
17
  /**
18
18
  * @description Sets the creator or updater field in a model based on the user in the context
@@ -108,7 +108,7 @@ async function createdByOnNanoCreateUpdate(context, data, key, model) {
108
108
  */
109
109
  class NanoAdapter extends for_couchdb_1.CouchDBAdapter {
110
110
  constructor(scope, alias) {
111
- super(scope, constants_1.NanoFlavour, alias);
111
+ super(scope, constants_js_1.NanoFlavour, alias);
112
112
  }
113
113
  /**
114
114
  * @description Shuts down the adapter instance
@@ -155,10 +155,10 @@ class NanoAdapter extends for_couchdb_1.CouchDBAdapter {
155
155
  * @return {NanoDispatch} A new NanoDispatch instance
156
156
  */
157
157
  Dispatch() {
158
- return new NanoDispatch_1.NanoDispatch();
158
+ return new NanoDispatch_js_1.NanoDispatch();
159
159
  }
160
160
  repository() {
161
- return NanoRepository_1.NanoRepository;
161
+ return NanoRepository_js_1.NanoRepository;
162
162
  }
163
163
  /**
164
164
  * @description Creates database indexes for models
@@ -759,16 +759,17 @@ class NanoAdapter extends for_couchdb_1.CouchDBAdapter {
759
759
  */
760
760
  static decoration() {
761
761
  super.decoration();
762
- decoration_1.Decoration.flavouredAs(constants_1.NanoFlavour)
762
+ decoration_1.Decoration.flavouredAs(constants_js_1.NanoFlavour)
763
763
  .for(core_1.PersistenceKeys.CREATED_BY)
764
764
  .define((0, db_decorators_1.onCreate)(createdByOnNanoCreateUpdate), (0, decoration_1.propMetadata)(core_1.PersistenceKeys.CREATED_BY, {}))
765
765
  .apply();
766
- decoration_1.Decoration.flavouredAs(constants_1.NanoFlavour)
766
+ decoration_1.Decoration.flavouredAs(constants_js_1.NanoFlavour)
767
767
  .for(core_1.PersistenceKeys.UPDATED_BY)
768
768
  .define((0, db_decorators_1.onCreateUpdate)(createdByOnNanoCreateUpdate), (0, decoration_1.propMetadata)(core_1.PersistenceKeys.UPDATED_BY, {}))
769
769
  .apply();
770
770
  }
771
771
  }
772
772
  exports.NanoAdapter = NanoAdapter;
773
- core_1.Adapter.setCurrent(constants_1.NanoFlavour);
773
+ core_1.Adapter.setCurrent(constants_js_1.NanoFlavour);
774
+ //# sourceMappingURL=adapter.js.map
774
775
  //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["adapter.js"],"names":[],"mappings":"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"}
@@ -8,4 +8,5 @@ exports.NanoFlavour = void 0;
8
8
  * @memberOf module:for-nano
9
9
  */
10
10
  exports.NanoFlavour = "nano";
11
+ //# sourceMappingURL=constants.js.map
11
12
  //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["constants.js"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACU,QAAA,WAAW,GAAG,MAAM,CAAC;AAClC,qCAAqC"}
package/lib/cjs/index.cjs CHANGED
@@ -15,10 +15,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.PACKAGE_NAME = exports.VERSION = void 0;
18
- const adapter_1 = require("./adapter.cjs");
18
+ const adapter_js_1 = require("./adapter.cjs");
19
19
  const decoration_1 = require("@decaf-ts/decoration");
20
20
  // Forces override for Nano Decoration
21
- adapter_1.NanoAdapter.decoration();
21
+ adapter_js_1.NanoAdapter.decoration();
22
22
  __exportStar(require("./constants.cjs"), exports);
23
23
  __exportStar(require("./NanoRepository.cjs"), exports);
24
24
  __exportStar(require("./types.cjs"), exports);
@@ -35,7 +35,7 @@ __exportStar(require("./adapter.cjs"), exports);
35
35
  * @const VERSION
36
36
  * @memberOf module:for-nano
37
37
  */
38
- exports.VERSION = "0.7.5";
38
+ exports.VERSION = "0.8.0";
39
39
  /**
40
40
  * @description Package version identifier
41
41
  * @summary Stores the current package version string for the for-nano module
@@ -44,4 +44,5 @@ exports.VERSION = "0.7.5";
44
44
  */
45
45
  exports.PACKAGE_NAME = "@decaf-ts/for-nano";
46
46
  decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
47
+ //# sourceMappingURL=index.js.map
47
48
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAA2C;AAC3C,qDAAgD;AAChD,sCAAsC;AACtC,wBAAW,CAAC,UAAU,EAAE,CAAC;AACzB,iDAA+B;AAC/B,sDAAoC;AACpC,6CAA2B;AAC3B,6BAA6B;AAC7B,+CAA6B;AAC7B;;;;GAIG;AACH;;;;;GAKG;AACU,QAAA,OAAO,GAAG,aAAa,CAAC;AACrC;;;;;GAKG;AACU,QAAA,YAAY,GAAG,aAAa,CAAC;AAC1C,qBAAQ,CAAC,eAAe,CAAC,oBAAY,EAAE,eAAO,CAAC,CAAC;AAChD,iCAAiC"}
package/lib/cjs/types.cjs CHANGED
@@ -1,3 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
3
4
  //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["types.js"],"names":[],"mappings":";;AACA,iCAAiC"}
package/lib/esm/index.js CHANGED
@@ -18,7 +18,7 @@ export * from "./adapter.js";
18
18
  * @const VERSION
19
19
  * @memberOf module:for-nano
20
20
  */
21
- export const VERSION = "0.7.5";
21
+ export const VERSION = "0.8.0";
22
22
  /**
23
23
  * @description Package version identifier
24
24
  * @summary Stores the current package version string for the for-nano module
@@ -0,0 +1,119 @@
1
+ import { Adapter, Context, ContextualArgs, Dispatch } from "@decaf-ts/core";
2
+ import { DatabaseChangesResponse, DatabaseChangesResultItem, DocumentScope, RequestError } from "nano";
3
+ import { MangoQuery } from "@decaf-ts/for-couchdb";
4
+ import { NanoConfig, NanoFlags } from "./types.cjs";
5
+ /**
6
+ * @description Dispatcher for Nano database change events
7
+ * @summary Handles the subscription to and processing of database change events from a Nano database,
8
+ * notifying observers when documents are created, updated, or deleted
9
+ * @template DocumentScope - The Nano document scope type
10
+ * @param {number} [timeout=5000] - Timeout in milliseconds for change feed requests
11
+ * @class NanoDispatch
12
+ * @example
13
+ * ```typescript
14
+ * // Create a dispatcher for a Nano database
15
+ * const db = server.db.use('my_database');
16
+ * const adapter = new NanoAdapter(db);
17
+ * const dispatch = new NanoDispatch();
18
+ *
19
+ * // The dispatcher will automatically subscribe to changes
20
+ * // and notify observers when documents change
21
+ * ```
22
+ * @mermaid
23
+ * classDiagram
24
+ * class Dispatch {
25
+ * +initialize()
26
+ * +updateObservers()
27
+ * }
28
+ * class NanoDispatch {
29
+ * -observerLastUpdate?: string
30
+ * -attemptCounter: number
31
+ * -timeout: number
32
+ * +constructor(timeout)
33
+ * #changeHandler()
34
+ * #initialize()
35
+ * }
36
+ * Dispatch <|-- NanoDispatch
37
+ */
38
+ export declare class NanoDispatch extends Dispatch<Adapter<NanoConfig, DocumentScope<any>, MangoQuery, Context<NanoFlags>>> {
39
+ private timeout;
40
+ private observerLastUpdate?;
41
+ private attemptCounter;
42
+ private active;
43
+ private changeFeed?;
44
+ constructor(timeout?: number);
45
+ /**
46
+ * @description Closes the dispatcher
47
+ * @summary Stops the dispatcher and cleans up any active subscriptions or resources
48
+ * @return {Promise<void>} A promise that resolves when the dispatcher has been closed
49
+ */
50
+ close(...args: ContextualArgs<Context<NanoFlags>>): Promise<void>;
51
+ /**
52
+ * @description Processes database change events
53
+ * @summary Handles the response from the Nano changes feed, processes the changes,
54
+ * and notifies observers about document changes
55
+ * @param {RequestError | null} error - Error object if the request failed
56
+ * @param response - The changes response from Nano
57
+ * @param {any} [headers] - Response headers (unused)
58
+ * @return {Promise<void>} A promise that resolves when all changes have been processed
59
+ * @mermaid
60
+ * sequenceDiagram
61
+ * participant D as NanoDispatch
62
+ * participant L as Logger
63
+ * participant O as Observers
64
+ * Note over D: Receive changes from Nano
65
+ * alt Error in response
66
+ * D->>L: Log error
67
+ * D-->>D: Return early
68
+ * end
69
+ * alt Response is string
70
+ * D->>D: Parse JSON from string
71
+ * end
72
+ * D->>D: Process changes
73
+ * D->>D: Group changes by table and operation
74
+ * loop For each table
75
+ * loop For each operation
76
+ * D->>O: updateObservers(table, operation, ids)
77
+ * D->>D: Update observerLastUpdate
78
+ * D->>L: Log successful dispatch
79
+ * end
80
+ * end
81
+ */
82
+ protected changeHandler(error: RequestError | null, response: (DatabaseChangesResponse | DatabaseChangesResultItem)[] | string, headers?: any, ctxArg?: Context<NanoFlags>): Promise<void>;
83
+ /**
84
+ * @description Initializes the dispatcher and subscribes to database changes
85
+ * @summary Sets up the continuous changes feed subscription to the Nano database
86
+ * and handles reconnection attempts if the connection fails
87
+ * @return {Promise<void>} A promise that resolves when the subscription is established
88
+ * @mermaid
89
+ * sequenceDiagram
90
+ * participant D as NanoDispatch
91
+ * participant S as subscribeToCouch
92
+ * participant DB as Nano Database
93
+ * participant L as Logger
94
+ * D->>S: Call subscribeToCouch
95
+ * S->>S: Check adapter and native
96
+ * alt No adapter or native
97
+ * S-->>S: throw InternalError
98
+ * end
99
+ * S->>DB: changes(options, changeHandler)
100
+ * alt Success
101
+ * DB-->>S: Subscription established
102
+ * S-->>D: Promise resolves
103
+ * D->>L: Log successful subscription
104
+ * else Error
105
+ * DB-->>S: Error
106
+ * S->>S: Increment attemptCounter
107
+ * alt attemptCounter > 3
108
+ * S->>L: Log error
109
+ * S-->>D: Promise rejects
110
+ * else attemptCounter <= 3
111
+ * S->>L: Log retry
112
+ * S->>S: Wait timeout
113
+ * S->>S: Recursive call to subscribeToCouch
114
+ * end
115
+ * end
116
+ */
117
+ protected initialize(): Promise<void>;
118
+ private disposeChangeFeed;
119
+ }
@@ -0,0 +1,119 @@
1
+ import { Adapter, Context, ContextualArgs, Dispatch } from "@decaf-ts/core";
2
+ import { DatabaseChangesResponse, DatabaseChangesResultItem, DocumentScope, RequestError } from "nano";
3
+ import { MangoQuery } from "@decaf-ts/for-couchdb";
4
+ import { NanoConfig, NanoFlags } from "./types.js";
5
+ /**
6
+ * @description Dispatcher for Nano database change events
7
+ * @summary Handles the subscription to and processing of database change events from a Nano database,
8
+ * notifying observers when documents are created, updated, or deleted
9
+ * @template DocumentScope - The Nano document scope type
10
+ * @param {number} [timeout=5000] - Timeout in milliseconds for change feed requests
11
+ * @class NanoDispatch
12
+ * @example
13
+ * ```typescript
14
+ * // Create a dispatcher for a Nano database
15
+ * const db = server.db.use('my_database');
16
+ * const adapter = new NanoAdapter(db);
17
+ * const dispatch = new NanoDispatch();
18
+ *
19
+ * // The dispatcher will automatically subscribe to changes
20
+ * // and notify observers when documents change
21
+ * ```
22
+ * @mermaid
23
+ * classDiagram
24
+ * class Dispatch {
25
+ * +initialize()
26
+ * +updateObservers()
27
+ * }
28
+ * class NanoDispatch {
29
+ * -observerLastUpdate?: string
30
+ * -attemptCounter: number
31
+ * -timeout: number
32
+ * +constructor(timeout)
33
+ * #changeHandler()
34
+ * #initialize()
35
+ * }
36
+ * Dispatch <|-- NanoDispatch
37
+ */
38
+ export declare class NanoDispatch extends Dispatch<Adapter<NanoConfig, DocumentScope<any>, MangoQuery, Context<NanoFlags>>> {
39
+ private timeout;
40
+ private observerLastUpdate?;
41
+ private attemptCounter;
42
+ private active;
43
+ private changeFeed?;
44
+ constructor(timeout?: number);
45
+ /**
46
+ * @description Closes the dispatcher
47
+ * @summary Stops the dispatcher and cleans up any active subscriptions or resources
48
+ * @return {Promise<void>} A promise that resolves when the dispatcher has been closed
49
+ */
50
+ close(...args: ContextualArgs<Context<NanoFlags>>): Promise<void>;
51
+ /**
52
+ * @description Processes database change events
53
+ * @summary Handles the response from the Nano changes feed, processes the changes,
54
+ * and notifies observers about document changes
55
+ * @param {RequestError | null} error - Error object if the request failed
56
+ * @param response - The changes response from Nano
57
+ * @param {any} [headers] - Response headers (unused)
58
+ * @return {Promise<void>} A promise that resolves when all changes have been processed
59
+ * @mermaid
60
+ * sequenceDiagram
61
+ * participant D as NanoDispatch
62
+ * participant L as Logger
63
+ * participant O as Observers
64
+ * Note over D: Receive changes from Nano
65
+ * alt Error in response
66
+ * D->>L: Log error
67
+ * D-->>D: Return early
68
+ * end
69
+ * alt Response is string
70
+ * D->>D: Parse JSON from string
71
+ * end
72
+ * D->>D: Process changes
73
+ * D->>D: Group changes by table and operation
74
+ * loop For each table
75
+ * loop For each operation
76
+ * D->>O: updateObservers(table, operation, ids)
77
+ * D->>D: Update observerLastUpdate
78
+ * D->>L: Log successful dispatch
79
+ * end
80
+ * end
81
+ */
82
+ protected changeHandler(error: RequestError | null, response: (DatabaseChangesResponse | DatabaseChangesResultItem)[] | string, headers?: any, ctxArg?: Context<NanoFlags>): Promise<void>;
83
+ /**
84
+ * @description Initializes the dispatcher and subscribes to database changes
85
+ * @summary Sets up the continuous changes feed subscription to the Nano database
86
+ * and handles reconnection attempts if the connection fails
87
+ * @return {Promise<void>} A promise that resolves when the subscription is established
88
+ * @mermaid
89
+ * sequenceDiagram
90
+ * participant D as NanoDispatch
91
+ * participant S as subscribeToCouch
92
+ * participant DB as Nano Database
93
+ * participant L as Logger
94
+ * D->>S: Call subscribeToCouch
95
+ * S->>S: Check adapter and native
96
+ * alt No adapter or native
97
+ * S-->>S: throw InternalError
98
+ * end
99
+ * S->>DB: changes(options, changeHandler)
100
+ * alt Success
101
+ * DB-->>S: Subscription established
102
+ * S-->>D: Promise resolves
103
+ * D->>L: Log successful subscription
104
+ * else Error
105
+ * DB-->>S: Error
106
+ * S->>S: Increment attemptCounter
107
+ * alt attemptCounter > 3
108
+ * S->>L: Log error
109
+ * S-->>D: Promise rejects
110
+ * else attemptCounter <= 3
111
+ * S->>L: Log retry
112
+ * S->>S: Wait timeout
113
+ * S->>S: Recursive call to subscribeToCouch
114
+ * end
115
+ * end
116
+ */
117
+ protected initialize(): Promise<void>;
118
+ private disposeChangeFeed;
119
+ }
@@ -0,0 +1,17 @@
1
+ import { Model } from "@decaf-ts/decorator-validation";
2
+ import { CouchDBRepository } from "@decaf-ts/for-couchdb";
3
+ import { NanoAdapter } from "./adapter.cjs";
4
+ import { Constructor } from "@decaf-ts/decoration";
5
+ import { ContextOf, FlagsOf } from "@decaf-ts/core";
6
+ /**
7
+ * @description Type for Nano database repositories
8
+ * @summary A specialized repository type for working with Nano databases, extending the base Repository
9
+ * with Nano-specific adapter, flags, and context types
10
+ * @template M - Type extending Model that this repository will manage
11
+ * @typedef {Repository<M, MangoQuery, NanoAdapter, NanoFlags, Context<NanoFlags>>} NanoRepository
12
+ * @memberOf module:for-nano
13
+ */
14
+ export declare class NanoRepository<M extends Model> extends CouchDBRepository<M, NanoAdapter> {
15
+ constructor(adapter: NanoAdapter, model: Constructor<M>, force?: boolean);
16
+ override(flags: Partial<FlagsOf<ContextOf<NanoAdapter>>>): this;
17
+ }
@@ -0,0 +1,17 @@
1
+ import { Model } from "@decaf-ts/decorator-validation";
2
+ import { CouchDBRepository } from "@decaf-ts/for-couchdb";
3
+ import { NanoAdapter } from "./adapter.js";
4
+ import { Constructor } from "@decaf-ts/decoration";
5
+ import { ContextOf, FlagsOf } from "@decaf-ts/core";
6
+ /**
7
+ * @description Type for Nano database repositories
8
+ * @summary A specialized repository type for working with Nano databases, extending the base Repository
9
+ * with Nano-specific adapter, flags, and context types
10
+ * @template M - Type extending Model that this repository will manage
11
+ * @typedef {Repository<M, MangoQuery, NanoAdapter, NanoFlags, Context<NanoFlags>>} NanoRepository
12
+ * @memberOf module:for-nano
13
+ */
14
+ export declare class NanoRepository<M extends Model> extends CouchDBRepository<M, NanoAdapter> {
15
+ constructor(adapter: NanoAdapter, model: Constructor<M>, force?: boolean);
16
+ override(flags: Partial<FlagsOf<ContextOf<NanoAdapter>>>): this;
17
+ }