@decaf-ts/core 0.4.1 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (292) hide show
  1. package/dist/core.cjs +688 -1102
  2. package/dist/core.esm.cjs +663 -1075
  3. package/lib/esm/identity/decorators.d.ts +3 -9
  4. package/lib/esm/identity/decorators.js +18 -23
  5. package/lib/esm/identity/utils.d.ts +1 -1
  6. package/lib/esm/identity/utils.js +3 -2
  7. package/lib/esm/index.d.ts +4 -15
  8. package/lib/esm/index.js +8 -17
  9. package/lib/esm/interfaces/ErrorParser.d.ts +4 -0
  10. package/lib/esm/interfaces/ErrorParser.js +2 -0
  11. package/lib/esm/interfaces/Executor.d.ts +2 -18
  12. package/lib/esm/interfaces/Executor.js +1 -1
  13. package/lib/esm/interfaces/Observable.d.ts +2 -27
  14. package/lib/esm/interfaces/Observable.js +1 -1
  15. package/lib/esm/interfaces/Observer.d.ts +0 -13
  16. package/lib/esm/interfaces/Observer.js +1 -1
  17. package/lib/esm/interfaces/Paginatable.d.ts +3 -2
  18. package/lib/esm/interfaces/Paginatable.js +1 -1
  19. package/lib/esm/interfaces/Queriable.d.ts +19 -3
  20. package/lib/esm/interfaces/Queriable.js +1 -1
  21. package/lib/esm/interfaces/RawExecutor.d.ts +1 -18
  22. package/lib/esm/interfaces/RawExecutor.js +1 -1
  23. package/lib/esm/interfaces/SequenceOptions.d.ts +0 -7
  24. package/lib/esm/interfaces/SequenceOptions.js +1 -1
  25. package/lib/esm/interfaces/index.d.ts +1 -1
  26. package/lib/esm/interfaces/index.js +2 -2
  27. package/lib/esm/model/construction.d.ts +13 -10
  28. package/lib/esm/model/construction.js +8 -3
  29. package/lib/esm/model/decorators.d.ts +12 -17
  30. package/lib/esm/model/decorators.js +38 -24
  31. package/lib/esm/model/index.d.ts +1 -1
  32. package/lib/esm/model/index.js +2 -2
  33. package/lib/esm/persistence/Adapter.d.ts +38 -34
  34. package/lib/esm/persistence/Adapter.js +160 -61
  35. package/lib/esm/persistence/Dispatch.d.ts +18 -0
  36. package/lib/esm/persistence/Dispatch.js +89 -0
  37. package/lib/esm/persistence/ObserverHandler.d.ts +14 -0
  38. package/lib/esm/persistence/ObserverHandler.js +42 -0
  39. package/lib/esm/persistence/Sequence.d.ts +4 -12
  40. package/lib/esm/persistence/Sequence.js +22 -1
  41. package/lib/esm/persistence/constants.d.ts +0 -5
  42. package/lib/esm/persistence/constants.js +1 -7
  43. package/lib/esm/persistence/errors.d.ts +0 -3
  44. package/lib/esm/persistence/errors.js +2 -7
  45. package/lib/esm/persistence/index.d.ts +3 -0
  46. package/lib/esm/persistence/index.js +4 -1
  47. package/lib/esm/persistence/types.d.ts +3 -0
  48. package/lib/esm/persistence/types.js +2 -0
  49. package/lib/esm/query/Condition.d.ts +10 -13
  50. package/lib/esm/query/Condition.js +13 -10
  51. package/lib/esm/query/Paginator.d.ts +12 -11
  52. package/lib/esm/query/Paginator.js +10 -11
  53. package/lib/esm/query/Statement.d.ts +38 -54
  54. package/lib/esm/query/Statement.js +130 -128
  55. package/lib/esm/query/constants.d.ts +0 -64
  56. package/lib/esm/query/constants.js +1 -68
  57. package/lib/esm/query/errors.js +3 -3
  58. package/lib/esm/query/index.d.ts +0 -5
  59. package/lib/esm/query/index.js +1 -6
  60. package/lib/esm/query/options.d.ts +48 -175
  61. package/lib/esm/query/options.js +1 -1
  62. package/lib/esm/query/selectors.d.ts +3 -33
  63. package/lib/esm/query/selectors.js +1 -1
  64. package/lib/esm/ram/RamAdapter.d.ts +32 -0
  65. package/lib/esm/ram/RamAdapter.js +139 -0
  66. package/lib/esm/ram/RamContext.d.ts +5 -0
  67. package/lib/esm/ram/RamContext.js +7 -0
  68. package/lib/esm/ram/RamPaginator.d.ts +9 -0
  69. package/lib/esm/ram/RamPaginator.js +20 -0
  70. package/lib/esm/ram/RamSequence.d.ts +14 -0
  71. package/lib/esm/ram/RamSequence.js +81 -0
  72. package/lib/esm/ram/RamStatement.d.ts +12 -0
  73. package/lib/esm/ram/RamStatement.js +113 -0
  74. package/lib/esm/ram/constants.d.ts +1 -0
  75. package/lib/esm/ram/constants.js +2 -0
  76. package/lib/esm/ram/handlers.d.ts +6 -0
  77. package/lib/esm/ram/handlers.js +8 -0
  78. package/lib/esm/ram/index.d.ts +9 -0
  79. package/lib/esm/ram/index.js +14 -0
  80. package/lib/esm/ram/model/RamSequence.d.ts +7 -0
  81. package/lib/esm/ram/model/RamSequence.js +33 -0
  82. package/lib/esm/ram/model/index.d.ts +1 -0
  83. package/lib/esm/ram/model/index.js +2 -0
  84. package/lib/esm/ram/types.d.ts +17 -0
  85. package/lib/esm/ram/types.js +2 -0
  86. package/lib/esm/repository/Repository.d.ts +24 -17
  87. package/lib/esm/repository/Repository.js +115 -45
  88. package/lib/esm/repository/constants.d.ts +0 -15
  89. package/lib/esm/repository/constants.js +1 -16
  90. package/lib/esm/repository/errors.js +2 -2
  91. package/lib/esm/repository/index.d.ts +0 -1
  92. package/lib/esm/repository/index.js +1 -2
  93. package/lib/esm/repository/injectables.js +1 -1
  94. package/lib/esm/repository/types.d.ts +0 -3
  95. package/lib/esm/repository/types.js +1 -1
  96. package/lib/esm/utils/decorators.d.ts +1 -0
  97. package/lib/esm/utils/decorators.js +11 -0
  98. package/lib/esm/utils/errors.d.ts +10 -0
  99. package/lib/esm/utils/errors.js +17 -0
  100. package/lib/esm/utils/index.d.ts +2 -0
  101. package/lib/esm/utils/index.js +3 -0
  102. package/lib/identity/decorators.cjs +21 -26
  103. package/lib/identity/decorators.d.ts +3 -9
  104. package/lib/identity/index.cjs +1 -1
  105. package/lib/identity/utils.cjs +5 -4
  106. package/lib/identity/utils.d.ts +1 -1
  107. package/lib/index.cjs +8 -17
  108. package/lib/index.d.ts +4 -15
  109. package/lib/interfaces/ErrorParser.cjs +3 -0
  110. package/lib/interfaces/ErrorParser.d.ts +4 -0
  111. package/lib/interfaces/Executor.cjs +1 -1
  112. package/lib/interfaces/Executor.d.ts +2 -18
  113. package/lib/interfaces/Observable.cjs +1 -1
  114. package/lib/interfaces/Observable.d.ts +2 -27
  115. package/lib/interfaces/Observer.cjs +1 -1
  116. package/lib/interfaces/Observer.d.ts +0 -13
  117. package/lib/interfaces/Paginatable.cjs +1 -1
  118. package/lib/interfaces/Paginatable.d.ts +3 -2
  119. package/lib/interfaces/Queriable.cjs +1 -1
  120. package/lib/interfaces/Queriable.d.ts +19 -3
  121. package/lib/interfaces/RawExecutor.cjs +1 -1
  122. package/lib/interfaces/RawExecutor.d.ts +1 -18
  123. package/lib/interfaces/SequenceOptions.cjs +1 -1
  124. package/lib/interfaces/SequenceOptions.d.ts +0 -7
  125. package/lib/interfaces/index.cjs +2 -2
  126. package/lib/interfaces/index.d.ts +1 -1
  127. package/lib/model/construction.cjs +11 -6
  128. package/lib/model/construction.d.ts +13 -10
  129. package/lib/model/decorators.cjs +42 -28
  130. package/lib/model/decorators.d.ts +12 -17
  131. package/lib/model/index.cjs +2 -2
  132. package/lib/model/index.d.ts +1 -1
  133. package/lib/persistence/Adapter.cjs +159 -60
  134. package/lib/persistence/Adapter.d.ts +38 -34
  135. package/lib/persistence/Dispatch.cjs +93 -0
  136. package/lib/persistence/Dispatch.d.ts +18 -0
  137. package/lib/persistence/ObserverHandler.cjs +46 -0
  138. package/lib/persistence/ObserverHandler.d.ts +14 -0
  139. package/lib/persistence/Sequence.cjs +23 -2
  140. package/lib/persistence/Sequence.d.ts +4 -12
  141. package/lib/persistence/constants.cjs +2 -8
  142. package/lib/persistence/constants.d.ts +0 -5
  143. package/lib/persistence/decorators.cjs +1 -1
  144. package/lib/persistence/errors.cjs +3 -9
  145. package/lib/persistence/errors.d.ts +0 -3
  146. package/lib/persistence/index.cjs +4 -1
  147. package/lib/persistence/index.d.ts +3 -0
  148. package/lib/persistence/types.cjs +3 -0
  149. package/lib/persistence/types.d.ts +3 -0
  150. package/lib/query/Condition.cjs +12 -9
  151. package/lib/query/Condition.d.ts +10 -13
  152. package/lib/query/Paginator.cjs +10 -11
  153. package/lib/query/Paginator.d.ts +12 -11
  154. package/lib/query/Statement.cjs +129 -127
  155. package/lib/query/Statement.d.ts +38 -54
  156. package/lib/query/constants.cjs +2 -69
  157. package/lib/query/constants.d.ts +0 -64
  158. package/lib/query/errors.cjs +3 -3
  159. package/lib/query/index.cjs +1 -6
  160. package/lib/query/index.d.ts +0 -5
  161. package/lib/query/options.cjs +1 -1
  162. package/lib/query/options.d.ts +48 -175
  163. package/lib/query/selectors.cjs +1 -1
  164. package/lib/query/selectors.d.ts +3 -33
  165. package/lib/ram/RamAdapter.cjs +143 -0
  166. package/lib/ram/RamAdapter.d.ts +32 -0
  167. package/lib/ram/RamContext.cjs +11 -0
  168. package/lib/ram/RamContext.d.ts +5 -0
  169. package/lib/ram/RamPaginator.cjs +24 -0
  170. package/lib/ram/RamPaginator.d.ts +9 -0
  171. package/lib/ram/RamSequence.cjs +85 -0
  172. package/lib/ram/RamSequence.d.ts +14 -0
  173. package/lib/ram/RamStatement.cjs +117 -0
  174. package/lib/ram/RamStatement.d.ts +12 -0
  175. package/lib/ram/constants.cjs +5 -0
  176. package/lib/ram/constants.d.ts +1 -0
  177. package/lib/ram/handlers.cjs +11 -0
  178. package/lib/ram/handlers.d.ts +6 -0
  179. package/lib/ram/index.cjs +30 -0
  180. package/lib/ram/index.d.ts +9 -0
  181. package/lib/ram/model/RamSequence.cjs +36 -0
  182. package/lib/ram/model/RamSequence.d.ts +7 -0
  183. package/lib/ram/model/index.cjs +18 -0
  184. package/lib/ram/model/index.d.ts +1 -0
  185. package/lib/ram/types.cjs +3 -0
  186. package/lib/ram/types.d.ts +17 -0
  187. package/lib/repository/Repository.cjs +119 -49
  188. package/lib/repository/Repository.d.ts +24 -17
  189. package/lib/repository/constants.cjs +1 -16
  190. package/lib/repository/constants.d.ts +0 -15
  191. package/lib/repository/decorators.cjs +1 -1
  192. package/lib/repository/errors.cjs +2 -2
  193. package/lib/repository/index.cjs +1 -2
  194. package/lib/repository/index.d.ts +0 -1
  195. package/lib/repository/injectables.cjs +3 -3
  196. package/lib/repository/types.cjs +1 -1
  197. package/lib/repository/types.d.ts +0 -3
  198. package/lib/repository/utils.cjs +3 -3
  199. package/lib/utils/decorators.cjs +14 -0
  200. package/lib/utils/decorators.d.ts +1 -0
  201. package/lib/utils/errors.cjs +23 -0
  202. package/lib/utils/errors.d.ts +10 -0
  203. package/lib/{validators → utils}/index.cjs +2 -2
  204. package/lib/utils/index.d.ts +2 -0
  205. package/package.json +10 -3
  206. package/lib/esm/interfaces/Builder.d.ts +0 -16
  207. package/lib/esm/interfaces/Builder.js +0 -2
  208. package/lib/esm/model/IdentifiedBaseModel.d.ts +0 -7
  209. package/lib/esm/model/IdentifiedBaseModel.js +0 -25
  210. package/lib/esm/model/User.d.ts +0 -9
  211. package/lib/esm/model/User.js +0 -34
  212. package/lib/esm/query/Clause.d.ts +0 -50
  213. package/lib/esm/query/Clause.js +0 -82
  214. package/lib/esm/query/ClauseFactory.d.ts +0 -71
  215. package/lib/esm/query/ClauseFactory.js +0 -6
  216. package/lib/esm/query/Query.d.ts +0 -43
  217. package/lib/esm/query/Query.js +0 -54
  218. package/lib/esm/query/clauses/FromClause.d.ts +0 -45
  219. package/lib/esm/query/clauses/FromClause.js +0 -59
  220. package/lib/esm/query/clauses/GroupByClause.d.ts +0 -21
  221. package/lib/esm/query/clauses/GroupByClause.js +0 -19
  222. package/lib/esm/query/clauses/InsertClause.d.ts +0 -37
  223. package/lib/esm/query/clauses/InsertClause.js +0 -55
  224. package/lib/esm/query/clauses/LimitClause.d.ts +0 -29
  225. package/lib/esm/query/clauses/LimitClause.js +0 -27
  226. package/lib/esm/query/clauses/OffsetClause.d.ts +0 -21
  227. package/lib/esm/query/clauses/OffsetClause.js +0 -19
  228. package/lib/esm/query/clauses/OrderByClause.d.ts +0 -37
  229. package/lib/esm/query/clauses/OrderByClause.js +0 -39
  230. package/lib/esm/query/clauses/SelectClause.d.ts +0 -47
  231. package/lib/esm/query/clauses/SelectClause.js +0 -62
  232. package/lib/esm/query/clauses/SelectorBasedClause.d.ts +0 -25
  233. package/lib/esm/query/clauses/SelectorBasedClause.js +0 -44
  234. package/lib/esm/query/clauses/ValuesClause.d.ts +0 -21
  235. package/lib/esm/query/clauses/ValuesClause.js +0 -36
  236. package/lib/esm/query/clauses/WhereClause.d.ts +0 -46
  237. package/lib/esm/query/clauses/WhereClause.js +0 -71
  238. package/lib/esm/query/clauses/index.d.ts +0 -10
  239. package/lib/esm/query/clauses/index.js +0 -11
  240. package/lib/esm/query/types.d.ts +0 -2
  241. package/lib/esm/query/types.js +0 -2
  242. package/lib/esm/repository/Context.d.ts +0 -10
  243. package/lib/esm/repository/Context.js +0 -12
  244. package/lib/esm/validators/ClauseSequenceValidator.d.ts +0 -28
  245. package/lib/esm/validators/ClauseSequenceValidator.js +0 -95
  246. package/lib/esm/validators/decorators.d.ts +0 -10
  247. package/lib/esm/validators/decorators.js +0 -24
  248. package/lib/esm/validators/index.d.ts +0 -2
  249. package/lib/esm/validators/index.js +0 -3
  250. package/lib/interfaces/Builder.cjs +0 -3
  251. package/lib/interfaces/Builder.d.ts +0 -16
  252. package/lib/model/IdentifiedBaseModel.cjs +0 -29
  253. package/lib/model/IdentifiedBaseModel.d.ts +0 -7
  254. package/lib/model/User.cjs +0 -37
  255. package/lib/model/User.d.ts +0 -9
  256. package/lib/query/Clause.cjs +0 -86
  257. package/lib/query/Clause.d.ts +0 -50
  258. package/lib/query/ClauseFactory.cjs +0 -10
  259. package/lib/query/ClauseFactory.d.ts +0 -71
  260. package/lib/query/Query.cjs +0 -58
  261. package/lib/query/Query.d.ts +0 -43
  262. package/lib/query/clauses/FromClause.cjs +0 -63
  263. package/lib/query/clauses/FromClause.d.ts +0 -45
  264. package/lib/query/clauses/GroupByClause.cjs +0 -23
  265. package/lib/query/clauses/GroupByClause.d.ts +0 -21
  266. package/lib/query/clauses/InsertClause.cjs +0 -59
  267. package/lib/query/clauses/InsertClause.d.ts +0 -37
  268. package/lib/query/clauses/LimitClause.cjs +0 -31
  269. package/lib/query/clauses/LimitClause.d.ts +0 -29
  270. package/lib/query/clauses/OffsetClause.cjs +0 -23
  271. package/lib/query/clauses/OffsetClause.d.ts +0 -21
  272. package/lib/query/clauses/OrderByClause.cjs +0 -43
  273. package/lib/query/clauses/OrderByClause.d.ts +0 -37
  274. package/lib/query/clauses/SelectClause.cjs +0 -66
  275. package/lib/query/clauses/SelectClause.d.ts +0 -47
  276. package/lib/query/clauses/SelectorBasedClause.cjs +0 -48
  277. package/lib/query/clauses/SelectorBasedClause.d.ts +0 -25
  278. package/lib/query/clauses/ValuesClause.cjs +0 -40
  279. package/lib/query/clauses/ValuesClause.d.ts +0 -21
  280. package/lib/query/clauses/WhereClause.cjs +0 -75
  281. package/lib/query/clauses/WhereClause.d.ts +0 -46
  282. package/lib/query/clauses/index.cjs +0 -27
  283. package/lib/query/clauses/index.d.ts +0 -10
  284. package/lib/query/types.cjs +0 -3
  285. package/lib/query/types.d.ts +0 -2
  286. package/lib/repository/Context.cjs +0 -16
  287. package/lib/repository/Context.d.ts +0 -10
  288. package/lib/validators/ClauseSequenceValidator.cjs +0 -98
  289. package/lib/validators/ClauseSequenceValidator.d.ts +0 -28
  290. package/lib/validators/decorators.cjs +0 -27
  291. package/lib/validators/decorators.d.ts +0 -10
  292. package/lib/validators/index.d.ts +0 -2
