@decaf-ts/for-fabric 0.1.27 → 0.1.29
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.
- package/dist/for-fabric.cjs +1 -1
- package/dist/for-fabric.cjs.map +1 -1
- package/dist/for-fabric.js +1 -1
- package/dist/for-fabric.js.map +1 -1
- package/lib/bin/compile-indexes.cjs +22 -13
- package/lib/bin/compile-indexes.js.map +1 -1
- package/lib/client/FabricClientAdapter.cjs +38 -71
- package/lib/client/FabricClientAdapter.d.ts +27 -37
- package/lib/client/FabricClientAdapter.js.map +1 -1
- package/lib/client/FabricClientDispatch.cjs +6 -2
- package/lib/client/FabricClientDispatch.d.ts +4 -4
- package/lib/client/FabricClientDispatch.js.map +1 -1
- package/lib/client/FabricClientRepository.cjs +19 -5
- package/lib/client/FabricClientRepository.d.ts +1 -1
- package/lib/client/FabricClientRepository.js.map +1 -1
- package/lib/client/FabricClientStatement.cjs +72 -0
- package/lib/client/FabricClientStatement.d.ts +5 -1
- package/lib/client/FabricClientStatement.js.map +1 -1
- package/lib/client/constants.cjs +10 -0
- package/lib/client/constants.d.ts +2 -0
- package/lib/client/constants.js.map +1 -0
- package/lib/client/erc20/FabricERC20ClientRepository.cjs +48 -22
- package/lib/client/erc20/FabricERC20ClientRepository.js.map +1 -1
- package/lib/client/fabric-fs.d.ts +1 -1
- package/lib/client/indexes/generation.cjs +27 -49
- package/lib/client/indexes/generation.d.ts +1 -0
- package/lib/client/indexes/generation.js.map +1 -1
- package/lib/client/types.cjs +3 -0
- package/lib/client/types.d.ts +7 -0
- package/lib/client/types.js.map +1 -0
- package/lib/contract/Address.cjs +4 -0
- package/lib/contract/Address.js.map +1 -1
- package/lib/contracts/ContractAdapter.cjs +13 -3
- package/lib/contracts/ContractAdapter.d.ts +8 -1
- package/lib/contracts/ContractAdapter.js.map +1 -1
- package/lib/contracts/FabricContractRepository.cjs +62 -0
- package/lib/contracts/FabricContractRepository.d.ts +4 -2
- package/lib/contracts/FabricContractRepository.js.map +1 -1
- package/lib/contracts/FabricContractSequence.cjs +188 -0
- package/lib/contracts/FabricContractSequence.d.ts +86 -0
- package/lib/contracts/FabricContractSequence.js.map +1 -0
- package/lib/contracts/crud/crud-contract.cjs +8 -4
- package/lib/contracts/crud/crud-contract.js.map +1 -1
- package/lib/contracts/crud/serialized-crud-contract.cjs +26 -22
- package/lib/contracts/crud/serialized-crud-contract.d.ts +4 -4
- package/lib/contracts/crud/serialized-crud-contract.js.map +1 -1
- package/lib/contracts/index.cjs +1 -0
- package/lib/contracts/index.d.ts +1 -0
- package/lib/contracts/index.js.map +1 -1
- package/lib/esm/bin/compile-indexes.js +22 -10
- package/lib/esm/bin/compile-indexes.js.map +1 -1
- package/lib/esm/client/FabricClientAdapter.d.ts +27 -37
- package/lib/esm/client/FabricClientAdapter.js +38 -71
- package/lib/esm/client/FabricClientAdapter.js.map +1 -1
- package/lib/esm/client/FabricClientDispatch.d.ts +4 -4
- package/lib/esm/client/FabricClientDispatch.js +6 -2
- package/lib/esm/client/FabricClientDispatch.js.map +1 -1
- package/lib/esm/client/FabricClientRepository.d.ts +1 -1
- package/lib/esm/client/FabricClientRepository.js +19 -5
- package/lib/esm/client/FabricClientRepository.js.map +1 -1
- package/lib/esm/client/FabricClientStatement.d.ts +5 -1
- package/lib/esm/client/FabricClientStatement.js +73 -1
- package/lib/esm/client/FabricClientStatement.js.map +1 -1
- package/lib/esm/client/constants.d.ts +2 -0
- package/lib/esm/client/constants.js +7 -0
- package/lib/esm/client/constants.js.map +1 -0
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js +49 -23
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +1 -1
- package/lib/esm/client/fabric-fs.d.ts +1 -1
- package/lib/esm/client/indexes/generation.d.ts +1 -0
- package/lib/esm/client/indexes/generation.js +26 -16
- package/lib/esm/client/indexes/generation.js.map +1 -1
- package/lib/esm/client/types.d.ts +7 -0
- package/lib/esm/client/types.js +2 -0
- package/lib/esm/client/types.js.map +1 -0
- package/lib/esm/contract/Address.js +5 -1
- package/lib/esm/contract/Address.js.map +1 -1
- package/lib/esm/contracts/ContractAdapter.d.ts +8 -1
- package/lib/esm/contracts/ContractAdapter.js +14 -4
- package/lib/esm/contracts/ContractAdapter.js.map +1 -1
- package/lib/esm/contracts/FabricContractRepository.d.ts +4 -2
- package/lib/esm/contracts/FabricContractRepository.js +63 -1
- package/lib/esm/contracts/FabricContractRepository.js.map +1 -1
- package/lib/esm/contracts/FabricContractSequence.d.ts +86 -0
- package/lib/esm/contracts/FabricContractSequence.js +184 -0
- package/lib/esm/contracts/FabricContractSequence.js.map +1 -0
- package/lib/esm/contracts/crud/crud-contract.js +8 -4
- package/lib/esm/contracts/crud/crud-contract.js.map +1 -1
- package/lib/esm/contracts/crud/serialized-crud-contract.d.ts +4 -4
- package/lib/esm/contracts/crud/serialized-crud-contract.js +26 -22
- package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -1
- package/lib/esm/contracts/index.d.ts +1 -0
- package/lib/esm/contracts/index.js +1 -0
- package/lib/esm/contracts/index.js.map +1 -1
- package/lib/esm/shared/utils.d.ts +1 -1
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/shared/utils.d.ts +1 -1
- package/lib/version.cjs +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FabricContractSequence = void 0;
|
|
4
|
+
const core_1 = require("@decaf-ts/core");
|
|
5
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
6
|
+
/**
|
|
7
|
+
* @description Abstract base class for sequence generation
|
|
8
|
+
* @summary Provides a framework for generating sequential values (like primary keys) in the persistence layer.
|
|
9
|
+
* Implementations of this class handle the specifics of how sequences are stored and incremented in different
|
|
10
|
+
* database systems.
|
|
11
|
+
* @param {SequenceOptions} options - Configuration options for the sequence generator
|
|
12
|
+
* @class Sequence
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* // Example implementation for a specific database
|
|
16
|
+
* class PostgresSequence extends Sequence {
|
|
17
|
+
* constructor(options: SequenceOptions) {
|
|
18
|
+
* super(options);
|
|
19
|
+
* }
|
|
20
|
+
*
|
|
21
|
+
* async next(): Promise<number> {
|
|
22
|
+
* // Implementation to get next value from PostgreSQL sequence
|
|
23
|
+
* const result = await this.options.executor.raw(`SELECT nextval('${this.options.name}')`);
|
|
24
|
+
* return parseInt(result.rows[0].nextval);
|
|
25
|
+
* }
|
|
26
|
+
*
|
|
27
|
+
* async current(): Promise<number> {
|
|
28
|
+
* // Implementation to get current value from PostgreSQL sequence
|
|
29
|
+
* const result = await this.options.executor.raw(`SELECT currval('${this.options.name}')`);
|
|
30
|
+
* return parseInt(result.rows[0].currval);
|
|
31
|
+
* }
|
|
32
|
+
*
|
|
33
|
+
* async range(count: number): Promise<number[]> {
|
|
34
|
+
* // Implementation to get a range of values
|
|
35
|
+
* const values: number[] = [];
|
|
36
|
+
* for (let i = 0; i < count; i++) {
|
|
37
|
+
* values.push(await this.next());
|
|
38
|
+
* }
|
|
39
|
+
* return values;
|
|
40
|
+
* }
|
|
41
|
+
* }
|
|
42
|
+
*
|
|
43
|
+
* // Usage
|
|
44
|
+
* const sequence = new PostgresSequence({
|
|
45
|
+
* name: 'user_id_seq',
|
|
46
|
+
* executor: dbExecutor
|
|
47
|
+
* });
|
|
48
|
+
*
|
|
49
|
+
* const nextId = await sequence.next();
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
class FabricContractSequence extends core_1.Sequence {
|
|
53
|
+
/**
|
|
54
|
+
* @description Creates a new sequence instance
|
|
55
|
+
* @summary Protected constructor that initializes the sequence with the provided options
|
|
56
|
+
*/
|
|
57
|
+
constructor(options, adapter) {
|
|
58
|
+
super(options, adapter);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* @description Retrieves the current value of the sequence
|
|
62
|
+
* @summary Gets the current value of the sequence from storage. If the sequence
|
|
63
|
+
* doesn't exist yet, it returns the configured starting value.
|
|
64
|
+
* @return A promise that resolves to the current sequence value
|
|
65
|
+
*/
|
|
66
|
+
async current(...args) {
|
|
67
|
+
const contextArgs = await core_1.Context.args(db_decorators_1.OperationKeys.READ, core_1.SequenceModel, args, this.adapter);
|
|
68
|
+
const ctx = contextArgs.context;
|
|
69
|
+
const { name, startWith } = this.options;
|
|
70
|
+
try {
|
|
71
|
+
const sequence = await this.repo.read(name, ctx);
|
|
72
|
+
return this.parse(sequence.current);
|
|
73
|
+
}
|
|
74
|
+
catch (e) {
|
|
75
|
+
if (e instanceof db_decorators_1.NotFoundError) {
|
|
76
|
+
if (typeof startWith === "undefined")
|
|
77
|
+
throw new db_decorators_1.InternalError("Starting value is not defined for a non existing sequence");
|
|
78
|
+
try {
|
|
79
|
+
return this.parse(startWith);
|
|
80
|
+
}
|
|
81
|
+
catch (e) {
|
|
82
|
+
throw new db_decorators_1.InternalError(`Failed to parse initial value for sequence ${startWith}: ${e}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
throw new db_decorators_1.InternalError(`Failed to retrieve current value for sequence ${name}: ${e}`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* @description Increments the sequence value
|
|
90
|
+
* @summary Increases the current sequence value by the specified amount and persists
|
|
91
|
+
* the new value to storage. This method handles both numeric and BigInt sequence types.
|
|
92
|
+
* @param {string | number | bigint} current - The current value of the sequence
|
|
93
|
+
* @param {number} [count] - Optional amount to increment by, defaults to the sequence's incrementBy value
|
|
94
|
+
* @return A promise that resolves to the new sequence value after incrementing
|
|
95
|
+
*/
|
|
96
|
+
async increment(current, count, ctx) {
|
|
97
|
+
const { type, incrementBy, name } = this.options;
|
|
98
|
+
let next;
|
|
99
|
+
const toIncrementBy = count || incrementBy;
|
|
100
|
+
if (toIncrementBy % incrementBy !== 0)
|
|
101
|
+
throw new db_decorators_1.InternalError(`Value to increment does not consider the incrementBy setting: ${incrementBy}`);
|
|
102
|
+
const typeName = typeof type === "function" && type?.name
|
|
103
|
+
? type.name
|
|
104
|
+
: type;
|
|
105
|
+
switch (typeName) {
|
|
106
|
+
case Number.name:
|
|
107
|
+
next = this.parse(current) + toIncrementBy;
|
|
108
|
+
break;
|
|
109
|
+
case BigInt.name:
|
|
110
|
+
next = this.parse(current) + BigInt(toIncrementBy);
|
|
111
|
+
break;
|
|
112
|
+
case String.name:
|
|
113
|
+
next = this.parse(current);
|
|
114
|
+
break;
|
|
115
|
+
case "serial":
|
|
116
|
+
next = core_1.Serial.instance.generate(current);
|
|
117
|
+
break;
|
|
118
|
+
case "uuid":
|
|
119
|
+
next = core_1.UUID.instance.generate(current);
|
|
120
|
+
break;
|
|
121
|
+
default:
|
|
122
|
+
throw new db_decorators_1.InternalError("Should never happen");
|
|
123
|
+
}
|
|
124
|
+
let seq;
|
|
125
|
+
// const repo = this.repo.override({
|
|
126
|
+
// ignoredValidationProperties: ["updatedAt"],
|
|
127
|
+
// });
|
|
128
|
+
try {
|
|
129
|
+
seq = await this.repo.update(new core_1.SequenceModel({ id: name, current: next }), ctx);
|
|
130
|
+
}
|
|
131
|
+
catch (e) {
|
|
132
|
+
if (!(e instanceof db_decorators_1.NotFoundError)) {
|
|
133
|
+
throw e;
|
|
134
|
+
}
|
|
135
|
+
try {
|
|
136
|
+
seq = await this.repo.create(new core_1.SequenceModel({ id: name, current: next }), ctx);
|
|
137
|
+
}
|
|
138
|
+
catch (e) {
|
|
139
|
+
if (!(e instanceof db_decorators_1.ConflictError) || type !== "uuid")
|
|
140
|
+
throw e;
|
|
141
|
+
return this.increment(current, count, ctx); // retries uuids in case of conflict
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return seq.current;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* @description Gets the next value in the sequence
|
|
148
|
+
* @summary Retrieves the current value of the sequence and increments it by the
|
|
149
|
+
* configured increment amount. This is the main method used to get a new sequential value.
|
|
150
|
+
* @return A promise that resolves to the next value in the sequence
|
|
151
|
+
*/
|
|
152
|
+
async next(...argz) {
|
|
153
|
+
const contextArgs = await core_1.Context.args(db_decorators_1.OperationKeys.UPDATE, core_1.SequenceModel, argz, this.adapter);
|
|
154
|
+
const { context, args } = contextArgs;
|
|
155
|
+
const current = await this.current(...args);
|
|
156
|
+
return this.increment(current, undefined, context);
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* @description Generates a range of sequential values
|
|
160
|
+
* @summary Retrieves a specified number of sequential values from the sequence.
|
|
161
|
+
* This is useful when you need to allocate multiple IDs at once.
|
|
162
|
+
* The method increments the sequence by the total amount needed and returns all values in the range.
|
|
163
|
+
* @param {number} count - The number of sequential values to generate
|
|
164
|
+
* @return A promise that resolves to an array of sequential values
|
|
165
|
+
*/
|
|
166
|
+
async range(count, ...argz) {
|
|
167
|
+
const contextArgs = await core_1.Context.args(db_decorators_1.OperationKeys.UPDATE, core_1.SequenceModel, argz, this.adapter);
|
|
168
|
+
const { context, args } = contextArgs;
|
|
169
|
+
const current = (await this.current(...args));
|
|
170
|
+
const incrementBy = this.parse(this.options.incrementBy);
|
|
171
|
+
const next = await this.increment(current, this.parse(count) * incrementBy, context);
|
|
172
|
+
const range = [];
|
|
173
|
+
for (let i = 1; i <= count; i++) {
|
|
174
|
+
range.push(current + incrementBy * this.parse(i));
|
|
175
|
+
}
|
|
176
|
+
if (this.options.type === "uuid" || this.options.type === "serial")
|
|
177
|
+
throw new core_1.UnsupportedError(`type ${this.options.type} is currently not suppported for this adapter`);
|
|
178
|
+
const typeName = typeof this.options.type === "function" &&
|
|
179
|
+
this.options.type?.name
|
|
180
|
+
? this.options.type.name
|
|
181
|
+
: this.options.type;
|
|
182
|
+
if (range[range.length - 1] !== next && typeName !== "String")
|
|
183
|
+
throw new db_decorators_1.InternalError("Miscalculation of range");
|
|
184
|
+
return range;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
exports.FabricContractSequence = FabricContractSequence;
|
|
188
|
+
//# sourceMappingURL=FabricContractSequence.js.map
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Adapter, Context, MaybeContextualArg, Sequence, SequenceOptions } from "@decaf-ts/core";
|
|
2
|
+
/**
|
|
3
|
+
* @description Abstract base class for sequence generation
|
|
4
|
+
* @summary Provides a framework for generating sequential values (like primary keys) in the persistence layer.
|
|
5
|
+
* Implementations of this class handle the specifics of how sequences are stored and incremented in different
|
|
6
|
+
* database systems.
|
|
7
|
+
* @param {SequenceOptions} options - Configuration options for the sequence generator
|
|
8
|
+
* @class Sequence
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* // Example implementation for a specific database
|
|
12
|
+
* class PostgresSequence extends Sequence {
|
|
13
|
+
* constructor(options: SequenceOptions) {
|
|
14
|
+
* super(options);
|
|
15
|
+
* }
|
|
16
|
+
*
|
|
17
|
+
* async next(): Promise<number> {
|
|
18
|
+
* // Implementation to get next value from PostgreSQL sequence
|
|
19
|
+
* const result = await this.options.executor.raw(`SELECT nextval('${this.options.name}')`);
|
|
20
|
+
* return parseInt(result.rows[0].nextval);
|
|
21
|
+
* }
|
|
22
|
+
*
|
|
23
|
+
* async current(): Promise<number> {
|
|
24
|
+
* // Implementation to get current value from PostgreSQL sequence
|
|
25
|
+
* const result = await this.options.executor.raw(`SELECT currval('${this.options.name}')`);
|
|
26
|
+
* return parseInt(result.rows[0].currval);
|
|
27
|
+
* }
|
|
28
|
+
*
|
|
29
|
+
* async range(count: number): Promise<number[]> {
|
|
30
|
+
* // Implementation to get a range of values
|
|
31
|
+
* const values: number[] = [];
|
|
32
|
+
* for (let i = 0; i < count; i++) {
|
|
33
|
+
* values.push(await this.next());
|
|
34
|
+
* }
|
|
35
|
+
* return values;
|
|
36
|
+
* }
|
|
37
|
+
* }
|
|
38
|
+
*
|
|
39
|
+
* // Usage
|
|
40
|
+
* const sequence = new PostgresSequence({
|
|
41
|
+
* name: 'user_id_seq',
|
|
42
|
+
* executor: dbExecutor
|
|
43
|
+
* });
|
|
44
|
+
*
|
|
45
|
+
* const nextId = await sequence.next();
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare class FabricContractSequence extends Sequence {
|
|
49
|
+
/**
|
|
50
|
+
* @description Creates a new sequence instance
|
|
51
|
+
* @summary Protected constructor that initializes the sequence with the provided options
|
|
52
|
+
*/
|
|
53
|
+
constructor(options: SequenceOptions, adapter: Adapter<any, any, any, any>);
|
|
54
|
+
/**
|
|
55
|
+
* @description Retrieves the current value of the sequence
|
|
56
|
+
* @summary Gets the current value of the sequence from storage. If the sequence
|
|
57
|
+
* doesn't exist yet, it returns the configured starting value.
|
|
58
|
+
* @return A promise that resolves to the current sequence value
|
|
59
|
+
*/
|
|
60
|
+
current(...args: MaybeContextualArg<any>): Promise<string | number | bigint>;
|
|
61
|
+
/**
|
|
62
|
+
* @description Increments the sequence value
|
|
63
|
+
* @summary Increases the current sequence value by the specified amount and persists
|
|
64
|
+
* the new value to storage. This method handles both numeric and BigInt sequence types.
|
|
65
|
+
* @param {string | number | bigint} current - The current value of the sequence
|
|
66
|
+
* @param {number} [count] - Optional amount to increment by, defaults to the sequence's incrementBy value
|
|
67
|
+
* @return A promise that resolves to the new sequence value after incrementing
|
|
68
|
+
*/
|
|
69
|
+
protected increment(current: string | number | bigint, count: number | undefined, ctx: Context<any>): Promise<string | number | bigint>;
|
|
70
|
+
/**
|
|
71
|
+
* @description Gets the next value in the sequence
|
|
72
|
+
* @summary Retrieves the current value of the sequence and increments it by the
|
|
73
|
+
* configured increment amount. This is the main method used to get a new sequential value.
|
|
74
|
+
* @return A promise that resolves to the next value in the sequence
|
|
75
|
+
*/
|
|
76
|
+
next(...argz: MaybeContextualArg<any>): Promise<number | string | bigint>;
|
|
77
|
+
/**
|
|
78
|
+
* @description Generates a range of sequential values
|
|
79
|
+
* @summary Retrieves a specified number of sequential values from the sequence.
|
|
80
|
+
* This is useful when you need to allocate multiple IDs at once.
|
|
81
|
+
* The method increments the sequence by the total amount needed and returns all values in the range.
|
|
82
|
+
* @param {number} count - The number of sequential values to generate
|
|
83
|
+
* @return A promise that resolves to an array of sequential values
|
|
84
|
+
*/
|
|
85
|
+
range(count: number, ...argz: MaybeContextualArg<any>): Promise<(number | string | bigint)[]>;
|
|
86
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FabricContractSequence.js","sourceRoot":"","sources":["../../src/contracts/FabricContractSequence.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,19 +75,23 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
|
|
|
75
75
|
this.repo = core_1.Repository.forModel(clazz);
|
|
76
76
|
}
|
|
77
77
|
async listBy(ctx, key, order, ...args) {
|
|
78
|
-
const { ctxArgs } = await this.logCtx([...args, ctx], this.listBy);
|
|
78
|
+
const { ctxArgs, log } = await this.logCtx([...args, ctx], this.listBy);
|
|
79
|
+
log.info(`Running listBy key ${key}, order ${order} and args ${ctxArgs}`);
|
|
79
80
|
return this.repo.listBy(key, order, ...ctxArgs);
|
|
80
81
|
}
|
|
81
82
|
async paginateBy(ctx, key, order, size, ...args) {
|
|
82
|
-
const { ctxArgs } = await this.logCtx([...args, ctx], this.paginateBy);
|
|
83
|
+
const { ctxArgs, log } = await this.logCtx([...args, ctx], this.paginateBy);
|
|
84
|
+
log.info(`Running paginateBy key ${key}, order ${order} with size ${size} and args ${ctxArgs}`);
|
|
83
85
|
return this.repo.paginateBy(key, order, size, ...ctxArgs);
|
|
84
86
|
}
|
|
85
87
|
async findOneBy(ctx, key, value, ...args) {
|
|
86
|
-
const { ctxArgs } = await this.logCtx([...args, ctx], this.findOneBy);
|
|
88
|
+
const { ctxArgs, log } = await this.logCtx([...args, ctx], this.findOneBy);
|
|
89
|
+
log.info(`Running findOneBy key ${key}, value: ${value} with args ${ctxArgs}`);
|
|
87
90
|
return this.repo.findOneBy(key, value, ...ctxArgs);
|
|
88
91
|
}
|
|
89
92
|
async statement(ctx, method, ...args) {
|
|
90
|
-
const { ctxArgs } = await this.logCtx([...args, ctx], this.statement);
|
|
93
|
+
const { ctxArgs, log } = await this.logCtx([...args, ctx], this.statement);
|
|
94
|
+
log.info(`Running statement ${method} with args ${ctxArgs}`);
|
|
91
95
|
return this.repo.statement(method, ...ctxArgs);
|
|
92
96
|
}
|
|
93
97
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud-contract.js","sourceRoot":"","sources":["../../../src/contracts/crud/crud-contract.ts"],"names":[],"mappings":";;;AAAA,8DAA2D;AAC3D,6DAA+D;AAC/D,yEAAmE;AACnE,yCAQwB;AAExB,wFAA+E;AAI/E,8DAA2D;AAC3D,2DAKiC;AAGjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAsB,kBACpB,SAAQ,8BAAQ;IAGhB;;OAEG;aACc,YAAO,GAA0B,IAAI,uCAAqB,EAAE,AAArD,CAAsD;aAIpD,eAAU,GAAG,IAAI,iDAAuB,EAAE,AAAhC,CAAiC;IAIrE;;;;;OAKG;IACH,YACE,IAAY,EACO,KAAqB;QAExC,KAAK,CAAC,IAAI,CAAC,CAAC;QAFO,UAAK,GAAL,KAAK,CAAgB;QAVhC,gBAAW,GAAY,KAAK,CAAC;QAarC,IAAI,CAAC,IAAI,GAAG,iBAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,MAAM,CACV,GAAgC,EAChC,GAAqB,EACrB,KAAa,EACb,GAAG,IAAW;QAEd,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"crud-contract.js","sourceRoot":"","sources":["../../../src/contracts/crud/crud-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -73,36 +73,39 @@ class SerializedCrudContract extends crud_contract_1.FabricCrudContract {
|
|
|
73
73
|
log.info(`Updating ${modelList.length} entries to the table`);
|
|
74
74
|
return JSON.stringify((await super.updateAll(ctx, modelList)).map((m) => this.serialize(m)));
|
|
75
75
|
}
|
|
76
|
-
async statement(context, method,
|
|
77
|
-
const { ctx, log } = await this.logCtx([
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
});
|
|
76
|
+
async statement(context, method, args) {
|
|
77
|
+
const { ctx, log } = await this.logCtx([context], this.statement);
|
|
78
|
+
try {
|
|
79
|
+
args = JSON.parse(args);
|
|
80
|
+
}
|
|
81
|
+
catch (e) {
|
|
82
|
+
throw new db_decorators_1.SerializationError(`Invalid args: ${e}`);
|
|
83
|
+
}
|
|
84
|
+
if (!Array.isArray(args))
|
|
85
|
+
throw new db_decorators_1.SerializationError(`Invalid args: ${JSON.stringify(args)}. must be an array`);
|
|
87
86
|
log.info(`calling prepared statement ${method}`);
|
|
88
|
-
log.
|
|
87
|
+
log.info(`with args ${args}`);
|
|
89
88
|
return JSON.stringify(await super.statement(ctx, method, ...args));
|
|
90
89
|
}
|
|
91
|
-
async listBy(context, key, order
|
|
92
|
-
const { ctx } = await this.logCtx([
|
|
90
|
+
async listBy(context, key, order) {
|
|
91
|
+
const { ctx, log } = await this.logCtx([context], this.listBy);
|
|
92
|
+
log.info(`Executing listBy with key ${key} and order ${order}`);
|
|
93
93
|
return JSON.stringify(await super.listBy(ctx, key, order));
|
|
94
94
|
}
|
|
95
|
-
async paginateBy(context, key, order, size
|
|
96
|
-
const { ctx } = await this.logCtx([
|
|
95
|
+
async paginateBy(context, key, order, size) {
|
|
96
|
+
const { ctx, log } = await this.logCtx([context], this.paginateBy);
|
|
97
|
+
log.info(`Executing paginateBy with key ${key} and order ${order}`);
|
|
97
98
|
return JSON.stringify(await super.paginateBy(ctx, key, order, size));
|
|
98
99
|
}
|
|
99
100
|
async findOneBy(context, key, value, ...args) {
|
|
100
|
-
const { ctx } = await this.logCtx([...args, context], this.
|
|
101
|
+
const { ctx, log } = await this.logCtx([...args, context], this.findOneBy);
|
|
102
|
+
log.info(`Executing findOneBy with key ${key} and value ${value}`);
|
|
101
103
|
return JSON.stringify(await super.findOneBy(ctx, key, value, ...args));
|
|
102
104
|
}
|
|
103
105
|
// @Transaction(false)
|
|
104
|
-
async query(context, condition, orderBy, order, limit, skip
|
|
105
|
-
const { ctx } = await this.logCtx([context], this.query);
|
|
106
|
+
async query(context, condition, orderBy, order, limit, skip) {
|
|
107
|
+
const { ctx, log } = await this.logCtx([context], this.query);
|
|
108
|
+
log.info(`Executing query orderedBy ${orderBy} and order ${order}`);
|
|
106
109
|
let cond;
|
|
107
110
|
try {
|
|
108
111
|
cond = core_1.Condition.from(JSON.parse(condition));
|
|
@@ -110,7 +113,8 @@ class SerializedCrudContract extends crud_contract_1.FabricCrudContract {
|
|
|
110
113
|
catch (e) {
|
|
111
114
|
throw new db_decorators_1.SerializationError(`Invalid condition: ${e}`);
|
|
112
115
|
}
|
|
113
|
-
|
|
116
|
+
log.info(`Condition: ${JSON.stringify(cond)}`);
|
|
117
|
+
return JSON.stringify(await super.query(ctx, cond, orderBy, order, limit, skip));
|
|
114
118
|
}
|
|
115
119
|
//
|
|
116
120
|
// // @Transaction(false)
|
|
@@ -195,13 +199,13 @@ __decorate([
|
|
|
195
199
|
__decorate([
|
|
196
200
|
(0, fabric_contract_api_1.Transaction)(false),
|
|
197
201
|
__metadata("design:type", Function),
|
|
198
|
-
__metadata("design:paramtypes", [fabric_contract_api_1.Context, String, String
|
|
202
|
+
__metadata("design:paramtypes", [fabric_contract_api_1.Context, String, String]),
|
|
199
203
|
__metadata("design:returntype", Promise)
|
|
200
204
|
], SerializedCrudContract.prototype, "listBy", null);
|
|
201
205
|
__decorate([
|
|
202
206
|
(0, fabric_contract_api_1.Transaction)(false),
|
|
203
207
|
__metadata("design:type", Function),
|
|
204
|
-
__metadata("design:paramtypes", [fabric_contract_api_1.Context, String, String, Number
|
|
208
|
+
__metadata("design:paramtypes", [fabric_contract_api_1.Context, String, String, Number]),
|
|
205
209
|
__metadata("design:returntype", Promise)
|
|
206
210
|
], SerializedCrudContract.prototype, "paginateBy", null);
|
|
207
211
|
__decorate([
|
|
@@ -23,11 +23,11 @@ export declare class SerializedCrudContract<M extends Model> extends FabricCrudC
|
|
|
23
23
|
deleteAll(context: Ctx, keys: string): Promise<string>;
|
|
24
24
|
readAll(context: Ctx, keys: string): Promise<string>;
|
|
25
25
|
updateAll(context: Ctx, models: string): Promise<string>;
|
|
26
|
-
statement(context: Ctx, method: string,
|
|
27
|
-
listBy(context: Ctx, key: string, order: string
|
|
28
|
-
paginateBy(context: Ctx, key: string, order: string, size: number
|
|
26
|
+
statement(context: Ctx, method: string, args: string): Promise<string>;
|
|
27
|
+
listBy(context: Ctx, key: string, order: string): Promise<string>;
|
|
28
|
+
paginateBy(context: Ctx, key: string, order: string, size: number): Promise<string>;
|
|
29
29
|
findOneBy(context: Ctx, key: string, value: string, ...args: string[]): Promise<string>;
|
|
30
|
-
query(context: Ctx, condition: string, orderBy: string, order: string, limit?: number, skip?: number
|
|
30
|
+
query(context: Ctx, condition: string, orderBy: string, order: string, limit?: number, skip?: number): Promise<string>;
|
|
31
31
|
init(ctx: Ctx): Promise<void>;
|
|
32
32
|
healthcheck(context: Ctx): Promise<string>;
|
|
33
33
|
createAll(context: Ctx, models: string): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialized-crud-contract.js","sourceRoot":"","sources":["../../../src/contracts/crud/serialized-crud-contract.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"serialized-crud-contract.js","sourceRoot":"","sources":["../../../src/contracts/crud/serialized-crud-contract.ts"],"names":[],"mappings":"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"}
|
package/lib/contracts/index.cjs
CHANGED
|
@@ -26,6 +26,7 @@ __exportStar(require("./ContractAdapter.cjs"), exports);
|
|
|
26
26
|
__exportStar(require("./ContractContext.cjs"), exports);
|
|
27
27
|
__exportStar(require("./FabricContractRepository.cjs"), exports);
|
|
28
28
|
__exportStar(require("./FabricContractRepositoryObservableHandler.cjs"), exports);
|
|
29
|
+
__exportStar(require("./FabricContractSequence.cjs"), exports);
|
|
29
30
|
__exportStar(require("./logging.cjs"), exports);
|
|
30
31
|
__exportStar(require("./types.cjs"), exports);
|
|
31
32
|
//# sourceMappingURL=index.js.map
|
package/lib/contracts/index.d.ts
CHANGED
|
@@ -10,5 +10,6 @@ export * from "./ContractAdapter";
|
|
|
10
10
|
export * from "./ContractContext";
|
|
11
11
|
export * from "./FabricContractRepository";
|
|
12
12
|
export * from "./FabricContractRepositoryObservableHandler";
|
|
13
|
+
export * from "./FabricContractSequence";
|
|
13
14
|
export * from "./logging";
|
|
14
15
|
export * from "./types";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,mDAAuB;AACvB,oDAAwB;AACxB,wDAAkC;AAClC,wDAAkC;AAClC,iEAA2C;AAC3C,kFAA4D;AAC5D,gDAA0B;AAC1B,8CAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,mDAAuB;AACvB,oDAAwB;AACxB,wDAAkC;AAClC,wDAAkC;AAClC,iEAA2C;AAC3C,kFAA4D;AAC5D,+DAAyC;AACzC,gDAA0B;AAC1B,8CAAwB"}
|
|
@@ -1,25 +1,37 @@
|
|
|
1
|
-
import path from "path";
|
|
2
1
|
import { Command } from "commander";
|
|
3
2
|
import { InternalError } from "@decaf-ts/db-decorators";
|
|
4
|
-
import {
|
|
3
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
4
|
+
import { generateModelIndexes, readModelFile, readModelFolders, writeIndexes, } from "./../client/indexes/index.js";
|
|
5
|
+
import { Logging } from "@decaf-ts/logging";
|
|
5
6
|
const program = new Command();
|
|
6
7
|
program
|
|
7
8
|
.command("compile-indexes")
|
|
9
|
+
.option("--file [String]", "the model file")
|
|
10
|
+
.option("--folder [String]", "the model folder")
|
|
11
|
+
.option("--outDir <String>", "the outdir. should match your contract folder")
|
|
8
12
|
.description("Creates a the JSON index files to be submitted to along with the contract")
|
|
9
|
-
.option("--file", "path to the Model Class file", false)
|
|
10
|
-
.option("--folder", "path to the folder with Model Class Files", false)
|
|
11
|
-
.option("--dev", "compiles contracts without minification", false)
|
|
12
|
-
.option("--debug", "makes attaching debugger possible", false)
|
|
13
13
|
.action(async (options) => {
|
|
14
14
|
// eslint-disable-next-line prefer-const
|
|
15
|
-
let { file, folder } = options;
|
|
15
|
+
let { file, folder, outDir } = options;
|
|
16
|
+
const log = Logging.get();
|
|
17
|
+
const models = [];
|
|
16
18
|
if (file) {
|
|
17
|
-
|
|
19
|
+
models.push(...readModelFile(file));
|
|
18
20
|
}
|
|
21
|
+
if (folder) {
|
|
22
|
+
log.info(`Loading models from ${folder}...`);
|
|
23
|
+
models.push(...(await readModelFolders(folder)));
|
|
24
|
+
}
|
|
25
|
+
const result = {};
|
|
19
26
|
if (!file && !folder)
|
|
20
27
|
throw new InternalError(`Must pass a file or a folder`);
|
|
21
|
-
const
|
|
22
|
-
|
|
28
|
+
for (const m of models) {
|
|
29
|
+
log.verbose(`Extracting indexes for table ${Model.tableName(m)}`);
|
|
30
|
+
generateModelIndexes(m, result);
|
|
31
|
+
}
|
|
32
|
+
log.verbose(`Found ${Object.keys(result).length} indexes to create`);
|
|
33
|
+
log.debug(`Indexes: ${JSON.stringify(result)}`);
|
|
34
|
+
writeIndexes(Object.values(result), outDir);
|
|
23
35
|
});
|
|
24
36
|
program.parse(process.argv);
|
|
25
37
|
//# sourceMappingURL=compile-indexes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile-indexes.js","sourceRoot":"","sources":["../../../src/bin/compile-indexes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compile-indexes.js","sourceRoot":"","sources":["../../../src/bin/compile-indexes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,YAAY,GACb,qCAAgC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,OAAO,CAAC,iBAAiB,CAAC;KAC1B,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;KAC3C,MAAM,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;KAC/C,MAAM,CAAC,mBAAmB,EAAE,+CAA+C,CAAC;KAC5E,WAAW,CACV,2EAA2E,CAC5E;KACA,MAAM,CAAC,KAAK,EAAE,OAAY,EAAE,EAAE;IAC7B,wCAAwC;IACxC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACvC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,MAAM,MAAM,GAAU,EAAE,CAAC;IACzB,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,GAAG,CAAC,IAAI,CAAC,uBAAuB,MAAM,KAAK,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,MAAM,GAAwB,EAAE,CAAC;IAEvC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;QAClB,MAAM,IAAI,aAAa,CAAC,8BAA8B,CAAC,CAAC;IAE1D,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,GAAG,CAAC,OAAO,CAAC,gCAAgC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClE,oBAAoB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IACD,GAAG,CAAC,OAAO,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,oBAAoB,CAAC,CAAC;IACrE,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChD,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|