@cubejs-client/core 1.3.15 → 1.3.16

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 (100) hide show
  1. package/dist/{cubejs-client-core.js → cubejs-client-core.cjs.js} +1016 -411
  2. package/dist/cubejs-client-core.cjs.js.map +1 -0
  3. package/dist/cubejs-client-core.umd.js +2901 -12088
  4. package/dist/cubejs-client-core.umd.js.map +1 -1
  5. package/dist/src/HttpTransport.d.ts +54 -0
  6. package/dist/src/HttpTransport.d.ts.map +1 -0
  7. package/dist/src/HttpTransport.js +55 -0
  8. package/dist/src/Meta.d.ts +62 -0
  9. package/dist/src/Meta.d.ts.map +1 -0
  10. package/dist/src/Meta.js +150 -0
  11. package/dist/src/ProgressResult.d.ts +8 -0
  12. package/dist/src/ProgressResult.d.ts.map +1 -0
  13. package/dist/src/ProgressResult.js +11 -0
  14. package/dist/src/RequestError.d.ts +6 -0
  15. package/dist/src/RequestError.d.ts.map +1 -0
  16. package/dist/src/RequestError.js +7 -0
  17. package/dist/src/ResultSet.d.ts +430 -0
  18. package/dist/src/ResultSet.d.ts.map +1 -0
  19. package/dist/src/ResultSet.js +952 -0
  20. package/dist/src/SqlQuery.d.ts +17 -0
  21. package/dist/src/SqlQuery.d.ts.map +1 -0
  22. package/dist/src/SqlQuery.js +11 -0
  23. package/dist/src/index.d.ts +194 -0
  24. package/dist/src/index.d.ts.map +1 -0
  25. package/dist/src/index.js +411 -0
  26. package/dist/src/index.umd.d.ts +3 -0
  27. package/dist/src/index.umd.d.ts.map +1 -0
  28. package/dist/src/index.umd.js +6 -0
  29. package/dist/src/time.d.ts +70 -0
  30. package/dist/src/time.d.ts.map +1 -0
  31. package/dist/src/time.js +249 -0
  32. package/dist/src/types.d.ts +424 -0
  33. package/dist/src/types.d.ts.map +1 -0
  34. package/dist/src/types.js +1 -0
  35. package/dist/src/utils.d.ts +19 -0
  36. package/dist/src/utils.d.ts.map +1 -0
  37. package/dist/src/utils.js +294 -0
  38. package/dist/test/CubeApi.test.d.ts +7 -0
  39. package/dist/test/CubeApi.test.d.ts.map +1 -0
  40. package/dist/test/CubeApi.test.js +279 -0
  41. package/dist/test/HttpTransport.test.d.ts +2 -0
  42. package/dist/test/HttpTransport.test.d.ts.map +1 -0
  43. package/dist/test/HttpTransport.test.js +244 -0
  44. package/dist/test/ResultSet.test.d.ts +7 -0
  45. package/dist/test/ResultSet.test.d.ts.map +1 -0
  46. package/dist/test/ResultSet.test.js +1725 -0
  47. package/dist/test/compare-date-range.test.d.ts +2 -0
  48. package/dist/test/compare-date-range.test.d.ts.map +1 -0
  49. package/dist/test/compare-date-range.test.js +742 -0
  50. package/dist/test/data-blending.test.d.ts +2 -0
  51. package/dist/test/data-blending.test.d.ts.map +1 -0
  52. package/dist/test/data-blending.test.js +423 -0
  53. package/dist/test/default-heuristics.test.d.ts +2 -0
  54. package/dist/test/default-heuristics.test.d.ts.map +1 -0
  55. package/dist/test/default-heuristics.test.js +108 -0
  56. package/dist/test/drill-down.test.d.ts +2 -0
  57. package/dist/test/drill-down.test.d.ts.map +1 -0
  58. package/dist/test/drill-down.test.js +373 -0
  59. package/dist/test/fixtures/datablending/load-responses.json +261 -0
  60. package/dist/test/granularity.test.d.ts +2 -0
  61. package/dist/test/granularity.test.d.ts.map +1 -0
  62. package/dist/test/granularity.test.js +218 -0
  63. package/dist/test/helpers.d.ts +283 -0
  64. package/dist/test/helpers.d.ts.map +1 -0
  65. package/dist/test/helpers.js +974 -0
  66. package/dist/test/index.test.d.ts +7 -0
  67. package/dist/test/index.test.d.ts.map +1 -0
  68. package/dist/test/index.test.js +370 -0
  69. package/dist/test/table.test.d.ts +2 -0
  70. package/dist/test/table.test.d.ts.map +1 -0
  71. package/dist/test/table.test.js +757 -0
  72. package/dist/test/utils.test.d.ts +2 -0
  73. package/dist/test/utils.test.d.ts.map +1 -0
  74. package/dist/test/utils.test.js +32 -0
  75. package/package.json +26 -21
  76. package/dist/cubejs-client-core.esm.js +0 -1639
  77. package/dist/cubejs-client-core.esm.js.map +0 -1
  78. package/dist/cubejs-client-core.js.map +0 -1
  79. package/index.d.ts +0 -1338
  80. package/src/HttpTransport.js +0 -60
  81. package/src/HttpTransport.test.js +0 -117
  82. package/src/Meta.js +0 -142
  83. package/src/ProgressResult.js +0 -13
  84. package/src/RequestError.js +0 -7
  85. package/src/ResultSet.js +0 -746
  86. package/src/SqlQuery.js +0 -13
  87. package/src/index.js +0 -398
  88. package/src/index.test.js +0 -454
  89. package/src/index.umd.js +0 -8
  90. package/src/tests/ResultSet.test.js +0 -1655
  91. package/src/tests/compare-date-range.test.js +0 -753
  92. package/src/tests/data-blending.test.js +0 -432
  93. package/src/tests/default-heuristics.test.js +0 -118
  94. package/src/tests/drill-down.test.js +0 -402
  95. package/src/tests/fixtures/datablending/load-responses.json +0 -261
  96. package/src/tests/granularity.test.js +0 -225
  97. package/src/tests/table.test.js +0 -791
  98. package/src/tests/utils.test.js +0 -35
  99. package/src/time.js +0 -296
  100. package/src/utils.js +0 -368
