drizzle-kit 0.9.28 → 0.9.31

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 (108) hide show
  1. package/dev/data/column_rename/with_talbe_rename/new.js +15 -0
  2. package/dev/data/column_rename/with_talbe_rename/new.js.map +1 -0
  3. package/dev/data/column_rename/with_talbe_rename/prev.js +15 -0
  4. package/dev/data/column_rename/with_talbe_rename/prev.js.map +1 -0
  5. package/dev/data/column_rename/without_table_rename/v1/usersTable.js +15 -0
  6. package/dev/data/column_rename/without_table_rename/v1/usersTable.js.map +1 -0
  7. package/dev/data/column_rename/without_table_rename/v2/usersTable.js +15 -0
  8. package/dev/data/column_rename/without_table_rename/v2/usersTable.js.map +1 -0
  9. package/dev/data/jobs/from/from.js +22 -0
  10. package/dev/data/jobs/from/from.js.map +1 -0
  11. package/dev/data/jobs/to/to.js +23 -0
  12. package/dev/data/jobs/to/to.js.map +1 -0
  13. package/dev/data/leha/UsersTable.js +36 -0
  14. package/dev/data/leha/UsersTable.js.map +1 -0
  15. package/dev/data/leha/types.js +13 -0
  16. package/dev/data/leha/types.js.map +1 -0
  17. package/dev/data/v1/authOtpTable.js +20 -0
  18. package/dev/data/v1/authOtpTable.js.map +1 -0
  19. package/dev/data/v1/deletedTable.js +14 -0
  20. package/dev/data/v1/deletedTable.js.map +1 -0
  21. package/dev/data/v1/types.js +9 -0
  22. package/dev/data/v1/types.js.map +1 -0
  23. package/dev/data/v1/usersTable.js +18 -0
  24. package/dev/data/v1/usersTable.js.map +1 -0
  25. package/dev/data/v2/authOtpTable.js +29 -0
  26. package/dev/data/v2/authOtpTable.js.map +1 -0
  27. package/dev/data/v2/cityTable.js +15 -0
  28. package/dev/data/v2/cityTable.js.map +1 -0
  29. package/dev/data/v2/types.js +13 -0
  30. package/dev/data/v2/types.js.map +1 -0
  31. package/dev/data/v2/usersTable.js +21 -0
  32. package/dev/data/v2/usersTable.js.map +1 -0
  33. package/dev/data/v3/authOtpTable.js +27 -0
  34. package/dev/data/v3/authOtpTable.js.map +1 -0
  35. package/dev/data/v3/cityTable.js +23 -0
  36. package/dev/data/v3/cityTable.js.map +1 -0
  37. package/dev/data/v3/types.js +13 -0
  38. package/dev/data/v3/types.js.map +1 -0
  39. package/dev/data/v3/usersTable.js +22 -0
  40. package/dev/data/v3/usersTable.js.map +1 -0
  41. package/dev/data/v4/multi.js +46 -0
  42. package/dev/data/v4/multi.js.map +1 -0
  43. package/dev/diff.js +28 -0
  44. package/dev/diff.js.map +1 -0
  45. package/dev/factory.js +78 -0
  46. package/dev/factory.js.map +1 -0
  47. package/dev/fstest.js +45 -0
  48. package/dev/fstest.js.map +1 -0
  49. package/dev/index.js +16 -0
  50. package/dev/index.js.map +1 -0
  51. package/dev/prepare-snapshot.js +19 -0
  52. package/dev/prepare-snapshot.js.map +1 -0
  53. package/dev/quokka.js +90 -0
  54. package/dev/quokka.js.map +1 -0
  55. package/dev/serialiser.js +30 -0
  56. package/dev/serialiser.js.map +1 -0
  57. package/dev/simulate.js +29 -0
  58. package/dev/simulate.js.map +1 -0
  59. package/dev/test-build.js +32 -0
  60. package/dev/test-build.js.map +1 -0
  61. package/dev/testFactory.js +42 -0
  62. package/dev/testFactory.js.map +1 -0
  63. package/dev/testiko.js +57 -0
  64. package/dev/testiko.js.map +1 -0
  65. package/dev/yuup.js +36 -0
  66. package/dev/yuup.js.map +1 -0
  67. package/index.js +6649 -2337
  68. package/jest.config.js +7 -0
  69. package/jest.config.js.map +1 -0
  70. package/package.json +7 -6
  71. package/src/cli/commands/migrate.js +64 -0
  72. package/src/cli/commands/migrate.js.map +1 -0
  73. package/src/cli/components-api/index.js +205 -0
  74. package/src/cli/components-api/index.js.map +1 -0
  75. package/src/cli/enq.js +38 -0
  76. package/src/cli/enq.js.map +1 -0
  77. package/src/cli/index.js +15 -0
  78. package/src/cli/index.js.map +1 -0
  79. package/src/cli/machines/resolveColumnsMachine.js +116 -0
  80. package/src/cli/machines/resolveColumnsMachine.js.map +1 -0
  81. package/src/cli/machines/resolveTablesMachine.js +114 -0
  82. package/src/cli/machines/resolveTablesMachine.js.map +1 -0
  83. package/src/cli/utils/formatDataForTable.js +21 -0
  84. package/src/cli/utils/formatDataForTable.js.map +1 -0
  85. package/src/cli/utils/valuesForPrompts.js +38 -0
  86. package/src/cli/utils/valuesForPrompts.js.map +1 -0
  87. package/src/diff.js +28 -0
  88. package/src/diff.js.map +1 -0
  89. package/src/jsonDiffer.js +178 -0
  90. package/src/jsonDiffer.js.map +1 -0
  91. package/src/jsonStatements.js +197 -0
  92. package/src/jsonStatements.js.map +1 -0
  93. package/src/migrationPreparator.js +37 -0
  94. package/src/migrationPreparator.js.map +1 -0
  95. package/src/serializer/factory.js +113 -0
  96. package/src/serializer/factory.js.map +1 -0
  97. package/src/serializer/index.js +25 -0
  98. package/src/serializer/index.js.map +1 -0
  99. package/src/simulator.js +105 -0
  100. package/src/simulator.js.map +1 -0
  101. package/src/snapshotsDiffer.js +127 -0
  102. package/src/snapshotsDiffer.js.map +1 -0
  103. package/src/sqlgenerator.js +241 -0
  104. package/src/sqlgenerator.js.map +1 -0
  105. package/src/tests/columnsMachine.test.js +270 -0
  106. package/src/tests/columnsMachine.test.js.map +1 -0
  107. package/src/tests/tablesMachine.test.js +272 -0
  108. package/src/tests/tablesMachine.test.js.map +1 -0
