@entity-access/entity-access 1.0.378 → 1.0.379

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 (249) hide show
  1. package/dist/model/EntityQuery.d.ts.map +1 -1
  2. package/dist/model/EntityQuery.js +10 -0
  3. package/dist/model/EntityQuery.js.map +1 -1
  4. package/dist/model/IFilterWithParameter.d.ts +5 -5
  5. package/dist/model/IFilterWithParameter.d.ts.map +1 -1
  6. package/dist/tsconfig.tsbuildinfo +1 -1
  7. package/package.json +1 -1
  8. package/src/model/EntityQuery.ts +11 -1
  9. package/src/model/IFilterWithParameter.ts +5 -5
  10. package/dist/tests/TestConfig.d.ts +0 -6
  11. package/dist/tests/TestConfig.d.ts.map +0 -1
  12. package/dist/tests/TestConfig.js +0 -3
  13. package/dist/tests/TestConfig.js.map +0 -1
  14. package/dist/tests/db-tests/tests/check-constraint-test.d.ts +0 -3
  15. package/dist/tests/db-tests/tests/check-constraint-test.d.ts.map +0 -1
  16. package/dist/tests/db-tests/tests/check-constraint-test.js +0 -25
  17. package/dist/tests/db-tests/tests/check-constraint-test.js.map +0 -1
  18. package/dist/tests/db-tests/tests/delete-items.d.ts +0 -3
  19. package/dist/tests/db-tests/tests/delete-items.d.ts.map +0 -1
  20. package/dist/tests/db-tests/tests/delete-items.js +0 -25
  21. package/dist/tests/db-tests/tests/delete-items.js.map +0 -1
  22. package/dist/tests/db-tests/tests/filtered-include-items.d.ts +0 -3
  23. package/dist/tests/db-tests/tests/filtered-include-items.d.ts.map +0 -1
  24. package/dist/tests/db-tests/tests/filtered-include-items.js +0 -19
  25. package/dist/tests/db-tests/tests/filtered-include-items.js.map +0 -1
  26. package/dist/tests/db-tests/tests/insert-into.d.ts +0 -3
  27. package/dist/tests/db-tests/tests/insert-into.d.ts.map +0 -1
  28. package/dist/tests/db-tests/tests/insert-into.js +0 -17
  29. package/dist/tests/db-tests/tests/insert-into.js.map +0 -1
  30. package/dist/tests/db-tests/tests/multi-fk-tests.d.ts +0 -3
  31. package/dist/tests/db-tests/tests/multi-fk-tests.d.ts.map +0 -1
  32. package/dist/tests/db-tests/tests/multi-fk-tests.js +0 -29
  33. package/dist/tests/db-tests/tests/multi-fk-tests.js.map +0 -1
  34. package/dist/tests/db-tests/tests/select-identity.d.ts +0 -3
  35. package/dist/tests/db-tests/tests/select-identity.d.ts.map +0 -1
  36. package/dist/tests/db-tests/tests/select-identity.js +0 -16
  37. package/dist/tests/db-tests/tests/select-identity.js.map +0 -1
  38. package/dist/tests/db-tests/tests/select-inverse-one-to-one.d.ts +0 -3
  39. package/dist/tests/db-tests/tests/select-inverse-one-to-one.d.ts.map +0 -1
  40. package/dist/tests/db-tests/tests/select-inverse-one-to-one.js +0 -27
  41. package/dist/tests/db-tests/tests/select-inverse-one-to-one.js.map +0 -1
  42. package/dist/tests/db-tests/tests/select-items-map.d.ts +0 -3
  43. package/dist/tests/db-tests/tests/select-items-map.d.ts.map +0 -1
  44. package/dist/tests/db-tests/tests/select-items-map.js +0 -28
  45. package/dist/tests/db-tests/tests/select-items-map.js.map +0 -1
  46. package/dist/tests/db-tests/tests/select-items-sum.d.ts +0 -3
  47. package/dist/tests/db-tests/tests/select-items-sum.d.ts.map +0 -1
  48. package/dist/tests/db-tests/tests/select-items-sum.js +0 -46
  49. package/dist/tests/db-tests/tests/select-items-sum.js.map +0 -1
  50. package/dist/tests/db-tests/tests/select-items.d.ts +0 -3
  51. package/dist/tests/db-tests/tests/select-items.d.ts.map +0 -1
  52. package/dist/tests/db-tests/tests/select-items.js +0 -30
  53. package/dist/tests/db-tests/tests/select-items.js.map +0 -1
  54. package/dist/tests/db-tests/tests/select-map.d.ts +0 -3
  55. package/dist/tests/db-tests/tests/select-map.d.ts.map +0 -1
  56. package/dist/tests/db-tests/tests/select-map.js +0 -12
  57. package/dist/tests/db-tests/tests/select-map.js.map +0 -1
  58. package/dist/tests/db-tests/tests/select-nested.d.ts +0 -3
  59. package/dist/tests/db-tests/tests/select-nested.d.ts.map +0 -1
  60. package/dist/tests/db-tests/tests/select-nested.js +0 -25
  61. package/dist/tests/db-tests/tests/select-nested.js.map +0 -1
  62. package/dist/tests/db-tests/tests/select-parent.d.ts +0 -3
  63. package/dist/tests/db-tests/tests/select-parent.d.ts.map +0 -1
  64. package/dist/tests/db-tests/tests/select-parent.js +0 -17
  65. package/dist/tests/db-tests/tests/select-parent.js.map +0 -1
  66. package/dist/tests/db-tests/tests/select-related.d.ts +0 -3
  67. package/dist/tests/db-tests/tests/select-related.d.ts.map +0 -1
  68. package/dist/tests/db-tests/tests/select-related.js +0 -20
  69. package/dist/tests/db-tests/tests/select-related.js.map +0 -1
  70. package/dist/tests/db-tests/tests/update-items.d.ts +0 -3
  71. package/dist/tests/db-tests/tests/update-items.d.ts.map +0 -1
  72. package/dist/tests/db-tests/tests/update-items.js +0 -31
  73. package/dist/tests/db-tests/tests/update-items.js.map +0 -1
  74. package/dist/tests/db-tests/tests/update-select.d.ts +0 -3
  75. package/dist/tests/db-tests/tests/update-select.d.ts.map +0 -1
  76. package/dist/tests/db-tests/tests/update-select.js +0 -19
  77. package/dist/tests/db-tests/tests/update-select.js.map +0 -1
  78. package/dist/tests/db-tests/tests/upsert-test.d.ts +0 -3
  79. package/dist/tests/db-tests/tests/upsert-test.d.ts.map +0 -1
  80. package/dist/tests/db-tests/tests/upsert-test.js +0 -31
  81. package/dist/tests/db-tests/tests/upsert-test.js.map +0 -1
  82. package/dist/tests/db-tests/tests/version-history.d.ts +0 -3
  83. package/dist/tests/db-tests/tests/version-history.d.ts.map +0 -1
  84. package/dist/tests/db-tests/tests/version-history.js +0 -16
  85. package/dist/tests/db-tests/tests/version-history.js.map +0 -1
  86. package/dist/tests/db-tests/transaction-save-point/transaction-save-point.d.ts +0 -3
  87. package/dist/tests/db-tests/transaction-save-point/transaction-save-point.d.ts.map +0 -1
  88. package/dist/tests/db-tests/transaction-save-point/transaction-save-point.js +0 -58
  89. package/dist/tests/db-tests/transaction-save-point/transaction-save-point.js.map +0 -1
  90. package/dist/tests/drivers/postgres/connection-test.d.ts +0 -3
  91. package/dist/tests/drivers/postgres/connection-test.d.ts.map +0 -1
  92. package/dist/tests/drivers/postgres/connection-test.js +0 -40
  93. package/dist/tests/drivers/postgres/connection-test.js.map +0 -1
  94. package/dist/tests/drivers/sql-server/sql-server-test.d.ts +0 -2
  95. package/dist/tests/drivers/sql-server/sql-server-test.d.ts.map +0 -1
  96. package/dist/tests/drivers/sql-server/sql-server-test.js +0 -6
  97. package/dist/tests/drivers/sql-server/sql-server-test.js.map +0 -1
  98. package/dist/tests/eternity/child-tests.d.ts +0 -3
  99. package/dist/tests/eternity/child-tests.d.ts.map +0 -1
  100. package/dist/tests/eternity/child-tests.js +0 -97
  101. package/dist/tests/eternity/child-tests.js.map +0 -1
  102. package/dist/tests/eternity/eternity-tests.d.ts +0 -3
  103. package/dist/tests/eternity/eternity-tests.d.ts.map +0 -1
  104. package/dist/tests/eternity/eternity-tests.js +0 -85
  105. package/dist/tests/eternity/eternity-tests.js.map +0 -1
  106. package/dist/tests/eternity/external-event-tests.d.ts +0 -3
  107. package/dist/tests/eternity/external-event-tests.d.ts.map +0 -1
  108. package/dist/tests/eternity/external-event-tests.js +0 -108
  109. package/dist/tests/eternity/external-event-tests.js.map +0 -1
  110. package/dist/tests/eternity/throttle-tests.d.ts +0 -3
  111. package/dist/tests/eternity/throttle-tests.d.ts.map +0 -1
  112. package/dist/tests/eternity/throttle-tests.js +0 -86
  113. package/dist/tests/eternity/throttle-tests.js.map +0 -1
  114. package/dist/tests/expressions/left-joins/child-joins.d.ts +0 -2
  115. package/dist/tests/expressions/left-joins/child-joins.d.ts.map +0 -1
  116. package/dist/tests/expressions/left-joins/child-joins.js +0 -114
  117. package/dist/tests/expressions/left-joins/child-joins.js.map +0 -1
  118. package/dist/tests/expressions/sanitize/sanitize-test.d.ts +0 -2
  119. package/dist/tests/expressions/sanitize/sanitize-test.d.ts.map +0 -1
  120. package/dist/tests/expressions/sanitize/sanitize-test.js +0 -8
  121. package/dist/tests/expressions/sanitize/sanitize-test.js.map +0 -1
  122. package/dist/tests/expressions/select/select.d.ts +0 -2
  123. package/dist/tests/expressions/select/select.d.ts.map +0 -1
  124. package/dist/tests/expressions/select/select.js +0 -11
  125. package/dist/tests/expressions/select/select.js.map +0 -1
  126. package/dist/tests/expressions/self-joins/self-joins.d.ts +0 -2
  127. package/dist/tests/expressions/self-joins/self-joins.d.ts.map +0 -1
  128. package/dist/tests/expressions/self-joins/self-joins.js +0 -14
  129. package/dist/tests/expressions/self-joins/self-joins.js.map +0 -1
  130. package/dist/tests/expressions/simple/parse-array.d.ts +0 -2
  131. package/dist/tests/expressions/simple/parse-array.d.ts.map +0 -1
  132. package/dist/tests/expressions/simple/parse-array.js +0 -21
  133. package/dist/tests/expressions/simple/parse-array.js.map +0 -1
  134. package/dist/tests/expressions/simple/parse-arrow.d.ts +0 -2
  135. package/dist/tests/expressions/simple/parse-arrow.d.ts.map +0 -1
  136. package/dist/tests/expressions/simple/parse-arrow.js +0 -36
  137. package/dist/tests/expressions/simple/parse-arrow.js.map +0 -1
  138. package/dist/tests/expressions/simple/parse-complex.d.ts +0 -2
  139. package/dist/tests/expressions/simple/parse-complex.d.ts.map +0 -1
  140. package/dist/tests/expressions/simple/parse-complex.js +0 -11
  141. package/dist/tests/expressions/simple/parse-complex.js.map +0 -1
  142. package/dist/tests/expressions/trimInternal.d.ts +0 -3
  143. package/dist/tests/expressions/trimInternal.d.ts.map +0 -1
  144. package/dist/tests/expressions/trimInternal.js +0 -24
  145. package/dist/tests/expressions/trimInternal.js.map +0 -1
  146. package/dist/tests/model/ShoppingContext.d.ts +0 -140
  147. package/dist/tests/model/ShoppingContext.d.ts.map +0 -1
  148. package/dist/tests/model/ShoppingContext.js +0 -440
  149. package/dist/tests/model/ShoppingContext.js.map +0 -1
  150. package/dist/tests/model/UseFile.d.ts +0 -8
  151. package/dist/tests/model/UseFile.d.ts.map +0 -1
  152. package/dist/tests/model/UseFile.js +0 -25
  153. package/dist/tests/model/UseFile.js.map +0 -1
  154. package/dist/tests/model/createContext.d.ts +0 -6
  155. package/dist/tests/model/createContext.d.ts.map +0 -1
  156. package/dist/tests/model/createContext.js +0 -327
  157. package/dist/tests/model/createContext.js.map +0 -1
  158. package/dist/tests/pool/pool-test.d.ts +0 -2
  159. package/dist/tests/pool/pool-test.d.ts.map +0 -1
  160. package/dist/tests/pool/pool-test.js +0 -66
  161. package/dist/tests/pool/pool-test.js.map +0 -1
  162. package/dist/tests/query/combine.d.ts +0 -2
  163. package/dist/tests/query/combine.d.ts.map +0 -1
  164. package/dist/tests/query/combine.js +0 -20
  165. package/dist/tests/query/combine.js.map +0 -1
  166. package/dist/tests/security/ShoppingContextEvents.d.ts +0 -5
  167. package/dist/tests/security/ShoppingContextEvents.d.ts.map +0 -1
  168. package/dist/tests/security/ShoppingContextEvents.js +0 -20
  169. package/dist/tests/security/ShoppingContextEvents.js.map +0 -1
  170. package/dist/tests/security/events/OrderEvents.d.ts +0 -17
  171. package/dist/tests/security/events/OrderEvents.d.ts.map +0 -1
  172. package/dist/tests/security/events/OrderEvents.js +0 -62
  173. package/dist/tests/security/events/OrderEvents.js.map +0 -1
  174. package/dist/tests/security/events/ProductEvents.d.ts +0 -23
  175. package/dist/tests/security/events/ProductEvents.d.ts.map +0 -1
  176. package/dist/tests/security/events/ProductEvents.js +0 -79
  177. package/dist/tests/security/events/ProductEvents.js.map +0 -1
  178. package/dist/tests/security/events/UserEvents.d.ts +0 -10
  179. package/dist/tests/security/events/UserEvents.d.ts.map +0 -1
  180. package/dist/tests/security/events/UserEvents.js +0 -26
  181. package/dist/tests/security/events/UserEvents.js.map +0 -1
  182. package/dist/tests/security/events/UserFileEvents.d.ts +0 -7
  183. package/dist/tests/security/events/UserFileEvents.d.ts.map +0 -1
  184. package/dist/tests/security/events/UserFileEvents.js +0 -7
  185. package/dist/tests/security/events/UserFileEvents.js.map +0 -1
  186. package/dist/tests/security/events/UserInfo.d.ts +0 -5
  187. package/dist/tests/security/events/UserInfo.d.ts.map +0 -1
  188. package/dist/tests/security/events/UserInfo.js +0 -9
  189. package/dist/tests/security/events/UserInfo.js.map +0 -1
  190. package/dist/tests/security/tests/include-items.d.ts +0 -3
  191. package/dist/tests/security/tests/include-items.d.ts.map +0 -1
  192. package/dist/tests/security/tests/include-items.js +0 -15
  193. package/dist/tests/security/tests/include-items.js.map +0 -1
  194. package/dist/tests/security/tests/place-order.d.ts +0 -3
  195. package/dist/tests/security/tests/place-order.d.ts.map +0 -1
  196. package/dist/tests/security/tests/place-order.js +0 -139
  197. package/dist/tests/security/tests/place-order.js.map +0 -1
  198. package/dist/tests/security/tests/test-events.d.ts +0 -3
  199. package/dist/tests/security/tests/test-events.d.ts.map +0 -1
  200. package/dist/tests/security/tests/test-events.js +0 -54
  201. package/dist/tests/security/tests/test-events.js.map +0 -1
  202. package/src/tests/TestConfig.ts +0 -6
  203. package/src/tests/db-tests/tests/check-constraint-test.ts +0 -32
  204. package/src/tests/db-tests/tests/delete-items.ts +0 -42
  205. package/src/tests/db-tests/tests/filtered-include-items.ts +0 -28
  206. package/src/tests/db-tests/tests/insert-into.ts +0 -24
  207. package/src/tests/db-tests/tests/multi-fk-tests.ts +0 -37
  208. package/src/tests/db-tests/tests/select-identity.ts +0 -23
  209. package/src/tests/db-tests/tests/select-inverse-one-to-one.ts +0 -39
  210. package/src/tests/db-tests/tests/select-items-map.ts +0 -38
  211. package/src/tests/db-tests/tests/select-items-sum.ts +0 -60
  212. package/src/tests/db-tests/tests/select-items.ts +0 -49
  213. package/src/tests/db-tests/tests/select-map.ts +0 -19
  214. package/src/tests/db-tests/tests/select-nested.ts +0 -36
  215. package/src/tests/db-tests/tests/select-parent.ts +0 -25
  216. package/src/tests/db-tests/tests/select-related.ts +0 -35
  217. package/src/tests/db-tests/tests/update-items.ts +0 -44
  218. package/src/tests/db-tests/tests/update-select.ts +0 -28
  219. package/src/tests/db-tests/tests/upsert-test.ts +0 -48
  220. package/src/tests/db-tests/tests/version-history.ts +0 -24
  221. package/src/tests/db-tests/transaction-save-point/transaction-save-point.ts +0 -48
  222. package/src/tests/drivers/postgres/connection-test.ts +0 -39
  223. package/src/tests/drivers/sql-server/sql-server-test.ts +0 -9
  224. package/src/tests/eternity/child-tests.ts +0 -119
  225. package/src/tests/eternity/eternity-tests.ts +0 -108
  226. package/src/tests/eternity/external-event-tests.ts +0 -133
  227. package/src/tests/eternity/throttle-tests.ts +0 -100
  228. package/src/tests/expressions/left-joins/child-joins.ts +0 -131
  229. package/src/tests/expressions/sanitize/sanitize-test.ts +0 -17
  230. package/src/tests/expressions/select/select.ts +0 -21
  231. package/src/tests/expressions/self-joins/self-joins.ts +0 -23
  232. package/src/tests/expressions/simple/parse-array.ts +0 -31
  233. package/src/tests/expressions/simple/parse-arrow.ts +0 -65
  234. package/src/tests/expressions/simple/parse-complex.ts +0 -20
  235. package/src/tests/expressions/trimInternal.ts +0 -25
  236. package/src/tests/model/ShoppingContext.ts +0 -435
  237. package/src/tests/model/UseFile.ts +0 -24
  238. package/src/tests/model/createContext.ts +0 -367
  239. package/src/tests/pool/pool-test.ts +0 -79
  240. package/src/tests/query/combine.ts +0 -28
  241. package/src/tests/security/ShoppingContextEvents.ts +0 -23
  242. package/src/tests/security/events/OrderEvents.ts +0 -72
  243. package/src/tests/security/events/ProductEvents.ts +0 -102
  244. package/src/tests/security/events/UserEvents.ts +0 -28
  245. package/src/tests/security/events/UserFileEvents.ts +0 -11
  246. package/src/tests/security/events/UserInfo.ts +0 -7
  247. package/src/tests/security/tests/include-items.ts +0 -20
  248. package/src/tests/security/tests/place-order.ts +0 -138
  249. package/src/tests/security/tests/test-events.ts +0 -55