@@ -0,0 +1,218 @@
1
+ /* globals describe,test,expect */
2
+ import 'jest';
3
+ import dayjs from 'dayjs';
4
+ import ko from 'dayjs/locale/ko';
5
+ import ResultSet from '../src/ResultSet';
6
+ describe('ResultSet Granularity', () => {
7
+ describe('chartPivot', () => {
8
+ test('week granularity', () => {
9
+ const result = new ResultSet({
10
+ queryType: 'regularQuery',
11
+ results: [
12
+ {
13
+ query: {
14
+ measures: ['LineItems.count'],
15
+ timeDimensions: [
16
+ {
17
+ dimension: 'LineItems.createdAt',
18
+ granularity: 'week',
19
+ dateRange: ['2019-01-08T00:00:00.000', '2019-01-18T00:00:00.000'],
20
+ },
21
+ ],
22
+ filters: [
23
+ {
24
+ operator: 'equals',
25
+ values: ['us-ut'],
26
+ member: 'Users.state',
27
+ },
28
+ ],
29
+ limit: 2,
30
+ rowLimit: 2,
31
+ timezone: 'UTC',
32
+ order: [],
33
+ dimensions: [],
34
+ },
35
+ data: [
36
+ {
37
+ 'LineItems.createdAt.week': '2019-01-07T00:00:00.000',
38
+ 'LineItems.createdAt': '2019-01-07T00:00:00.000',
39
+ 'LineItems.count': '2',
40
+ },
41
+ ],
42
+ lastRefreshTime: '2021-07-07T14:31:30.458Z',
43
+ annotation: {
44
+ measures: {
45
+ 'LineItems.count': {
46
+ title: 'Line Items Count',
47
+ shortTitle: 'Count',
48
+ type: 'number',
49
+ drillMembers: ['LineItems.id', 'LineItems.createdAt'],
50
+ drillMembersGrouped: {
51
+ measures: [],
52
+ dimensions: ['LineItems.id', 'LineItems.createdAt'],
53
+ },
54
+ },
55
+ },
56
+ dimensions: {},
57
+ segments: {},
58
+ timeDimensions: {
59
+ 'LineItems.createdAt.week': {
60
+ title: 'Line Items Created at',
61
+ shortTitle: 'Created at',
62
+ type: 'time',
63
+ },
64
+ 'LineItems.createdAt': {
65
+ title: 'Line Items Created at',
66
+ shortTitle: 'Created at',
67
+ type: 'time',
68
+ },
69
+ },
70
+ },
71
+ slowQuery: false,
72
+ },
73
+ ],
74
+ pivotQuery: {
75
+ measures: ['LineItems.count'],
76
+ timeDimensions: [
77
+ {
78
+ dimension: 'LineItems.createdAt',
79
+ granularity: 'week',
80
+ dateRange: ['2019-01-08T00:00:00.000', '2019-01-18T00:00:00.000'],
81
+ },
82
+ ],
83
+ filters: [
84
+ {
85
+ operator: 'equals',
86
+ values: ['us-ut'],
87
+ member: 'Users.state',
88
+ },
89
+ ],
90
+ limit: 2,
91
+ rowLimit: 2,
92
+ timezone: 'UTC',
93
+ order: [],
94
+ dimensions: [],
95
+ queryType: 'regularQuery',
96
+ },
97
+ slowQuery: false,
98
+ });
99
+ expect(result.chartPivot()).toStrictEqual([
100
+ {
101
+ x: '2019-01-07T00:00:00.000',
102
+ xValues: ['2019-01-07T00:00:00.000'],
103
+ 'LineItems.count': 2,
104
+ },
105
+ {
106
+ x: '2019-01-14T00:00:00.000',
107
+ xValues: ['2019-01-14T00:00:00.000'],
108
+ 'LineItems.count': 0,
109
+ },
110
+ ]);
111
+ });
112
+ test('week granularity in other locale', () => {
113
+ dayjs.locale(ko);
114
+ const result = new ResultSet({
115
+ queryType: 'regularQuery',
116
+ results: [
117
+ {
118
+ query: {
119
+ measures: ['LineItems.count'],
120
+ timeDimensions: [
121
+ {
122
+ dimension: 'LineItems.createdAt',
123
+ granularity: 'week',
124
+ dateRange: ['2019-01-08T00:00:00.000', '2019-01-18T00:00:00.000'],
125
+ },
126
+ ],
127
+ filters: [
128
+ {
129
+ operator: 'equals',
130
+ values: ['us-ut'],
131
+ member: 'Users.state',
132
+ },
133
+ ],
134
+ limit: 2,
135
+ rowLimit: 2,
136
+ timezone: 'UTC',
137
+ order: [],
138
+ dimensions: [],
139
+ },
140
+ data: [
141
+ {
142
+ 'LineItems.createdAt.week': '2019-01-07T00:00:00.000',
143
+ 'LineItems.createdAt': '2019-01-07T00:00:00.000',
144
+ 'LineItems.count': '2',
145
+ },
146
+ ],
147
+ lastRefreshTime: '2021-07-07T14:31:30.458Z',
148
+ annotation: {
149
+ measures: {
150
+ 'LineItems.count': {
151
+ title: 'Line Items Count',
152
+ shortTitle: 'Count',
153
+ type: 'number',
154
+ drillMembers: ['LineItems.id', 'LineItems.createdAt'],
155
+ drillMembersGrouped: {
156
+ measures: [],
157
+ dimensions: ['LineItems.id', 'LineItems.createdAt'],
158
+ },
159
+ },
160
+ },
161
+ dimensions: {},
162
+ segments: {},
163
+ timeDimensions: {
164
+ 'LineItems.createdAt.week': {
165
+ title: 'Line Items Created at',
166
+ shortTitle: 'Created at',
167
+ type: 'time',
168
+ },
169
+ 'LineItems.createdAt': {
170
+ title: 'Line Items Created at',
171
+ shortTitle: 'Created at',
172
+ type: 'time',
173
+ },
174
+ },
175
+ },
176
+ slowQuery: false,
177
+ },
178
+ ],
179
+ pivotQuery: {
180
+ measures: ['LineItems.count'],
181
+ timeDimensions: [
182
+ {
183
+ dimension: 'LineItems.createdAt',
184
+ granularity: 'week',
185
+ dateRange: ['2019-01-08T00:00:00.000', '2019-01-18T00:00:00.000'],
186
+ },
187
+ ],
188
+ filters: [
189
+ {
190
+ operator: 'equals',
191
+ values: ['us-ut'],
192
+ member: 'Users.state',
193
+ },
194
+ ],
195
+ limit: 2,
196
+ rowLimit: 2,
197
+ timezone: 'UTC',
198
+ order: [],
199
+ dimensions: [],
200
+ queryType: 'regularQuery',
201
+ },
202
+ slowQuery: false,
203
+ });
204
+ expect(result.chartPivot()).toStrictEqual([
205
+ {
206
+ x: '2019-01-07T00:00:00.000',
207
+ xValues: ['2019-01-07T00:00:00.000'],
208
+ 'LineItems.count': 2,
209
+ },
210
+ {
211
+ x: '2019-01-14T00:00:00.000',
212
+ xValues: ['2019-01-14T00:00:00.000'],
213
+ 'LineItems.count': 0,
214
+ },
215
+ ]);
216
+ });
217
+ });
218
+ });
@@ -0,0 +1,283 @@
1
+ export declare const DescriptiveQueryRequest: {
2
+ timeDimensions: ({
3
+ dimension: string;
4
+ granularity: string;
5
+ dateRange?: undefined;
6
+ } | {
7
+ dimension: string;
8
+ dateRange: string[];
9
+ granularity?: undefined;
10
+ })[];
11
+ filters: {
12
+ member: string;
13
+ operator: string;
14
+ }[];
15
+ dimensions: string[];
16
+ measures: string[];
17
+ segments: string[];
18
+ };
19
+ export declare const DescriptiveQueryRequestCompact: {
20
+ timeDimensions: ({
21
+ dimension: string;
22
+ granularity: string;
23
+ dateRange?: undefined;
24
+ } | {
25
+ dimension: string;
26
+ dateRange: string[];
27
+ granularity?: undefined;
28
+ })[];
29
+ filters: {
30
+ member: string;
31
+ operator: string;
32
+ }[];
33
+ dimensions: string[];
34
+ measures: string[];
35
+ segments: string[];
36
+ responseFormat: string;
37
+ };
38
+ export declare const DescriptiveQueryResponse: {
39
+ queryType: string;
40
+ results: {
41
+ query: {
42
+ measures: string[];
43
+ dimensions: string[];
44
+ timeDimensions: ({
45
+ dimension: string;
46
+ granularity: string;
47
+ dateRange?: undefined;
48
+ } | {
49
+ dimension: string;
50
+ dateRange: string[];
51
+ granularity?: undefined;
52
+ })[];
53
+ segments: string[];
54
+ limit: number;
55
+ total: boolean;
56
+ timezone: string;
57
+ filters: {
58
+ member: string;
59
+ operator: string;
60
+ }[];
61
+ rowLimit: number;
62
+ };
63
+ lastRefreshTime: string;
64
+ refreshKeyValues: {
65
+ refresh_key: string;
66
+ }[][];
67
+ usedPreAggregations: {};
68
+ transformedQuery: {
69
+ sortedDimensions: string[];
70
+ sortedTimeDimensions: string[][];
71
+ timeDimensions: (string | null)[][];
72
+ measures: string[];
73
+ leafMeasureAdditive: boolean;
74
+ leafMeasures: string[];
75
+ measureToLeafMeasures: {
76
+ 'base_orders.count': {
77
+ measure: string;
78
+ additive: boolean;
79
+ type: string;
80
+ }[];
81
+ };
82
+ hasNoTimeDimensionsWithoutGranularity: boolean;
83
+ allFiltersWithinSelectedDimensions: boolean;
84
+ isAdditive: boolean;
85
+ granularityHierarchies: {
86
+ 'line_items_to_orders.created_at.year': string[];
87
+ 'line_items_to_orders.created_at.quarter': string[];
88
+ 'line_items_to_orders.created_at.month': string[];
89
+ 'line_items_to_orders.created_at.week': string[];
90
+ 'line_items_to_orders.created_at.day': string[];
91
+ 'line_items_to_orders.created_at.hour': string[];
92
+ 'line_items_to_orders.created_at.minute': string[];
93
+ 'line_items_to_orders.created_at.second': string[];
94
+ 'orders_to_line_items.created_at.year': string[];
95
+ 'orders_to_line_items.created_at.quarter': string[];
96
+ 'orders_to_line_items.created_at.month': string[];
97
+ 'orders_to_line_items.created_at.week': string[];
98
+ 'orders_to_line_items.created_at.day': string[];
99
+ 'orders_to_line_items.created_at.hour': string[];
100
+ 'orders_to_line_items.created_at.minute': string[];
101
+ 'orders_to_line_items.created_at.second': string[];
102
+ 'orders_to_line_items.completed_at.year': string[];
103
+ 'orders_to_line_items.completed_at.quarter': string[];
104
+ 'orders_to_line_items.completed_at.month': string[];
105
+ 'orders_to_line_items.completed_at.week': string[];
106
+ 'orders_to_line_items.completed_at.day': string[];
107
+ 'orders_to_line_items.completed_at.hour': string[];
108
+ 'orders_to_line_items.completed_at.minute': string[];
109
+ 'orders_to_line_items.completed_at.second': string[];
110
+ 'products.created_at.year': string[];
111
+ 'products.created_at.quarter': string[];
112
+ 'products.created_at.month': string[];
113
+ 'products.created_at.week': string[];
114
+ 'products.created_at.day': string[];
115
+ 'products.created_at.hour': string[];
116
+ 'products.created_at.minute': string[];
117
+ 'products.created_at.second': string[];
118
+ 'simple_orders.created_at.year': string[];
119
+ 'simple_orders.created_at.quarter': string[];
120
+ 'simple_orders.created_at.month': string[];
121
+ 'simple_orders.created_at.week': string[];
122
+ 'simple_orders.created_at.day': string[];
123
+ 'simple_orders.created_at.hour': string[];
124
+ 'simple_orders.created_at.minute': string[];
125
+ 'simple_orders.created_at.second': string[];
126
+ 'simple_orders_sql_ext.created_at.year': string[];
127
+ 'simple_orders_sql_ext.created_at.quarter': string[];
128
+ 'simple_orders_sql_ext.created_at.month': string[];
129
+ 'simple_orders_sql_ext.created_at.week': string[];
130
+ 'simple_orders_sql_ext.created_at.day': string[];
131
+ 'simple_orders_sql_ext.created_at.hour': string[];
132
+ 'simple_orders_sql_ext.created_at.minute': string[];
133
+ 'simple_orders_sql_ext.created_at.second': string[];
134
+ 'users.created_at.year': string[];
135
+ 'users.created_at.quarter': string[];
136
+ 'users.created_at.month': string[];
137
+ 'users.created_at.week': string[];
138
+ 'users.created_at.day': string[];
139
+ 'users.created_at.hour': string[];
140
+ 'users.created_at.minute': string[];
141
+ 'users.created_at.second': string[];
142
+ 'base_orders.created_at.year': string[];
143
+ 'base_orders.created_at.quarter': string[];
144
+ 'base_orders.created_at.month': string[];
145
+ 'base_orders.created_at.week': string[];
146
+ 'base_orders.created_at.day': string[];
147
+ 'base_orders.created_at.hour': string[];
148
+ 'base_orders.created_at.minute': string[];
149
+ 'base_orders.created_at.second': string[];
150
+ 'base_orders.completed_at.year': string[];
151
+ 'base_orders.completed_at.quarter': string[];
152
+ 'base_orders.completed_at.month': string[];
153
+ 'base_orders.completed_at.week': string[];
154
+ 'base_orders.completed_at.day': string[];
155
+ 'base_orders.completed_at.hour': string[];
156
+ 'base_orders.completed_at.minute': string[];
157
+ 'base_orders.completed_at.second': string[];
158
+ 'base_orders.event_date.year': string[];
159
+ 'base_orders.event_date.quarter': string[];
160
+ 'base_orders.event_date.month': string[];
161
+ 'base_orders.event_date.week': string[];
162
+ 'base_orders.event_date.day': string[];
163
+ 'base_orders.event_date.hour': string[];
164
+ 'base_orders.event_date.minute': string[];
165
+ 'base_orders.event_date.second': string[];
166
+ 'base_orders.event_date.fiscal_year': string[];
167
+ 'base_orders.event_date.fiscal_quarter': string[];
168
+ 'check_dup_names.created_at.year': string[];
169
+ 'check_dup_names.created_at.quarter': string[];
170
+ 'check_dup_names.created_at.month': string[];
171
+ 'check_dup_names.created_at.week': string[];
172
+ 'check_dup_names.created_at.day': string[];
173
+ 'check_dup_names.created_at.hour': string[];
174
+ 'check_dup_names.created_at.minute': string[];
175
+ 'check_dup_names.created_at.second': string[];
176
+ };
177
+ hasMultipliedMeasures: boolean;
178
+ hasCumulativeMeasures: boolean;
179
+ windowGranularity: null;
180
+ filterDimensionsSingleValueEqual: null;
181
+ ownedDimensions: string[];
182
+ ownedTimeDimensionsWithRollupGranularity: string[][];
183
+ ownedTimeDimensionsAsIs: (string | null)[][];
184
+ allBackAliasMembers: {};
185
+ ungrouped: null;
186
+ sortedUsedCubePrimaryKeys: null;
187
+ sortedAllCubeNames: null;
188
+ hasMultiStage: boolean;
189
+ };
190
+ requestId: string;
191
+ annotation: {
192
+ measures: {
193
+ 'base_orders.count': {
194
+ title: string;
195
+ shortTitle: string;
196
+ type: string;
197
+ drillMembers: string[];
198
+ drillMembersGrouped: {
199
+ measures: never[];
200
+ dimensions: string[];
201
+ };
202
+ };
203
+ };
204
+ dimensions: {
205
+ 'base_orders.status': {
206
+ title: string;
207
+ shortTitle: string;
208
+ type: string;
209
+ meta: {
210
+ addDesc: string;
211
+ moreNum: number;
212
+ };
213
+ };
214
+ };
215
+ timeDimensions: {
216
+ 'base_orders.created_at': {
217
+ title: string;
218
+ shortTitle: string;
219
+ type: string;
220
+ };
221
+ 'base_orders.created_at.month': {
222
+ title: string;
223
+ shortTitle: string;
224
+ type: string;
225
+ granularity: {
226
+ name: string;
227
+ title: string;
228
+ interval: string;
229
+ };
230
+ };
231
+ };
232
+ segments: {
233
+ 'users.sf_users': {
234
+ title: string;
235
+ shortTitle: string;
236
+ };
237
+ };
238
+ };
239
+ dataSource: string;
240
+ dbType: string;
241
+ extDbType: string;
242
+ external: boolean;
243
+ slowQuery: boolean;
244
+ total: number;
245
+ data: {
246
+ 'base_orders.created_at.month': string;
247
+ 'base_orders.created_at': string;
248
+ 'base_orders.count': string;
249
+ 'base_orders.status': string;
250
+ }[];
251
+ }[];
252
+ pivotQuery: {
253
+ measures: string[];
254
+ dimensions: string[];
255
+ timeDimensions: ({
256
+ dimension: string;
257
+ granularity: string;
258
+ dateRange?: undefined;
259
+ } | {
260
+ dimension: string;
261
+ dateRange: string[];
262
+ granularity?: undefined;
263
+ })[];
264
+ segments: string[];
265
+ limit: number;
266
+ total: boolean;
267
+ timezone: string;
268
+ filters: {
269
+ member: string;
270
+ operator: string;
271
+ }[];
272
+ rowLimit: number;
273
+ queryType: string;
274
+ };
275
+ slowQuery: boolean;
276
+ };
277
+ export declare const NumericCastedData: {
278
+ 'base_orders.count': number;
279
+ 'base_orders.created_at.month': string;
280
+ 'base_orders.created_at': string;
281
+ 'base_orders.status': string;
282
+ }[];
283
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../test/helpers.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;CA6BnC,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;CA8B1C,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA44BpC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;GAG3B,CAAC"}