@@ -0,0 +1,272 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const resolveTablesMachine_1 = __importDefault(require("../cli/machines/resolveTablesMachine"));
7
+ const xstate_1 = require("xstate");
8
+ test('Dry run, empty data', (done) => {
9
+ const resolveTablesMachine = resolveTablesMachine_1.default({ missingTables: [], newTables: [] });
10
+ const service = xstate_1.interpret(resolveTablesMachine).start();
11
+ service.subscribe((state) => {
12
+ const { createdTables, renamedTables, deletedTables, } = state.context;
13
+ if (state.matches('done')) {
14
+ expect({
15
+ created: createdTables,
16
+ renamed: renamedTables,
17
+ deleted: deletedTables,
18
+ }).toStrictEqual({
19
+ created: [],
20
+ renamed: [],
21
+ deleted: [],
22
+ });
23
+ service.stop();
24
+ done();
25
+ }
26
+ });
27
+ });
28
+ test('Dry run, empty missing', (done) => {
29
+ const resolveTablesMachine = resolveTablesMachine_1.default({ missingTables: [], newTables: [{ name: 'new1' }, { name: 'new2' }] });
30
+ const service = xstate_1.interpret(resolveTablesMachine).start();
31
+ service.subscribe((state) => {
32
+ const { createdTables, renamedTables, deletedTables, } = state.context;
33
+ if (state.changed && state.matches('done')) {
34
+ expect({
35
+ created: createdTables,
36
+ renamed: renamedTables,
37
+ deleted: deletedTables,
38
+ }).toStrictEqual({
39
+ created: [{ name: 'new1' }, { name: 'new2' }],
40
+ renamed: [],
41
+ deleted: [],
42
+ });
43
+ service.stop();
44
+ done();
45
+ }
46
+ });
47
+ });
48
+ test('Rename 1 table', (done) => {
49
+ const machine = resolveTablesMachine_1.default({
50
+ missingTables: [
51
+ { name: 'from' },
52
+ ],
53
+ newTables: [
54
+ { name: 'to' },
55
+ ]
56
+ });
57
+ const service = xstate_1.interpret(machine).start();
58
+ service.subscribe((state) => {
59
+ const { createdTables, renamedTables, deletedTables, } = state.context;
60
+ if (state.changed && state.matches('done')) {
61
+ expect({
62
+ created: createdTables,
63
+ renamed: renamedTables,
64
+ deleted: deletedTables,
65
+ }).toStrictEqual({
66
+ created: [],
67
+ renamed: [
68
+ { from: { name: 'from' }, to: { name: 'to' } },
69
+ ],
70
+ deleted: []
71
+ });
72
+ service.stop();
73
+ done();
74
+ }
75
+ });
76
+ service.send({ type: 'CHOICE_ITEM', itemIndex: 0 });
77
+ service.send({ type: 'RENAMED' });
78
+ service.send({ type: 'CHOICE_NEW_ITEM', itemIndex: 0 });
79
+ service.send({ type: 'CONFIRM' });
80
+ });
81
+ test('Dry run, empty new', (done) => {
82
+ const resolveTablesMachine = resolveTablesMachine_1.default({ missingTables: [{ name: 'missing1' }, { name: 'missing2' }], newTables: [] });
83
+ const service = xstate_1.interpret(resolveTablesMachine).start();
84
+ service.subscribe((state) => {
85
+ const { createdTables, renamedTables, deletedTables, } = state.context;
86
+ if (state.changed && state.matches('done')) {
87
+ expect({
88
+ created: createdTables,
89
+ renamed: renamedTables,
90
+ deleted: deletedTables,
91
+ }).toStrictEqual({
92
+ created: [],
93
+ renamed: [],
94
+ deleted: [{ name: 'missing1' }, { name: 'missing2' }],
95
+ });
96
+ service.stop();
97
+ done();
98
+ }
99
+ });
100
+ });
101
+ test('Delete 2 tables and resolve remaining new tables', (done) => {
102
+ const resolveTablesMachine = resolveTablesMachine_1.default({
103
+ missingTables: [
104
+ { name: 'missing1' },
105
+ { name: 'missing2' }
106
+ ],
107
+ newTables: [{ name: 'new1' }, { name: 'new2' }]
108
+ });
109
+ const service = xstate_1.interpret(resolveTablesMachine).start();
110
+ service.subscribe((state) => {
111
+ const { createdTables, renamedTables, deletedTables, } = state.context;
112
+ if (state.changed && state.matches('done')) {
113
+ expect({
114
+ created: createdTables,
115
+ renamed: renamedTables,
116
+ deleted: deletedTables,
117
+ }).toStrictEqual({
118
+ created: [{ name: 'new1' }, { name: 'new2' }],
119
+ renamed: [],
120
+ deleted: [{ name: 'missing1' }, { name: 'missing2' }],
121
+ });
122
+ service.stop();
123
+ done();
124
+ }
125
+ });
126
+ service.send({ type: 'CHOICE_ITEM', itemIndex: 0 });
127
+ service.send({ type: 'DELETED' });
128
+ service.send({ type: 'CONFIRM' });
129
+ service.send({ type: 'CHOICE_ITEM', itemIndex: 0 });
130
+ service.send({ type: 'DELETED' });
131
+ service.send({ type: 'CONFIRM' });
132
+ });
133
+ test('Rename 2 tables and resolve remaining missing tables', (done) => {
134
+ const resolveTablesMachine = resolveTablesMachine_1.default({
135
+ missingTables: [
136
+ { name: 'missing1' },
137
+ { name: 'missing2' },
138
+ { name: 'missing3' },
139
+ ],
140
+ newTables: [
141
+ { name: 'new1' },
142
+ { name: 'new2' }
143
+ ]
144
+ });
145
+ const service = xstate_1.interpret(resolveTablesMachine).start();
146
+ service.subscribe((state) => {
147
+ const { createdTables, renamedTables, deletedTables, } = state.context;
148
+ if (state.changed && state.matches('done')) {
149
+ expect({
150
+ created: createdTables,
151
+ renamed: renamedTables,
152
+ deleted: deletedTables,
153
+ }).toStrictEqual({
154
+ created: [],
155
+ renamed: [
156
+ { from: { name: 'missing1' }, to: { name: 'new1' } },
157
+ { from: { name: 'missing2' }, to: { name: 'new2' } }
158
+ ],
159
+ deleted: [{ name: 'missing3' }]
160
+ });
161
+ service.stop();
162
+ done();
163
+ }
164
+ });
165
+ service.send({ type: 'CHOICE_ITEM', itemIndex: 0 });
166
+ service.send({ type: 'RENAMED' });
167
+ service.send({ type: 'CHOICE_NEW_ITEM', itemIndex: 0 });
168
+ service.send({ type: 'CONFIRM' });
169
+ service.send({ type: 'CHOICE_ITEM', itemIndex: 0 });
170
+ service.send({ type: 'RENAMED' });
171
+ service.send({ type: 'CHOICE_NEW_ITEM', itemIndex: 0 });
172
+ service.send({ type: 'CONFIRM' });
173
+ });
174
+ test('Rename 2 tables and delete 2 tables', (done) => {
175
+ const resolveTablesMachine = resolveTablesMachine_1.default({
176
+ missingTables: [
177
+ { name: 'missing1' },
178
+ { name: 'missing2' },
179
+ { name: 'missing3' },
180
+ { name: 'missing4' },
181
+ ],
182
+ newTables: [
183
+ { name: 'new1' },
184
+ { name: 'new2' }
185
+ ]
186
+ });
187
+ const service = xstate_1.interpret(resolveTablesMachine).start();
188
+ service.subscribe((state) => {
189
+ const { createdTables, renamedTables, deletedTables, } = state.context;
190
+ if (state.changed && state.matches('done')) {
191
+ expect({
192
+ created: createdTables,
193
+ renamed: renamedTables,
194
+ deleted: deletedTables,
195
+ }).toStrictEqual({
196
+ created: [],
197
+ renamed: [
198
+ { from: { name: 'missing1' }, to: { name: 'new1' } },
199
+ { from: { name: 'missing3' }, to: { name: 'new2' } }
200
+ ],
201
+ deleted: [{ name: 'missing2' }, { name: 'missing4' }]
202
+ });
203
+ service.stop();
204
+ done();
205
+ }
206
+ });
207
+ service.send({ type: 'CHOICE_ITEM', itemIndex: 0 });
208
+ service.send({ type: 'RENAMED' });
209
+ service.send({ type: 'CHOICE_NEW_ITEM', itemIndex: 0 });
210
+ service.send({ type: 'CONFIRM' });
211
+ service.send({ type: 'CHOICE_ITEM', itemIndex: 0 });
212
+ service.send({ type: 'DELETED' });
213
+ service.send({ type: 'CONFIRM' });
214
+ service.send({ type: 'CHOICE_ITEM', itemIndex: 0 });
215
+ service.send({ type: 'RENAMED' });
216
+ service.send({ type: 'CHOICE_NEW_ITEM', itemIndex: 0 });
217
+ service.send({ type: 'CONFIRM' });
218
+ service.send({ type: 'CHOICE_ITEM', itemIndex: 0 });
219
+ service.send({ type: 'DELETED' });
220
+ service.send({ type: 'CONFIRM' });
221
+ });
222
+ test('Delete 2 tables, rename 2 tables and resolve remaining missing', (done) => {
223
+ const resolveTablesMachine = resolveTablesMachine_1.default({
224
+ missingTables: [
225
+ { name: 'missing1' },
226
+ { name: 'missing2' },
227
+ { name: 'missing3' },
228
+ { name: 'missing4' },
229
+ { name: 'missing5' },
230
+ { name: 'missing6' },
231
+ ],
232
+ newTables: [
233
+ { name: 'new1' },
234
+ { name: 'new2' },
235
+ ]
236
+ });
237
+ const service = xstate_1.interpret(resolveTablesMachine).start();
238
+ service.subscribe((state) => {
239
+ const { createdTables, renamedTables, deletedTables, } = state.context;
240
+ if (state.changed && state.matches('done')) {
241
+ expect({
242
+ created: createdTables,
243
+ renamed: renamedTables,
244
+ deleted: deletedTables,
245
+ }).toStrictEqual({
246
+ created: [],
247
+ renamed: [
248
+ { from: { name: 'missing2' }, to: { name: 'new1' } },
249
+ { from: { name: 'missing4' }, to: { name: 'new2' } }
250
+ ],
251
+ deleted: [{ name: 'missing1' }, { name: 'missing3' }, { name: 'missing5' }, { name: 'missing6' }]
252
+ });
253
+ service.stop();
254
+ done();
255
+ }
256
+ });
257
+ service.send({ type: 'CHOICE_ITEM', itemIndex: 0 });
258
+ service.send({ type: 'DELETED' });
259
+ service.send({ type: 'CONFIRM' });
260
+ service.send({ type: 'CHOICE_ITEM', itemIndex: 0 });
261
+ service.send({ type: 'RENAMED' });
262
+ service.send({ type: 'CHOICE_NEW_ITEM', itemIndex: 0 });
263
+ service.send({ type: 'CONFIRM' });
264
+ service.send({ type: 'CHOICE_ITEM', itemIndex: 0 });
265
+ service.send({ type: 'DELETED' });
266
+ service.send({ type: 'CONFIRM' });
267
+ service.send({ type: 'CHOICE_ITEM', itemIndex: 0 });
268
+ service.send({ type: 'RENAMED' });
269
+ service.send({ type: 'CHOICE_NEW_ITEM', itemIndex: 0 });
270
+ service.send({ type: 'CONFIRM' });
271
+ });
272
+ //# sourceMappingURL=tablesMachine.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tablesMachine.test.js","sourceRoot":"","sources":["../../../src/tests/tablesMachine.test.ts"],"names":[],"mappings":";;;;;AAAA,gGAA8E;AAG9E,mCAAmC;AAEnC,IAAI,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,EAAE;IACnC,MAAM,oBAAoB,GAAG,8BAA0B,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9F,MAAM,OAAO,GAAG,kBAAS,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;IAExD,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,MAAM,EACJ,aAAa,EACb,aAAa,EACb,aAAa,GACd,GAAG,KAAK,CAAC,OAAO,CAAC;QAElB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,MAAM,CAAC;gBACL,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,aAAa;aACvB,CAAC,CAAC,aAAa,CAAC;gBACf,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,EAAE;aACZ,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,EAAE,CAAA;SACP;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wBAAwB,EAAE,CAAC,IAAI,EAAE,EAAE;IACtC,MAAM,oBAAoB,GAAG,8BAA0B,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAChI,MAAM,OAAO,GAAG,kBAAS,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;IAExD,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,MAAM,EACJ,aAAa,EACb,aAAa,EACb,aAAa,GACd,GAAG,KAAK,CAAC,OAAO,CAAC;QAElB,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC1C,MAAM,CAAC;gBACL,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,aAAa;aACvB,CAAC,CAAC,aAAa,CAAC;gBACf,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC7C,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,EAAE;aACZ,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,EAAE,CAAA;SACP;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE;IAC9B,MAAM,OAAO,GAAG,8BAA0B,CAAC;QACzC,aAAa,EAAE;YACb,EAAE,IAAI,EAAE,MAAM,EAAE;SACjB;QACD,SAAS,EAAE;YACT,EAAE,IAAI,EAAE,IAAI,EAAE;SACf;KACF,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,kBAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;IAC3C,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,MAAM,EACJ,aAAa,EACb,aAAa,EACb,aAAa,GACd,GAAG,KAAK,CAAC,OAAO,CAAC;QAElB,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC1C,MAAM,CAAC;gBACL,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,aAAa;aACvB,CAAC,CAAC,aAAa,CAAC;gBACf,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;iBAC/C;gBACD,OAAO,EAAE,EAAE;aACZ,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,EAAE,CAAA;SACP;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE;IAClC,MAAM,oBAAoB,GAAG,8BAA0B,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;IACxI,MAAM,OAAO,GAAG,kBAAS,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;IAExD,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,MAAM,EACJ,aAAa,EACb,aAAa,EACb,aAAa,GACd,GAAG,KAAK,CAAC,OAAO,CAAC;QAElB,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC1C,MAAM,CAAC;gBACL,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,aAAa;aACvB,CAAC,CAAC,aAAa,CAAC;gBACf,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;aACtD,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,EAAE,CAAA;SACP;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kDAAkD,EAAE,CAAC,IAAI,EAAE,EAAE;IAChE,MAAM,oBAAoB,GAAG,8BAA0B,CAAC;QACtD,aAAa,EAAE;YACb,EAAE,IAAI,EAAE,UAAU,EAAE;YACpB,EAAE,IAAI,EAAE,UAAU,EAAE;SACrB;QACD,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KAChD,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,kBAAS,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;IAExD,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,MAAM,EACJ,aAAa,EACb,aAAa,EACb,aAAa,GACd,GAAG,KAAK,CAAC,OAAO,CAAC;QAElB,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC1C,MAAM,CAAC;gBACL,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,aAAa;aACvB,CAAC,CAAC,aAAa,CAAC;gBACf,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC7C,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;aACtD,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,EAAE,CAAA;SACP;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sDAAsD,EAAE,CAAC,IAAI,EAAE,EAAE;IACpE,MAAM,oBAAoB,GAAG,8BAA0B,CAAC;QACtD,aAAa,EAAE;YACb,EAAE,IAAI,EAAE,UAAU,EAAE;YACpB,EAAE,IAAI,EAAE,UAAU,EAAE;YACpB,EAAE,IAAI,EAAE,UAAU,EAAE;SACrB;QACD,SAAS,EAAE;YACT,EAAE,IAAI,EAAE,MAAM,EAAE;YAChB,EAAE,IAAI,EAAE,MAAM,EAAE;SACjB;KACF,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,kBAAS,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;IAExD,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,MAAM,EACJ,aAAa,EACb,aAAa,EACb,aAAa,GACd,GAAG,KAAK,CAAC,OAAO,CAAC;QAElB,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC1C,MAAM,CAAC;gBACL,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,aAAa;aACvB,CAAC,CAAC,aAAa,CAAC;gBACf,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;oBACpD,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;iBACrD;gBACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;aAChC,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,EAAE,CAAA;SACP;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qCAAqC,EAAE,CAAC,IAAI,EAAE,EAAE;IACnD,MAAM,oBAAoB,GAAG,8BAA0B,CAAC;QACtD,aAAa,EAAE;YACb,EAAE,IAAI,EAAE,UAAU,EAAE;YACpB,EAAE,IAAI,EAAE,UAAU,EAAE;YACpB,EAAE,IAAI,EAAE,UAAU,EAAE;YACpB,EAAE,IAAI,EAAE,UAAU,EAAE;SACrB;QACD,SAAS,EAAE;YACT,EAAE,IAAI,EAAE,MAAM,EAAE;YAChB,EAAE,IAAI,EAAE,MAAM,EAAE;SACjB;KACF,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,kBAAS,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;IAExD,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,MAAM,EACJ,aAAa,EACb,aAAa,EACb,aAAa,GACd,GAAG,KAAK,CAAC,OAAO,CAAC;QAElB,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC1C,MAAM,CAAC;gBACL,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,aAAa;aACvB,CAAC,CAAC,aAAa,CAAC;gBACf,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;oBACpD,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;iBACrD;gBACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;aACtD,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,EAAE,CAAA;SACP;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gEAAgE,EAAE,CAAC,IAAI,EAAE,EAAE;IAC9E,MAAM,oBAAoB,GAAG,8BAA0B,CAAC;QACtD,aAAa,EAAE;YACb,EAAE,IAAI,EAAE,UAAU,EAAE;YACpB,EAAE,IAAI,EAAE,UAAU,EAAE;YACpB,EAAE,IAAI,EAAE,UAAU,EAAE;YACpB,EAAE,IAAI,EAAE,UAAU,EAAE;YACpB,EAAE,IAAI,EAAE,UAAU,EAAE;YACpB,EAAE,IAAI,EAAE,UAAU,EAAE;SACrB;QACD,SAAS,EAAE;YACT,EAAE,IAAI,EAAE,MAAM,EAAE;YAChB,EAAE,IAAI,EAAE,MAAM,EAAE;SACjB;KACF,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,kBAAS,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;IAExD,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,MAAM,EACJ,aAAa,EACb,aAAa,EACb,aAAa,GACd,GAAG,KAAK,CAAC,OAAO,CAAC;QAElB,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC1C,MAAM,CAAC;gBACL,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,aAAa;aACvB,CAAC,CAAC,aAAa,CAAC;gBACf,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;oBACpD,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;iBACrD;gBACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;aAClG,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,EAAE,CAAA;SACP;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC"}