@@ -0,0 +1,139 @@
1
+ import { RamStatement } from "./RamStatement";
2
+ import { RamContext } from "./RamContext";
3
+ import { Repository } from "../repository/Repository";
4
+ import { Adapter, PersistenceKeys, Sequence } from "../persistence";
5
+ import { Lock } from "@decaf-ts/transactional-decorators";
6
+ import { Decoration, Model, propMetadata, } from "@decaf-ts/decorator-validation";
7
+ import { BaseError, ConflictError, findPrimaryKey, InternalError, NotFoundError, onCreate, } from "@decaf-ts/db-decorators";
8
+ import { RamSequence } from "./RamSequence";
9
+ import { createdByOnRamCreateUpdate } from "./handlers";
10
+ import { RamFlavour } from "./constants";
11
+ export class RamAdapter extends Adapter {
12
+ constructor(alias) {
13
+ super(new Map(), RamFlavour, alias);
14
+ this.Context = RamContext;
15
+ this.indexes = {};
16
+ this.lock = new Lock();
17
+ }
18
+ repository() {
19
+ return super.repository();
20
+ }
21
+ flags(operation, model, flags) {
22
+ return Object.assign(super.flags(operation, model, flags), {
23
+ UUID: crypto.randomUUID(),
24
+ });
25
+ }
26
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
27
+ async initialize(...args) {
28
+ return Promise.resolve(undefined);
29
+ }
30
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
31
+ async index(...models) {
32
+ return Promise.resolve(undefined);
33
+ }
34
+ prepare(model, pk) {
35
+ const prepared = super.prepare(model, pk);
36
+ delete prepared.record[pk];
37
+ return prepared;
38
+ }
39
+ revert(obj, clazz, pk, id) {
40
+ const res = super.revert(obj, clazz, pk, id);
41
+ return res;
42
+ }
43
+ async create(tableName, id, model) {
44
+ await this.lock.acquire();
45
+ if (!this.native.has(tableName))
46
+ this.native.set(tableName, new Map());
47
+ if (this.native.get(tableName) && this.native.get(tableName)?.has(id))
48
+ throw new ConflictError(`Record with id ${id} already exists in table ${tableName}`);
49
+ this.native.get(tableName)?.set(id, model);
50
+ this.lock.release();
51
+ return model;
52
+ }
53
+ async read(tableName, id) {
54
+ if (!this.native.has(tableName))
55
+ throw new NotFoundError(`Table ${tableName} not found`);
56
+ if (!this.native.get(tableName)?.has(id))
57
+ throw new NotFoundError(`Record with id ${id} not found in table ${tableName}`);
58
+ return this.native.get(tableName)?.get(id);
59
+ }
60
+ async update(tableName, id, model) {
61
+ await this.lock.acquire();
62
+ if (!this.native.has(tableName))
63
+ throw new NotFoundError(`Table ${tableName} not found`);
64
+ if (!this.native.get(tableName)?.has(id))
65
+ throw new NotFoundError(`Record with id ${id} not found in table ${tableName}`);
66
+ this.native.get(tableName)?.set(id, model);
67
+ this.lock.release();
68
+ return model;
69
+ }
70
+ async delete(tableName, id) {
71
+ await this.lock.acquire();
72
+ if (!this.native.has(tableName))
73
+ throw new NotFoundError(`Table ${tableName} not found`);
74
+ if (!this.native.get(tableName)?.has(id))
75
+ throw new NotFoundError(`Record with id ${id} not found in table ${tableName}`);
76
+ const natived = this.native.get(tableName)?.get(id);
77
+ this.native.get(tableName)?.delete(id);
78
+ this.lock.release();
79
+ return natived;
80
+ }
81
+ tableFor(from) {
82
+ if (typeof from === "string")
83
+ from = Model.get(from);
84
+ const table = Repository.table(from);
85
+ if (!this.native.has(table))
86
+ this.native.set(table, new Map());
87
+ return this.native.get(table);
88
+ }
89
+ async raw(rawInput) {
90
+ const { where, sort, limit, skip, from } = rawInput;
91
+ let { select } = rawInput;
92
+ const collection = this.tableFor(from);
93
+ if (!collection)
94
+ throw new InternalError(`Table ${from} not found in RamAdapter`);
95
+ const { id, props } = findPrimaryKey(new from());
96
+ let result = Array.from(collection.entries()).map(([pk, r]) => this.revert(r, from, id, Sequence.parseValue(props.type, pk)));
97
+ result = where ? result.filter(where) : result;
98
+ if (sort)
99
+ result = result.sort(sort);
100
+ if (skip)
101
+ result = result.slice(skip);
102
+ if (limit)
103
+ result = result.slice(0, limit);
104
+ if (select) {
105
+ select = Array.isArray(select) ? select : [select];
106
+ result = result.map((r) => Object.entries(r).reduce((acc, [key, val]) => {
107
+ if (select.includes(key))
108
+ acc[key] = val;
109
+ return acc;
110
+ }, {}));
111
+ }
112
+ return result;
113
+ }
114
+ parseError(err) {
115
+ if (err instanceof BaseError)
116
+ return err;
117
+ return new InternalError(err);
118
+ }
119
+ Statement() {
120
+ return new RamStatement(this);
121
+ }
122
+ async Sequence(options) {
123
+ return new RamSequence(options, this);
124
+ }
125
+ static decoration() {
126
+ const createdByKey = Repository.key(PersistenceKeys.CREATED_BY);
127
+ const updatedByKey = Repository.key(PersistenceKeys.UPDATED_BY);
128
+ Decoration.flavouredAs(RamFlavour)
129
+ .for(createdByKey)
130
+ .define(onCreate(createdByOnRamCreateUpdate), propMetadata(createdByKey, {}))
131
+ .apply();
132
+ Decoration.flavouredAs(RamFlavour)
133
+ .for(updatedByKey)
134
+ .define(onCreate(createdByOnRamCreateUpdate), propMetadata(updatedByKey, {}))
135
+ .apply();
136
+ }
137
+ }
138
+ RamAdapter.decoration();
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmFtQWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yYW0vUmFtQWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzFELE9BQU8sRUFFTCxVQUFVLEVBQ1YsS0FBSyxFQUNMLFlBQVksR0FDYixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsYUFBYSxFQUNiLGNBQWMsRUFDZCxhQUFhLEVBQ2IsYUFBYSxFQUNiLFFBQVEsR0FFVCxNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFekMsTUFBTSxPQUFPLFVBQVcsU0FBUSxPQUsvQjtJQUNDLFlBQVksS0FBYztRQUN4QixLQUFLLENBQUMsSUFBSSxHQUFHLEVBQTRCLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBaUJ2RCxZQUFPLEdBQUcsVUFBVSxDQUFDO1FBRXRCLFlBQU8sR0FHWCxFQUFFLENBQUM7UUFFQyxTQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQXZCMUIsQ0FBQztJQUVRLFVBQVU7UUFDakIsT0FBTyxLQUFLLENBQUMsVUFBVSxFQUFzQyxDQUFDO0lBQ2hFLENBQUM7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QUFPLE1BQXNCLENBQUM7SUFDaEMsQ0FBQztJQUVELFVBQVUsQ0FBc0IsR0FBVTtRQUN4QyxJQUFJLEdBQUcsWUFBWSxTQUFTO1lBQUUsT0FBTyxHQUFRLENBQUM7UUFDOUMsT0FBTyxJQUFJLGFBQWEsQ0FBQyxHQUFHLENBQU0sQ0FBQztJQUNyQyxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxZQUFZLENBQVMsSUFBVyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBd0I7UUFDckMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVO1FBQ2YsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEUsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEUsVUFBVSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7YUFDL0IsR0FBRyxDQUFDLFlBQVksQ0FBQzthQUNqQixNQUFNLENBQ0wsUUFBUSxDQUFDLDBCQUEwQixDQUFDLEVBQ3BDLFlBQVksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQy9CO2FBQ0EsS0FBSyxFQUFFLENBQUM7UUFDWCxVQUFVLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQzthQUMvQixHQUFHLENBQUMsWUFBWSxDQUFDO2FBQ2pCLE1BQU0sQ0FDTCxRQUFRLENBQUMsMEJBQTBCLENBQUMsRUFDcEMsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FDL0I7YUFDQSxLQUFLLEVBQUUsQ0FBQztJQUNiLENBQUM7Q0FDRjtBQUVELFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJhbUZsYWdzLCBSYXdSYW1RdWVyeSwgUmFtU3RvcmFnZSwgUmFtUmVwb3NpdG9yeSB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBSYW1TdGF0ZW1lbnQgfSBmcm9tIFwiLi9SYW1TdGF0ZW1lbnRcIjtcbmltcG9ydCB7IFJhbUNvbnRleHQgfSBmcm9tIFwiLi9SYW1Db250ZXh0XCI7XG5pbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSBcIi4uL3JlcG9zaXRvcnkvUmVwb3NpdG9yeVwiO1xuaW1wb3J0IHsgQWRhcHRlciwgUGVyc2lzdGVuY2VLZXlzLCBTZXF1ZW5jZSB9IGZyb20gXCIuLi9wZXJzaXN0ZW5jZVwiO1xuaW1wb3J0IHsgU2VxdWVuY2VPcHRpb25zIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcbmltcG9ydCB7IExvY2sgfSBmcm9tIFwiQGRlY2FmLXRzL3RyYW5zYWN0aW9uYWwtZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHtcbiAgQ29uc3RydWN0b3IsXG4gIERlY29yYXRpb24sXG4gIE1vZGVsLFxuICBwcm9wTWV0YWRhdGEsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7XG4gIEJhc2VFcnJvcixcbiAgQ29uZmxpY3RFcnJvcixcbiAgZmluZFByaW1hcnlLZXksXG4gIEludGVybmFsRXJyb3IsXG4gIE5vdEZvdW5kRXJyb3IsXG4gIG9uQ3JlYXRlLFxuICBPcGVyYXRpb25LZXlzLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IFJhbVNlcXVlbmNlIH0gZnJvbSBcIi4vUmFtU2VxdWVuY2VcIjtcbmltcG9ydCB7IGNyZWF0ZWRCeU9uUmFtQ3JlYXRlVXBkYXRlIH0gZnJvbSBcIi4vaGFuZGxlcnNcIjtcbmltcG9ydCB7IFJhbUZsYXZvdXIgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuZXhwb3J0IGNsYXNzIFJhbUFkYXB0ZXIgZXh0ZW5kcyBBZGFwdGVyPFxuICBSYW1TdG9yYWdlLFxuICBSYXdSYW1RdWVyeTxhbnk+LFxuICBSYW1GbGFncyxcbiAgUmFtQ29udGV4dFxuPiB7XG4gIGNvbnN0cnVjdG9yKGFsaWFzPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobmV3IE1hcDxzdHJpbmcsIE1hcDxzdHJpbmcsIGFueT4+KCksIFJhbUZsYXZvdXIsIGFsaWFzKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHJlcG9zaXRvcnk8TSBleHRlbmRzIE1vZGVsPigpOiBDb25zdHJ1Y3RvcjxSYW1SZXBvc2l0b3J5PE0+PiB7XG4gICAgcmV0dXJuIHN1cGVyLnJlcG9zaXRvcnk8TT4oKSBhcyBDb25zdHJ1Y3RvcjxSYW1SZXBvc2l0b3J5PE0+PjtcbiAgfVxuXG4gIG92ZXJyaWRlIGZsYWdzPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgb3BlcmF0aW9uOiBPcGVyYXRpb25LZXlzLFxuICAgIG1vZGVsOiBDb25zdHJ1Y3RvcjxNPixcbiAgICBmbGFnczogUGFydGlhbDxSYW1GbGFncz5cbiAgKTogUmFtRmxhZ3Mge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHN1cGVyLmZsYWdzKG9wZXJhdGlvbiwgbW9kZWwsIGZsYWdzKSwge1xuICAgICAgVVVJRDogY3J5cHRvLnJhbmRvbVVVSUQoKSxcbiAgICB9KSBhcyBSYW1GbGFncztcbiAgfVxuXG4gIG92ZXJyaWRlIENvbnRleHQgPSBSYW1Db250ZXh0O1xuXG4gIHByaXZhdGUgaW5kZXhlczogUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICBSZWNvcmQ8c3RyaW5nIHwgbnVtYmVyLCBSZWNvcmQ8c3RyaW5nLCBhbnk+PlxuICA+ID0ge307XG5cbiAgcHJpdmF0ZSBsb2NrID0gbmV3IExvY2soKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIGFzeW5jIGluaXRpYWxpemUoLi4uYXJnczogYW55W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIGFzeW5jIGluZGV4KC4uLm1vZGVsczogUmVjb3JkPHN0cmluZywgYW55PltdKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gIH1cblxuICBvdmVycmlkZSBwcmVwYXJlPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgbW9kZWw6IE0sXG4gICAgcGs6IGtleW9mIE1cbiAgKTogeyByZWNvcmQ6IFJlY29yZDxzdHJpbmcsIGFueT47IGlkOiBzdHJpbmcgfSB7XG4gICAgY29uc3QgcHJlcGFyZWQgPSBzdXBlci5wcmVwYXJlKG1vZGVsLCBwayk7XG4gICAgZGVsZXRlIHByZXBhcmVkLnJlY29yZFtwayBhcyBzdHJpbmddO1xuICAgIHJldHVybiBwcmVwYXJlZDtcbiAgfVxuXG4gIG92ZXJyaWRlIHJldmVydDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIG9iajogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICBjbGF6ejogc3RyaW5nIHwgQ29uc3RydWN0b3I8TT4sXG4gICAgcGs6IGtleW9mIE0sXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlclxuICApOiBNIHtcbiAgICBjb25zdCByZXMgPSBzdXBlci5yZXZlcnQob2JqLCBjbGF6eiwgcGssIGlkKTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXIsXG4gICAgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgYXdhaXQgdGhpcy5sb2NrLmFjcXVpcmUoKTtcbiAgICBpZiAoIXRoaXMubmF0aXZlLmhhcyh0YWJsZU5hbWUpKSB0aGlzLm5hdGl2ZS5zZXQodGFibGVOYW1lLCBuZXcgTWFwKCkpO1xuICAgIGlmICh0aGlzLm5hdGl2ZS5nZXQodGFibGVOYW1lKSAmJiB0aGlzLm5hdGl2ZS5nZXQodGFibGVOYW1lKT8uaGFzKGlkKSlcbiAgICAgIHRocm93IG5ldyBDb25mbGljdEVycm9yKFxuICAgICAgICBgUmVjb3JkIHdpdGggaWQgJHtpZH0gYWxyZWFkeSBleGlzdHMgaW4gdGFibGUgJHt0YWJsZU5hbWV9YFxuICAgICAgKTtcbiAgICB0aGlzLm5hdGl2ZS5nZXQodGFibGVOYW1lKT8uc2V0KGlkLCBtb2RlbCk7XG4gICAgdGhpcy5sb2NrLnJlbGVhc2UoKTtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH1cblxuICBhc3luYyByZWFkKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXJcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgaWYgKCF0aGlzLm5hdGl2ZS5oYXModGFibGVOYW1lKSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBUYWJsZSAke3RhYmxlTmFtZX0gbm90IGZvdW5kYCk7XG4gICAgaWYgKCF0aGlzLm5hdGl2ZS5nZXQodGFibGVOYW1lKT8uaGFzKGlkKSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKFxuICAgICAgICBgUmVjb3JkIHdpdGggaWQgJHtpZH0gbm90IGZvdW5kIGluIHRhYmxlICR7dGFibGVOYW1lfWBcbiAgICAgICk7XG4gICAgcmV0dXJuIHRoaXMubmF0aXZlLmdldCh0YWJsZU5hbWUpPy5nZXQoaWQpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlKFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXIsXG4gICAgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgYXdhaXQgdGhpcy5sb2NrLmFjcXVpcmUoKTtcbiAgICBpZiAoIXRoaXMubmF0aXZlLmhhcyh0YWJsZU5hbWUpKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYFRhYmxlICR7dGFibGVOYW1lfSBub3QgZm91bmRgKTtcbiAgICBpZiAoIXRoaXMubmF0aXZlLmdldCh0YWJsZU5hbWUpPy5oYXMoaWQpKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoXG4gICAgICAgIGBSZWNvcmQgd2l0aCBpZCAke2lkfSBub3QgZm91bmQgaW4gdGFibGUgJHt0YWJsZU5hbWV9YFxuICAgICAgKTtcbiAgICB0aGlzLm5hdGl2ZS5nZXQodGFibGVOYW1lKT8uc2V0KGlkLCBtb2RlbCk7XG4gICAgdGhpcy5sb2NrLnJlbGVhc2UoKTtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH1cblxuICBhc3luYyBkZWxldGUoXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyB8IG51bWJlclxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBhd2FpdCB0aGlzLmxvY2suYWNxdWlyZSgpO1xuICAgIGlmICghdGhpcy5uYXRpdmUuaGFzKHRhYmxlTmFtZSkpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgVGFibGUgJHt0YWJsZU5hbWV9IG5vdCBmb3VuZGApO1xuICAgIGlmICghdGhpcy5uYXRpdmUuZ2V0KHRhYmxlTmFtZSk/LmhhcyhpZCkpXG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihcbiAgICAgICAgYFJlY29yZCB3aXRoIGlkICR7aWR9IG5vdCBmb3VuZCBpbiB0YWJsZSAke3RhYmxlTmFtZX1gXG4gICAgICApO1xuICAgIGNvbnN0IG5hdGl2ZWQgPSB0aGlzLm5hdGl2ZS5nZXQodGFibGVOYW1lKT8uZ2V0KGlkKTtcbiAgICB0aGlzLm5hdGl2ZS5nZXQodGFibGVOYW1lKT8uZGVsZXRlKGlkKTtcbiAgICB0aGlzLmxvY2sucmVsZWFzZSgpO1xuICAgIHJldHVybiBuYXRpdmVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRhYmxlRm9yPE0gZXh0ZW5kcyBNb2RlbD4oZnJvbTogc3RyaW5nIHwgQ29uc3RydWN0b3I8TT4pIHtcbiAgICBpZiAodHlwZW9mIGZyb20gPT09IFwic3RyaW5nXCIpIGZyb20gPSBNb2RlbC5nZXQoZnJvbSkgYXMgQ29uc3RydWN0b3I8TT47XG4gICAgY29uc3QgdGFibGUgPSBSZXBvc2l0b3J5LnRhYmxlKGZyb20pO1xuICAgIGlmICghdGhpcy5uYXRpdmUuaGFzKHRhYmxlKSkgdGhpcy5uYXRpdmUuc2V0KHRhYmxlLCBuZXcgTWFwKCkpO1xuICAgIHJldHVybiB0aGlzLm5hdGl2ZS5nZXQodGFibGUpO1xuICB9XG5cbiAgYXN5bmMgcmF3PFI+KHJhd0lucHV0OiBSYXdSYW1RdWVyeTxhbnk+KTogUHJvbWlzZTxSPiB7XG4gICAgY29uc3QgeyB3aGVyZSwgc29ydCwgbGltaXQsIHNraXAsIGZyb20gfSA9IHJhd0lucHV0O1xuICAgIGxldCB7IHNlbGVjdCB9ID0gcmF3SW5wdXQ7XG4gICAgY29uc3QgY29sbGVjdGlvbiA9IHRoaXMudGFibGVGb3IoZnJvbSk7XG4gICAgaWYgKCFjb2xsZWN0aW9uKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYFRhYmxlICR7ZnJvbX0gbm90IGZvdW5kIGluIFJhbUFkYXB0ZXJgKTtcbiAgICBjb25zdCB7IGlkLCBwcm9wcyB9ID0gZmluZFByaW1hcnlLZXkobmV3IGZyb20oKSk7XG5cbiAgICBsZXQgcmVzdWx0OiBhbnlbXSA9IEFycmF5LmZyb20oY29sbGVjdGlvbi5lbnRyaWVzKCkpLm1hcCgoW3BrLCByXSkgPT5cbiAgICAgIHRoaXMucmV2ZXJ0KFxuICAgICAgICByLFxuICAgICAgICBmcm9tLFxuICAgICAgICBpZCBhcyBhbnksXG4gICAgICAgIFNlcXVlbmNlLnBhcnNlVmFsdWUocHJvcHMudHlwZSBhcyBhbnksIHBrIGFzIHN0cmluZykgYXMgc3RyaW5nXG4gICAgICApXG4gICAgKTtcblxuICAgIHJlc3VsdCA9IHdoZXJlID8gcmVzdWx0LmZpbHRlcih3aGVyZSkgOiByZXN1bHQ7XG5cbiAgICBpZiAoc29ydCkgcmVzdWx0ID0gcmVzdWx0LnNvcnQoc29ydCk7XG5cbiAgICBpZiAoc2tpcCkgcmVzdWx0ID0gcmVzdWx0LnNsaWNlKHNraXApO1xuICAgIGlmIChsaW1pdCkgcmVzdWx0ID0gcmVzdWx0LnNsaWNlKDAsIGxpbWl0KTtcblxuICAgIGlmIChzZWxlY3QpIHtcbiAgICAgIHNlbGVjdCA9IEFycmF5LmlzQXJyYXkoc2VsZWN0KSA/IHNlbGVjdCA6IFtzZWxlY3RdO1xuICAgICAgcmVzdWx0ID0gcmVzdWx0Lm1hcCgocikgPT5cbiAgICAgICAgT2JqZWN0LmVudHJpZXMocikucmVkdWNlKChhY2M6IFJlY29yZDxzdHJpbmcsIGFueT4sIFtrZXksIHZhbF0pID0+IHtcbiAgICAgICAgICBpZiAoKHNlbGVjdCBhcyBzdHJpbmdbXSkuaW5jbHVkZXMoa2V5KSkgYWNjW2tleV0gPSB2YWw7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQgYXMgdW5rbm93biBhcyBSO1xuICB9XG5cbiAgcGFyc2VFcnJvcjxWIGV4dGVuZHMgQmFzZUVycm9yPihlcnI6IEVycm9yKTogViB7XG4gICAgaWYgKGVyciBpbnN0YW5jZW9mIEJhc2VFcnJvcikgcmV0dXJuIGVyciBhcyBWO1xuICAgIHJldHVybiBuZXcgSW50ZXJuYWxFcnJvcihlcnIpIGFzIFY7XG4gIH1cblxuICBTdGF0ZW1lbnQ8TSBleHRlbmRzIE1vZGVsPigpOiBSYW1TdGF0ZW1lbnQ8TSwgYW55PiB7XG4gICAgcmV0dXJuIG5ldyBSYW1TdGF0ZW1lbnQ8TSwgYW55Pih0aGlzIGFzIGFueSk7XG4gIH1cblxuICBhc3luYyBTZXF1ZW5jZShvcHRpb25zOiBTZXF1ZW5jZU9wdGlvbnMpOiBQcm9taXNlPFNlcXVlbmNlPiB7XG4gICAgcmV0dXJuIG5ldyBSYW1TZXF1ZW5jZShvcHRpb25zLCB0aGlzKTtcbiAgfVxuXG4gIHN0YXRpYyBkZWNvcmF0aW9uKCkge1xuICAgIGNvbnN0IGNyZWF0ZWRCeUtleSA9IFJlcG9zaXRvcnkua2V5KFBlcnNpc3RlbmNlS2V5cy5DUkVBVEVEX0JZKTtcbiAgICBjb25zdCB1cGRhdGVkQnlLZXkgPSBSZXBvc2l0b3J5LmtleShQZXJzaXN0ZW5jZUtleXMuVVBEQVRFRF9CWSk7XG4gICAgRGVjb3JhdGlvbi5mbGF2b3VyZWRBcyhSYW1GbGF2b3VyKVxuICAgICAgLmZvcihjcmVhdGVkQnlLZXkpXG4gICAgICAuZGVmaW5lKFxuICAgICAgICBvbkNyZWF0ZShjcmVhdGVkQnlPblJhbUNyZWF0ZVVwZGF0ZSksXG4gICAgICAgIHByb3BNZXRhZGF0YShjcmVhdGVkQnlLZXksIHt9KVxuICAgICAgKVxuICAgICAgLmFwcGx5KCk7XG4gICAgRGVjb3JhdGlvbi5mbGF2b3VyZWRBcyhSYW1GbGF2b3VyKVxuICAgICAgLmZvcih1cGRhdGVkQnlLZXkpXG4gICAgICAuZGVmaW5lKFxuICAgICAgICBvbkNyZWF0ZShjcmVhdGVkQnlPblJhbUNyZWF0ZVVwZGF0ZSksXG4gICAgICAgIHByb3BNZXRhZGF0YSh1cGRhdGVkQnlLZXksIHt9KVxuICAgICAgKVxuICAgICAgLmFwcGx5KCk7XG4gIH1cbn1cblxuUmFtQWRhcHRlci5kZWNvcmF0aW9uKCk7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ import { Context } from "@decaf-ts/db-decorators";
2
+ import { RamFlags } from "./types";
3
+ export declare class RamContext extends Context<RamFlags> {
4
+ constructor(obj: RamFlags);
5
+ }
@@ -0,0 +1,7 @@
1
+ import { Context } from "@decaf-ts/db-decorators";
2
+ export class RamContext extends Context {
3
+ constructor(obj) {
4
+ super(obj);
5
+ }
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmFtQ29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yYW0vUmFtQ29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHbEQsTUFBTSxPQUFPLFVBQVcsU0FBUSxPQUFpQjtJQUMvQyxZQUFZLEdBQWE7UUFDdkIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgUmFtRmxhZ3MgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5leHBvcnQgY2xhc3MgUmFtQ29udGV4dCBleHRlbmRzIENvbnRleHQ8UmFtRmxhZ3M+IHtcbiAgY29uc3RydWN0b3Iob2JqOiBSYW1GbGFncykge1xuICAgIHN1cGVyKG9iaik7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,9 @@
1
+ import { RawRamQuery } from "./types";
2
+ import { Paginator } from "../query";
3
+ import { Constructor, Model } from "@decaf-ts/decorator-validation";
4
+ import { Adapter } from "../persistence";
5
+ export declare class RamPaginator<M extends Model, R> extends Paginator<M, R, RawRamQuery<M>> {
6
+ constructor(adapter: Adapter<any, RawRamQuery<M>, any, any>, query: RawRamQuery<M>, size: number, clazz: Constructor<M>);
7
+ protected prepare(rawStatement: RawRamQuery<M>): RawRamQuery<M>;
8
+ page(page?: number): Promise<R[]>;
9
+ }
@@ -0,0 +1,20 @@
1
+ import { Paginator } from "../query";
2
+ export class RamPaginator extends Paginator {
3
+ constructor(adapter, query, size, clazz) {
4
+ super(adapter, query, size, clazz);
5
+ }
6
+ prepare(rawStatement) {
7
+ const query = Object.assign({}, rawStatement);
8
+ query.limit = this.size;
9
+ return query;
10
+ }
11
+ async page(page = 1) {
12
+ page = this.validatePage(page);
13
+ const statement = this.prepare(this.statement);
14
+ statement.skip = (page - 1) * this.size;
15
+ const results = await this.adapter.raw(statement);
16
+ this._currentPage = page;
17
+ return results;
18
+ }
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmFtUGFnaW5hdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JhbS9SYW1QYWdpbmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUlyQyxNQUFNLE9BQU8sWUFBaUMsU0FBUSxTQUlyRDtJQUNDLFlBQ0UsT0FBK0MsRUFDL0MsS0FBcUIsRUFDckIsSUFBWSxFQUNaLEtBQXFCO1FBRXJCLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRVMsT0FBTyxDQUFDLFlBQTRCO1FBQzVDLE1BQU0sS0FBSyxHQUFxQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNoRSxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDeEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFlLENBQUM7UUFDekIsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0MsU0FBUyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3hDLE1BQU0sT0FBTyxHQUFVLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmF3UmFtUXVlcnkgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgUGFnaW5hdG9yIH0gZnJvbSBcIi4uL3F1ZXJ5XCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciwgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBBZGFwdGVyIH0gZnJvbSBcIi4uL3BlcnNpc3RlbmNlXCI7XG5cbmV4cG9ydCBjbGFzcyBSYW1QYWdpbmF0b3I8TSBleHRlbmRzIE1vZGVsLCBSPiBleHRlbmRzIFBhZ2luYXRvcjxcbiAgTSxcbiAgUixcbiAgUmF3UmFtUXVlcnk8TT5cbj4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBhZGFwdGVyOiBBZGFwdGVyPGFueSwgUmF3UmFtUXVlcnk8TT4sIGFueSwgYW55PixcbiAgICBxdWVyeTogUmF3UmFtUXVlcnk8TT4sXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPlxuICApIHtcbiAgICBzdXBlcihhZGFwdGVyLCBxdWVyeSwgc2l6ZSwgY2xhenopO1xuICB9XG5cbiAgcHJvdGVjdGVkIHByZXBhcmUocmF3U3RhdGVtZW50OiBSYXdSYW1RdWVyeTxNPik6IFJhd1JhbVF1ZXJ5PE0+IHtcbiAgICBjb25zdCBxdWVyeTogUmF3UmFtUXVlcnk8YW55PiA9IE9iamVjdC5hc3NpZ24oe30sIHJhd1N0YXRlbWVudCk7XG4gICAgcXVlcnkubGltaXQgPSB0aGlzLnNpemU7XG4gICAgcmV0dXJuIHF1ZXJ5O1xuICB9XG5cbiAgYXN5bmMgcGFnZShwYWdlOiBudW1iZXIgPSAxKTogUHJvbWlzZTxSW10+IHtcbiAgICBwYWdlID0gdGhpcy52YWxpZGF0ZVBhZ2UocGFnZSk7XG4gICAgY29uc3Qgc3RhdGVtZW50ID0gdGhpcy5wcmVwYXJlKHRoaXMuc3RhdGVtZW50KTtcbiAgICBzdGF0ZW1lbnQuc2tpcCA9IChwYWdlIC0gMSkgKiB0aGlzLnNpemU7XG4gICAgY29uc3QgcmVzdWx0czogYW55W10gPSBhd2FpdCB0aGlzLmFkYXB0ZXIucmF3KHN0YXRlbWVudCk7XG4gICAgdGhpcy5fY3VycmVudFBhZ2UgPSBwYWdlO1xuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,14 @@
1
+ import { Sequence as Seq } from "./model/RamSequence";
2
+ import { Sequence } from "../persistence";
3
+ import { SequenceOptions } from "../interfaces";
4
+ import { RamAdapter } from "./RamAdapter";
5
+ import { Repo } from "../repository";
6
+ export declare class RamSequence extends Sequence {
7
+ protected repo: Repo<Seq>;
8
+ constructor(options: SequenceOptions, adapter: RamAdapter);
9
+ current(): Promise<string | number | bigint>;
10
+ private parse;
11
+ private increment;
12
+ next(): Promise<number | string | bigint>;
13
+ range(count: number): Promise<(number | string | bigint)[]>;
14
+ }
@@ -0,0 +1,81 @@
1
+ import { Sequence as Seq } from "./model/RamSequence";
2
+ import { InternalError, NotFoundError } from "@decaf-ts/db-decorators";
3
+ import { Sequence } from "../persistence";
4
+ import { Repository } from "../repository";
5
+ export class RamSequence extends Sequence {
6
+ constructor(options, adapter) {
7
+ super(options);
8
+ this.repo = Repository.forModel(Seq, adapter.flavour);
9
+ }
10
+ async current() {
11
+ const { name, startWith } = this.options;
12
+ try {
13
+ const sequence = await this.repo.read(name);
14
+ return this.parse(sequence.current);
15
+ }
16
+ catch (e) {
17
+ if (e instanceof NotFoundError) {
18
+ if (typeof startWith === "undefined")
19
+ throw new InternalError("Starting value is not defined for a non existing sequence");
20
+ try {
21
+ return this.parse(startWith);
22
+ }
23
+ catch (e) {
24
+ throw new InternalError(`Failed to parse initial value for sequence ${startWith}: ${e}`);
25
+ }
26
+ }
27
+ throw new InternalError(`Failed to retrieve current value for sequence ${name}: ${e}`);
28
+ }
29
+ }
30
+ parse(value) {
31
+ return Sequence.parseValue(this.options.type, value);
32
+ }
33
+ async increment(current, count) {
34
+ const { type, incrementBy, name } = this.options;
35
+ let next;
36
+ const toIncrementBy = count || incrementBy;
37
+ if (toIncrementBy % incrementBy !== 0)
38
+ throw new InternalError(`Value to increment does not consider the incrementBy setting: ${incrementBy}`);
39
+ switch (type) {
40
+ case "Number":
41
+ next = this.parse(current) + toIncrementBy;
42
+ break;
43
+ case "BigInt":
44
+ next = this.parse(current) + BigInt(toIncrementBy);
45
+ break;
46
+ default:
47
+ throw new InternalError("Should never happen");
48
+ }
49
+ let seq;
50
+ const repo = this.repo.override({
51
+ ignoredValidationProperties: ["updatedOn"],
52
+ });
53
+ try {
54
+ seq = await repo.update(new Seq({ id: name, current: next }));
55
+ }
56
+ catch (e) {
57
+ if (!(e instanceof NotFoundError)) {
58
+ throw e;
59
+ }
60
+ seq = await repo.create(new Seq({ id: name, current: next }));
61
+ }
62
+ return seq.current;
63
+ }
64
+ async next() {
65
+ const current = await this.current();
66
+ return this.increment(current);
67
+ }
68
+ async range(count) {
69
+ const current = (await this.current());
70
+ const incrementBy = this.parse(this.options.incrementBy);
71
+ const next = await this.increment(current, this.parse(count) * incrementBy);
72
+ const range = [];
73
+ for (let i = 1; i <= count; i++) {
74
+ range.push(current + incrementBy * this.parse(i));
75
+ }
76
+ if (range[range.length - 1] !== next)
77
+ throw new InternalError("Miscalculation of range");
78
+ return range;
79
+ }
80
+ }
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmFtU2VxdWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmFtL1JhbVNlcXVlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLElBQUksR0FBRyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUMsT0FBTyxFQUFRLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxNQUFNLE9BQU8sV0FBWSxTQUFRLFFBQVE7SUFHdkMsWUFBWSxPQUF3QixFQUFFLE9BQW1CO1FBQ3ZELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN6QyxJQUFJLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBUSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQWMsQ0FBQyxDQUFDO1lBQzNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBMEIsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxZQUFZLGFBQWEsRUFBRSxDQUFDO2dCQUMvQixJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVc7b0JBQ2xDLE1BQU0sSUFBSSxhQUFhLENBQ3JCLDJEQUEyRCxDQUM1RCxDQUFDO2dCQUNKLElBQUksQ0FBQztvQkFDSCxPQUFPLElBQUksQ0FB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QUFZLEdBQUcsV0FBVyxDQUM1QyxDQUFDO1FBQ0YsTUFBTSxLQUFLLEdBQWlDLEVBQUUsQ0FBQztRQUMvQyxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDeEMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsV0FBVyxHQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFZLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJO1lBQ2xDLE1BQU0sSUFBSSxhQUFhLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNyRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcXVlbmNlIGFzIFNlcSB9IGZyb20gXCIuL21vZGVsL1JhbVNlcXVlbmNlXCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yLCBOb3RGb3VuZEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBTZXF1ZW5jZSB9IGZyb20gXCIuLi9wZXJzaXN0ZW5jZVwiO1xuaW1wb3J0IHsgU2VxdWVuY2VPcHRpb25zIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcbmltcG9ydCB7IFJhbUFkYXB0ZXIgfSBmcm9tIFwiLi9SYW1BZGFwdGVyXCI7XG5pbXBvcnQgeyBSZXBvLCBSZXBvc2l0b3J5IH0gZnJvbSBcIi4uL3JlcG9zaXRvcnlcIjtcblxuZXhwb3J0IGNsYXNzIFJhbVNlcXVlbmNlIGV4dGVuZHMgU2VxdWVuY2Uge1xuICBwcm90ZWN0ZWQgcmVwbzogUmVwbzxTZXE+O1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFNlcXVlbmNlT3B0aW9ucywgYWRhcHRlcjogUmFtQWRhcHRlcikge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgIHRoaXMucmVwbyA9IFJlcG9zaXRvcnkuZm9yTW9kZWwoU2VxLCBhZGFwdGVyLmZsYXZvdXIpO1xuICB9XG5cbiAgYXN5bmMgY3VycmVudCgpOiBQcm9taXNlPHN0cmluZyB8IG51bWJlciB8IGJpZ2ludD4ge1xuICAgIGNvbnN0IHsgbmFtZSwgc3RhcnRXaXRoIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNlcXVlbmNlOiBTZXEgPSBhd2FpdCB0aGlzLnJlcG8ucmVhZChuYW1lIGFzIHN0cmluZyk7XG4gICAgICByZXR1cm4gdGhpcy5wYXJzZShzZXF1ZW5jZS5jdXJyZW50IGFzIHN0cmluZyB8IG51bWJlcik7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIE5vdEZvdW5kRXJyb3IpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBzdGFydFdpdGggPT09IFwidW5kZWZpbmVkXCIpXG4gICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgICBcIlN0YXJ0aW5nIHZhbHVlIGlzIG5vdCBkZWZpbmVkIGZvciBhIG5vbiBleGlzdGluZyBzZXF1ZW5jZVwiXG4gICAgICAgICAgKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZShzdGFydFdpdGgpO1xuICAgICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICAgIGBGYWlsZWQgdG8gcGFyc2UgaW5pdGlhbCB2YWx1ZSBmb3Igc2VxdWVuY2UgJHtzdGFydFdpdGh9OiAke2V9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIHJldHJpZXZlIGN1cnJlbnQgdmFsdWUgZm9yIHNlcXVlbmNlICR7bmFtZX06ICR7ZX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGFyc2UodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludCk6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludCB7XG4gICAgcmV0dXJuIFNlcXVlbmNlLnBhcnNlVmFsdWUodGhpcy5vcHRpb25zLnR5cGUsIHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaW5jcmVtZW50KFxuICAgIGN1cnJlbnQ6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludCxcbiAgICBjb3VudD86IG51bWJlclxuICApOiBQcm9taXNlPHN0cmluZyB8IG51bWJlciB8IGJpZ2ludD4ge1xuICAgIGNvbnN0IHsgdHlwZSwgaW5jcmVtZW50QnksIG5hbWUgfSA9IHRoaXMub3B0aW9ucztcbiAgICBsZXQgbmV4dDogc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50O1xuICAgIGNvbnN0IHRvSW5jcmVtZW50QnkgPSBjb3VudCB8fCBpbmNyZW1lbnRCeTtcbiAgICBpZiAodG9JbmNyZW1lbnRCeSAlIGluY3JlbWVudEJ5ICE9PSAwKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIGBWYWx1ZSB0byBpbmNyZW1lbnQgZG9lcyBub3QgY29uc2lkZXIgdGhlIGluY3JlbWVudEJ5IHNldHRpbmc6ICR7aW5jcmVtZW50Qnl9YFxuICAgICAgKTtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgXCJOdW1iZXJcIjpcbiAgICAgICAgbmV4dCA9ICh0aGlzLnBhcnNlKGN1cnJlbnQpIGFzIG51bWJlcikgKyB0b0luY3JlbWVudEJ5O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJCaWdJbnRcIjpcbiAgICAgICAgbmV4dCA9ICh0aGlzLnBhcnNlKGN1cnJlbnQpIGFzIGJpZ2ludCkgKyBCaWdJbnQodG9JbmNyZW1lbnRCeSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJTaG91bGQgbmV2ZXIgaGFwcGVuXCIpO1xuICAgIH1cbiAgICBsZXQgc2VxOiBTZXE7XG4gICAgY29uc3QgcmVwbyA9IHRoaXMucmVwby5vdmVycmlkZSh7XG4gICAgICBpZ25vcmVkVmFsaWRhdGlvblByb3BlcnRpZXM6IFtcInVwZGF0ZWRPblwiXSxcbiAgICB9KTtcbiAgICB0cnkge1xuICAgICAgc2VxID0gYXdhaXQgcmVwby51cGRhdGUobmV3IFNlcSh7IGlkOiBuYW1lLCBjdXJyZW50OiBuZXh0IH0pKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmICghKGUgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSkge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgICAgc2VxID0gYXdhaXQgcmVwby5jcmVhdGUobmV3IFNlcSh7IGlkOiBuYW1lLCBjdXJyZW50OiBuZXh0IH0pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2VxLmN1cnJlbnQgYXMgc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50O1xuICB9XG5cbiAgYXN5bmMgbmV4dCgpOiBQcm9taXNlPG51bWJlciB8IHN0cmluZyB8IGJpZ2ludD4ge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBhd2FpdCB0aGlzLmN1cnJlbnQoKTtcbiAgICByZXR1cm4gdGhpcy5pbmNyZW1lbnQoY3VycmVudCk7XG4gIH1cblxuICBhc3luYyByYW5nZShjb3VudDogbnVtYmVyKTogUHJvbWlzZTwobnVtYmVyIHwgc3RyaW5nIHwgYmlnaW50KVtdPiB7XG4gICAgY29uc3QgY3VycmVudCA9IChhd2FpdCB0aGlzLmN1cnJlbnQoKSkgYXMgbnVtYmVyO1xuICAgIGNvbnN0IGluY3JlbWVudEJ5ID0gdGhpcy5wYXJzZSh0aGlzLm9wdGlvbnMuaW5jcmVtZW50QnkpIGFzIG51bWJlcjtcbiAgICBjb25zdCBuZXh0OiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQgPSBhd2FpdCB0aGlzLmluY3JlbWVudChcbiAgICAgIGN1cnJlbnQsXG4gICAgICAodGhpcy5wYXJzZShjb3VudCkgYXMgbnVtYmVyKSAqIGluY3JlbWVudEJ5XG4gICAgKTtcbiAgICBjb25zdCByYW5nZTogKG51bWJlciB8IHN0cmluZyB8IGJpZ2ludClbXSA9IFtdO1xuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDE7IGkgPD0gY291bnQ7IGkrKykge1xuICAgICAgcmFuZ2UucHVzaChjdXJyZW50ICsgaW5jcmVtZW50QnkgKiAodGhpcy5wYXJzZShpKSBhcyBudW1iZXIpKTtcbiAgICB9XG4gICAgaWYgKHJhbmdlW3JhbmdlLmxlbmd0aCAtIDFdICE9PSBuZXh0KVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJNaXNjYWxjdWxhdGlvbiBvZiByYW5nZVwiKTtcbiAgICByZXR1cm4gcmFuZ2U7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,12 @@
1
+ import { Condition, Paginator } from "../query";
2
+ import { RawRamQuery } from "./types";
3
+ import { Model } from "@decaf-ts/decorator-validation";
4
+ import { Statement } from "../query/Statement";
5
+ import { RamAdapter } from "./RamAdapter";
6
+ export declare class RamStatement<M extends Model, R> extends Statement<RawRamQuery<M>, M, R> {
7
+ constructor(adapter: RamAdapter);
8
+ private getSort;
9
+ protected build(): RawRamQuery<M>;
10
+ paginate(size: number): Promise<Paginator<M, R, RawRamQuery<M>>>;
11
+ parseCondition<M extends Model>(condition: Condition<M>): RawRamQuery<M>;
12
+ }
@@ -0,0 +1,113 @@
1
+ import { GroupOperator, Operator, QueryError, } from "../query";
2
+ import { RamPaginator } from "./RamPaginator";
3
+ import { InternalError } from "@decaf-ts/db-decorators";
4
+ import { Statement } from "../query/Statement";
5
+ import { Reflection } from "@decaf-ts/reflection";
6
+ export class RamStatement extends Statement {
7
+ constructor(adapter) {
8
+ super(adapter);
9
+ }
10
+ getSort() {
11
+ return (el1, el2) => {
12
+ if (!this.orderBySelector)
13
+ throw new InternalError("orderBySelector not set. Should be impossible");
14
+ const selector = this.orderBySelector;
15
+ const [key, direction] = selector;
16
+ const type = Reflection.getTypeFromDecorator(el1, key);
17
+ if (!type)
18
+ throw new QueryError(`type not compatible with sorting: ${type}`);
19
+ switch (type) {
20
+ case "string":
21
+ case "String":
22
+ return ((direction === "asc" ? 1 : -1) *
23
+ el1[key].localeCompare(el2[key]));
24
+ case "number":
25
+ case "Number":
26
+ return ((direction === "asc" ? 1 : -1) *
27
+ (el1[key] -
28
+ el2[key]));
29
+ case "object":
30
+ case "Object":
31
+ if (el1[key] instanceof Date &&
32
+ el2[key] instanceof Date)
33
+ return ((direction === "asc" ? 1 : -1) *
34
+ (el1[key].valueOf() -
35
+ el2[key].valueOf()));
36
+ throw new QueryError(`Sorting not supported for not date classes`);
37
+ default:
38
+ throw new QueryError(`sorting not supported for type ${type}`);
39
+ }
40
+ };
41
+ }
42
+ build() {
43
+ const result = {
44
+ select: this.selectSelector,
45
+ from: this.fromSelector,
46
+ where: this.whereCondition
47
+ ? this.parseCondition(this.whereCondition).where
48
+ : // eslint-disable-next-line @typescript-eslint/no-unused-vars
49
+ (el) => {
50
+ return true;
51
+ },
52
+ limit: this.limitSelector,
53
+ skip: this.offsetSelector,
54
+ };
55
+ if (this.orderBySelector)
56
+ result.sort = this.getSort();
57
+ return result;
58
+ }
59
+ async paginate(size) {
60
+ try {
61
+ const query = this.build();
62
+ return new RamPaginator(this.adapter, query, size, this.fromSelector);
63
+ }
64
+ catch (e) {
65
+ throw new InternalError(e);
66
+ }
67
+ }
68
+ parseCondition(condition) {
69
+ return {
70
+ where: (m) => {
71
+ const { attr1, operator, comparison } = condition;
72
+ if ([GroupOperator.AND, GroupOperator.OR, Operator.NOT].indexOf(operator) === -1) {
73
+ switch (operator) {
74
+ case Operator.BIGGER:
75
+ return m[attr1] > comparison;
76
+ case Operator.BIGGER_EQ:
77
+ return m[attr1] >= comparison;
78
+ case Operator.DIFFERENT:
79
+ return m[attr1] !== comparison;
80
+ case Operator.EQUAL:
81
+ return m[attr1] === comparison;
82
+ case Operator.REGEXP:
83
+ if (typeof m[attr1] !== "string")
84
+ throw new QueryError(`Invalid regexp comparison on a non string attribute: ${m[attr1]}`);
85
+ return !!m[attr1].match(new RegExp(comparison, "g"));
86
+ case Operator.SMALLER:
87
+ return m[attr1] < comparison;
88
+ case Operator.SMALLER_EQ:
89
+ return m[attr1] <= comparison;
90
+ default:
91
+ throw new InternalError(`Invalid operator for standard comparisons: ${operator}`);
92
+ }
93
+ }
94
+ else if (operator === Operator.NOT) {
95
+ throw new InternalError("Not implemented");
96
+ }
97
+ else {
98
+ const op1 = this.parseCondition(attr1);
99
+ const op2 = this.parseCondition(comparison);
100
+ switch (operator) {
101
+ case GroupOperator.AND:
102
+ return op1.where(m) && op2.where(m);
103
+ case GroupOperator.OR:
104
+ return op1.where(m) || op2.where(m);
105
+ default:
106
+ throw new InternalError(`Invalid operator for And/Or comparisons: ${operator}`);
107
+ }
108
+ }
109
+ },
110
+ };
111
+ }
112
+ }
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmFtU3RhdGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JhbS9SYW1TdGF0ZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGFBQWEsRUFDYixRQUFRLEVBRVIsVUFBVSxHQUNYLE1BQU0sVUFBVSxDQUFDO0FBR2xCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdsRCxNQUFNLE9BQU8sWUFBaUMsU0FBUSxTQUlyRDtJQUNDLFlBQVksT0FBbUI7UUFDN0IsS0FBSyxDQUFDLE9BQWMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFTyxPQUFPO1FBQ2IsT0FBTyxDQUFDLEdBQVUsRUFBRSxHQUFVLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWU7Z0JBQ3ZCLE1BQU0sSUFBSSxhQUFhLENBQ3JCLCtDQUErQyxDQUNoRCxDQUFDO1lBQ0osTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUN0QyxNQUFNLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxHQUFHLFFBQVEsQ0FBQztZQUNsQyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUFFLEdBQWEsQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxJQUFJO2dCQUNQLE1BQU0sSUFBSSxVQUFVLENBQUMscUNBQXFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFFcEUsUUFBUSxJQUFJLEVBQUUsQ0FBQztnQkFDYixLQUFLLFFBQVEsQ0FBQztnQkFDZCxLQUFLLFFBQVE7b0JBQ1gsT0FBTyxDQUNMLENBQUMsU0FBUyxLQUFL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cUJBQU0sQ0FBQztvQkFDTixNQUFNLEdBQUcsR0FBcUIsSUFBSSxDQUFDLGNBQWMsQ0FDL0MsS0FBcUIsQ0FDdEIsQ0FBQztvQkFDRixNQUFNLEdBQUcsR0FBcUIsSUFBSSxDQUFDLGNBQWMsQ0FDL0MsVUFBMEIsQ0FDM0IsQ0FBQztvQkFDRixRQUFRLFFBQVEsRUFBRSxDQUFDO3dCQUNqQixLQUFLLGFBQWEsQ0FBQyxHQUFHOzRCQUNwQixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDdEMsS0FBSyxhQUFhLENBQUMsRUFBRTs0QkFDbkIsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ3RDOzRCQUNFLE1BQU0sSUFBSSxhQUFhLENBQ3JCLDRDQUE0QyxRQUFRLEVBQUUsQ0FDdkQsQ0FBQztvQkFDTixDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1NBQ2tCLENBQUM7SUFDeEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29uZGl0aW9uLFxuICBHcm91cE9wZXJhdG9yLFxuICBPcGVyYXRvcixcbiAgUGFnaW5hdG9yLFxuICBRdWVyeUVycm9yLFxufSBmcm9tIFwiLi4vcXVlcnlcIjtcbmltcG9ydCB7IFJhd1JhbVF1ZXJ5IH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgUmFtUGFnaW5hdG9yIH0gZnJvbSBcIi4vUmFtUGFnaW5hdG9yXCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBTdGF0ZW1lbnQgfSBmcm9tIFwiLi4vcXVlcnkvU3RhdGVtZW50XCI7XG5pbXBvcnQgeyBSZWZsZWN0aW9uIH0gZnJvbSBcIkBkZWNhZi10cy9yZWZsZWN0aW9uXCI7XG5pbXBvcnQgeyBSYW1BZGFwdGVyIH0gZnJvbSBcIi4vUmFtQWRhcHRlclwiO1xuXG5leHBvcnQgY2xhc3MgUmFtU3RhdGVtZW50PE0gZXh0ZW5kcyBNb2RlbCwgUj4gZXh0ZW5kcyBTdGF0ZW1lbnQ8XG4gIFJhd1JhbVF1ZXJ5PE0+LFxuICBNLFxuICBSXG4+IHtcbiAgY29uc3RydWN0b3IoYWRhcHRlcjogUmFtQWRhcHRlcikge1xuICAgIHN1cGVyKGFkYXB0ZXIgYXMgYW55KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U29ydCgpIHtcbiAgICByZXR1cm4gKGVsMTogTW9kZWwsIGVsMjogTW9kZWwpID0+IHtcbiAgICAgIGlmICghdGhpcy5vcmRlckJ5U2VsZWN0b3IpXG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICAgIFwib3JkZXJCeVNlbGVjdG9yIG5vdCBzZXQuIFNob3VsZCBiZSBpbXBvc3NpYmxlXCJcbiAgICAgICAgKTtcbiAgICAgIGNvbnN0IHNlbGVjdG9yID0gdGhpcy5vcmRlckJ5U2VsZWN0b3I7XG4gICAgICBjb25zdCBba2V5LCBkaXJlY3Rpb25dID0gc2VsZWN0b3I7XG4gICAgICBjb25zdCB0eXBlID0gUmVmbGVjdGlvbi5nZXRUeXBlRnJvbURlY29yYXRvcihlbDEsIGtleSBhcyBzdHJpbmcpO1xuICAgICAgaWYgKCF0eXBlKVxuICAgICAgICB0aHJvdyBuZXcgUXVlcnlFcnJvcihgdHlwZSBub3QgY29tcGF0aWJsZSB3aXRoIHNvcnRpbmc6ICR7dHlwZX1gKTtcblxuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgY2FzZSBcIlN0cmluZ1wiOlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoZGlyZWN0aW9uID09PSBcImFzY1wiID8gMSA6IC0xKSAqXG4gICAgICAgICAgICAoZWwxW2tleSBhcyBrZXlvZiBNb2RlbF0gYXMgdW5rbm93biBhcyBzdHJpbmcpLmxvY2FsZUNvbXBhcmUoXG4gICAgICAgICAgICAgIGVsMltrZXkgYXMga2V5b2YgTW9kZWxdIGFzIHVua25vd24gYXMgc3RyaW5nXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICBjYXNlIFwiTnVtYmVyXCI6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChkaXJlY3Rpb24gPT09IFwiYXNjXCIgPyAxIDogLTEpICpcbiAgICAgICAgICAgICgoZWwxW2tleSBhcyBrZXlvZiBNb2RlbF0gYXMgdW5rbm93biBhcyBudW1iZXIpIC1cbiAgICAgICAgICAgICAgKGVsMltrZXkgYXMga2V5b2YgTW9kZWxdIGFzIHVua25vd24gYXMgbnVtYmVyKSlcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlbDFba2V5IGFzIGtleW9mIE1vZGVsXSBpbnN0YW5jZW9mIERhdGUgJiZcbiAgICAgICAgICAgIGVsMltrZXkgYXMga2V5b2YgTW9kZWxdIGluc3RhbmNlb2YgRGF0ZVxuICAgICAgICAgIClcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChkaXJlY3Rpb24gPT09IFwiYXNjXCIgPyAxIDogLTEpICpcbiAgICAgICAgICAgICAgKChlbDFba2V5IGFzIGtleW9mIE1vZGVsXSBhcyB1bmtub3duIGFzIERhdGUpLnZhbHVlT2YoKSAtXG4gICAgICAgICAgICAgICAgKGVsMltrZXkgYXMga2V5b2YgTW9kZWxdIGFzIHVua25vd24gYXMgRGF0ZSkudmFsdWVPZigpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB0aHJvdyBuZXcgUXVlcnlFcnJvcihgU29ydGluZyBub3Qgc3VwcG9ydGVkIGZvciBub3QgZGF0ZSBjbGFzc2VzYCk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoYHNvcnRpbmcgbm90IHN1cHBvcnRlZCBmb3IgdHlwZSAke3R5cGV9YCk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZCgpOiBSYXdSYW1RdWVyeTxNPiB7XG4gICAgY29uc3QgcmVzdWx0OiBSYXdSYW1RdWVyeTxNPiA9IHtcbiAgICAgIHNlbGVjdDogdGhpcy5zZWxlY3RTZWxlY3RvcixcbiAgICAgIGZyb206IHRoaXMuZnJvbVNlbGVjdG9yLFxuICAgICAgd2hlcmU6IHRoaXMud2hlcmVDb25kaXRpb25cbiAgICAgICAgPyB0aGlzLnBhcnNlQ29uZGl0aW9uKHRoaXMud2hlcmVDb25kaXRpb24pLndoZXJlXG4gICAgICAgIDogLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgIChlbDogTSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfSxcbiAgICAgIGxpbWl0OiB0aGlzLmxpbWl0U2VsZWN0b3IsXG4gICAgICBza2lwOiB0aGlzLm9mZnNldFNlbGVjdG9yLFxuICAgIH07XG4gICAgaWYgKHRoaXMub3JkZXJCeVNlbGVjdG9yKSByZXN1bHQuc29ydCA9IHRoaXMuZ2V0U29ydCgpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBhc3luYyBwYWdpbmF0ZShzaXplOiBudW1iZXIpOiBQcm9taXNlPFBhZ2luYXRvcjxNLCBSLCBSYXdSYW1RdWVyeTxNPj4+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcXVlcnkgPSB0aGlzLmJ1aWxkKCk7XG4gICAgICByZXR1cm4gbmV3IFJhbVBhZ2luYXRvcjxNLCBSPihcbiAgICAgICAgdGhpcy5hZGFwdGVyLFxuICAgICAgICBxdWVyeSxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgdGhpcy5mcm9tU2VsZWN0b3JcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihlKTtcbiAgICB9XG4gIH1cblxuICBwYXJzZUNvbmRpdGlvbjxNIGV4dGVuZHMgTW9kZWw+KGNvbmRpdGlvbjogQ29uZGl0aW9uPE0+KTogUmF3UmFtUXVlcnk8TT4ge1xuICAgIHJldHVybiB7XG4gICAgICB3aGVyZTogKG06IE1vZGVsKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgYXR0cjEsIG9wZXJhdG9yLCBjb21wYXJpc29uIH0gPSBjb25kaXRpb24gYXMgdW5rbm93biBhcyB7XG4gICAgICAgICAgYXR0cjE6IHN0cmluZyB8IENvbmRpdGlvbjxNPjtcbiAgICAgICAgICBvcGVyYXRvcjogT3BlcmF0b3IgfCBHcm91cE9wZXJhdG9yO1xuICAgICAgICAgIGNvbXBhcmlzb246IGFueTtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgW0dyb3VwT3BlcmF0b3IuQU5ELCBHcm91cE9wZXJhdG9yLk9SLCBPcGVyYXRvci5OT1RdLmluZGV4T2YoXG4gICAgICAgICAgICBvcGVyYXRvciBhcyBHcm91cE9wZXJhdG9yXG4gICAgICAgICAgKSA9PT0gLTFcbiAgICAgICAgKSB7XG4gICAgICAgICAgc3dpdGNoIChvcGVyYXRvcikge1xuICAgICAgICAgICAgY2FzZSBPcGVyYXRvci5CSUdHRVI6XG4gICAgICAgICAgICAgIHJldHVybiBtW2F0dHIxIGFzIGtleW9mIE1vZGVsXSA+IGNvbXBhcmlzb247XG4gICAgICAgICAgICBjYXNlIE9wZXJhdG9yLkJJR0dFUl9FUTpcbiAgICAgICAgICAgICAgcmV0dXJuIG1bYXR0cjEgYXMga2V5b2YgTW9kZWxdID49IGNvbXBhcmlzb247XG4gICAgICAgICAgICBjYXNlIE9wZXJhdG9yLkRJRkZFUkVOVDpcbiAgICAgICAgICAgICAgcmV0dXJuIG1bYXR0cjEgYXMga2V5b2YgTW9kZWxdICE9PSBjb21wYXJpc29uO1xuICAgICAgICAgICAgY2FzZSBPcGVyYXRvci5FUVVBTDpcbiAgICAgICAgICAgICAgcmV0dXJuIG1bYXR0cjEgYXMga2V5b2YgTW9kZWxdID09PSBjb21wYXJpc29uO1xuICAgICAgICAgICAgY2FzZSBPcGVyYXRvci5SRUdFWFA6XG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgbVthdHRyMSBhcyBrZXlvZiBNb2RlbF0gIT09IFwic3RyaW5nXCIpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoXG4gICAgICAgICAgICAgICAgICBgSW52YWxpZCByZWdleHAgY29tcGFyaXNvbiBvbiBhIG5vbiBzdHJpbmcgYXR0cmlidXRlOiAke21bYXR0cjEgYXMga2V5b2YgTW9kZWxdfWBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICByZXR1cm4gISEobVthdHRyMSBhcyBrZXlvZiBNb2RlbF0gYXMgdW5rbm93biBhcyBzdHJpbmcpLm1hdGNoKFxuICAgICAgICAgICAgICAgIG5ldyBSZWdFeHAoY29tcGFyaXNvbiwgXCJnXCIpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjYXNlIE9wZXJhdG9yLlNNQUxMRVI6XG4gICAgICAgICAgICAgIHJldHVybiBtW2F0dHIxIGFzIGtleW9mIE1vZGVsXSA8IGNvbXBhcmlzb247XG4gICAgICAgICAgICBjYXNlIE9wZXJhdG9yLlNNQUxMRVJfRVE6XG4gICAgICAgICAgICAgIHJldHVybiBtW2F0dHIxIGFzIGtleW9mIE1vZGVsXSA8PSBjb21wYXJpc29uO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgICAgICAgYEludmFsaWQgb3BlcmF0b3IgZm9yIHN0YW5kYXJkIGNvbXBhcmlzb25zOiAke29wZXJhdG9yfWBcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAob3BlcmF0b3IgPT09IE9wZXJhdG9yLk5PVCkge1xuICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiTm90IGltcGxlbWVudGVkXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IG9wMTogUmF3UmFtUXVlcnk8YW55PiA9IHRoaXMucGFyc2VDb25kaXRpb24oXG4gICAgICAgICAgICBhdHRyMSBhcyBDb25kaXRpb248TT5cbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnN0IG9wMjogUmF3UmFtUXVlcnk8YW55PiA9IHRoaXMucGFyc2VDb25kaXRpb24oXG4gICAgICAgICAgICBjb21wYXJpc29uIGFzIENvbmRpdGlvbjxNPlxuICAgICAgICAgICk7XG4gICAgICAgICAgc3dpdGNoIChvcGVyYXRvcikge1xuICAgICAgICAgICAgY2FzZSBHcm91cE9wZXJhdG9yLkFORDpcbiAgICAgICAgICAgICAgcmV0dXJuIG9wMS53aGVyZShtKSAmJiBvcDIud2hlcmUobSk7XG4gICAgICAgICAgICBjYXNlIEdyb3VwT3BlcmF0b3IuT1I6XG4gICAgICAgICAgICAgIHJldHVybiBvcDEud2hlcmUobSkgfHwgb3AyLndoZXJlKG0pO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgICAgICAgYEludmFsaWQgb3BlcmF0b3IgZm9yIEFuZC9PciBjb21wYXJpc29uczogJHtvcGVyYXRvcn1gXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0gYXMgUmF3UmFtUXVlcnk8YW55PjtcbiAgfVxufVxuIl19
@@ -0,0 +1 @@
1
+ export declare const RamFlavour = "ram";
@@ -0,0 +1,2 @@
1
+ export const RamFlavour = "ram";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JhbS9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBSYW1GbGF2b3VyID0gXCJyYW1cIjtcbiJdfQ==
@@ -0,0 +1,6 @@
1
+ import { Model } from "@decaf-ts/decorator-validation";
2
+ import { Repo } from "../repository";
3
+ import { RelationsMetadata } from "../model";
4
+ import { RamFlags } from "./types";
5
+ import { Context } from "@decaf-ts/db-decorators";
6
+ export declare function createdByOnRamCreateUpdate<M extends Model, R extends Repo<M, F, C>, V extends RelationsMetadata, F extends RamFlags, C extends Context<F>>(this: R, context: Context<F>, data: V, key: keyof M, model: M): Promise<void>;
@@ -0,0 +1,8 @@
1
+ import { UnsupportedError } from "../persistence";
2
+ export async function createdByOnRamCreateUpdate(context, data, key, model) {
3
+ const uuid = context.get("UUID");
4
+ if (!uuid)
5
+ throw new UnsupportedError("This adapter does not support user identification");
6
+ model[key] = uuid;
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmFtL2hhbmRsZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxELE1BQU0sQ0FBQyxLQUFLLFVBQVUsMEJBQTBCLENBUTlDLE9BQW1CLEVBQ25CLElBQU8sRUFDUCxHQUFZLEVBQ1osS0FBUTtJQUVSLE1BQU0sSUFBSSxHQUFXLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsSUFBSSxDQUFDLElBQUk7UUFDUCxNQUFNLElBQUksZ0JBQWdCLENBQ3hCLG1EQUFtRCxDQUNwRCxDQUFDO0lBQ0osS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQWtCLENBQUM7QUFDbEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgUmVwbyB9IGZyb20gXCIuLi9yZXBvc2l0b3J5XCI7XG5pbXBvcnQgeyBSZWxhdGlvbnNNZXRhZGF0YSB9IGZyb20gXCIuLi9tb2RlbFwiO1xuaW1wb3J0IHsgUmFtRmxhZ3MgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgVW5zdXBwb3J0ZWRFcnJvciB9IGZyb20gXCIuLi9wZXJzaXN0ZW5jZVwiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlZEJ5T25SYW1DcmVhdGVVcGRhdGU8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgUiBleHRlbmRzIFJlcG88TSwgRiwgQz4sXG4gIFYgZXh0ZW5kcyBSZWxhdGlvbnNNZXRhZGF0YSxcbiAgRiBleHRlbmRzIFJhbUZsYWdzLFxuICBDIGV4dGVuZHMgQ29udGV4dDxGPixcbj4oXG4gIHRoaXM6IFIsXG4gIGNvbnRleHQ6IENvbnRleHQ8Rj4sXG4gIGRhdGE6IFYsXG4gIGtleToga2V5b2YgTSxcbiAgbW9kZWw6IE1cbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB1dWlkOiBzdHJpbmcgPSBjb250ZXh0LmdldChcIlVVSURcIik7XG4gIGlmICghdXVpZClcbiAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcbiAgICAgIFwiVGhpcyBhZGFwdGVyIGRvZXMgbm90IHN1cHBvcnQgdXNlciBpZGVudGlmaWNhdGlvblwiXG4gICAgKTtcbiAgbW9kZWxba2V5XSA9IHV1aWQgYXMgTVtrZXlvZiBNXTtcbn1cbiJdfQ==
@@ -0,0 +1,9 @@
1
+ export * from "./model";
2
+ export * from "./constants";
3
+ export * from "./handlers";
4
+ export * from "./RamContext";
5
+ export * from "./RamPaginator";
6
+ export * from "./RamStatement";
7
+ export * from "./RamSequence";
8
+ export * from "./types";
9
+ export * from "./RamAdapter";
@@ -0,0 +1,14 @@
1
+ import { RamAdapter } from "./RamAdapter";
2
+ // Invoked there to ensure decoration override
3
+ RamAdapter.decoration();
4
+ export * from "./model";
5
+ export * from "./constants";
6
+ export * from "./handlers";
7
+ export * from "./RamContext";
8
+ export * from "./RamPaginator";
9
+ export * from "./RamStatement";
10
+ export * from "./RamSequence";
11
+ export * from "./types";
12
+ // left to last on purpose
13
+ export * from "./RamAdapter";
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmFtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFMUMsOENBQThDO0FBQzlDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUV4QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsMEJBQTBCO0FBQzFCLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmFtQWRhcHRlciB9IGZyb20gXCIuL1JhbUFkYXB0ZXJcIjtcblxuLy8gSW52b2tlZCB0aGVyZSB0byBlbnN1cmUgZGVjb3JhdGlvbiBvdmVycmlkZVxuUmFtQWRhcHRlci5kZWNvcmF0aW9uKCk7XG5cbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2hhbmRsZXJzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9SYW1Db250ZXh0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9SYW1QYWdpbmF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1JhbVN0YXRlbWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vUmFtU2VxdWVuY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVzXCI7XG4vLyBsZWZ0IHRvIGxhc3Qgb24gcHVycG9zZVxuZXhwb3J0ICogZnJvbSBcIi4vUmFtQWRhcHRlclwiO1xuIl19
@@ -0,0 +1,7 @@
1
+ import type { ModelArg } from "@decaf-ts/decorator-validation";
2
+ import { BaseModel } from "../../model";
3
+ export declare class Sequence extends BaseModel {
4
+ id: string;
5
+ current: string | number;
6
+ constructor(seq?: ModelArg<Sequence>);
7
+ }
@@ -0,0 +1,33 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { model, required } from "@decaf-ts/decorator-validation";
11
+ import { BaseModel, index, table } from "../../model";
12
+ import { pk } from "../../identity";
13
+ let Sequence = class Sequence extends BaseModel {
14
+ constructor(seq) {
15
+ super(seq);
16
+ }
17
+ };
18
+ __decorate([
19
+ pk(),
20
+ __metadata("design:type", String)
21
+ ], Sequence.prototype, "id", void 0);
22
+ __decorate([
23
+ required(),
24
+ index(),
25
+ __metadata("design:type", Object)
26
+ ], Sequence.prototype, "current", void 0);
27
+ Sequence = __decorate([
28
+ table("__RamSequence"),
29
+ model(),
30
+ __metadata("design:paramtypes", [Object])
31
+ ], Sequence);
32
+ export { Sequence };
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmFtU2VxdWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmFtL21vZGVsL1JhbVNlcXVlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUk3QixJQUFNLFFBQVEsR0FBZCxNQUFNLFFBQVMsU0FBUSxTQUFTO0lBUXJDLFlBQVksR0FBd0I7UUFDbEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsQ0FBQztDQUNGLENBQUE7QUFUQztJQURDLEVBQUUsRUFBRTs7b0NBQ087QUFJWjtJQUZDLFFBQVEsRUFBRTtJQUNWLEtBQUssRUFBRTs7eUNBQ2tCO0FBTmYsUUFBUTtJQUZwQixLQUFLLENBQUMsZUFBZSxDQUFDO0lBQ3RCLEtBQUssRUFBRTs7R0FDSyxRQUFRLENBV3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbW9kZWwsIHJlcXVpcmVkIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHR5cGUgeyBNb2RlbEFyZyB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IEJhc2VNb2RlbCwgaW5kZXgsIHRhYmxlIH0gZnJvbSBcIi4uLy4uL21vZGVsXCI7XG5pbXBvcnQgeyBwayB9IGZyb20gXCIuLi8uLi9pZGVudGl0eVwiO1xuXG5AdGFibGUoXCJfX1JhbVNlcXVlbmNlXCIpXG5AbW9kZWwoKVxuZXhwb3J0IGNsYXNzIFNlcXVlbmNlIGV4dGVuZHMgQmFzZU1vZGVsIHtcbiAgQHBrKClcbiAgaWQhOiBzdHJpbmc7XG5cbiAgQHJlcXVpcmVkKClcbiAgQGluZGV4KClcbiAgY3VycmVudCE6IHN0cmluZyB8IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihzZXE/OiBNb2RlbEFyZzxTZXF1ZW5jZT4pIHtcbiAgICBzdXBlcihzZXEpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ export * from "./RamSequence";
@@ -0,0 +1,2 @@
1
+ export * from "./RamSequence";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmFtL21vZGVsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vUmFtU2VxdWVuY2VcIjtcbiJdfQ==
@@ -0,0 +1,17 @@
1
+ import { Constructor, Model } from "@decaf-ts/decorator-validation";
2
+ import { Repository } from "../repository";
3
+ import { Context, RepositoryFlags } from "@decaf-ts/db-decorators";
4
+ import { RamAdapter } from "./RamAdapter";
5
+ export type RamStorage = Map<string, Map<string | number, any>>;
6
+ export type RawRamQuery<M extends Model> = {
7
+ select: undefined | (keyof M)[];
8
+ from: Constructor<M>;
9
+ where: (el: M) => boolean;
10
+ sort?: (el: M, el2: M) => number;
11
+ limit?: number;
12
+ skip?: number;
13
+ };
14
+ export interface RamFlags extends RepositoryFlags {
15
+ UUID: string;
16
+ }
17
+ export type RamRepository<M extends Model> = Repository<M, RawRamQuery<any>, RamAdapter, RamFlags, Context<RamFlags>>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmFtL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3RvciwgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSBcIi4uL3JlcG9zaXRvcnlcIjtcbmltcG9ydCB7IENvbnRleHQsIFJlcG9zaXRvcnlGbGFncyB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgUmFtQWRhcHRlciB9IGZyb20gXCIuL1JhbUFkYXB0ZXJcIjtcblxuZXhwb3J0IHR5cGUgUmFtU3RvcmFnZSA9IE1hcDxzdHJpbmcsIE1hcDxzdHJpbmcgfCBudW1iZXIsIGFueT4+O1xuXG5leHBvcnQgdHlwZSBSYXdSYW1RdWVyeTxNIGV4dGVuZHMgTW9kZWw+ID0ge1xuICBzZWxlY3Q6IHVuZGVmaW5lZCB8IChrZXlvZiBNKVtdO1xuICBmcm9tOiBDb25zdHJ1Y3RvcjxNPjtcbiAgd2hlcmU6IChlbDogTSkgPT4gYm9vbGVhbjtcbiAgc29ydD86IChlbDogTSwgZWwyOiBNKSA9PiBudW1iZXI7XG4gIGxpbWl0PzogbnVtYmVyO1xuICBza2lwPzogbnVtYmVyO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBSYW1GbGFncyBleHRlbmRzIFJlcG9zaXRvcnlGbGFncyB7XG4gIFVVSUQ6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUmFtUmVwb3NpdG9yeTxNIGV4dGVuZHMgTW9kZWw+ID0gUmVwb3NpdG9yeTxcbiAgTSxcbiAgUmF3UmFtUXVlcnk8YW55PixcbiAgUmFtQWRhcHRlcixcbiAgUmFtRmxhZ3MsXG4gIENvbnRleHQ8UmFtRmxhZ3M+XG4+O1xuIl19