@decaf-ts/core 0.4.1 → 0.5.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.
- package/dist/core.cjs +179 -168
- package/dist/core.esm.cjs +134 -134
- package/lib/esm/identity/decorators.d.ts +3 -2
- package/lib/esm/identity/decorators.js +7 -5
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/interfaces/ErrorParser.d.ts +4 -0
- package/lib/esm/interfaces/ErrorParser.js +2 -0
- package/lib/esm/interfaces/index.d.ts +1 -0
- package/lib/esm/interfaces/index.js +2 -1
- package/lib/esm/model/construction.d.ts +13 -10
- package/lib/esm/model/construction.js +8 -3
- package/lib/esm/model/decorators.d.ts +9 -8
- package/lib/esm/model/decorators.js +34 -14
- package/lib/esm/model/index.d.ts +1 -1
- package/lib/esm/model/index.js +3 -2
- package/lib/esm/persistence/Adapter.d.ts +14 -13
- package/lib/esm/persistence/Adapter.js +37 -26
- package/lib/esm/query/Clause.d.ts +2 -2
- package/lib/esm/query/ClauseFactory.d.ts +3 -3
- package/lib/esm/query/ClauseFactory.js +1 -1
- package/lib/esm/query/Paginator.d.ts +2 -2
- package/lib/esm/query/Paginator.js +4 -3
- package/lib/esm/query/Query.d.ts +1 -1
- package/lib/esm/query/Query.js +1 -1
- package/lib/esm/query/Statement.d.ts +3 -3
- package/lib/esm/query/Statement.js +1 -1
- package/lib/esm/query/errors.js +3 -3
- package/lib/esm/ram/RamAdapter.d.ts +41 -0
- package/lib/esm/ram/RamAdapter.js +230 -0
- package/lib/esm/ram/RamClauseFactory.d.ts +17 -0
- package/lib/esm/ram/RamClauseFactory.js +92 -0
- package/lib/esm/ram/RamContext.d.ts +5 -0
- package/lib/esm/ram/RamContext.js +7 -0
- package/lib/esm/ram/RamPaginator.d.ts +7 -0
- package/lib/esm/ram/RamPaginator.js +20 -0
- package/lib/esm/ram/RamSequence.d.ts +50 -0
- package/lib/esm/ram/RamSequence.js +130 -0
- package/lib/esm/ram/RamStatement.d.ts +8 -0
- package/lib/esm/ram/RamStatement.js +18 -0
- package/lib/esm/ram/clauses/FromClause.d.ts +7 -0
- package/lib/esm/ram/clauses/FromClause.js +11 -0
- package/lib/esm/ram/clauses/InsertClause.d.ts +7 -0
- package/lib/esm/ram/clauses/InsertClause.js +13 -0
- package/lib/esm/ram/clauses/OrderByClause.d.ts +7 -0
- package/lib/esm/ram/clauses/OrderByClause.js +39 -0
- package/lib/esm/ram/clauses/SelectClause.d.ts +7 -0
- package/lib/esm/ram/clauses/SelectClause.js +16 -0
- package/lib/esm/ram/clauses/ValuesClause.d.ts +7 -0
- package/lib/esm/ram/clauses/ValuesClause.js +12 -0
- package/lib/esm/ram/clauses/WhereClause.d.ts +7 -0
- package/lib/esm/ram/clauses/WhereClause.js +11 -0
- package/lib/esm/ram/clauses/index.d.ts +6 -0
- package/lib/esm/ram/clauses/index.js +7 -0
- package/lib/esm/ram/index.d.ts +9 -0
- package/lib/esm/ram/index.js +10 -0
- package/lib/esm/ram/model/RamSequence.d.ts +20 -0
- package/lib/esm/ram/model/RamSequence.js +33 -0
- package/lib/esm/ram/model/index.d.ts +1 -0
- package/lib/esm/ram/model/index.js +2 -0
- package/lib/esm/ram/types.d.ts +17 -0
- package/lib/esm/ram/types.js +2 -0
- package/lib/esm/repository/Repository.d.ts +6 -3
- package/lib/esm/repository/Repository.js +27 -15
- package/lib/esm/repository/errors.d.ts +6 -0
- package/lib/esm/repository/errors.js +12 -2
- package/lib/esm/repository/index.d.ts +0 -1
- package/lib/esm/repository/index.js +1 -2
- package/lib/identity/decorators.cjs +10 -8
- package/lib/identity/decorators.d.ts +3 -2
- package/lib/identity/index.cjs +1 -1
- package/lib/identity/utils.cjs +3 -3
- package/lib/index.cjs +2 -2
- package/lib/index.d.ts +1 -1
- package/lib/interfaces/ErrorParser.cjs +3 -0
- package/lib/interfaces/ErrorParser.d.ts +4 -0
- package/lib/interfaces/index.cjs +2 -1
- package/lib/interfaces/index.d.ts +1 -0
- package/lib/model/IdentifiedBaseModel.cjs +1 -1
- package/lib/model/construction.cjs +11 -6
- package/lib/model/construction.d.ts +13 -10
- package/lib/model/decorators.cjs +39 -19
- package/lib/model/decorators.d.ts +9 -8
- package/lib/model/index.cjs +3 -2
- package/lib/model/index.d.ts +1 -1
- package/lib/persistence/Adapter.cjs +37 -26
- package/lib/persistence/Adapter.d.ts +14 -13
- package/lib/persistence/Sequence.cjs +2 -2
- package/lib/persistence/decorators.cjs +1 -1
- package/lib/persistence/index.cjs +1 -1
- package/lib/query/Clause.cjs +1 -1
- package/lib/query/Clause.d.ts +2 -2
- package/lib/query/ClauseFactory.cjs +1 -1
- package/lib/query/ClauseFactory.d.ts +3 -3
- package/lib/query/Condition.cjs +1 -1
- package/lib/query/Paginator.cjs +4 -3
- package/lib/query/Paginator.d.ts +2 -2
- package/lib/query/Query.cjs +1 -1
- package/lib/query/Query.d.ts +1 -1
- package/lib/query/Statement.cjs +3 -3
- package/lib/query/Statement.d.ts +3 -3
- package/lib/query/clauses/FromClause.cjs +3 -3
- package/lib/query/clauses/GroupByClause.cjs +2 -2
- package/lib/query/clauses/InsertClause.cjs +3 -3
- package/lib/query/clauses/LimitClause.cjs +2 -2
- package/lib/query/clauses/OffsetClause.cjs +2 -2
- package/lib/query/clauses/OrderByClause.cjs +2 -2
- package/lib/query/clauses/SelectClause.cjs +2 -2
- package/lib/query/clauses/SelectorBasedClause.cjs +2 -2
- package/lib/query/clauses/ValuesClause.cjs +3 -3
- package/lib/query/clauses/WhereClause.cjs +4 -4
- package/lib/query/clauses/index.cjs +1 -1
- package/lib/query/errors.cjs +3 -3
- package/lib/query/index.cjs +1 -1
- package/lib/ram/RamAdapter.cjs +268 -0
- package/lib/ram/RamAdapter.d.ts +41 -0
- package/lib/ram/RamClauseFactory.cjs +96 -0
- package/lib/ram/RamClauseFactory.d.ts +17 -0
- package/lib/ram/RamContext.cjs +11 -0
- package/lib/ram/RamContext.d.ts +5 -0
- package/lib/ram/RamPaginator.cjs +24 -0
- package/lib/ram/RamPaginator.d.ts +7 -0
- package/lib/ram/RamSequence.cjs +135 -0
- package/lib/ram/RamSequence.d.ts +50 -0
- package/lib/ram/RamStatement.cjs +22 -0
- package/lib/ram/RamStatement.d.ts +8 -0
- package/lib/ram/clauses/FromClause.cjs +15 -0
- package/lib/ram/clauses/FromClause.d.ts +7 -0
- package/lib/ram/clauses/InsertClause.cjs +17 -0
- package/lib/ram/clauses/InsertClause.d.ts +7 -0
- package/lib/ram/clauses/OrderByClause.cjs +43 -0
- package/lib/ram/clauses/OrderByClause.d.ts +7 -0
- package/lib/ram/clauses/SelectClause.cjs +20 -0
- package/lib/ram/clauses/SelectClause.d.ts +7 -0
- package/lib/ram/clauses/ValuesClause.cjs +16 -0
- package/lib/ram/clauses/ValuesClause.d.ts +7 -0
- package/lib/ram/clauses/WhereClause.cjs +15 -0
- package/lib/ram/clauses/WhereClause.d.ts +7 -0
- package/lib/ram/clauses/index.cjs +23 -0
- package/lib/ram/clauses/index.d.ts +6 -0
- package/lib/ram/index.cjs +26 -0
- package/lib/ram/index.d.ts +9 -0
- package/lib/ram/model/RamSequence.cjs +36 -0
- package/lib/ram/model/RamSequence.d.ts +20 -0
- package/lib/ram/model/index.cjs +18 -0
- package/lib/ram/model/index.d.ts +1 -0
- package/lib/ram/types.cjs +3 -0
- package/lib/ram/types.d.ts +17 -0
- package/lib/repository/Repository.cjs +32 -20
- package/lib/repository/Repository.d.ts +6 -3
- package/lib/repository/decorators.cjs +1 -1
- package/lib/repository/errors.cjs +15 -3
- package/lib/repository/errors.d.ts +6 -0
- package/lib/repository/index.cjs +1 -2
- package/lib/repository/index.d.ts +0 -1
- package/lib/repository/injectables.cjs +3 -3
- package/lib/repository/utils.cjs +3 -3
- package/lib/validators/ClauseSequenceValidator.cjs +5 -5
- package/lib/validators/decorators.cjs +2 -2
- package/lib/validators/index.cjs +1 -1
- package/package.json +10 -3
- package/lib/esm/model/User.d.ts +0 -9
- package/lib/esm/model/User.js +0 -34
- package/lib/esm/repository/Context.d.ts +0 -10
- package/lib/esm/repository/Context.js +0 -12
- package/lib/model/User.cjs +0 -37
- package/lib/model/User.d.ts +0 -9
- package/lib/repository/Context.cjs +0 -16
- package/lib/repository/Context.d.ts +0 -10
@@ -0,0 +1,268 @@
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
19
|
+
var ownKeys = function(o) {
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
21
|
+
var ar = [];
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
23
|
+
return ar;
|
24
|
+
};
|
25
|
+
return ownKeys(o);
|
26
|
+
};
|
27
|
+
return function (mod) {
|
28
|
+
if (mod && mod.__esModule) return mod;
|
29
|
+
var result = {};
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
31
|
+
__setModuleDefault(result, mod);
|
32
|
+
return result;
|
33
|
+
};
|
34
|
+
})();
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
36
|
+
exports.RamAdapter = void 0;
|
37
|
+
exports.createdByOnRamCreateUpdate = createdByOnRamCreateUpdate;
|
38
|
+
const RamStatement_1 = require("./RamStatement.cjs");
|
39
|
+
const RamClauseFactory_1 = require("./RamClauseFactory.cjs");
|
40
|
+
const crypto = __importStar(require("node:crypto"));
|
41
|
+
const RamContext_1 = require("./RamContext.cjs");
|
42
|
+
const Repository_1 = require("./../repository/Repository.cjs");
|
43
|
+
const errors_1 = require("./../persistence/errors.cjs");
|
44
|
+
const persistence_1 = require("./../persistence/index.cjs");
|
45
|
+
const Paginator_1 = require("./../query/Paginator.cjs");
|
46
|
+
const query_1 = require("./../query/index.cjs");
|
47
|
+
const transactional_decorators_1 = require("@decaf-ts/transactional-decorators");
|
48
|
+
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
49
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
50
|
+
const RamSequence_1 = require("./RamSequence.cjs");
|
51
|
+
async function createdByOnRamCreateUpdate(context, data, key, model) {
|
52
|
+
const uuid = context.get("UUID");
|
53
|
+
if (!uuid)
|
54
|
+
throw new errors_1.UnsupportedError("This adapter does not support user identification");
|
55
|
+
model[key] = uuid;
|
56
|
+
}
|
57
|
+
const createdByKey = Repository_1.Repository.key(persistence_1.PersistenceKeys.CREATED_BY);
|
58
|
+
const updatedByKey = Repository_1.Repository.key(persistence_1.PersistenceKeys.UPDATED_BY);
|
59
|
+
decorator_validation_1.Decoration.flavouredAs("ram")
|
60
|
+
.for(createdByKey)
|
61
|
+
.define((0, db_decorators_1.onCreate)(createdByOnRamCreateUpdate), (0, decorator_validation_1.propMetadata)(createdByKey, {}))
|
62
|
+
.apply();
|
63
|
+
decorator_validation_1.Decoration.flavouredAs("ram")
|
64
|
+
.for(updatedByKey)
|
65
|
+
.define((0, db_decorators_1.onCreate)(createdByOnRamCreateUpdate), (0, decorator_validation_1.propMetadata)(updatedByKey, {}))
|
66
|
+
.apply();
|
67
|
+
class RamAdapter extends persistence_1.Adapter {
|
68
|
+
constructor(flavour = "ram") {
|
69
|
+
super({}, flavour);
|
70
|
+
this.indexes = {};
|
71
|
+
this.lock = new transactional_decorators_1.Lock();
|
72
|
+
this.sequences = {};
|
73
|
+
}
|
74
|
+
async context(operation, overrides, model,
|
75
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
76
|
+
...args) {
|
77
|
+
return new RamContext_1.RamContext(Object.assign({}, db_decorators_1.DefaultRepositoryFlags, overrides, {
|
78
|
+
affectedTables: [model.name],
|
79
|
+
writeOperation: operation !== db_decorators_1.OperationKeys.READ,
|
80
|
+
timestamp: new Date(),
|
81
|
+
operation: operation,
|
82
|
+
UUID: crypto.randomUUID(),
|
83
|
+
}));
|
84
|
+
}
|
85
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
86
|
+
async initialize(...args) {
|
87
|
+
return Promise.resolve(undefined);
|
88
|
+
}
|
89
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
90
|
+
async index(...models) {
|
91
|
+
return Promise.resolve(undefined);
|
92
|
+
}
|
93
|
+
prepare(model, pk) {
|
94
|
+
const prepared = super.prepare(model, pk);
|
95
|
+
delete prepared.record[pk];
|
96
|
+
return prepared;
|
97
|
+
}
|
98
|
+
revert(obj, clazz, pk, id) {
|
99
|
+
const res = super.revert(obj, clazz, pk, id);
|
100
|
+
return res;
|
101
|
+
}
|
102
|
+
async create(tableName, id, model) {
|
103
|
+
await this.lock.acquire();
|
104
|
+
if (!this.native[tableName])
|
105
|
+
this.native[tableName] = {};
|
106
|
+
if (id in this.native[tableName])
|
107
|
+
throw new db_decorators_1.ConflictError(`Record with id ${id} already exists in table ${tableName}`);
|
108
|
+
this.native[tableName][id] = model;
|
109
|
+
this.lock.release();
|
110
|
+
return model;
|
111
|
+
}
|
112
|
+
async read(tableName, id) {
|
113
|
+
if (!(tableName in this.native))
|
114
|
+
throw new db_decorators_1.NotFoundError(`Table ${tableName} not found`);
|
115
|
+
if (!(id in this.native[tableName]))
|
116
|
+
throw new db_decorators_1.NotFoundError(`Record with id ${id} not found in table ${tableName}`);
|
117
|
+
return this.native[tableName][id];
|
118
|
+
}
|
119
|
+
async update(tableName, id, model) {
|
120
|
+
await this.lock.acquire();
|
121
|
+
if (!(tableName in this.native))
|
122
|
+
throw new db_decorators_1.NotFoundError(`Table ${tableName} not found`);
|
123
|
+
if (!(id in this.native[tableName]))
|
124
|
+
throw new db_decorators_1.NotFoundError(`Record with id ${id} not found in table ${tableName}`);
|
125
|
+
this.native[tableName][id] = model;
|
126
|
+
this.lock.release();
|
127
|
+
return model;
|
128
|
+
}
|
129
|
+
async delete(tableName, id) {
|
130
|
+
await this.lock.acquire();
|
131
|
+
if (!(tableName in this.native))
|
132
|
+
throw new db_decorators_1.NotFoundError(`Table ${tableName} not found`);
|
133
|
+
if (!(id in this.native[tableName]))
|
134
|
+
throw new db_decorators_1.NotFoundError(`Record with id ${id} not found in table ${tableName}`);
|
135
|
+
const natived = this.native[tableName][id];
|
136
|
+
delete this.native[tableName][id];
|
137
|
+
this.lock.release();
|
138
|
+
return natived;
|
139
|
+
}
|
140
|
+
tableFor(from) {
|
141
|
+
if (typeof from === "string")
|
142
|
+
from = decorator_validation_1.Model.get(from);
|
143
|
+
const table = Repository_1.Repository.table(from);
|
144
|
+
if (!(table in this.native))
|
145
|
+
this.native[table] = {};
|
146
|
+
return this.native[table];
|
147
|
+
}
|
148
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
149
|
+
async raw(rawInput, process) {
|
150
|
+
const { where, sort, limit, skip, from } = rawInput;
|
151
|
+
let { select } = rawInput;
|
152
|
+
const collection = this.tableFor(from);
|
153
|
+
const clazz = typeof from === "string" ? decorator_validation_1.Model.get(from) : from;
|
154
|
+
const { id, props } = (0, db_decorators_1.findPrimaryKey)(new clazz());
|
155
|
+
function parseId(id) {
|
156
|
+
let result = id;
|
157
|
+
switch (props.type) {
|
158
|
+
case "Number":
|
159
|
+
result = parseInt(result);
|
160
|
+
if (isNaN(result))
|
161
|
+
throw new Error(`Invalid id ${id}`);
|
162
|
+
break;
|
163
|
+
case "BigInt":
|
164
|
+
result = BigInt(parseInt(result));
|
165
|
+
break;
|
166
|
+
case "String":
|
167
|
+
break;
|
168
|
+
default:
|
169
|
+
throw new db_decorators_1.InternalError(`Invalid id type ${props.type}. should be impossible`);
|
170
|
+
}
|
171
|
+
return result;
|
172
|
+
}
|
173
|
+
let result = Object.entries(collection).map(([pk, r]) => this.revert(r, clazz, id, parseId(pk)));
|
174
|
+
result = where ? result.filter(where) : result;
|
175
|
+
if (sort)
|
176
|
+
result = result.sort(sort);
|
177
|
+
if (skip)
|
178
|
+
result = result.slice(skip);
|
179
|
+
if (limit)
|
180
|
+
result = result.slice(0, limit);
|
181
|
+
if (select) {
|
182
|
+
select = Array.isArray(select) ? select : [select];
|
183
|
+
result = result.map((r) => Object.entries(r).reduce((acc, [key, val]) => {
|
184
|
+
if (select.includes(key))
|
185
|
+
acc[key] = val;
|
186
|
+
return acc;
|
187
|
+
}, {}));
|
188
|
+
}
|
189
|
+
return result;
|
190
|
+
}
|
191
|
+
async paginate(rawInput) {
|
192
|
+
return new (class extends Paginator_1.Paginator {
|
193
|
+
constructor(size) {
|
194
|
+
super(undefined, size, rawInput);
|
195
|
+
}
|
196
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
197
|
+
prepare(rawStatement) {
|
198
|
+
throw new Error("Method not implemented.");
|
199
|
+
}
|
200
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
201
|
+
page(page) {
|
202
|
+
throw new Error("Method not implemented.");
|
203
|
+
}
|
204
|
+
})(10);
|
205
|
+
}
|
206
|
+
parseError(err) {
|
207
|
+
if (err instanceof db_decorators_1.BaseError)
|
208
|
+
return err;
|
209
|
+
return new db_decorators_1.InternalError(err);
|
210
|
+
}
|
211
|
+
get Clauses() {
|
212
|
+
if (!this.factory)
|
213
|
+
this.factory = new RamClauseFactory_1.RamClauseFactory(this);
|
214
|
+
return this.factory;
|
215
|
+
}
|
216
|
+
get Statement() {
|
217
|
+
return new RamStatement_1.RamStatement(this);
|
218
|
+
}
|
219
|
+
async Sequence(options) {
|
220
|
+
return new RamSequence_1.RamSequence(options, this);
|
221
|
+
}
|
222
|
+
parseCondition(condition) {
|
223
|
+
return {
|
224
|
+
where: (m) => {
|
225
|
+
const { attr1, operator, comparison } = condition;
|
226
|
+
if ([query_1.GroupOperator.AND, query_1.GroupOperator.OR, query_1.Operator.NOT].indexOf(operator) === -1) {
|
227
|
+
switch (operator) {
|
228
|
+
case query_1.Operator.BIGGER:
|
229
|
+
return m[attr1] > comparison;
|
230
|
+
case query_1.Operator.BIGGER_EQ:
|
231
|
+
return m[attr1] >= comparison;
|
232
|
+
case query_1.Operator.DIFFERENT:
|
233
|
+
return m[attr1] !== comparison;
|
234
|
+
case query_1.Operator.EQUAL:
|
235
|
+
return m[attr1] === comparison;
|
236
|
+
case query_1.Operator.REGEXP:
|
237
|
+
if (typeof m[attr1] !== "string")
|
238
|
+
throw new query_1.QueryError(`Invalid regexp comparison on a non string attribute: ${m[attr1]}`);
|
239
|
+
return !!m[attr1].match(new RegExp(comparison, "g"));
|
240
|
+
case query_1.Operator.SMALLER:
|
241
|
+
return m[attr1] < comparison;
|
242
|
+
case query_1.Operator.SMALLER_EQ:
|
243
|
+
return m[attr1] <= comparison;
|
244
|
+
default:
|
245
|
+
throw new db_decorators_1.InternalError(`Invalid operator for standard comparisons: ${operator}`);
|
246
|
+
}
|
247
|
+
}
|
248
|
+
else if (operator === query_1.Operator.NOT) {
|
249
|
+
throw new db_decorators_1.InternalError("Not implemented");
|
250
|
+
}
|
251
|
+
else {
|
252
|
+
const op1 = this.parseCondition(attr1);
|
253
|
+
const op2 = this.parseCondition(comparison);
|
254
|
+
switch (operator) {
|
255
|
+
case query_1.GroupOperator.AND:
|
256
|
+
return op1.where(m) && op2.where(m);
|
257
|
+
case query_1.GroupOperator.OR:
|
258
|
+
return op1.where(m) || op2.where(m);
|
259
|
+
default:
|
260
|
+
throw new db_decorators_1.InternalError(`Invalid operator for And/Or comparisons: ${operator}`);
|
261
|
+
}
|
262
|
+
}
|
263
|
+
},
|
264
|
+
};
|
265
|
+
}
|
266
|
+
}
|
267
|
+
exports.RamAdapter = RamAdapter;
|
268
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmFtQWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yYW0vUmFtQWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQ0EsZ0VBbUJDO0FBdkRELHFEQUE4QztBQUM5Qyw2REFBc0Q7QUFDdEQsb0RBQXNDO0FBQ3RDLGlEQUEwQztBQUMxQywrREFBNEQ7QUFFNUQsd0RBQXlEO0FBQ3pELDREQUFvRTtBQUNwRSx3REFBK0M7QUFDL0MsZ0RBTWtCO0FBRWxCLGlGQUEwRDtBQUMxRCx5RUFLd0M7QUFDeEMsMkRBU2lDO0FBQ2pDLG1EQUE0QztBQUVyQyxLQUFLLFVBQVUsMEJBQTBCLENBUTlDLE9BQW1CLEVBQ25CLElBQU8sRUFDUCxHQUFZLEVBQ1osS0FBUTtJQUVSLE1BQU0sSUFBSSxHQUFXLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsSUFBSSxDQUFDLElBQUk7UUFDUCxNQUFNLElBQUkseUJBQWdCLENBQ3hCLG1EQUFtRCxDQUNwRCxDQUFDO0lBQ0osS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQWtCLENBQUM7QUFDbEMsQ0FBQztBQUVELE1BQU0sWUFBWSxHQUFHLHVCQUFVLENBQUMsR0FBRyxDQUFDLDZCQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDaEUsTUFBTSxZQUFZLEdBQUcsdUJBQVUsQ0FBQyxHQUFHLENBQUMsNkJBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNoRSxpQ0FBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7S0FDMUIsR0FBRyxDQUFDLFlBQVksQ0FBQztLQUNqQixNQUFNLENBQUMsSUFBQSx3QkFBUSxFQUFDLDBCQUEwQixDQUFDLEVBQUUsSUFBQSxtQ0FBWSxFQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztLQUM1RSxLQUFLLEVBQUUsQ0FBQztBQUNYLGlDQUFVLENBQUMs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QUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQzdDLENBQUM7cUJBQU0sQ0FBQztvQkFDTixNQUFNLEdBQUcsR0FBa0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFrQixDQUFDLENBQUM7b0JBQ25FLE1BQU0sR0FBRyxHQUFrQixJQUFJLENBQUMsY0FBYyxDQUM1QyxVQUF1QixDQUN4QixDQUFDO29CQUNGLFFBQVEsUUFBUSxFQUFFLENBQUM7d0JBQ2pCLEtBQUsscUJBQWEsQ0FBQyxHQUFHOzRCQUNwQixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDdEMsS0FBSyxxQkFBYSxDQUFDLEVBQUU7NEJBQ25CLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUN0Qzs0QkFDRSxNQUFNLElBQUksNkJBQWEsQ0FDckIsNENBQTRDLFFBQVEsRUFBRSxDQUN2RCxDQUFDO29CQUNOLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7U0FDZSxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQTlSRCxnQ0E4UkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250ZXh0IH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBSYW1GbGFncywgUmFtUXVlcnksIFJhbVN0b3JhZ2UgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgUmFtU3RhdGVtZW50IH0gZnJvbSBcIi4vUmFtU3RhdGVtZW50XCI7XG5pbXBvcnQgeyBSYW1DbGF1c2VGYWN0b3J5IH0gZnJvbSBcIi4vUmFtQ2xhdXNlRmFjdG9yeVwiO1xuaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gXCJub2RlOmNyeXB0b1wiO1xuaW1wb3J0IHsgUmFtQ29udGV4dCB9IGZyb20gXCIuL1JhbUNvbnRleHRcIjtcbmltcG9ydCB7IFJlcG8sIFJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vcmVwb3NpdG9yeS9SZXBvc2l0b3J5XCI7XG5pbXBvcnQgeyBSZWxhdGlvbnNNZXRhZGF0YSB9IGZyb20gXCIuLi9tb2RlbC90eXBlc1wiO1xuaW1wb3J0IHsgVW5zdXBwb3J0ZWRFcnJvciB9IGZyb20gXCIuLi9wZXJzaXN0ZW5jZS9lcnJvcnNcIjtcbmltcG9ydCB7IEFkYXB0ZXIsIFBlcnNpc3RlbmNlS2V5cywgU2VxdWVuY2UgfSBmcm9tIFwiLi4vcGVyc2lzdGVuY2VcIjtcbmltcG9ydCB7IFBhZ2luYXRvciB9IGZyb20gXCIuLi9xdWVyeS9QYWdpbmF0b3JcIjtcbmltcG9ydCB7XG4gIENsYXVzZUZhY3RvcnksXG4gIENvbmRpdGlvbixcbiAgR3JvdXBPcGVyYXRvcixcbiAgT3BlcmF0b3IsXG4gIFF1ZXJ5RXJyb3IsXG59IGZyb20gXCIuLi9xdWVyeVwiO1xuaW1wb3J0IHsgU2VxdWVuY2VPcHRpb25zIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcbmltcG9ydCB7IExvY2sgfSBmcm9tIFwiQGRlY2FmLXRzL3RyYW5zYWN0aW9uYWwtZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHtcbiAgQ29uc3RydWN0b3IsXG4gIERlY29yYXRpb24sXG4gIE1vZGVsLFxuICBwcm9wTWV0YWRhdGEsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7XG4gIEJhc2VFcnJvcixcbiAgQ29uZmxpY3RFcnJvcixcbiAgRGVmYXVsdFJlcG9zaXRvcnlGbGFncyxcbiAgZmluZFByaW1hcnlLZXksXG4gIEludGVybmFsRXJyb3IsXG4gIE5vdEZvdW5kRXJyb3IsXG4gIG9uQ3JlYXRlLFxuICBPcGVyYXRpb25LZXlzLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IFJhbVNlcXVlbmNlIH0gZnJvbSBcIi4vUmFtU2VxdWVuY2VcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZWRCeU9uUmFtQ3JlYXRlVXBkYXRlPFxuICBNIGV4dGVuZHMgTW9kZWwsXG4gIFIgZXh0ZW5kcyBSZXBvPE0sIEMsIEY+LFxuICBWIGV4dGVuZHMgUmVsYXRpb25zTWV0YWRhdGEsXG4gIEYgZXh0ZW5kcyBSYW1GbGFncyxcbiAgQyBleHRlbmRzIENvbnRleHQ8Rj4sXG4+KFxuICB0aGlzOiBSLFxuICBjb250ZXh0OiBDb250ZXh0PEY+LFxuICBkYXRhOiBWLFxuICBrZXk6IGtleW9mIE0sXG4gIG1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgdXVpZDogc3RyaW5nID0gY29udGV4dC5nZXQoXCJVVUlEXCIpO1xuICBpZiAoIXV1aWQpXG4gICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXG4gICAgICBcIlRoaXMgYWRhcHRlciBkb2VzIG5vdCBzdXBwb3J0IHVzZXIgaWRlbnRpZmljYXRpb25cIlxuICAgICk7XG4gIG1vZGVsW2tleV0gPSB1dWlkIGFzIE1ba2V5b2YgTV07XG59XG5cbmNvbnN0IGNyZWF0ZWRCeUtleSA9IFJlcG9zaXRvcnkua2V5KFBlcnNpc3RlbmNlS2V5cy5DUkVBVEVEX0JZKTtcbmNvbnN0IHVwZGF0ZWRCeUtleSA9IFJlcG9zaXRvcnkua2V5KFBlcnNpc3RlbmNlS2V5cy5VUERBVEVEX0JZKTtcbkRlY29yYXRpb24uZmxhdm91cmVkQXMoXCJyYW1cIilcbiAgLmZvcihjcmVhdGVkQnlLZXkpXG4gIC5kZWZpbmUob25DcmVhdGUoY3JlYXRlZEJ5T25SYW1DcmVhdGVVcGRhdGUpLCBwcm9wTWV0YWRhdGEoY3JlYXRlZEJ5S2V5LCB7fSkpXG4gIC5hcHBseSgpO1xuRGVjb3JhdGlvbi5mbGF2b3VyZWRBcyhcInJhbVwiKVxuICAuZm9yKHVwZGF0ZWRCeUtleSlcbiAgLmRlZmluZShvbkNyZWF0ZShjcmVhdGVkQnlPblJhbUNyZWF0ZVVwZGF0ZSksIHByb3BNZXRhZGF0YSh1cGRhdGVkQnlLZXksIHt9KSlcbiAgLmFwcGx5KCk7XG5cbmV4cG9ydCBjbGFzcyBSYW1BZGFwdGVyIGV4dGVuZHMgQWRhcHRlcjxcbiAgUmFtU3RvcmFnZSxcbiAgUmFtUXVlcnk8YW55PixcbiAgUmFtRmxhZ3MsXG4gIENvbnRleHQ8UmFtRmxhZ3M+XG4+IHtcbiAgcHJvdGVjdGVkIGZhY3Rvcnk/OiBSYW1DbGF1c2VGYWN0b3J5O1xuXG4gIGNvbnN0cnVjdG9yKGZsYXZvdXI6IHN0cmluZyA9IFwicmFtXCIpIHtcbiAgICBzdXBlcih7fSwgZmxhdm91cik7XG4gIH1cblxuICBhc3luYyBjb250ZXh0PE0gZXh0ZW5kcyBNb2RlbCwgQyBleHRlbmRzIFJhbUNvbnRleHQsIEYgZXh0ZW5kcyBSYW1GbGFncz4oXG4gICAgb3BlcmF0aW9uOiBhbnksXG4gICAgb3ZlcnJpZGVzOiBQYXJ0aWFsPFJhbUZsYWdzPixcbiAgICBtb2RlbDogQ29uc3RydWN0b3I8TT4sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8Qz4ge1xuICAgIHJldHVybiBuZXcgUmFtQ29udGV4dChcbiAgICAgIE9iamVjdC5hc3NpZ24oe30sIERlZmF1bHRSZXBvc2l0b3J5RmxhZ3MsIG92ZXJyaWRlcywge1xuICAgICAgICBhZmZlY3RlZFRhYmxlczogW21vZGVsLm5hbWVdLFxuICAgICAgICB3cml0ZU9wZXJhdGlvbjogb3BlcmF0aW9uICE9PSBPcGVyYXRpb25LZXlzLlJFQUQsXG4gICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKSxcbiAgICAgICAgb3BlcmF0aW9uOiBvcGVyYXRpb24sXG4gICAgICAgIFVVSUQ6IGNyeXB0by5yYW5kb21VVUlEKCksXG4gICAgICB9KSBhcyBGXG4gICAgKSBhcyBDO1xuICB9XG4gIHByaXZhdGUgaW5kZXhlczogUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICBSZWNvcmQ8c3RyaW5nIHwgbnVtYmVyLCBSZWNvcmQ8c3RyaW5nLCBhbnk+PlxuICA+ID0ge307XG5cbiAgcHJpdmF0ZSBsb2NrID0gbmV3IExvY2soKTtcblxuICBwcml2YXRlIHNlcXVlbmNlczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPiA9IHt9O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgYXN5bmMgaW5pdGlhbGl6ZSguLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgYXN5bmMgaW5kZXgoLi4ubW9kZWxzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+W10pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgfVxuXG4gIHByZXBhcmU8TSBleHRlbmRzIE1vZGVsPihcbiAgICBtb2RlbDogTSxcbiAgICBwazoga2V5b2YgTVxuICApOiB7IHJlY29yZDogUmVjb3JkPHN0cmluZywgYW55PjsgaWQ6IHN0cmluZyB9IHtcbiAgICBjb25zdCBwcmVwYXJlZCA9IHN1cGVyLnByZXBhcmUobW9kZWwsIHBrKTtcbiAgICBkZWxldGUgcHJlcGFyZWQucmVjb3JkW3BrIGFzIHN0cmluZ107XG4gICAgcmV0dXJuIHByZXBhcmVkO1xuICB9XG5cbiAgcmV2ZXJ0PE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgb2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIGNsYXp6OiBzdHJpbmcgfCBDb25zdHJ1Y3RvcjxNPixcbiAgICBwazoga2V5b2YgTSxcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyXG4gICk6IE0ge1xuICAgIGNvbnN0IHJlcyA9IHN1cGVyLnJldmVydChvYmosIGNsYXp6LCBwaywgaWQpO1xuICAgIHJldHVybiByZXM7XG4gIH1cblxuICBhc3luYyBjcmVhdGUoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlcixcbiAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBhd2FpdCB0aGlzLmxvY2suYWNxdWlyZSgpO1xuICAgIGlmICghdGhpcy5uYXRpdmVbdGFibGVOYW1lXSkgdGhpcy5uYXRpdmVbdGFibGVOYW1lXSA9IHt9O1xuICAgIGlmIChpZCBpbiB0aGlzLm5hdGl2ZVt0YWJsZU5hbWVdKVxuICAgICAgdGhyb3cgbmV3IENvbmZsaWN0RXJyb3IoXG4gICAgICAgIGBSZWNvcmQgd2l0aCBpZCAke2lkfSBhbHJlYWR5IGV4aXN0cyBpbiB0YWJsZSAke3RhYmxlTmFtZX1gXG4gICAgICApO1xuICAgIHRoaXMubmF0aXZlW3RhYmxlTmFtZV1baWRdID0gbW9kZWw7XG4gICAgdGhpcy5sb2NrLnJlbGVhc2UoKTtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH1cblxuICBhc3luYyByZWFkKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXJcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgaWYgKCEodGFibGVOYW1lIGluIHRoaXMubmF0aXZlKSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBUYWJsZSAke3RhYmxlTmFtZX0gbm90IGZvdW5kYCk7XG4gICAgaWYgKCEoaWQgaW4gdGhpcy5uYXRpdmVbdGFibGVOYW1lXSkpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihcbiAgICAgICAgYFJlY29yZCB3aXRoIGlkICR7aWR9IG5vdCBmb3VuZCBpbiB0YWJsZSAke3RhYmxlTmFtZX1gXG4gICAgICApO1xuICAgIHJldHVybiB0aGlzLm5hdGl2ZVt0YWJsZU5hbWVdW2lkXTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZShcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyLFxuICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIGF3YWl0IHRoaXMubG9jay5hY3F1aXJlKCk7XG4gICAgaWYgKCEodGFibGVOYW1lIGluIHRoaXMubmF0aXZlKSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBUYWJsZSAke3RhYmxlTmFtZX0gbm90IGZvdW5kYCk7XG4gICAgaWYgKCEoaWQgaW4gdGhpcy5uYXRpdmVbdGFibGVOYW1lXSkpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihcbiAgICAgICAgYFJlY29yZCB3aXRoIGlkICR7aWR9IG5vdCBmb3VuZCBpbiB0YWJsZSAke3RhYmxlTmFtZX1gXG4gICAgICApO1xuICAgIHRoaXMubmF0aXZlW3RhYmxlTmFtZV1baWRdID0gbW9kZWw7XG4gICAgdGhpcy5sb2NrLnJlbGVhc2UoKTtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH1cblxuICBhc3luYyBkZWxldGUoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlclxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBhd2FpdCB0aGlzLmxvY2suYWNxdWlyZSgpO1xuICAgIGlmICghKHRhYmxlTmFtZSBpbiB0aGlzLm5hdGl2ZSkpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgVGFibGUgJHt0YWJsZU5hbWV9IG5vdCBmb3VuZGApO1xuICAgIGlmICghKGlkIGluIHRoaXMubmF0aXZlW3RhYmxlTmFtZV0pKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoXG4gICAgICAgIGBSZWNvcmQgd2l0aCBpZCAke2lkfSBub3QgZm91bmQgaW4gdGFibGUgJHt0YWJsZU5hbWV9YFxuICAgICAgKTtcbiAgICBjb25zdCBuYXRpdmVkID0gdGhpcy5uYXRpdmVbdGFibGVOYW1lXVtpZF07XG4gICAgZGVsZXRlIHRoaXMubmF0aXZlW3RhYmxlTmFtZV1baWRdO1xuICAgIHRoaXMubG9jay5yZWxlYXNlKCk7XG4gICAgcmV0dXJuIG5hdGl2ZWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgdGFibGVGb3I8TSBleHRlbmRzIE1vZGVsPihmcm9tOiBzdHJpbmcgfCBDb25zdHJ1Y3RvcjxNPikge1xuICAgIGlmICh0eXBlb2YgZnJvbSA9PT0gXCJzdHJpbmdcIikgZnJvbSA9IE1vZGVsLmdldChmcm9tKSBhcyBDb25zdHJ1Y3RvcjxNPjtcbiAgICBjb25zdCB0YWJsZSA9IFJlcG9zaXRvcnkudGFibGUoZnJvbSk7XG4gICAgaWYgKCEodGFibGUgaW4gdGhpcy5uYXRpdmUpKSB0aGlzLm5hdGl2ZVt0YWJsZV0gPSB7fTtcbiAgICByZXR1cm4gdGhpcy5uYXRpdmVbdGFibGVdO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBhc3luYyByYXc8Wj4ocmF3SW5wdXQ6IFJhbVF1ZXJ5PGFueT4sIHByb2Nlc3M6IGJvb2xlYW4pOiBQcm9taXNlPFo+IHtcbiAgICBjb25zdCB7IHdoZXJlLCBzb3J0LCBsaW1pdCwgc2tpcCwgZnJvbSB9ID0gcmF3SW5wdXQ7XG4gICAgbGV0IHsgc2VsZWN0IH0gPSByYXdJbnB1dDtcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy50YWJsZUZvcihmcm9tKTtcblxuICAgIGNvbnN0IGNsYXp6ID0gdHlwZW9mIGZyb20gPT09IFwic3RyaW5nXCIgPyBNb2RlbC5nZXQoZnJvbSkgOiBmcm9tO1xuICAgIGNvbnN0IHsgaWQsIHByb3BzIH0gPSBmaW5kUHJpbWFyeUtleShuZXcgY2xhenooKSk7XG5cbiAgICBmdW5jdGlvbiBwYXJzZUlkKGlkOiBhbnkpIHtcbiAgICAgIGxldCByZXN1bHQgPSBpZDtcbiAgICAgIHN3aXRjaCAocHJvcHMudHlwZSkge1xuICAgICAgICBjYXNlIFwiTnVtYmVyXCI6XG4gICAgICAgICAgcmVzdWx0ID0gcGFyc2VJbnQocmVzdWx0KTtcbiAgICAgICAgICBpZiAoaXNOYU4ocmVzdWx0KSkgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGlkICR7aWR9YCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJCaWdJbnRcIjpcbiAgICAgICAgICByZXN1bHQgPSBCaWdJbnQocGFyc2VJbnQocmVzdWx0KSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJTdHJpbmdcIjpcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICAgIGBJbnZhbGlkIGlkIHR5cGUgJHtwcm9wcy50eXBlfS4gc2hvdWxkIGJlIGltcG9zc2libGVgXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgbGV0IHJlc3VsdDogYW55W10gPSBPYmplY3QuZW50cmllcyhjb2xsZWN0aW9uKS5tYXAoKFtwaywgcl0pID0+XG4gICAgICB0aGlzLnJldmVydChyLCBjbGF6eiwgaWQgYXMgYW55LCBwYXJzZUlkKHBrKSlcbiAgICApO1xuXG4gICAgcmVzdWx0ID0gd2hlcmUgPyByZXN1bHQuZmlsdGVyKHdoZXJlKSA6IHJlc3VsdDtcblxuICAgIGlmIChzb3J0KSByZXN1bHQgPSByZXN1bHQuc29ydChzb3J0KTtcblxuICAgIGlmIChza2lwKSByZXN1bHQgPSByZXN1bHQuc2xpY2Uoc2tpcCk7XG4gICAgaWYgKGxpbWl0KSByZXN1bHQgPSByZXN1bHQuc2xpY2UoMCwgbGltaXQpO1xuXG4gICAgaWYgKHNlbGVjdCkge1xuICAgICAgc2VsZWN0ID0gQXJyYXkuaXNBcnJheShzZWxlY3QpID8gc2VsZWN0IDogW3NlbGVjdF07XG4gICAgICByZXN1bHQgPSByZXN1bHQubWFwKChyKSA9PlxuICAgICAgICBPYmplY3QuZW50cmllcyhyKS5yZWR1Y2UoKGFjYzogUmVjb3JkPHN0cmluZywgYW55PiwgW2tleSwgdmFsXSkgPT4ge1xuICAgICAgICAgIGlmICgoc2VsZWN0IGFzIHN0cmluZ1tdKS5pbmNsdWRlcyhrZXkpKSBhY2Nba2V5XSA9IHZhbDtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCB7fSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdCBhcyB1bmtub3duIGFzIFo7XG4gIH1cblxuICBhc3luYyBwYWdpbmF0ZTxaPihyYXdJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxQYWdpbmF0b3I8Wiwgc3RyaW5nPj4ge1xuICAgIHJldHVybiBuZXcgKGNsYXNzIGV4dGVuZHMgUGFnaW5hdG9yPFosIHN0cmluZz4ge1xuICAgICAgY29uc3RydWN0b3Ioc2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIHN1cGVyKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIGFueSwgc2l6ZSwgcmF3SW5wdXQpO1xuICAgICAgfVxuXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICBwcm90ZWN0ZWQgcHJlcGFyZShyYXdTdGF0ZW1lbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgICAgfVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgcGFnZShwYWdlOiBudW1iZXIpOiBQcm9taXNlPFpbXT4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICAgIH1cbiAgICB9KSgxMCk7XG4gIH1cblxuICBwYXJzZUVycm9yPFYgZXh0ZW5kcyBCYXNlRXJyb3I+KGVycjogRXJyb3IpOiBWIHtcbiAgICBpZiAoZXJyIGluc3RhbmNlb2YgQmFzZUVycm9yKSByZXR1cm4gZXJyIGFzIFY7XG4gICAgcmV0dXJuIG5ldyBJbnRlcm5hbEVycm9yKGVycikgYXMgVjtcbiAgfVxuXG4gIGdldCBDbGF1c2VzKCk6IENsYXVzZUZhY3Rvcnk8UmFtU3RvcmFnZSwgUmFtUXVlcnk8YW55PiwgdHlwZW9mIHRoaXM+IHtcbiAgICBpZiAoIXRoaXMuZmFjdG9yeSkgdGhpcy5mYWN0b3J5ID0gbmV3IFJhbUNsYXVzZUZhY3RvcnkodGhpcyk7XG4gICAgcmV0dXJuIHRoaXMuZmFjdG9yeSBhcyBhbnk7XG4gIH1cblxuICBnZXQgU3RhdGVtZW50KCk6IFJhbVN0YXRlbWVudDxhbnk+IHtcbiAgICByZXR1cm4gbmV3IFJhbVN0YXRlbWVudCh0aGlzKTtcbiAgfVxuXG4gIGFzeW5jIFNlcXVlbmNlKG9wdGlvbnM6IFNlcXVlbmNlT3B0aW9ucyk6IFByb21pc2U8U2VxdWVuY2U+IHtcbiAgICByZXR1cm4gbmV3IFJhbVNlcXVlbmNlKG9wdGlvbnMsIHRoaXMpO1xuICB9XG5cbiAgcGFyc2VDb25kaXRpb24oY29uZGl0aW9uOiBDb25kaXRpb24pOiBSYW1RdWVyeTxhbnk+IHtcbiAgICByZXR1cm4ge1xuICAgICAgd2hlcmU6IChtOiBNb2RlbCkgPT4ge1xuICAgICAgICBjb25zdCB7IGF0dHIxLCBvcGVyYXRvciwgY29tcGFyaXNvbiB9ID0gY29uZGl0aW9uIGFzIHVua25vd24gYXMge1xuICAgICAgICAgIGF0dHIxOiBzdHJpbmcgfCBDb25kaXRpb247XG4gICAgICAgICAgb3BlcmF0b3I6IE9wZXJhdG9yIHwgR3JvdXBPcGVyYXRvcjtcbiAgICAgICAgICBjb21wYXJpc29uOiBhbnk7XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIFtHcm91cE9wZXJhdG9yLkFORCwgR3JvdXBPcGVyYXRvci5PUiwgT3BlcmF0b3IuTk9UXS5pbmRleE9mKFxuICAgICAgICAgICAgb3BlcmF0b3IgYXMgR3JvdXBPcGVyYXRvclxuICAgICAgICAgICkgPT09IC0xXG4gICAgICAgICkge1xuICAgICAgICAgIHN3aXRjaCAob3BlcmF0b3IpIHtcbiAgICAgICAgICAgIGNhc2UgT3BlcmF0b3IuQklHR0VSOlxuICAgICAgICAgICAgICByZXR1cm4gbVthdHRyMSBhcyBrZXlvZiBNb2RlbF0gPiBjb21wYXJpc29uO1xuICAgICAgICAgICAgY2FzZSBPcGVyYXRvci5CSUdHRVJfRVE6XG4gICAgICAgICAgICAgIHJldHVybiBtW2F0dHIxIGFzIGtleW9mIE1vZGVsXSA+PSBjb21wYXJpc29uO1xuICAgICAgICAgICAgY2FzZSBPcGVyYXRvci5ESUZGRVJFTlQ6XG4gICAgICAgICAgICAgIHJldHVybiBtW2F0dHIxIGFzIGtleW9mIE1vZGVsXSAhPT0gY29tcGFyaXNvbjtcbiAgICAgICAgICAgIGNhc2UgT3BlcmF0b3IuRVFVQUw6XG4gICAgICAgICAgICAgIHJldHVybiBtW2F0dHIxIGFzIGtleW9mIE1vZGVsXSA9PT0gY29tcGFyaXNvbjtcbiAgICAgICAgICAgIGNhc2UgT3BlcmF0b3IuUkVHRVhQOlxuICAgICAgICAgICAgICBpZiAodHlwZW9mIG1bYXR0cjEgYXMga2V5b2YgTW9kZWxdICE9PSBcInN0cmluZ1wiKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKFxuICAgICAgICAgICAgICAgICAgYEludmFsaWQgcmVnZXhwIGNvbXBhcmlzb24gb24gYSBub24gc3RyaW5nIGF0dHJpYnV0ZTogJHttW2F0dHIxIGFzIGtleW9mIE1vZGVsXX1gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgcmV0dXJuICEhKG1bYXR0cjEgYXMga2V5b2YgTW9kZWxdIGFzIHVua25vd24gYXMgc3RyaW5nKS5tYXRjaChcbiAgICAgICAgICAgICAgICBuZXcgUmVnRXhwKGNvbXBhcmlzb24sIFwiZ1wiKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgY2FzZSBPcGVyYXRvci5TTUFMTEVSOlxuICAgICAgICAgICAgICByZXR1cm4gbVthdHRyMSBhcyBrZXlvZiBNb2RlbF0gPCBjb21wYXJpc29uO1xuICAgICAgICAgICAgY2FzZSBPcGVyYXRvci5TTUFMTEVSX0VROlxuICAgICAgICAgICAgICByZXR1cm4gbVthdHRyMSBhcyBrZXlvZiBNb2RlbF0gPD0gY29tcGFyaXNvbjtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICAgICAgICAgIGBJbnZhbGlkIG9wZXJhdG9yIGZvciBzdGFuZGFyZCBjb21wYXJpc29uczogJHtvcGVyYXRvcn1gXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKG9wZXJhdG9yID09PSBPcGVyYXRvci5OT1QpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIk5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBvcDE6IFJhbVF1ZXJ5PGFueT4gPSB0aGlzLnBhcnNlQ29uZGl0aW9uKGF0dHIxIGFzIENvbmRpdGlvbik7XG4gICAgICAgICAgY29uc3Qgb3AyOiBSYW1RdWVyeTxhbnk+ID0gdGhpcy5wYXJzZUNvbmRpdGlvbihcbiAgICAgICAgICAgIGNvbXBhcmlzb24gYXMgQ29uZGl0aW9uXG4gICAgICAgICAgKTtcbiAgICAgICAgICBzd2l0Y2ggKG9wZXJhdG9yKSB7XG4gICAgICAgICAgICBjYXNlIEdyb3VwT3BlcmF0b3IuQU5EOlxuICAgICAgICAgICAgICByZXR1cm4gb3AxLndoZXJlKG0pICYmIG9wMi53aGVyZShtKTtcbiAgICAgICAgICAgIGNhc2UgR3JvdXBPcGVyYXRvci5PUjpcbiAgICAgICAgICAgICAgcmV0dXJuIG9wMS53aGVyZShtKSB8fCBvcDIud2hlcmUobSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICAgICAgICBgSW52YWxpZCBvcGVyYXRvciBmb3IgQW5kL09yIGNvbXBhcmlzb25zOiAke29wZXJhdG9yfWBcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSBhcyBSYW1RdWVyeTxhbnk+O1xuICB9XG59XG4iXX0=
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import { Context } from "@decaf-ts/db-decorators";
|
2
|
+
import { RamFlags, RamQuery, RamStorage } from "./types";
|
3
|
+
import { RamStatement } from "./RamStatement";
|
4
|
+
import { RamClauseFactory } from "./RamClauseFactory";
|
5
|
+
import { RamContext } from "./RamContext";
|
6
|
+
import { Repo } from "../repository/Repository";
|
7
|
+
import { RelationsMetadata } from "../model/types";
|
8
|
+
import { Adapter, Sequence } from "../persistence";
|
9
|
+
import { Paginator } from "../query/Paginator";
|
10
|
+
import { ClauseFactory, Condition } from "../query";
|
11
|
+
import { SequenceOptions } from "../interfaces";
|
12
|
+
import { Constructor, Model } from "@decaf-ts/decorator-validation";
|
13
|
+
import { BaseError } from "@decaf-ts/db-decorators";
|
14
|
+
export declare function createdByOnRamCreateUpdate<M extends Model, R extends Repo<M, C, F>, V extends RelationsMetadata, F extends RamFlags, C extends Context<F>>(this: R, context: Context<F>, data: V, key: keyof M, model: M): Promise<void>;
|
15
|
+
export declare class RamAdapter extends Adapter<RamStorage, RamQuery<any>, RamFlags, Context<RamFlags>> {
|
16
|
+
protected factory?: RamClauseFactory;
|
17
|
+
constructor(flavour?: string);
|
18
|
+
context<M extends Model, C extends RamContext, F extends RamFlags>(operation: any, overrides: Partial<RamFlags>, model: Constructor<M>, ...args: any[]): Promise<C>;
|
19
|
+
private indexes;
|
20
|
+
private lock;
|
21
|
+
private sequences;
|
22
|
+
initialize(...args: any[]): Promise<void>;
|
23
|
+
index(...models: Record<string, any>[]): Promise<any>;
|
24
|
+
prepare<M extends Model>(model: M, pk: keyof M): {
|
25
|
+
record: Record<string, any>;
|
26
|
+
id: string;
|
27
|
+
};
|
28
|
+
revert<M extends Model>(obj: Record<string, any>, clazz: string | Constructor<M>, pk: keyof M, id: string | number): M;
|
29
|
+
create(tableName: string, id: string | number, model: Record<string, any>): Promise<Record<string, any>>;
|
30
|
+
read(tableName: string, id: string | number): Promise<Record<string, any>>;
|
31
|
+
update(tableName: string, id: string | number, model: Record<string, any>): Promise<Record<string, any>>;
|
32
|
+
delete(tableName: string, id: string | number): Promise<Record<string, any>>;
|
33
|
+
protected tableFor<M extends Model>(from: string | Constructor<M>): Record<string, any>;
|
34
|
+
raw<Z>(rawInput: RamQuery<any>, process: boolean): Promise<Z>;
|
35
|
+
paginate<Z>(rawInput: string): Promise<Paginator<Z, string>>;
|
36
|
+
parseError<V extends BaseError>(err: Error): V;
|
37
|
+
get Clauses(): ClauseFactory<RamStorage, RamQuery<any>, typeof this>;
|
38
|
+
get Statement(): RamStatement<any>;
|
39
|
+
Sequence(options: SequenceOptions): Promise<Sequence>;
|
40
|
+
parseCondition(condition: Condition): RamQuery<any>;
|
41
|
+
}
|
@@ -0,0 +1,96 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.RamClauseFactory = void 0;
|
4
|
+
const query_1 = require("./../query/index.cjs");
|
5
|
+
const RamStatement_1 = require("./RamStatement.cjs");
|
6
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
7
|
+
const InsertClause_1 = require("./clauses/InsertClause.cjs");
|
8
|
+
const OrderByClause_1 = require("./clauses/OrderByClause.cjs");
|
9
|
+
const SelectClause_1 = require("./clauses/SelectClause.cjs");
|
10
|
+
const ValuesClause_1 = require("./clauses/ValuesClause.cjs");
|
11
|
+
const WhereClause_1 = require("./clauses/WhereClause.cjs");
|
12
|
+
const FromClause_1 = require("./clauses/FromClause.cjs");
|
13
|
+
class RamClauseFactory extends query_1.ClauseFactory {
|
14
|
+
constructor(adapter) {
|
15
|
+
super(adapter);
|
16
|
+
}
|
17
|
+
from(statement, selector) {
|
18
|
+
return new FromClause_1.RamFromClause({ statement: statement, selector: selector });
|
19
|
+
}
|
20
|
+
groupBy(statement, selector) {
|
21
|
+
return new (class extends query_1.GroupByClause {
|
22
|
+
constructor(clause) {
|
23
|
+
super(clause);
|
24
|
+
}
|
25
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
26
|
+
build(query) {
|
27
|
+
throw new db_decorators_1.InternalError("Not implemented");
|
28
|
+
}
|
29
|
+
})({
|
30
|
+
statement: statement,
|
31
|
+
selector: selector,
|
32
|
+
});
|
33
|
+
}
|
34
|
+
insert() {
|
35
|
+
return new InsertClause_1.RamInsertClause({
|
36
|
+
statement: new RamStatement_1.RamStatement(this.adapter),
|
37
|
+
});
|
38
|
+
}
|
39
|
+
limit(statement, selector) {
|
40
|
+
return new (class extends query_1.LimitClause {
|
41
|
+
constructor(clause) {
|
42
|
+
super(clause);
|
43
|
+
}
|
44
|
+
build(query) {
|
45
|
+
query.limit = this.selector;
|
46
|
+
return query;
|
47
|
+
}
|
48
|
+
})({
|
49
|
+
statement: statement,
|
50
|
+
selector: selector,
|
51
|
+
});
|
52
|
+
}
|
53
|
+
offset(statement, selector) {
|
54
|
+
return new (class extends query_1.OffsetClause {
|
55
|
+
constructor(clause) {
|
56
|
+
super(clause);
|
57
|
+
}
|
58
|
+
build(query) {
|
59
|
+
const skip = parseInt(this.selector);
|
60
|
+
if (isNaN(skip))
|
61
|
+
throw new query_1.QueryError("Failed to parse offset");
|
62
|
+
query.skip = skip;
|
63
|
+
return query;
|
64
|
+
}
|
65
|
+
})({
|
66
|
+
statement: statement,
|
67
|
+
selector: selector,
|
68
|
+
});
|
69
|
+
}
|
70
|
+
orderBy(statement, selector) {
|
71
|
+
return new OrderByClause_1.RamOrderByClause({
|
72
|
+
statement: statement,
|
73
|
+
selector: selector,
|
74
|
+
});
|
75
|
+
}
|
76
|
+
select(selector) {
|
77
|
+
return new SelectClause_1.RamSelectClause({
|
78
|
+
statement: new RamStatement_1.RamStatement(this.adapter),
|
79
|
+
selector: selector,
|
80
|
+
});
|
81
|
+
}
|
82
|
+
values(statement, values) {
|
83
|
+
return new ValuesClause_1.RamValuesClause({
|
84
|
+
statement: statement,
|
85
|
+
values: values,
|
86
|
+
});
|
87
|
+
}
|
88
|
+
where(statement, condition) {
|
89
|
+
return new WhereClause_1.RamWhereClause({
|
90
|
+
statement: statement,
|
91
|
+
condition: condition,
|
92
|
+
});
|
93
|
+
}
|
94
|
+
}
|
95
|
+
exports.RamClauseFactory = RamClauseFactory;
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmFtQ2xhdXNlRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yYW0vUmFtQ2xhdXNlRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnREFtQmtCO0FBR2xCLHFEQUE4QztBQUU5QywyREFBd0Q7QUFDeEQsNkRBQXlEO0FBQ3pELCtEQUEyRDtBQUMzRCw2REFBeUQ7QUFDekQsNkRBQXlEO0FBQ3pELDJEQUF1RDtBQUN2RCx5REFBcUQ7QUFFckQsTUFBYSxnQkFBaUIsU0FBUSxxQkFJckM7SUFDQyxZQUFZLE9BQW1CO1FBQzdCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQsSUFBSSxDQUNGLFNBQTBCLEVBQzFCLFFBQXlCO1FBRXpCLE9BQU8sSUFBSSwwQkFBYSxDQUFDLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsT0FBTyxDQUNMLFNBQTRCLEVBQzVCLFFBQXlCO1FBRXpCLE9BQU8sSUFBSSxDQUFDLEtBQU0sU0FBUSxxQkFBNEI7WUFDcEQsWUFBWSxNQUE4QztnQkFDeEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hCLENBQUM7WUFFRCw2REFBNkQ7WUFDN0QsS0FBSyxDQUFDLEtBQW9CO2dCQUN4QixNQUFNLElBQUksNkJBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzdDLENBQUM7U0FDRixDQUFDLENBQUM7WUFDRCxTQUFTLEVBQUUsU0FBUztZQUNwQixRQUFRLEVBQUUsUUFBUTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSw4QkFBZSxDQUFDO1lBQ3pCLFNBQVMsRUFBRSxJQUFJLDJCQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUMxQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUNILFNBQTRCLEVBQzVCLFFBQXVCO1FBRXZCLE9BQU8sSUFBSSxDQUFDLEtBQU0sU0FBUSxtQkFBMEI7WUFDbEQsWUFBWSxNQUE0QztnQkFDdEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hCLENBQUM7WUFFRCxLQUFLLENBQUMsS0FBb0I7Z0JBQ3hCLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQWtCLENBQUM7Z0JBQ3RDLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztTQUNGLENBQUMsQ0FBQztZQUNELFNBQVMsRUFBRSxTQUFTO1lBQ3BCLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQ0osU0FBNEIsRUFDNUIsUUFBd0I7UUFFeEIsT0FBTyxJQUFJLENBQUMsS0FBTSxTQUFRLG9CQUEyQjtZQUNuRCxZQUFZLE1BQTZDO2dCQUN2RCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEIsQ0FBQztZQUVELEtBQUssQ0FBQyxLQUFvQjtnQkFDeEIsTUFBTSxJQUFJLEdBQVcsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUE2QixDQUFDLENBQUM7Z0JBQ2xFLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQztvQkFBRSxNQUFNLElBQUksa0JBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO2dCQUNoRSxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFDbEIsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1NBQ0YsQ0FBQyxDQUFDO1lBQ0QsU0FBUyxFQUFFLFNBQVM7WUFDcEIsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sQ0FDTCxTQUE0QixFQUM1QixRQUEyQjtRQUUzQixPQUFPLElBQUksZ0NBQWdCLENBQUM7WUFDMUIsU0FBUyxFQUFFLFNBQVM7WUFDcEIsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FDSixRQUFvQztRQUVwQyxPQUFPLElBQUksOEJBQWUsQ0FBQztZQUN6QixTQUFTLEVBQUUsSUFBSSwyQkFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDekMsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FDSixTQUE0QixFQUM1QixNQUFXO1FBRVgsT0FBTyxJQUFJLDhCQUFlLENBQUk7WUFDNUIsU0FBUyxFQUFFLFNBQVM7WUFDcEIsTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUNILFNBQTRCLEVBQzVCLFNBQW9CO1FBRXBCLE9BQU8sSUFBSSw0QkFBYyxDQUFDO1lBQ3hCLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXZIRCw0Q0F1SEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDbGF1c2VGYWN0b3J5LFxuICBDb25kaXRpb24sXG4gIEZyb21DbGF1c2UsXG4gIEZyb21TZWxlY3RvcixcbiAgR3JvdXBCeUNsYXVzZSxcbiAgR3JvdXBCeVNlbGVjdG9yLFxuICBJbnNlcnRDbGF1c2UsXG4gIExpbWl0Q2xhdXNlLFxuICBMaW1pdFNlbGVjdG9yLFxuICBPZmZzZXRDbGF1c2UsXG4gIE9mZnNldFNlbGVjdG9yLFxuICBPcmRlckJ5Q2xhdXNlLFxuICBPcmRlckJ5U2VsZWN0b3IsXG4gIFF1ZXJ5RXJyb3IsXG4gIFNlbGVjdENsYXVzZSxcbiAgU2VsZWN0U2VsZWN0b3IsXG4gIFZhbHVlc0NsYXVzZSxcbiAgV2hlcmVDbGF1c2UsXG59IGZyb20gXCIuLi9xdWVyeVwiO1xuaW1wb3J0IHsgUmFtUXVlcnksIFJhbVN0b3JhZ2UgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgUmFtQWRhcHRlciB9IGZyb20gXCIuL1JhbUFkYXB0ZXJcIjtcbmltcG9ydCB7IFJhbVN0YXRlbWVudCB9IGZyb20gXCIuL1JhbVN0YXRlbWVudFwiO1xuaW1wb3J0IHsgTW9kZWwsIE1vZGVsQXJnIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgUmFtSW5zZXJ0Q2xhdXNlIH0gZnJvbSBcIi4vY2xhdXNlcy9JbnNlcnRDbGF1c2VcIjtcbmltcG9ydCB7IFJhbU9yZGVyQnlDbGF1c2UgfSBmcm9tIFwiLi9jbGF1c2VzL09yZGVyQnlDbGF1c2VcIjtcbmltcG9ydCB7IFJhbVNlbGVjdENsYXVzZSB9IGZyb20gXCIuL2NsYXVzZXMvU2VsZWN0Q2xhdXNlXCI7XG5pbXBvcnQgeyBSYW1WYWx1ZXNDbGF1c2UgfSBmcm9tIFwiLi9jbGF1c2VzL1ZhbHVlc0NsYXVzZVwiO1xuaW1wb3J0IHsgUmFtV2hlcmVDbGF1c2UgfSBmcm9tIFwiLi9jbGF1c2VzL1doZXJlQ2xhdXNlXCI7XG5pbXBvcnQgeyBSYW1Gcm9tQ2xhdXNlIH0gZnJvbSBcIi4vY2xhdXNlcy9Gcm9tQ2xhdXNlXCI7XG5cbmV4cG9ydCBjbGFzcyBSYW1DbGF1c2VGYWN0b3J5IGV4dGVuZHMgQ2xhdXNlRmFjdG9yeTxcbiAgUmFtU3RvcmFnZSxcbiAgUmFtUXVlcnk8YW55PixcbiAgUmFtQWRhcHRlclxuPiB7XG4gIGNvbnN0cnVjdG9yKGFkYXB0ZXI6IFJhbUFkYXB0ZXIpIHtcbiAgICBzdXBlcihhZGFwdGVyKTtcbiAgfVxuXG4gIGZyb208TSBleHRlbmRzIE1vZGVsPihcbiAgICBzdGF0ZW1lbnQ6IFJhbVN0YXRlbWVudDxNPixcbiAgICBzZWxlY3RvcjogRnJvbVNlbGVjdG9yPE0+XG4gICk6IEZyb21DbGF1c2U8UmFtUXVlcnk8YW55PiwgTT4ge1xuICAgIHJldHVybiBuZXcgUmFtRnJvbUNsYXVzZSh7IHN0YXRlbWVudDogc3RhdGVtZW50LCBzZWxlY3Rvcjogc2VsZWN0b3IgfSk7XG4gIH1cblxuICBncm91cEJ5KFxuICAgIHN0YXRlbWVudDogUmFtU3RhdGVtZW50PGFueT4sXG4gICAgc2VsZWN0b3I6IEdyb3VwQnlTZWxlY3RvclxuICApOiBHcm91cEJ5Q2xhdXNlPFJhbVF1ZXJ5PGFueT4+IHtcbiAgICByZXR1cm4gbmV3IChjbGFzcyBleHRlbmRzIEdyb3VwQnlDbGF1c2U8UmFtUXVlcnk8YW55Pj4ge1xuICAgICAgY29uc3RydWN0b3IoY2xhdXNlOiBNb2RlbEFyZzxHcm91cEJ5Q2xhdXNlPFJhbVF1ZXJ5PGFueT4+Pikge1xuICAgICAgICBzdXBlcihjbGF1c2UpO1xuICAgICAgfVxuXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICBidWlsZChxdWVyeTogUmFtUXVlcnk8YW55Pik6IFJhbVF1ZXJ5PGFueT4ge1xuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIk5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgICAgIH1cbiAgICB9KSh7XG4gICAgICBzdGF0ZW1lbnQ6IHN0YXRlbWVudCxcbiAgICAgIHNlbGVjdG9yOiBzZWxlY3RvcixcbiAgICB9KTtcbiAgfVxuXG4gIGluc2VydDxNIGV4dGVuZHMgTW9kZWw+KCk6IEluc2VydENsYXVzZTxSYW1RdWVyeTxhbnk+LCBNPiB7XG4gICAgcmV0dXJuIG5ldyBSYW1JbnNlcnRDbGF1c2Uoe1xuICAgICAgc3RhdGVtZW50OiBuZXcgUmFtU3RhdGVtZW50KHRoaXMuYWRhcHRlciksXG4gICAgfSk7XG4gIH1cblxuICBsaW1pdChcbiAgICBzdGF0ZW1lbnQ6IFJhbVN0YXRlbWVudDxhbnk+LFxuICAgIHNlbGVjdG9yOiBMaW1pdFNlbGVjdG9yXG4gICk6IExpbWl0Q2xhdXNlPFJhbVF1ZXJ5PGFueT4+IHtcbiAgICByZXR1cm4gbmV3IChjbGFzcyBleHRlbmRzIExpbWl0Q2xhdXNlPFJhbVF1ZXJ5PGFueT4+IHtcbiAgICAgIGNvbnN0cnVjdG9yKGNsYXVzZTogTW9kZWxBcmc8TGltaXRDbGF1c2U8UmFtUXVlcnk8YW55Pj4+KSB7XG4gICAgICAgIHN1cGVyKGNsYXVzZSk7XG4gICAgICB9XG5cbiAgICAgIGJ1aWxkKHF1ZXJ5OiBSYW1RdWVyeTxhbnk+KTogUmFtUXVlcnk8YW55PiB7XG4gICAgICAgIHF1ZXJ5LmxpbWl0ID0gdGhpcy5zZWxlY3RvciBhcyBudW1iZXI7XG4gICAgICAgIHJldHVybiBxdWVyeTtcbiAgICAgIH1cbiAgICB9KSh7XG4gICAgICBzdGF0ZW1lbnQ6IHN0YXRlbWVudCxcbiAgICAgIHNlbGVjdG9yOiBzZWxlY3RvcixcbiAgICB9KTtcbiAgfVxuXG4gIG9mZnNldChcbiAgICBzdGF0ZW1lbnQ6IFJhbVN0YXRlbWVudDxhbnk+LFxuICAgIHNlbGVjdG9yOiBPZmZzZXRTZWxlY3RvclxuICApOiBPZmZzZXRDbGF1c2U8UmFtUXVlcnk8YW55Pj4ge1xuICAgIHJldHVybiBuZXcgKGNsYXNzIGV4dGVuZHMgT2Zmc2V0Q2xhdXNlPFJhbVF1ZXJ5PGFueT4+IHtcbiAgICAgIGNvbnN0cnVjdG9yKGNsYXVzZTogTW9kZWxBcmc8T2Zmc2V0Q2xhdXNlPFJhbVF1ZXJ5PGFueT4+Pikge1xuICAgICAgICBzdXBlcihjbGF1c2UpO1xuICAgICAgfVxuXG4gICAgICBidWlsZChxdWVyeTogUmFtUXVlcnk8YW55Pik6IFJhbVF1ZXJ5PGFueT4ge1xuICAgICAgICBjb25zdCBza2lwOiBudW1iZXIgPSBwYXJzZUludCh0aGlzLnNlbGVjdG9yIGFzIHVua25vd24gYXMgc3RyaW5nKTtcbiAgICAgICAgaWYgKGlzTmFOKHNraXApKSB0aHJvdyBuZXcgUXVlcnlFcnJvcihcIkZhaWxlZCB0byBwYXJzZSBvZmZzZXRcIik7XG4gICAgICAgIHF1ZXJ5LnNraXAgPSBza2lwO1xuICAgICAgICByZXR1cm4gcXVlcnk7XG4gICAgICB9XG4gICAgfSkoe1xuICAgICAgc3RhdGVtZW50OiBzdGF0ZW1lbnQsXG4gICAgICBzZWxlY3Rvcjogc2VsZWN0b3IsXG4gICAgfSk7XG4gIH1cblxuICBvcmRlckJ5KFxuICAgIHN0YXRlbWVudDogUmFtU3RhdGVtZW50PGFueT4sXG4gICAgc2VsZWN0b3I6IE9yZGVyQnlTZWxlY3RvcltdXG4gICk6IE9yZGVyQnlDbGF1c2U8UmFtUXVlcnk8YW55Pj4ge1xuICAgIHJldHVybiBuZXcgUmFtT3JkZXJCeUNsYXVzZSh7XG4gICAgICBzdGF0ZW1lbnQ6IHN0YXRlbWVudCxcbiAgICAgIHNlbGVjdG9yOiBzZWxlY3RvcixcbiAgICB9KTtcbiAgfVxuXG4gIHNlbGVjdDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIHNlbGVjdG9yOiBTZWxlY3RTZWxlY3RvciB8IHVuZGVmaW5lZFxuICApOiBTZWxlY3RDbGF1c2U8UmFtUXVlcnk8YW55PiwgTT4ge1xuICAgIHJldHVybiBuZXcgUmFtU2VsZWN0Q2xhdXNlKHtcbiAgICAgIHN0YXRlbWVudDogbmV3IFJhbVN0YXRlbWVudCh0aGlzLmFkYXB0ZXIpLFxuICAgICAgc2VsZWN0b3I6IHNlbGVjdG9yLFxuICAgIH0pO1xuICB9XG5cbiAgdmFsdWVzPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgc3RhdGVtZW50OiBSYW1TdGF0ZW1lbnQ8YW55PixcbiAgICB2YWx1ZXM6IE1bXVxuICApOiBWYWx1ZXNDbGF1c2U8UmFtUXVlcnk8YW55PiwgTT4ge1xuICAgIHJldHVybiBuZXcgUmFtVmFsdWVzQ2xhdXNlPE0+KHtcbiAgICAgIHN0YXRlbWVudDogc3RhdGVtZW50LFxuICAgICAgdmFsdWVzOiB2YWx1ZXMsXG4gICAgfSk7XG4gIH1cblxuICB3aGVyZShcbiAgICBzdGF0ZW1lbnQ6IFJhbVN0YXRlbWVudDxhbnk+LFxuICAgIGNvbmRpdGlvbjogQ29uZGl0aW9uXG4gICk6IFdoZXJlQ2xhdXNlPFJhbVF1ZXJ5PGFueT4+IHtcbiAgICByZXR1cm4gbmV3IFJhbVdoZXJlQ2xhdXNlKHtcbiAgICAgIHN0YXRlbWVudDogc3RhdGVtZW50LFxuICAgICAgY29uZGl0aW9uOiBjb25kaXRpb24sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { ClauseFactory, Condition, FromClause, FromSelector, GroupByClause, GroupBySelector, InsertClause, LimitClause, LimitSelector, OffsetClause, OffsetSelector, OrderByClause, OrderBySelector, SelectClause, SelectSelector, ValuesClause, WhereClause } from "../query";
|
2
|
+
import { RamQuery, RamStorage } from "./types";
|
3
|
+
import { RamAdapter } from "./RamAdapter";
|
4
|
+
import { RamStatement } from "./RamStatement";
|
5
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
6
|
+
export declare class RamClauseFactory extends ClauseFactory<RamStorage, RamQuery<any>, RamAdapter> {
|
7
|
+
constructor(adapter: RamAdapter);
|
8
|
+
from<M extends Model>(statement: RamStatement<M>, selector: FromSelector<M>): FromClause<RamQuery<any>, M>;
|
9
|
+
groupBy(statement: RamStatement<any>, selector: GroupBySelector): GroupByClause<RamQuery<any>>;
|
10
|
+
insert<M extends Model>(): InsertClause<RamQuery<any>, M>;
|
11
|
+
limit(statement: RamStatement<any>, selector: LimitSelector): LimitClause<RamQuery<any>>;
|
12
|
+
offset(statement: RamStatement<any>, selector: OffsetSelector): OffsetClause<RamQuery<any>>;
|
13
|
+
orderBy(statement: RamStatement<any>, selector: OrderBySelector[]): OrderByClause<RamQuery<any>>;
|
14
|
+
select<M extends Model>(selector: SelectSelector | undefined): SelectClause<RamQuery<any>, M>;
|
15
|
+
values<M extends Model>(statement: RamStatement<any>, values: M[]): ValuesClause<RamQuery<any>, M>;
|
16
|
+
where(statement: RamStatement<any>, condition: Condition): WhereClause<RamQuery<any>>;
|
17
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.RamContext = void 0;
|
4
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
5
|
+
class RamContext extends db_decorators_1.Context {
|
6
|
+
constructor(obj) {
|
7
|
+
super(obj);
|
8
|
+
}
|
9
|
+
}
|
10
|
+
exports.RamContext = RamContext;
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmFtQ29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yYW0vUmFtQ29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyREFBa0Q7QUFHbEQsTUFBYSxVQUFXLFNBQVEsdUJBQWlCO0lBQy9DLFlBQVksR0FBYTtRQUN2QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDYixDQUFDO0NBQ0Y7QUFKRCxnQ0FJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRleHQgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IFJhbUZsYWdzIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZXhwb3J0IGNsYXNzIFJhbUNvbnRleHQgZXh0ZW5kcyBDb250ZXh0PFJhbUZsYWdzPiB7XG4gIGNvbnN0cnVjdG9yKG9iajogUmFtRmxhZ3MpIHtcbiAgICBzdXBlcihvYmopO1xuICB9XG59XG4iXX0=
|
@@ -0,0 +1,24 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.RamPaginator = void 0;
|
4
|
+
const query_1 = require("./../query/index.cjs");
|
5
|
+
class RamPaginator extends query_1.Paginator {
|
6
|
+
constructor(statement, size, rawStatement) {
|
7
|
+
super(statement, size, rawStatement);
|
8
|
+
}
|
9
|
+
prepare(rawStatement) {
|
10
|
+
const query = Object.assign({}, rawStatement);
|
11
|
+
query.limit = this.size;
|
12
|
+
return query;
|
13
|
+
}
|
14
|
+
async page(page = 1, ...args) {
|
15
|
+
page = this.validatePage(page);
|
16
|
+
const statement = this.prepare(this.statement);
|
17
|
+
statement.skip = (page - 1) * this.size;
|
18
|
+
const results = await this.adapter.raw(statement, false, ...args);
|
19
|
+
this._currentPage = page;
|
20
|
+
return results;
|
21
|
+
}
|
22
|
+
}
|
23
|
+
exports.RamPaginator = RamPaginator;
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmFtUGFnaW5hdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JhbS9SYW1QYWdpbmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsZ0RBQWdEO0FBRWhELE1BQWEsWUFBZ0IsU0FBUSxpQkFBMkI7SUFDOUQsWUFDRSxTQUFtQyxFQUNuQyxJQUFZLEVBQ1osWUFBMkI7UUFFM0IsS0FBSyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVTLE9BQU8sQ0FBQyxZQUEyQjtRQUMzQyxNQUFNLEtBQUssR0FBa0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDN0QsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3hCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBZSxDQUFDLEVBQUUsR0FBRyxJQUFXO1FBQ3pDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9DLFNBQVMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN4QyxNQUFNLE9BQU8sR0FBVSxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0Y7QUF2QkQsb0NBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmFtUXVlcnkgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgUGFnaW5hdG9yLCBTdGF0ZW1lbnQgfSBmcm9tIFwiLi4vcXVlcnlcIjtcblxuZXhwb3J0IGNsYXNzIFJhbVBhZ2luYXRvcjxWPiBleHRlbmRzIFBhZ2luYXRvcjxWLCBSYW1RdWVyeTxhbnk+PiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0YXRlbWVudDogU3RhdGVtZW50PFJhbVF1ZXJ5PGFueT4+LFxuICAgIHNpemU6IG51bWJlcixcbiAgICByYXdTdGF0ZW1lbnQ6IFJhbVF1ZXJ5PGFueT5cbiAgKSB7XG4gICAgc3VwZXIoc3RhdGVtZW50LCBzaXplLCByYXdTdGF0ZW1lbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHByZXBhcmUocmF3U3RhdGVtZW50OiBSYW1RdWVyeTxhbnk+KTogUmFtUXVlcnk8YW55PiB7XG4gICAgY29uc3QgcXVlcnk6IFJhbVF1ZXJ5PGFueT4gPSBPYmplY3QuYXNzaWduKHt9LCByYXdTdGF0ZW1lbnQpO1xuICAgIHF1ZXJ5LmxpbWl0ID0gdGhpcy5zaXplO1xuICAgIHJldHVybiBxdWVyeTtcbiAgfVxuXG4gIGFzeW5jIHBhZ2UocGFnZTogbnVtYmVyID0gMSwgLi4uYXJnczogYW55W10pOiBQcm9taXNlPFZbXT4ge1xuICAgIHBhZ2UgPSB0aGlzLnZhbGlkYXRlUGFnZShwYWdlKTtcbiAgICBjb25zdCBzdGF0ZW1lbnQgPSB0aGlzLnByZXBhcmUodGhpcy5zdGF0ZW1lbnQpO1xuICAgIHN0YXRlbWVudC5za2lwID0gKHBhZ2UgLSAxKSAqIHRoaXMuc2l6ZTtcbiAgICBjb25zdCByZXN1bHRzOiBhbnlbXSA9IGF3YWl0IHRoaXMuYWRhcHRlci5yYXcoc3RhdGVtZW50LCBmYWxzZSwgLi4uYXJncyk7XG4gICAgdGhpcy5fY3VycmVudFBhZ2UgPSBwYWdlO1xuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG59XG4iXX0=
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { RamQuery } from "./types";
|
2
|
+
import { Paginator, Statement } from "../query";
|
3
|
+
export declare class RamPaginator<V> extends Paginator<V, RamQuery<any>> {
|
4
|
+
constructor(statement: Statement<RamQuery<any>>, size: number, rawStatement: RamQuery<any>);
|
5
|
+
protected prepare(rawStatement: RamQuery<any>): RamQuery<any>;
|
6
|
+
page(page?: number, ...args: any[]): Promise<V[]>;
|
7
|
+
}
|