@@ -1,327 +0,0 @@
1
- import { ShoppingContext, statusPublished } from "./ShoppingContext.js";
2
- const status = statusPublished;
3
- export async function createContext(driver, events) {
4
- const copy = { ...driver };
5
- copy.connectionString = { ...driver.connectionString };
6
- Object.setPrototypeOf(copy, Object.getPrototypeOf(driver));
7
- const context = new ShoppingContext(copy, events);
8
- await context.connection.ensureDatabase();
9
- await context.connection.automaticMigrations().migrate(context);
10
- await seed(context);
11
- driver.connectionString.database = context.driver.connectionString.database;
12
- return context;
13
- }
14
- // export default function () {
15
- // }
16
- async function seed(context) {
17
- const now = new Date();
18
- // add admin user...
19
- context.users.add({
20
- userName: "admin",
21
- dateCreated: new Date()
22
- });
23
- // add seller
24
- const seller = context.users.add({
25
- userName: "self",
26
- dateCreated: new Date()
27
- });
28
- addHeadPhones(context, now, seller);
29
- const clothes = addMaleClothes(context, seller);
30
- addFemaleClothes(context, seller);
31
- await context.saveChanges();
32
- const product = clothes[0];
33
- const productPrice = product.prices[0];
34
- const user = context.users.add({
35
- userName: "customer1",
36
- dateCreated: new Date(),
37
- orders: [
38
- context.orders.add({
39
- orderDate: new Date(),
40
- orderItems: [
41
- context.orderItems.add({
42
- product,
43
- productPrice,
44
- amount: productPrice.amount
45
- })
46
- ]
47
- })
48
- ]
49
- });
50
- await context.saveChanges();
51
- }
52
- function addFemaleClothes(context, owner) {
53
- const category = context.categories.add({
54
- name: "Female Clothes",
55
- categoryID: "clothes/female"
56
- });
57
- const startDate = new Date();
58
- const active = true;
59
- context.products.add({
60
- name: "White T-Shirt",
61
- owner,
62
- status,
63
- categories: [
64
- context.productCategories.add({
65
- category
66
- })
67
- ],
68
- prices: [
69
- context.productPrices.add({
70
- amount: 20,
71
- active,
72
- startDate
73
- })
74
- ]
75
- });
76
- context.products.add({
77
- name: "Red T-Shirt",
78
- status,
79
- owner,
80
- categories: [
81
- context.productCategories.add({
82
- category
83
- })
84
- ],
85
- prices: [
86
- context.productPrices.add({
87
- amount: 20,
88
- active,
89
- startDate
90
- })
91
- ]
92
- });
93
- context.products.add({
94
- name: "Blue T-Shirt",
95
- status,
96
- owner,
97
- categories: [
98
- context.productCategories.add({
99
- category
100
- })
101
- ],
102
- prices: [
103
- context.productPrices.add({
104
- amount: 20,
105
- active,
106
- startDate
107
- })
108
- ]
109
- });
110
- context.products.add({
111
- name: "Pink T-Shirt",
112
- status,
113
- owner,
114
- categories: [
115
- context.productCategories.add({
116
- category
117
- })
118
- ],
119
- prices: [
120
- context.productPrices.add({
121
- amount: 20,
122
- active,
123
- startDate
124
- })
125
- ]
126
- });
127
- }
128
- function addMaleClothes(context, owner) {
129
- const category = context.categories.add({
130
- name: "Male Clothes",
131
- categoryID: "clothes/male"
132
- });
133
- const startDate = new Date();
134
- const active = true;
135
- return [context.products.add({
136
- name: "White T-Shirt",
137
- status,
138
- owner,
139
- categories: [
140
- context.productCategories.add({
141
- category
142
- })
143
- ],
144
- prices: [
145
- context.productPrices.add({
146
- amount: 20,
147
- active,
148
- startDate
149
- })
150
- ]
151
- }),
152
- context.products.add({
153
- name: "Red T-Shirt",
154
- status,
155
- owner,
156
- categories: [
157
- context.productCategories.add({
158
- category
159
- })
160
- ],
161
- prices: [
162
- context.productPrices.add({
163
- amount: 20,
164
- active,
165
- startDate
166
- })
167
- ]
168
- }),
169
- context.products.add({
170
- name: "Blue T-Shirt",
171
- status,
172
- owner,
173
- categories: [
174
- context.productCategories.add({
175
- category
176
- })
177
- ],
178
- prices: [
179
- context.productPrices.add({
180
- amount: 20,
181
- active,
182
- startDate
183
- })
184
- ]
185
- }),
186
- context.products.add({
187
- name: "Pink T-Shirt",
188
- status,
189
- owner,
190
- categories: [
191
- context.productCategories.add({
192
- category
193
- })
194
- ],
195
- prices: [
196
- context.productPrices.add({
197
- amount: 20,
198
- active,
199
- startDate
200
- })
201
- ]
202
- })];
203
- }
204
- export const headPhoneCategory = "head-phones";
205
- function addHeadPhones(context, now, owner) {
206
- const category = context.categories.add({
207
- name: "Headphones",
208
- categoryID: headPhoneCategory,
209
- children: [
210
- context.categories.add({
211
- name: "Bluetooth",
212
- categoryID: `${headPhoneCategory}/blue-tooth`,
213
- children: [
214
- context.categories.add({
215
- name: "BT 200",
216
- categoryID: `${headPhoneCategory}/blue-tooth/bt-200`,
217
- })
218
- ]
219
- })
220
- ]
221
- });
222
- const startDate = new Date();
223
- const active = true;
224
- context.products.add({
225
- name: "Jabber Head Phones",
226
- owner,
227
- status,
228
- categories: [
229
- context.productCategories.add({
230
- category
231
- })
232
- ],
233
- prices: [
234
- context.productPrices.add({
235
- active,
236
- startDate,
237
- amount: 100
238
- })
239
- ]
240
- });
241
- context.products.add({
242
- name: "Sony Head Phones",
243
- owner,
244
- status,
245
- categories: [
246
- context.productCategories.add({
247
- category
248
- })
249
- ],
250
- prices: [
251
- context.productPrices.add({
252
- active,
253
- startDate,
254
- amount: 120
255
- })
256
- ]
257
- });
258
- context.products.add({
259
- name: "Sony Head Phones Black",
260
- status,
261
- owner,
262
- categories: [
263
- context.productCategories.add({
264
- category
265
- })
266
- ],
267
- prices: [
268
- context.productPrices.add({
269
- active,
270
- startDate,
271
- amount: 140
272
- })
273
- ]
274
- });
275
- context.products.add({
276
- name: "Sony Head Phones Blue",
277
- owner,
278
- status,
279
- categories: [
280
- context.productCategories.add({
281
- category
282
- })
283
- ],
284
- prices: [
285
- context.productPrices.add({
286
- active,
287
- startDate,
288
- amount: 140
289
- })
290
- ]
291
- });
292
- context.products.add({
293
- name: "Jabber Head Phones Black",
294
- status,
295
- owner,
296
- categories: [
297
- context.productCategories.add({
298
- category
299
- })
300
- ],
301
- prices: [
302
- context.productPrices.add({
303
- active,
304
- startDate,
305
- amount: 140
306
- })
307
- ]
308
- });
309
- context.products.add({
310
- name: "Jabber Head Phones Blue",
311
- owner,
312
- status,
313
- categories: [
314
- context.productCategories.add({
315
- category
316
- })
317
- ],
318
- prices: [
319
- context.productPrices.add({
320
- active,
321
- startDate,
322
- amount: 140
323
- })
324
- ]
325
- });
326
- }
327
- //# sourceMappingURL=createContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createContext.js","sourceRoot":"","sources":["../../../src/tests/model/createContext.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export default function (): Promise<void>;
2
- //# sourceMappingURL=pool-test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pool-test.d.ts","sourceRoot":"","sources":["../../../src/tests/pool/pool-test.ts"],"names":[],"mappings":"AAMA,0CAwEC"}
@@ -1,66 +0,0 @@
1
- /* eslint-disable no-console */
2
- import assert from "assert";
3
- import ObjectPool from "../../common/ObjectPool.js";
4
- import sleep from "../../common/sleep.js";
5
- export default async function () {
6
- let id = 1;
7
- const logs = [];
8
- try {
9
- const pool = new ObjectPool({
10
- asyncFactory: async () => {
11
- await sleep(1);
12
- return Promise.resolve({ id: id++, toString() { return `item-${this.id}`; } });
13
- },
14
- subscribeForRemoval: (po, clear) => void 0,
15
- destroy(item) {
16
- return Promise.resolve();
17
- },
18
- maxSize: 5,
19
- poolSize: 2,
20
- maxWait: 5000,
21
- logger: (t) => logs.push(t)
22
- });
23
- const c1 = await pool.acquire();
24
- const c2 = await pool.acquire();
25
- assert.equal(2, c2.id);
26
- assert.notStrictEqual(c1, c2);
27
- await c1[Symbol.asyncDispose]();
28
- assert.equal(pool.freeSize, 1);
29
- const c3 = await pool.acquire();
30
- assert.strictEqual(c1, c3);
31
- assert.notStrictEqual(c2, c3);
32
- assert.strictEqual(pool.freeSize, 0);
33
- const c4 = await pool.acquire();
34
- assert.notStrictEqual(c4, c1);
35
- assert.notStrictEqual(c4, c2);
36
- assert.strictEqual(pool.currentSize, 3);
37
- await c4[Symbol.asyncDispose]();
38
- await c2[Symbol.asyncDispose]();
39
- assert.equal(pool.currentSize, 3);
40
- assert.equal(pool.freeSize, 2);
41
- await pool.acquire();
42
- await pool.acquire();
43
- await pool.acquire();
44
- const last = await pool.acquire();
45
- let lastError;
46
- try {
47
- await pool.acquire();
48
- }
49
- catch (error) {
50
- lastError = error;
51
- }
52
- if (!lastError) {
53
- assert.fail("Failed");
54
- }
55
- // free last after few milliseconds
56
- setTimeout(() => {
57
- last[Symbol.asyncDispose]().catch(console.error);
58
- }, 10);
59
- // this should not fail
60
- await pool.acquire();
61
- }
62
- finally {
63
- console.log(logs.join("\n"));
64
- }
65
- }
66
- //# sourceMappingURL=pool-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pool-test.js","sourceRoot":"","sources":["../../../src/tests/pool/pool-test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export default function (): void;
2
- //# sourceMappingURL=combine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"combine.d.ts","sourceRoot":"","sources":["../../../src/tests/query/combine.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,mBAwBb"}
@@ -1,20 +0,0 @@
1
- import * as assert from "assert";
2
- import { Query } from "../../query/Query.js";
3
- export default function () {
4
- const id = 1;
5
- const q = Query.create `SELECT * FROM Accounts WHERE ${id}`;
6
- assert.equal("SELECT * FROM Accounts WHERE @p0", q.toString());
7
- const p = q.parts[1];
8
- assert.equal(id, p.value);
9
- // lets combine multiple queries...
10
- const id2 = 2;
11
- const orConstraints = [];
12
- orConstraints.push(Query.create `ID == ${id}`);
13
- orConstraints.push(Query.create `ID == ${id2}`);
14
- const final = Query.create `SELECT * FROM Accounts WHERE ${Query.join(orConstraints, " OR ")}`;
15
- assert.equal("SELECT * FROM Accounts WHERE ID == @p0 OR ID == @p1", final.toString());
16
- const rn = "D" + Date.now();
17
- const create = Query.create `CREATE Database ${Query.literal(rn)}`;
18
- assert.equal(`CREATE Database ${rn}`, create.toString());
19
- }
20
- //# sourceMappingURL=combine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"combine.js","sourceRoot":"","sources":["../../../src/tests/query/combine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAU,KAAK,EAAa,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,OAAO;IACV,MAAM,EAAE,GAAG,CAAC,CAAC;IACb,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,gCAAgC,EAAE,EAAE,CAAC;IAC5D,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE/D,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAc,CAAC;IAClC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAE1B,mCAAmC;IAEnC,MAAM,GAAG,GAAG,CAAC,CAAC;IAEd,MAAM,aAAa,GAAG,EAAE,CAAC;IACzB,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC/C,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;IAEhD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,gCAAgC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC;IAC/F,MAAM,CAAC,KAAK,CAAC,qDAAqD,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEtF,MAAM,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,mBAAmB,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;IACnE,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAG7D,CAAC"}
@@ -1,5 +0,0 @@
1
- import ContextEvents from "../../model/events/ContextEvents.js";
2
- export declare class ShoppingContextEvents extends ContextEvents {
3
- constructor();
4
- }
5
- //# sourceMappingURL=ShoppingContextEvents.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShoppingContextEvents.d.ts","sourceRoot":"","sources":["../../../src/tests/security/ShoppingContextEvents.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,qCAAqC,CAAC;AAQhE,qBAAa,qBAAsB,SAAQ,aAAa;;CAcvD"}
@@ -1,20 +0,0 @@
1
- import ContextEvents from "../../model/events/ContextEvents.js";
2
- import { Order, OrderItem, Product, ProductCategory, ProductPrice, User } from "../model/ShoppingContext.js";
3
- import { UserFile } from "../model/UseFile.js";
4
- import { OrderEvents, OrderItemEvents } from "./events/OrderEvents.js";
5
- import { ProductEvents, ProductCategoryEvents, ProductPriceEvents } from "./events/ProductEvents.js";
6
- import { UserEvents } from "./events/UserEvents.js";
7
- import { UserFileEvents } from "./events/UserFileEvents.js";
8
- export class ShoppingContextEvents extends ContextEvents {
9
- constructor() {
10
- super();
11
- this.register(User, UserEvents);
12
- this.register(Product, ProductEvents);
13
- this.register(ProductCategory, ProductCategoryEvents);
14
- this.register(ProductPrice, ProductPriceEvents);
15
- this.register(Order, OrderEvents);
16
- this.register(OrderItem, OrderItemEvents);
17
- this.register(UserFile, UserFileEvents);
18
- }
19
- }
20
- //# sourceMappingURL=ShoppingContextEvents.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShoppingContextEvents.js","sourceRoot":"","sources":["../../../src/tests/security/ShoppingContextEvents.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,qCAAqC,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAC7G,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACrG,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,MAAM,OAAO,qBAAsB,SAAQ,aAAa;IAEpD;QACI,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC5C,CAAC;CAEJ"}
@@ -1,17 +0,0 @@
1
- import { IEntityQuery } from "../../../model/IFilterWithParameter.js";
2
- import EntityEvents, { ForeignKeyFilter } from "../../../model/events/EntityEvents.js";
3
- import { Order, OrderItem } from "../../model/ShoppingContext.js";
4
- import { UserInfo } from "./UserInfo.js";
5
- export declare class OrderEvents extends EntityEvents<Order> {
6
- user: UserInfo;
7
- filter(query: IEntityQuery<Order>): IEntityQuery<Order>;
8
- modify(query: IEntityQuery<Order>): IEntityQuery<Order>;
9
- onForeignKeyFilter(filter: ForeignKeyFilter<Order>): IEntityQuery<any>;
10
- }
11
- export declare class OrderItemEvents extends EntityEvents<OrderItem> {
12
- user: UserInfo;
13
- filter(query: IEntityQuery<OrderItem>): IEntityQuery<OrderItem>;
14
- modify(query: IEntityQuery<OrderItem>): IEntityQuery<OrderItem>;
15
- onForeignKeyFilter(filter: ForeignKeyFilter<OrderItem>): IEntityQuery<any>;
16
- }
17
- //# sourceMappingURL=OrderEvents.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OrderEvents.d.ts","sourceRoot":"","sources":["../../../../src/tests/security/events/OrderEvents.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,YAAY,EAAE,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,EAAE,KAAK,EAAE,SAAS,EAAQ,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,qBAAa,WAAY,SAAQ,YAAY,CAAC,KAAK,CAAC;IAGhD,IAAI,EAAE,QAAQ,CAAC;IAEf,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC;IAWvD,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC;IASvD,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC;CAKzE;AAED,qBAAa,eAAgB,SAAQ,YAAY,CAAC,SAAS,CAAC;IAGxD,IAAI,EAAE,QAAQ,CAAC;IAEf,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC;IAW/D,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC;IAS/D,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC;CAQ7E"}
@@ -1,62 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import Inject from "../../../di/di.js";
3
- import EntityEvents from "../../../model/events/EntityEvents.js";
4
- import { UserInfo } from "./UserInfo.js";
5
- export class OrderEvents extends EntityEvents {
6
- filter(query) {
7
- if (this.user.admin) {
8
- return null;
9
- }
10
- const { userID } = this.user;
11
- // user can access orders placed by the user or orders with products owned by user
12
- return query.where({ userID }, (p) => (x) => x.customerID === p.userID || x.orderItems.some((item) => item.product.ownerID === p.userID));
13
- }
14
- modify(query) {
15
- if (this.user.admin) {
16
- return null;
17
- }
18
- const { userID } = this.user;
19
- // user can only modify placed orders
20
- return query.where({ userID }, (p) => (x) => x.customerID === p.userID || x.orderItems.some((item) => item.product.ownerID === p.userID));
21
- }
22
- onForeignKeyFilter(filter) {
23
- if (filter.is((x) => x.customer)) {
24
- return filter.read();
25
- }
26
- }
27
- }
28
- __decorate([
29
- Inject,
30
- __metadata("design:type", UserInfo)
31
- ], OrderEvents.prototype, "user", void 0);
32
- export class OrderItemEvents extends EntityEvents {
33
- filter(query) {
34
- if (this.user.admin) {
35
- return null;
36
- }
37
- const { userID } = this.user;
38
- // user can access orders placed by the user or orders with products owned by user
39
- return query.where({ userID }, (p) => (x) => x.order.customerID === p.userID || x.product.ownerID === p.userID);
40
- }
41
- modify(query) {
42
- if (this.user.admin) {
43
- return null;
44
- }
45
- const { userID } = this.user;
46
- // user can only modify placed orders
47
- return query.where({ userID }, (p) => (x) => x.order.customerID === p.userID || x.product.ownerID === p.userID);
48
- }
49
- onForeignKeyFilter(filter) {
50
- if (filter.is((x) => x.product)) {
51
- return filter.read();
52
- }
53
- if (filter.is((x) => x.productPrice)) {
54
- return filter.read();
55
- }
56
- }
57
- }
58
- __decorate([
59
- Inject,
60
- __metadata("design:type", UserInfo)
61
- ], OrderItemEvents.prototype, "user", void 0);
62
- //# sourceMappingURL=OrderEvents.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OrderEvents.js","sourceRoot":"","sources":["../../../../src/tests/security/events/OrderEvents.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import { IEntityQuery } from "../../../model/IFilterWithParameter.js";
2
- import ChangeEntry from "../../../model/changes/ChangeEntry.js";
3
- import EntityEvents from "../../../model/events/EntityEvents.js";
4
- import { Product, ProductCategory, ProductPrice } from "../../model/ShoppingContext.js";
5
- import { UserInfo } from "./UserInfo.js";
6
- export declare class ProductEvents extends EntityEvents<Product> {
7
- user: UserInfo;
8
- filter(query: IEntityQuery<Product>): IEntityQuery<Product>;
9
- modify(query: IEntityQuery<Product>): IEntityQuery<Product>;
10
- afterUpdate(entity: Product, entry: ChangeEntry<Product>): void | Promise<void>;
11
- afterInsert(entity: Product, entry: ChangeEntry<Product>): void | Promise<void>;
12
- }
13
- export declare class ProductCategoryEvents extends EntityEvents<ProductCategory> {
14
- user: UserInfo;
15
- filter(query: IEntityQuery<ProductCategory>): IEntityQuery<ProductCategory>;
16
- modify(query: IEntityQuery<ProductCategory>): IEntityQuery<ProductCategory>;
17
- }
18
- export declare class ProductPriceEvents extends EntityEvents<ProductPrice> {
19
- user: UserInfo;
20
- filter(query: IEntityQuery<ProductPrice>): IEntityQuery<ProductPrice>;
21
- modify(query: IEntityQuery<ProductPrice>): IEntityQuery<ProductPrice>;
22
- }
23
- //# sourceMappingURL=ProductEvents.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProductEvents.d.ts","sourceRoot":"","sources":["../../../../src/tests/security/events/ProductEvents.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,WAAW,MAAM,uCAAuC,CAAC;AAChE,OAAO,YAAY,MAAM,uCAAuC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,qBAAa,aAAc,SAAQ,YAAY,CAAC,OAAO,CAAC;IAGpD,IAAI,EAAE,QAAQ,CAAC;IAEf,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC;IAW3D,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC;IAY3D,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/E,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAIlF;AAED,qBAAa,qBAAsB,SAAQ,YAAY,CAAC,eAAe,CAAC;IAGpE,IAAI,EAAE,QAAQ,CAAC;IAEf,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,eAAe,CAAC,GAAG,YAAY,CAAC,eAAe,CAAC;IAI3E,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,eAAe,CAAC,GAAG,YAAY,CAAC,eAAe,CAAC;CAW9E;AAGD,qBAAa,kBAAmB,SAAQ,YAAY,CAAC,YAAY,CAAC;IAG9D,IAAI,EAAE,QAAQ,CAAC;IAEf,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC;IAarE,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC;CAYxE"}