@antelopejs/interface-database 0.0.2

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 (90) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +45 -0
  3. package/dist/antelope.test.d.ts +2 -0
  4. package/dist/antelope.test.js +35 -0
  5. package/dist/antelope.test.js.map +1 -0
  6. package/dist/common.d.ts +58 -0
  7. package/dist/common.js +44 -0
  8. package/dist/common.js.map +1 -0
  9. package/dist/datum.d.ts +55 -0
  10. package/dist/datum.js +70 -0
  11. package/dist/datum.js.map +1 -0
  12. package/dist/index.d.ts +6 -0
  13. package/dist/index.js +19 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/query.d.ts +15 -0
  16. package/dist/query.js +79 -0
  17. package/dist/query.js.map +1 -0
  18. package/dist/schema.d.ts +102 -0
  19. package/dist/schema.js +88 -0
  20. package/dist/schema.js.map +1 -0
  21. package/dist/selection.d.ts +99 -0
  22. package/dist/selection.js +119 -0
  23. package/dist/selection.js.map +1 -0
  24. package/dist/stream.d.ts +185 -0
  25. package/dist/stream.js +221 -0
  26. package/dist/stream.js.map +1 -0
  27. package/dist/tests/aggregation_operations.test.d.ts +1 -0
  28. package/dist/tests/aggregation_operations.test.js +157 -0
  29. package/dist/tests/aggregation_operations.test.js.map +1 -0
  30. package/dist/tests/basic_operations.test.d.ts +1 -0
  31. package/dist/tests/basic_operations.test.js +216 -0
  32. package/dist/tests/basic_operations.test.js.map +1 -0
  33. package/dist/tests/between_operations.test.d.ts +1 -0
  34. package/dist/tests/between_operations.test.js +76 -0
  35. package/dist/tests/between_operations.test.js.map +1 -0
  36. package/dist/tests/change_feeds.test.d.ts +1 -0
  37. package/dist/tests/change_feeds.test.js +90 -0
  38. package/dist/tests/change_feeds.test.js.map +1 -0
  39. package/dist/tests/datasets/index.d.ts +4 -0
  40. package/dist/tests/datasets/index.js +22 -0
  41. package/dist/tests/datasets/index.js.map +1 -0
  42. package/dist/tests/datasets/orders.d.ts +62 -0
  43. package/dist/tests/datasets/orders.js +158 -0
  44. package/dist/tests/datasets/orders.js.map +1 -0
  45. package/dist/tests/datasets/products.d.ts +48 -0
  46. package/dist/tests/datasets/products.js +139 -0
  47. package/dist/tests/datasets/products.js.map +1 -0
  48. package/dist/tests/datasets/users.d.ts +50 -0
  49. package/dist/tests/datasets/users.js +145 -0
  50. package/dist/tests/datasets/users.js.map +1 -0
  51. package/dist/tests/datasets/vehicles.d.ts +23 -0
  52. package/dist/tests/datasets/vehicles.js +41 -0
  53. package/dist/tests/datasets/vehicles.js.map +1 -0
  54. package/dist/tests/date_operations.test.d.ts +1 -0
  55. package/dist/tests/date_operations.test.js +119 -0
  56. package/dist/tests/date_operations.test.js.map +1 -0
  57. package/dist/tests/do_operations.test.d.ts +1 -0
  58. package/dist/tests/do_operations.test.js +209 -0
  59. package/dist/tests/do_operations.test.js.map +1 -0
  60. package/dist/tests/filters.test.d.ts +1 -0
  61. package/dist/tests/filters.test.js +158 -0
  62. package/dist/tests/filters.test.js.map +1 -0
  63. package/dist/tests/group_operations.test.d.ts +1 -0
  64. package/dist/tests/group_operations.test.js +190 -0
  65. package/dist/tests/group_operations.test.js.map +1 -0
  66. package/dist/tests/instance_modes.test.d.ts +1 -0
  67. package/dist/tests/instance_modes.test.js +192 -0
  68. package/dist/tests/instance_modes.test.js.map +1 -0
  69. package/dist/tests/joins.test.d.ts +1 -0
  70. package/dist/tests/joins.test.js +163 -0
  71. package/dist/tests/joins.test.js.map +1 -0
  72. package/dist/tests/lookup_operations.test.d.ts +1 -0
  73. package/dist/tests/lookup_operations.test.js +103 -0
  74. package/dist/tests/lookup_operations.test.js.map +1 -0
  75. package/dist/tests/merge_operations.test.d.ts +1 -0
  76. package/dist/tests/merge_operations.test.js +216 -0
  77. package/dist/tests/merge_operations.test.js.map +1 -0
  78. package/dist/tests/row_level_operations.test.d.ts +1 -0
  79. package/dist/tests/row_level_operations.test.js +467 -0
  80. package/dist/tests/row_level_operations.test.js.map +1 -0
  81. package/dist/tests/sorting.test.d.ts +1 -0
  82. package/dist/tests/sorting.test.js +161 -0
  83. package/dist/tests/sorting.test.js.map +1 -0
  84. package/dist/tests/union_operations.test.d.ts +1 -0
  85. package/dist/tests/union_operations.test.js +129 -0
  86. package/dist/tests/union_operations.test.js.map +1 -0
  87. package/dist/valueproxy.d.ts +415 -0
  88. package/dist/valueproxy.js +562 -0
  89. package/dist/valueproxy.js.map +1 -0
  90. package/package.json +88 -0
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const interface_database_1 = require("@antelopejs/interface-database");
4
+ const chai_1 = require("chai");
5
+ const users_1 = require("./datasets/users");
6
+ const tableName = "test-table";
7
+ const schema = new interface_database_1.Schema("test-filters", {
8
+ [tableName]: users_1.User,
9
+ });
10
+ const table = schema.instance("default").table(tableName);
11
+ // Utiliser le dataset unifié
12
+ const testData = (0, users_1.getUniqueUsers)();
13
+ let insertedKeys = [];
14
+ describe("Filter Operations", () => {
15
+ before(async () => {
16
+ await schema.createInstance("default").run();
17
+ });
18
+ after(async () => {
19
+ await table.delete().run();
20
+ await schema.destroyInstance("default").run();
21
+ });
22
+ it("Insert Test Data", InsertTestData);
23
+ it("Filter by String Equality", FilterByStringEquality);
24
+ it("Filter by Number Comparison", FilterByNumberComparison);
25
+ it("Filter by Boolean", FilterByBoolean);
26
+ it("Filter with Constant String", FilterWithConstantString);
27
+ it("Filter with Constant Number", FilterWithConstantNumber);
28
+ it("Filter with Constant Array", FilterWithConstantArray);
29
+ it("Filter with Array Field Filter", FilterWithArrayFieldFilter);
30
+ it("Filter with Array Field Map", FilterWithArrayFieldMap);
31
+ it("Cleanup", CleanupTest);
32
+ });
33
+ async function InsertTestData() {
34
+ const response = await table.insert(testData).run();
35
+ (0, chai_1.expect)(response).to.be.an("array");
36
+ (0, chai_1.expect)(response).to.have.lengthOf(testData.length);
37
+ response.forEach((val) => {
38
+ (0, chai_1.expect)(val).to.be.a("string");
39
+ });
40
+ insertedKeys = response;
41
+ }
42
+ async function FilterByStringEquality() {
43
+ const result = await table
44
+ .filter((doc) => doc.key("department").eq("Development"))
45
+ .run();
46
+ (0, chai_1.expect)(result).to.be.an("array");
47
+ const expectedCount = testData.filter((user) => user.department === "Development").length;
48
+ (0, chai_1.expect)(result).to.have.lengthOf(expectedCount);
49
+ result.forEach((doc) => {
50
+ (0, chai_1.expect)(doc.department).to.equal("Development");
51
+ });
52
+ const names = result.map((doc) => doc.name).sort();
53
+ (0, chai_1.expect)(names).to.deep.equal(["Antoine", "Camille", "Emilie"]);
54
+ }
55
+ async function FilterByNumberComparison() {
56
+ const result = await table.filter((doc) => doc.key("age").gt(25)).run();
57
+ (0, chai_1.expect)(result).to.be.an("array");
58
+ const expectedCount = testData.filter((user) => user.age > 25).length;
59
+ (0, chai_1.expect)(result).to.have.lengthOf(expectedCount);
60
+ result.forEach((doc) => {
61
+ (0, chai_1.expect)(doc.age).to.be.greaterThan(25);
62
+ });
63
+ const ages = result.map((doc) => doc.age).sort();
64
+ (0, chai_1.expect)(ages).to.deep.equal([28, 30, 35]);
65
+ }
66
+ async function FilterByBoolean() {
67
+ const result = await table
68
+ .filter((doc) => doc.key("isActive").eq(true))
69
+ .run();
70
+ (0, chai_1.expect)(result).to.be.an("array");
71
+ const expectedCount = testData.filter((user) => user.isActive === true).length;
72
+ (0, chai_1.expect)(result).to.have.lengthOf(expectedCount);
73
+ result.forEach((doc) => {
74
+ (0, chai_1.expect)(doc.isActive).to.equal(true);
75
+ });
76
+ const names = result.map((doc) => doc.name).sort();
77
+ (0, chai_1.expect)(names).to.deep.equal(["Antoine", "Camille", "Dominique", "Emilie"]);
78
+ }
79
+ async function FilterWithConstantString() {
80
+ const result = await table
81
+ .filter((doc) => doc.key("department").eq(interface_database_1.ValueProxy.constant("Development")))
82
+ .run();
83
+ (0, chai_1.expect)(result).to.be.an("array");
84
+ const expectedCount = testData.filter((user) => user.department === "Development").length;
85
+ (0, chai_1.expect)(result).to.have.lengthOf(expectedCount);
86
+ result.forEach((doc) => {
87
+ (0, chai_1.expect)(doc.department).to.equal("Development");
88
+ });
89
+ const names = result.map((doc) => doc.name).sort();
90
+ (0, chai_1.expect)(names).to.deep.equal(["Antoine", "Camille", "Emilie"]);
91
+ }
92
+ async function FilterWithConstantNumber() {
93
+ const result = await table
94
+ .filter((doc) => doc.key("age").gt(interface_database_1.ValueProxy.constant(25)))
95
+ .run();
96
+ (0, chai_1.expect)(result).to.be.an("array");
97
+ const expectedCount = testData.filter((user) => user.age > 25).length;
98
+ (0, chai_1.expect)(result).to.have.lengthOf(expectedCount);
99
+ result.forEach((doc) => {
100
+ (0, chai_1.expect)(doc.age).to.be.greaterThan(25);
101
+ });
102
+ const ages = result.map((doc) => doc.age).sort();
103
+ (0, chai_1.expect)(ages).to.deep.equal([28, 30, 35]);
104
+ }
105
+ async function FilterWithConstantArray() {
106
+ const departments = ["Development", "Marketing"];
107
+ const result = await table
108
+ .filter((doc) => interface_database_1.ValueProxy.constant(departments).includes(doc.key("department")))
109
+ .run();
110
+ (0, chai_1.expect)(result).to.be.an("array");
111
+ const expectedCount = testData.filter((user) => departments.includes(user.department ?? "")).length;
112
+ (0, chai_1.expect)(result).to.have.lengthOf(expectedCount);
113
+ result.forEach((doc) => {
114
+ (0, chai_1.expect)(departments).to.include(doc.department);
115
+ });
116
+ const names = result.map((doc) => doc.name).sort();
117
+ (0, chai_1.expect)(names).to.deep.equal(["Alice", "Antoine", "Camille", "Emilie"]);
118
+ }
119
+ async function FilterWithArrayFieldFilter() {
120
+ const targetSkills = ["JavaScript", "Python"];
121
+ const result = await table
122
+ .filter((doc) => doc
123
+ .key("skills")
124
+ .filter((skill) => interface_database_1.ValueProxy.constant(targetSkills).includes(skill))
125
+ .count()
126
+ .gt(0))
127
+ .run();
128
+ (0, chai_1.expect)(result).to.be.an("array");
129
+ const expectedNames = testData
130
+ .filter((user) => (user.skills ?? []).some((s) => targetSkills.includes(s)))
131
+ .map((u) => u.name)
132
+ .sort();
133
+ (0, chai_1.expect)(result).to.have.lengthOf(expectedNames.length);
134
+ const names = result.map((doc) => doc.name).sort();
135
+ (0, chai_1.expect)(names).to.deep.equal(expectedNames);
136
+ }
137
+ async function FilterWithArrayFieldMap() {
138
+ const result = await table
139
+ .filter((doc) => doc.key("skills").count().gt(0))
140
+ .map((doc) => ({
141
+ name: doc.key("name"),
142
+ upperSkills: doc.key("skills").map((skill) => skill.upcase()),
143
+ }))
144
+ .run();
145
+ (0, chai_1.expect)(result).to.be.an("array");
146
+ for (const doc of result) {
147
+ (0, chai_1.expect)(doc.upperSkills).to.be.an("array");
148
+ for (const skill of doc.upperSkills) {
149
+ (0, chai_1.expect)(skill).to.equal(skill.toUpperCase());
150
+ }
151
+ }
152
+ }
153
+ async function CleanupTest() {
154
+ for (const key of insertedKeys) {
155
+ await table.get(key).delete().run();
156
+ }
157
+ }
158
+ //# sourceMappingURL=filters.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.test.js","sourceRoot":"","sources":["../../src/tests/filters.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const interface_database_1 = require("@antelopejs/interface-database");
4
+ const chai_1 = require("chai");
5
+ const orders_1 = require("./datasets/orders");
6
+ const tableName = "test-table";
7
+ const schema = new interface_database_1.Schema("test-group-operations", {
8
+ [tableName]: orders_1.Order,
9
+ });
10
+ const table = schema.instance("default").table(tableName);
11
+ // Utiliser les données commandes dédupliquées pour les groupements
12
+ const testData = (0, orders_1.getUniqueOrders)(); // Prendre seulement les commandes avec un type de livraison
13
+ let insertedKeys = [];
14
+ describe("Group Operations", () => {
15
+ before(async () => {
16
+ await schema.createInstance("default").run();
17
+ await table.delete().run();
18
+ });
19
+ after(async () => {
20
+ await table.delete().run();
21
+ await schema.destroyInstance("default").run();
22
+ });
23
+ it("Insert Test Data", InsertTestData);
24
+ it("Group by Delivery Type with Simple Count", GroupByDeliveryTypeWithCount);
25
+ it("Group by Delivery Type with Average Price", GroupByDeliveryTypeWithAveragePrice);
26
+ it("Group by Delivery Type with Weighted Average", GroupByDeliveryTypeWithWeightedAverage);
27
+ it("Group by Delivery Type with Sum of Totals", GroupByDeliveryTypeWithSumOfTotals);
28
+ it("Group by Category with Complex Calculations", GroupByCategoryWithComplexCalculations);
29
+ it("Group by Payment Status with Multiple Aggregations", GroupByPaymentStatusWithMultipleAggregations);
30
+ it("Cleanup", CleanupTest);
31
+ });
32
+ async function InsertTestData() {
33
+ const response = await table.insert(testData).run();
34
+ (0, chai_1.expect)(response).to.be.an("array");
35
+ (0, chai_1.expect)(response).to.have.lengthOf(testData.length);
36
+ response.forEach((val) => {
37
+ (0, chai_1.expect)(val).to.be.a("string");
38
+ });
39
+ insertedKeys = response;
40
+ }
41
+ async function GroupByDeliveryTypeWithCount() {
42
+ const result = await table
43
+ .group("deliveryType", (stream, group) => ({
44
+ deliveryType: group,
45
+ orderCount: stream.count(),
46
+ totalOrders: stream.map((row) => row.key("orderId")).count(),
47
+ }))
48
+ .run();
49
+ (0, chai_1.expect)(result).to.be.an("array");
50
+ const expectedGroupCount = new Set(testData.map((order) => order.deliveryType)).size;
51
+ (0, chai_1.expect)(result).to.have.lengthOf(expectedGroupCount);
52
+ const expressGroup = result.find((item) => item.deliveryType === "express");
53
+ const standardGroup = result.find((item) => item.deliveryType === "standard");
54
+ const expectedExpressCount = testData.filter((order) => order.deliveryType === "express").length;
55
+ const expectedStandardCount = testData.filter((order) => order.deliveryType === "standard").length;
56
+ (0, chai_1.expect)(expressGroup?.orderCount).to.equal(expectedExpressCount);
57
+ (0, chai_1.expect)(standardGroup?.orderCount).to.equal(expectedStandardCount);
58
+ (0, chai_1.expect)(expressGroup?.totalOrders).to.equal(expectedExpressCount);
59
+ (0, chai_1.expect)(standardGroup?.totalOrders).to.equal(expectedStandardCount);
60
+ }
61
+ async function GroupByDeliveryTypeWithAveragePrice() {
62
+ const result = await table
63
+ .group("deliveryType", (stream, group) => ({
64
+ deliveryType: group,
65
+ totalOrders: stream.count(),
66
+ totalAmount: stream.map((row) => row.key("totalAmount")).sum(),
67
+ }))
68
+ .run();
69
+ (0, chai_1.expect)(result).to.be.an("array");
70
+ const expectedGroupCount = new Set(testData.map((order) => order.deliveryType)).size;
71
+ (0, chai_1.expect)(result).to.have.lengthOf(expectedGroupCount);
72
+ const expressGroup = result.find((item) => item.deliveryType === "express");
73
+ const standardGroup = result.find((item) => item.deliveryType === "standard");
74
+ const expectedExpressCount = testData.filter((order) => order.deliveryType === "express").length;
75
+ const expectedStandardCount = testData.filter((order) => order.deliveryType === "standard").length;
76
+ (0, chai_1.expect)(expressGroup?.totalOrders).to.equal(expectedExpressCount);
77
+ const expectedExpressAmount = testData
78
+ .filter((order) => order.deliveryType === "express")
79
+ .reduce((sum, order) => sum + order.totalAmount, 0);
80
+ (0, chai_1.expect)(expressGroup?.totalAmount).to.equal(expectedExpressAmount);
81
+ (0, chai_1.expect)(standardGroup?.totalOrders).to.equal(expectedStandardCount);
82
+ const expectedStandardAmount = testData
83
+ .filter((order) => order.deliveryType === "standard")
84
+ .reduce((sum, order) => sum + order.totalAmount, 0);
85
+ (0, chai_1.expect)(standardGroup?.totalAmount).to.equal(expectedStandardAmount);
86
+ }
87
+ async function GroupByDeliveryTypeWithWeightedAverage() {
88
+ const result = await table
89
+ .group("deliveryType", (stream, group) => ({
90
+ deliveryType: group,
91
+ totalOrders: stream.count(),
92
+ totalAmount: stream.sum("totalAmount"),
93
+ }))
94
+ .run();
95
+ (0, chai_1.expect)(result).to.be.an("array");
96
+ const expectedGroupCount = new Set(testData.map((order) => order.deliveryType)).size;
97
+ (0, chai_1.expect)(result).to.have.lengthOf(expectedGroupCount);
98
+ const expressGroup = result.find((item) => item.deliveryType === "express");
99
+ const standardGroup = result.find((item) => item.deliveryType === "standard");
100
+ const expectedExpressCount = testData.filter((order) => order.deliveryType === "express").length;
101
+ const expectedStandardCount = testData.filter((order) => order.deliveryType === "standard").length;
102
+ (0, chai_1.expect)(expressGroup?.totalOrders).to.equal(expectedExpressCount);
103
+ const expectedExpressAmount = testData
104
+ .filter((order) => order.deliveryType === "express")
105
+ .reduce((sum, order) => sum + order.totalAmount, 0);
106
+ (0, chai_1.expect)(expressGroup?.totalAmount).to.equal(expectedExpressAmount);
107
+ (0, chai_1.expect)(standardGroup?.totalOrders).to.equal(expectedStandardCount);
108
+ const expectedStandardAmount = testData
109
+ .filter((order) => order.deliveryType === "standard")
110
+ .reduce((sum, order) => sum + order.totalAmount, 0);
111
+ (0, chai_1.expect)(standardGroup?.totalAmount).to.equal(expectedStandardAmount);
112
+ }
113
+ async function GroupByDeliveryTypeWithSumOfTotals() {
114
+ const result = await table
115
+ .group("deliveryType", (stream, group) => ({
116
+ deliveryType: group,
117
+ totalOrders: stream.count(),
118
+ totalRevenue: stream.sum("totalAmount"),
119
+ }))
120
+ .run();
121
+ (0, chai_1.expect)(result).to.be.an("array");
122
+ const expectedGroupCount = new Set(testData.map((order) => order.deliveryType)).size;
123
+ (0, chai_1.expect)(result).to.have.lengthOf(expectedGroupCount);
124
+ const expressGroup = result.find((item) => item.deliveryType === "express");
125
+ const standardGroup = result.find((item) => item.deliveryType === "standard");
126
+ const expectedExpressCount = testData.filter((order) => order.deliveryType === "express").length;
127
+ const expectedStandardCount = testData.filter((order) => order.deliveryType === "standard").length;
128
+ (0, chai_1.expect)(expressGroup?.totalOrders).to.equal(expectedExpressCount);
129
+ const expectedExpressRevenue = testData
130
+ .filter((order) => order.deliveryType === "express")
131
+ .reduce((sum, order) => sum + order.totalAmount, 0);
132
+ (0, chai_1.expect)(expressGroup?.totalRevenue).to.equal(expectedExpressRevenue);
133
+ (0, chai_1.expect)(standardGroup?.totalOrders).to.equal(expectedStandardCount);
134
+ const expectedStandardRevenue = testData
135
+ .filter((order) => order.deliveryType === "standard")
136
+ .reduce((sum, order) => sum + order.totalAmount, 0);
137
+ (0, chai_1.expect)(standardGroup?.totalRevenue).to.equal(expectedStandardRevenue);
138
+ }
139
+ async function GroupByCategoryWithComplexCalculations() {
140
+ const result = await table
141
+ .group("deliveryType", (stream, group) => ({
142
+ deliveryType: group,
143
+ totalOrders: stream.count(),
144
+ averageAmount: stream.avg("totalAmount"),
145
+ }))
146
+ .run();
147
+ (0, chai_1.expect)(result).to.be.an("array");
148
+ const expectedGroupCount = new Set(testData.map((order) => order.deliveryType)).size;
149
+ (0, chai_1.expect)(result).to.have.lengthOf(expectedGroupCount);
150
+ result.forEach((item) => {
151
+ (0, chai_1.expect)(item).to.have.property("deliveryType");
152
+ (0, chai_1.expect)(item).to.have.property("totalOrders");
153
+ (0, chai_1.expect)(item).to.have.property("averageAmount");
154
+ (0, chai_1.expect)(item.totalOrders).to.be.a("number");
155
+ (0, chai_1.expect)(item.averageAmount).to.be.a("number");
156
+ });
157
+ }
158
+ async function GroupByPaymentStatusWithMultipleAggregations() {
159
+ const result = await table
160
+ .group("isPaid", (stream, group) => ({
161
+ isPaid: group,
162
+ orderCount: stream.count(),
163
+ totalRevenue: stream.sum("totalAmount"),
164
+ }))
165
+ .run();
166
+ (0, chai_1.expect)(result).to.be.an("array");
167
+ const expectedGroupCount = new Set(testData.map((order) => order.isPaid))
168
+ .size;
169
+ (0, chai_1.expect)(result).to.have.lengthOf(expectedGroupCount);
170
+ const paidGroup = result.find((item) => item.isPaid === true);
171
+ const unpaidGroup = result.find((item) => item.isPaid === false);
172
+ const expectedPaidCount = testData.filter((order) => order.isPaid === true).length;
173
+ const expectedUnpaidCount = testData.filter((order) => order.isPaid === false).length;
174
+ (0, chai_1.expect)(paidGroup?.orderCount).to.equal(expectedPaidCount);
175
+ (0, chai_1.expect)(unpaidGroup?.orderCount).to.equal(expectedUnpaidCount);
176
+ const expectedPaidRevenue = testData
177
+ .filter((order) => order.isPaid === true)
178
+ .reduce((sum, order) => sum + order.totalAmount, 0);
179
+ const expectedUnpaidRevenue = testData
180
+ .filter((order) => order.isPaid === false)
181
+ .reduce((sum, order) => sum + order.totalAmount, 0);
182
+ (0, chai_1.expect)(paidGroup?.totalRevenue).to.equal(expectedPaidRevenue);
183
+ (0, chai_1.expect)(unpaidGroup?.totalRevenue).to.equal(expectedUnpaidRevenue);
184
+ }
185
+ async function CleanupTest() {
186
+ for (const key of insertedKeys) {
187
+ await table.get(key).delete().run();
188
+ }
189
+ }
190
+ //# sourceMappingURL=group_operations.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group_operations.test.js","sourceRoot":"","sources":["../../src/tests/group_operations.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,192 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const interface_database_1 = require("@antelopejs/interface-database");
4
+ const chai_1 = require("chai");
5
+ const vehicles_1 = require("./datasets/vehicles");
6
+ const tableName = "vehicles";
7
+ function vehicle(car, price) {
8
+ return {
9
+ car,
10
+ manufactured: new Date("2020-01-01"),
11
+ price,
12
+ isElectric: false,
13
+ kilometers: 1000,
14
+ };
15
+ }
16
+ const dbLevelSchema = new interface_database_1.Schema("test-db-level", {
17
+ [tableName]: vehicles_1.Vehicle,
18
+ });
19
+ const globalSchema = new interface_database_1.Schema("test-global", {
20
+ [tableName]: vehicles_1.Vehicle,
21
+ });
22
+ const rowLevelSchema = new interface_database_1.Schema("test-row-level", { [tableName]: vehicles_1.Vehicle }, { rowLevel: true });
23
+ describe("Database-Level Instances", () => {
24
+ it("createInstance / destroyInstance", CreateAndDestroyInstance);
25
+ it("Named instance CRUD", NamedInstanceCrud);
26
+ it("Instance isolation", InstanceIsolation);
27
+ after(async () => {
28
+ await dbLevelSchema.instance("a").table(tableName).delete().run();
29
+ await dbLevelSchema.instance("b").table(tableName).delete().run();
30
+ await dbLevelSchema.destroyInstance("a").run();
31
+ await dbLevelSchema.destroyInstance("b").run();
32
+ await dbLevelSchema.destroyInstance("named").run();
33
+ });
34
+ });
35
+ async function CreateAndDestroyInstance() {
36
+ const id = await dbLevelSchema.createInstance("inst1").run();
37
+ (0, chai_1.expect)(id).to.equal("inst1");
38
+ await dbLevelSchema.destroyInstance("inst1").run();
39
+ }
40
+ async function NamedInstanceCrud() {
41
+ await dbLevelSchema.createInstance("named").run();
42
+ const table = dbLevelSchema.instance("named").table(tableName);
43
+ const keys = await table.insert([vehicle("Peugeot", 3000)]).run();
44
+ (0, chai_1.expect)(keys).to.have.lengthOf(1);
45
+ const doc = await table.get(keys[0]).run();
46
+ (0, chai_1.expect)(doc).to.have.property("car", "Peugeot");
47
+ const updated = await table.get(keys[0]).update({ price: 9999 }).run();
48
+ (0, chai_1.expect)(updated).to.equal(1);
49
+ const deleted = await table.get(keys[0]).delete().run();
50
+ (0, chai_1.expect)(deleted).to.equal(1);
51
+ const gone = await table.get(keys[0]).run();
52
+ (0, chai_1.expect)(gone).to.equal(undefined);
53
+ }
54
+ async function InstanceIsolation() {
55
+ await dbLevelSchema.createInstance("a").run();
56
+ await dbLevelSchema.createInstance("b").run();
57
+ const tableA = dbLevelSchema.instance("a").table(tableName);
58
+ const tableB = dbLevelSchema.instance("b").table(tableName);
59
+ await tableA.insert([vehicle("Peugeot", 3000)]).run();
60
+ const allB = await tableB.run();
61
+ (0, chai_1.expect)(allB).to.be.an("array").with.lengthOf(0);
62
+ }
63
+ describe("Global Instance", () => {
64
+ it("createInstance(undefined) returns undefined", GlobalCreateInstance);
65
+ it("CRUD on global instance", GlobalInstanceCrud);
66
+ it("Global instance isolation from named", GlobalNamedIsolation);
67
+ after(async () => {
68
+ await globalSchema.instance().table(tableName).delete().run();
69
+ await globalSchema.instance("named").table(tableName).delete().run();
70
+ await globalSchema.destroyInstance(undefined).run();
71
+ await globalSchema.destroyInstance("named").run();
72
+ });
73
+ });
74
+ async function GlobalCreateInstance() {
75
+ const id = await globalSchema.createInstance(undefined).run();
76
+ (0, chai_1.expect)(id).to.equal(undefined);
77
+ }
78
+ async function GlobalInstanceCrud() {
79
+ const table = globalSchema.instance().table(tableName);
80
+ const keys = await table.insert([vehicle("Renault", 5000)]).run();
81
+ (0, chai_1.expect)(keys).to.have.lengthOf(1);
82
+ const doc = await table.get(keys[0]).run();
83
+ (0, chai_1.expect)(doc).to.have.property("car", "Renault");
84
+ const updated = await table.get(keys[0]).update({ price: 7777 }).run();
85
+ (0, chai_1.expect)(updated).to.equal(1);
86
+ const deleted = await table.get(keys[0]).delete().run();
87
+ (0, chai_1.expect)(deleted).to.equal(1);
88
+ const gone = await table.get(keys[0]).run();
89
+ (0, chai_1.expect)(gone).to.equal(undefined);
90
+ }
91
+ async function GlobalNamedIsolation() {
92
+ await globalSchema.createInstance("named").run();
93
+ const globalTable = globalSchema.instance().table(tableName);
94
+ const namedTable = globalSchema.instance("named").table(tableName);
95
+ await globalTable.insert([vehicle("Peugeot", 3000)]).run();
96
+ const namedDocs = await namedTable.run();
97
+ (0, chai_1.expect)(namedDocs).to.be.an("array").with.lengthOf(0);
98
+ await namedTable.insert([vehicle("Citroen", 4000)]).run();
99
+ const globalDocs = await globalTable.run();
100
+ (0, chai_1.expect)(globalDocs).to.be.an("array").with.lengthOf(1);
101
+ }
102
+ describe("Row-Level Tenancy", () => {
103
+ it("instance(undefined) throws", RowLevelUndefinedThrows);
104
+ it("createInstance is no-op", RowLevelCreateInstance);
105
+ it("destroyInstance is no-op", RowLevelDestroyInstance);
106
+ it("Insert stamps tenant_id", RowLevelInsertStamps);
107
+ it("Tenant isolation", RowLevelTenantIsolation);
108
+ it("Cross-tenant count", RowLevelCrossCount);
109
+ it("Update scoped to tenant", RowLevelScopedUpdate);
110
+ it("Delete scoped to tenant", RowLevelScopedDelete);
111
+ after(async () => {
112
+ await rowLevelSchema.instance("t1").table(tableName).delete().run();
113
+ await rowLevelSchema.instance("t2").table(tableName).delete().run();
114
+ await rowLevelSchema.instance("cleanup").table(tableName).delete().run();
115
+ });
116
+ });
117
+ async function RowLevelUndefinedThrows() {
118
+ let threw = false;
119
+ try {
120
+ await rowLevelSchema.instance().table(tableName).count().run();
121
+ }
122
+ catch {
123
+ threw = true;
124
+ }
125
+ (0, chai_1.expect)(threw).to.equal(true);
126
+ }
127
+ async function RowLevelCreateInstance() {
128
+ const id = await rowLevelSchema.createInstance("t1").run();
129
+ (0, chai_1.expect)(id).to.equal("t1");
130
+ }
131
+ async function RowLevelDestroyInstance() {
132
+ await rowLevelSchema.destroyInstance("t1").run();
133
+ }
134
+ async function RowLevelInsertStamps() {
135
+ const table = rowLevelSchema.instance("cleanup").table(tableName);
136
+ const keys = await table.insert([vehicle("Peugeot", 3000)]).run();
137
+ (0, chai_1.expect)(keys).to.have.lengthOf(1);
138
+ const doc = await table.get(keys[0]).run();
139
+ (0, chai_1.expect)(doc).to.have.property("tenant_id", "cleanup");
140
+ }
141
+ async function RowLevelTenantIsolation() {
142
+ const t1Table = rowLevelSchema.instance("t1").table(tableName);
143
+ const t2Table = rowLevelSchema.instance("t2").table(tableName);
144
+ await t1Table.insert([vehicle("Peugeot", 3000)]).run();
145
+ await t2Table.insert([vehicle("Renault", 5000)]).run();
146
+ const t1Docs = await t1Table.run();
147
+ const t2Docs = await t2Table.run();
148
+ (0, chai_1.expect)(t1Docs).to.have.lengthOf(1);
149
+ (0, chai_1.expect)(t2Docs).to.have.lengthOf(1);
150
+ (0, chai_1.expect)(t1Docs[0].car).to.equal("Peugeot");
151
+ (0, chai_1.expect)(t2Docs[0].car).to.equal("Renault");
152
+ }
153
+ async function RowLevelCrossCount() {
154
+ const t1Table = rowLevelSchema.instance("t1").table(tableName);
155
+ const t2Table = rowLevelSchema.instance("t2").table(tableName);
156
+ await t1Table
157
+ .insert([vehicle("Citroen", 4000), vehicle("Tesla", 50000)])
158
+ .run();
159
+ const t1Docs = await t1Table.run();
160
+ const t2Docs = await t2Table.run();
161
+ (0, chai_1.expect)(t1Docs).to.have.lengthOf(3);
162
+ (0, chai_1.expect)(t2Docs).to.have.lengthOf(1);
163
+ }
164
+ async function RowLevelScopedUpdate() {
165
+ const t1Table = rowLevelSchema.instance("t1").table(tableName);
166
+ const t2Table = rowLevelSchema.instance("t2").table(tableName);
167
+ const t2Before = await t2Table.run();
168
+ const t2PriceBefore = t2Before[0].price;
169
+ await t1Table
170
+ .filter((doc) => doc.key("car").eq("Peugeot"))
171
+ .update({ price: 1 })
172
+ .run();
173
+ const t2After = await t2Table.run();
174
+ (0, chai_1.expect)(t2After[0].price).to.equal(t2PriceBefore);
175
+ const t1Updated = await t1Table
176
+ .filter((doc) => doc.key("car").eq("Peugeot"))
177
+ .run();
178
+ for (const doc of t1Updated) {
179
+ (0, chai_1.expect)(doc.price).to.equal(1);
180
+ }
181
+ }
182
+ async function RowLevelScopedDelete() {
183
+ const t1Table = rowLevelSchema.instance("t1").table(tableName);
184
+ const t2Table = rowLevelSchema.instance("t2").table(tableName);
185
+ const t2CountBefore = await t2Table.run();
186
+ await t1Table.delete().run();
187
+ const t1Remaining = await t1Table.run();
188
+ (0, chai_1.expect)(t1Remaining).to.have.lengthOf(0);
189
+ const t2CountAfter = await t2Table.run();
190
+ (0, chai_1.expect)(t2CountAfter).to.have.lengthOf(t2CountBefore.length);
191
+ }
192
+ //# sourceMappingURL=instance_modes.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance_modes.test.js","sourceRoot":"","sources":["../../src/tests/instance_modes.test.ts"],"names":[],"mappings":";;AAAA,uEAAwD;AACxD,+BAA8B;AAC9B,kDAA8C;AAE9C,MAAM,SAAS,GAAG,UAAU,CAAC;AAE7B,SAAS,OAAO,CAAC,GAAW,EAAE,KAAa;IACzC,OAAO;QACL,GAAG;QACH,YAAY,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QACpC,KAAK;QACL,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,IAAI;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,aAAa,GAAG,IAAI,2BAAM,CAA2B,eAAe,EAAE;IAC1E,CAAC,SAAS,CAAC,EAAE,kBAAO;CACrB,CAAC,CAAC;AACH,MAAM,YAAY,GAAG,IAAI,2BAAM,CAA2B,aAAa,EAAE;IACvE,CAAC,SAAS,CAAC,EAAE,kBAAO;CACrB,CAAC,CAAC;AACH,MAAM,cAAc,GAAG,IAAI,2BAAM,CAC/B,gBAAgB,EAChB,EAAE,CAAC,SAAS,CAAC,EAAE,kBAAO,EAAE,EACxB,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB,CAAC;AAEF,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,kCAAkC,EAAE,wBAAwB,CAAC,CAAC;IACjE,EAAE,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,CAAC;IAC7C,EAAE,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC;IAE5C,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;QAClE,MAAM,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;QAClE,MAAM,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC/C,MAAM,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC/C,MAAM,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,wBAAwB;IACrC,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;IAC7D,IAAA,aAAM,EAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,MAAM,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,iBAAiB;IAC9B,MAAM,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;IAClD,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE/D,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAClE,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEjC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAC3C,IAAA,aAAM,EAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;IACvE,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE5B,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;IACxD,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE5B,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAC5C,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACnC,CAAC;AAED,KAAK,UAAU,iBAAiB;IAC9B,MAAM,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAC9C,MAAM,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE5D,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAEtD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;IAChC,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,6CAA6C,EAAE,oBAAoB,CAAC,CAAC;IACxE,EAAE,CAAC,yBAAyB,EAAE,kBAAkB,CAAC,CAAC;IAClD,EAAE,CAAC,sCAAsC,EAAE,oBAAoB,CAAC,CAAC;IAEjE,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;QAC9D,MAAM,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;QACrE,MAAM,YAAY,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC;QACpD,MAAM,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,oBAAoB;IACjC,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC;IAC9D,IAAA,aAAM,EAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,kBAAkB;IAC/B,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEvD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAClE,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEjC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAC3C,IAAA,aAAM,EAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;IACvE,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE5B,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;IACxD,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE5B,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAC5C,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACnC,CAAC;AAED,KAAK,UAAU,oBAAoB;IACjC,MAAM,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;IACjD,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEnE,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAE3D,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC;IACzC,IAAA,aAAM,EAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAErD,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAE1D,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,CAAC;IAC3C,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,4BAA4B,EAAE,uBAAuB,CAAC,CAAC;IAC1D,EAAE,CAAC,yBAAyB,EAAE,sBAAsB,CAAC,CAAC;IACtD,EAAE,CAAC,0BAA0B,EAAE,uBAAuB,CAAC,CAAC;IACxD,EAAE,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,CAAC;IACpD,EAAE,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAC;IAChD,EAAE,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;IAC7C,EAAE,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,CAAC;IACpD,EAAE,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,CAAC;IAEpD,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;QACpE,MAAM,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;QACpE,MAAM,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;IAC3E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,uBAAuB;IACpC,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG,IAAI,CAAC;IACf,CAAC;IACD,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,sBAAsB;IACnC,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;IAC3D,IAAA,aAAM,EAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,uBAAuB;IACpC,MAAM,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;AACnD,CAAC;AAED,KAAK,UAAU,oBAAoB;IACjC,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAClE,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEjC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAC3C,IAAA,aAAM,EAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,uBAAuB;IACpC,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE/D,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACvD,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAEvD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;IACnC,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnC,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnC,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,kBAAkB;IAC/B,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE/D,MAAM,OAAO;SACV,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;SAC3D,GAAG,EAAE,CAAC;IAET,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;IACnC,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnC,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,oBAAoB;IACjC,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE/D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;IACrC,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAExC,MAAM,OAAO;SACV,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;SAC7C,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;SACpB,GAAG,EAAE,CAAC;IAET,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;IACpC,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAEjD,MAAM,SAAS,GAAG,MAAM,OAAO;SAC5B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;SAC7C,GAAG,EAAE,CAAC;IACT,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAA,aAAM,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB;IACjC,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE/D,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1C,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;IAE7B,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;IACxC,IAAA,aAAM,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAExC,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,IAAA,aAAM,EAAC,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC9D,CAAC"}
@@ -0,0 +1 @@
1
+ export {};