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
package/jest.config.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
3
+ module.exports = {
4
+ preset: 'ts-jest',
5
+ testEnvironment: 'node',
6
+ };
7
+ //# sourceMappingURL=jest.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest.config.js","sourceRoot":"","sources":["../jest.config.js"],"names":[],"mappings":";AAAA,gEAAgE;AAChE,MAAM,CAAC,OAAO,GAAG;IACf,MAAM,EAAE,SAAS;IACjB,eAAe,EAAE,MAAM;CACxB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drizzle-kit",
3
- "version": "0.9.28",
3
+ "version": "0.9.31",
4
4
  "main": "index.js",
5
5
  "repository": "https://github.com/lambda-direct/drizzle-kit",
6
6
  "author": "Alex Blokh <aleksandrblokh@gmail.com>",
@@ -13,7 +13,7 @@
13
13
  "watch": "esbuild ./src/cli/index.tsx --bundle --platform=node --target=node10.4 --outfile=./dist/index.js --external:esbuild --watch",
14
14
  "diff": "ts-node ./src/diff.ts",
15
15
  "sim": "ts-node ./dev/simulate.ts",
16
- "test": "jest --silent",
16
+ "test": "uvu -r esbuild-register ./test/",
17
17
  "imports": "ts-node ./test.ts",
18
18
  "build": "esbuild ./src/cli/index.tsx --bundle --platform=node --target=node10.4 --outfile=./dist/index.js --external:esbuild"
19
19
  },
@@ -27,20 +27,21 @@
27
27
  "loading-cli": "^1.1.0",
28
28
  "pretty-error": "^3.0.4",
29
29
  "source-map-support": "^0.5.19",
30
- "xstate": "^4.25.0"
30
+ "xstate": "^4.25.0",
31
+ "yup": "^0.32.11"
31
32
  },
32
33
  "devDependencies": {
33
34
  "@types/jest": "^27.0.3",
34
35
  "@types/js-yaml": "^4.0.3",
35
36
  "@types/pg": "^8.6.1",
36
37
  "@typescript-eslint/eslint-plugin": "4.4.1",
37
- "drizzle-orm": "^0.10.2",
38
+ "drizzle-orm": "^0.10.8",
39
+ "esbuild-register": "^3.3.2",
38
40
  "eslint": "^7.2.0",
39
41
  "eslint-config-airbnb": "18.2.1",
40
42
  "eslint-config-airbnb-typescript": "11.0.0",
41
43
  "eslint-plugin-import": "^2.22.1",
42
- "jest": "^27.4.5",
43
44
  "source-map-loader": "^3.0.0",
44
- "ts-jest": "^27.1.2"
45
+ "uvu": "^0.5.3"
45
46
  }
46
47
  }
@@ -0,0 +1,64 @@
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
+ exports.prepareSQL = exports.prepareAndMigrate = void 0;
7
+ const components_api_1 = require("../components-api");
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const js_yaml_1 = __importDefault(require("js-yaml"));
10
+ const migrationPreparator_1 = __importDefault(require("../../migrationPreparator"));
11
+ const snapshotsDiffer_1 = require("../../snapshotsDiffer");
12
+ const prepareAndMigrate = async () => {
13
+ const drizzleConfig = js_yaml_1.default.load(fs_1.default.readFileSync('drizzle.config.yml', { encoding: 'utf-8' }));
14
+ const migrationRootFolder = drizzleConfig.migrationRootFolder || 'drizzle'; // or from config/params
15
+ const dataFolder = drizzleConfig.dataFolder;
16
+ try {
17
+ const { prev, cur } = await prepareJsonSnapshots(migrationRootFolder, dataFolder);
18
+ const sql = await exports.prepareSQL(prev, cur);
19
+ // todo: save results to a new migration folder
20
+ const folderName = prepareSnapshotFolderName();
21
+ const migrationFolderPath = `./${migrationRootFolder}/${folderName}`;
22
+ fs_1.default.mkdirSync(migrationFolderPath);
23
+ fs_1.default.writeFileSync(`${migrationFolderPath}/snapshot.json`, JSON.stringify(cur, null, 2));
24
+ fs_1.default.writeFileSync(`${migrationFolderPath}/migration.sql`, sql);
25
+ }
26
+ catch (e) {
27
+ console.error(e);
28
+ }
29
+ };
30
+ exports.prepareAndMigrate = prepareAndMigrate;
31
+ const prepareJsonSnapshots = async (migrationRootFolder, dataFolder) => {
32
+ return await components_api_1.task('Preparing data schema json snapshot', async ({ setTitle }) => {
33
+ return migrationPreparator_1.default(migrationRootFolder, dataFolder);
34
+ });
35
+ };
36
+ const prepareSQL = async (prev, cur) => {
37
+ const tablesResolver = async (input) => {
38
+ try {
39
+ const { created, deleted, renamed } = await components_api_1.promptTablesConflicts({
40
+ newTables: input.created,
41
+ missingTables: input.deleted,
42
+ });
43
+ return { created: created, deleted: deleted, renamed: renamed };
44
+ }
45
+ catch (e) {
46
+ console.error(e);
47
+ throw e;
48
+ }
49
+ };
50
+ const columnsResolver = async (input) => {
51
+ const result = await components_api_1.promptColumnsConflicts({ name: input.tableName, added: input.created, deleted: input.deleted });
52
+ return { tableName: input.tableName, created: result.created, deleted: result.deleted, renamed: result.renamed };
53
+ };
54
+ return await snapshotsDiffer_1.applySnapshotsDiff(prev, cur, tablesResolver, columnsResolver);
55
+ };
56
+ exports.prepareSQL = prepareSQL;
57
+ const prepareSnapshotFolderName = () => {
58
+ const now = new Date();
59
+ return `${now.getFullYear()}${two(now.getUTCMonth() + 1)}${two(now.getUTCDate())}${two(now.getUTCHours())}${two(now.getUTCMinutes())}${two(now.getUTCSeconds())}`;
60
+ };
61
+ const two = (input) => {
62
+ return input.toString().padStart(2, '0');
63
+ };
64
+ //# sourceMappingURL=migrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../../src/cli/commands/migrate.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,205 @@
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
+ exports.promptColumnsConflicts = exports.promptTablesConflicts = exports.task = void 0;
7
+ const xstate_1 = require("xstate");
8
+ const resolveTablesMachine_1 = __importDefault(require("../machines/resolveTablesMachine"));
9
+ const resolveColumnsMachine_1 = __importDefault(require("../machines/resolveColumnsMachine"));
10
+ const formatDataForTable_1 = __importDefault(require("../utils/formatDataForTable"));
11
+ const loading = require('loading-cli');
12
+ const { Select, Confirm } = require('enquirer');
13
+ const Table = require('cli-table');
14
+ const actions = ['Renamed', 'Deleted'];
15
+ const bold = '\x1b[1m';
16
+ const red = '\u001B[31m';
17
+ const blue = '\u001B[34m';
18
+ const reset = '\u001B[0m';
19
+ const getElementIndexByName = (array, elementName) => array.findIndex(({ name }) => name === elementName);
20
+ const clearLine = () => {
21
+ process.stdout.moveCursor(0, -1);
22
+ process.stdout.clearLine(1);
23
+ };
24
+ const task = async (titleStr, func) => {
25
+ const progress = loading({
26
+ frames: ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'],
27
+ text: `${bold}${titleStr}`,
28
+ }).start();
29
+ try {
30
+ const result = await func({
31
+ setTitle: (title) => { progress.text = `${bold}${title}`; },
32
+ setError: (error) => { progress.fail(error.message); },
33
+ });
34
+ progress.succeed();
35
+ return result;
36
+ }
37
+ catch (error) {
38
+ progress.fail(`${bold}${error.message}`);
39
+ throw Error(error);
40
+ }
41
+ };
42
+ exports.task = task;
43
+ const promptTablesConflicts = ({ missingTables: m, newTables: n }) => new Promise((resolve) => {
44
+ const resolveTablesMachine = resolveTablesMachine_1.default({ missingTables: m, newTables: n });
45
+ const service = xstate_1.interpret(resolveTablesMachine).start();
46
+ service.subscribe(async (state) => {
47
+ try {
48
+ const { missingItemIndex, newItemIndex, newTables, missingTables, createdTables, renamedTables, deletedTables, } = state.context;
49
+ if (state.matches('idle')) {
50
+ service.send({ type: 'NEXT' });
51
+ }
52
+ if (state.changed && state.matches('table')) {
53
+ const tableName = await new Select({
54
+ name: 'tableName',
55
+ message: 'Chose missing table:',
56
+ choices: missingTables.map(({ name }) => name),
57
+ }).run();
58
+ clearLine();
59
+ service.send({ type: 'CHOICE_ITEM', itemIndex: getElementIndexByName(missingTables, tableName) });
60
+ }
61
+ if (state.changed && state.matches('action.actionChoice')) {
62
+ const actionName = await new Select({
63
+ name: 'tableName',
64
+ message: `Table "${missingTables[missingItemIndex].name}" was:`,
65
+ choices: actions,
66
+ }).run();
67
+ clearLine();
68
+ service.send({ type: actionName.toUpperCase() });
69
+ }
70
+ if (state.changed && state.matches('confirmationDelete')) {
71
+ const confirmation = await new Confirm({
72
+ name: 'confirm',
73
+ message: 'Are you sure?',
74
+ initial: true,
75
+ }).run();
76
+ clearLine();
77
+ if (confirmation)
78
+ console.log(`${bold}Deleted "${missingTables[missingItemIndex].name}" table, ${red}all data will be lost!`);
79
+ service.send({ type: confirmation ? 'CONFIRM' : 'CANCEL' });
80
+ }
81
+ if (state.changed && state.matches('confirmationRename')) {
82
+ const confirmation = await new Confirm({
83
+ name: 'confirm',
84
+ message: 'Are you sure?',
85
+ initial: true,
86
+ }).run();
87
+ clearLine();
88
+ if (confirmation)
89
+ console.log(`${bold}Renamed "${missingTables[missingItemIndex].name}" -> "${newTables[newItemIndex].name}"`);
90
+ service.send({ type: confirmation ? 'CONFIRM' : 'CANCEL' });
91
+ }
92
+ if (state.changed && state.matches('action.rename')) {
93
+ const tableName = await new Select({
94
+ name: 'tableName',
95
+ message: `Table "${missingTables[missingItemIndex]?.name}" was renamed to:`,
96
+ choices: newTables.map(({ name }) => name),
97
+ }).run();
98
+ clearLine();
99
+ service.send({ type: 'CHOICE_NEW_ITEM', itemIndex: getElementIndexByName(newTables, tableName) });
100
+ }
101
+ if (state.changed && state.matches('done')) {
102
+ if (createdTables.length || deletedTables.length || renamedTables.length) {
103
+ const table = new Table({
104
+ head: [`${blue}Created`, `${blue}Renamed`, `${blue}Deleted`],
105
+ rows: formatDataForTable_1.default(createdTables, renamedTables, deletedTables)
106
+ });
107
+ console.log(`${reset}${bold}Tables:`);
108
+ console.log(table.toString());
109
+ }
110
+ resolve({
111
+ created: createdTables,
112
+ deleted: deletedTables,
113
+ renamed: renamedTables,
114
+ });
115
+ service.stop();
116
+ }
117
+ }
118
+ catch (e) {
119
+ console.error(e);
120
+ }
121
+ });
122
+ });
123
+ exports.promptTablesConflicts = promptTablesConflicts;
124
+ const promptColumnsConflicts = (props) => new Promise((resolve) => {
125
+ const resolveColumnsMachine = resolveColumnsMachine_1.default(props);
126
+ const service = xstate_1.interpret(resolveColumnsMachine).start();
127
+ service.subscribe(async (state) => {
128
+ try {
129
+ const { tableName, addedColumns, deletedColumns, missingItemIndex, newItemIndex, created, renamed, deleted, } = state.context;
130
+ if (state.matches('idle')) {
131
+ service.send({ type: 'NEXT' });
132
+ }
133
+ if (state.changed && state.matches('table')) {
134
+ const columnName = await new Select({
135
+ name: 'columnName',
136
+ message: `Table "${tableName}" missing columns:`,
137
+ choices: deletedColumns.map(({ name }) => name),
138
+ }).run();
139
+ clearLine();
140
+ service.send({ type: 'CHOICE_ITEM', itemIndex: getElementIndexByName(deletedColumns, columnName) });
141
+ }
142
+ if (state.changed && state.matches('action.actionChoice')) {
143
+ const actionName = await new Select({
144
+ name: 'tableName',
145
+ message: `Column "${deletedColumns[missingItemIndex].name}" was:`,
146
+ choices: actions,
147
+ }).run();
148
+ clearLine();
149
+ service.send({ type: actionName.toUpperCase() });
150
+ }
151
+ if (state.changed && state.matches('confirmationDelete')) {
152
+ const confirmation = await new Confirm({
153
+ name: 'confirm',
154
+ message: 'Are you sure?',
155
+ initial: true,
156
+ }).run();
157
+ clearLine();
158
+ if (confirmation)
159
+ console.log(`${bold}Deleted column "${deletedColumns[missingItemIndex].name}" from "${tableName}" table, ${red}all data will be lost!`);
160
+ service.send({ type: confirmation ? 'CONFIRM' : 'CANCEL' });
161
+ }
162
+ if (state.changed && state.matches('confirmationRename')) {
163
+ const confirmation = await new Confirm({
164
+ name: 'confirm',
165
+ message: 'Are you sure?',
166
+ initial: true,
167
+ }).run();
168
+ clearLine();
169
+ if (confirmation)
170
+ console.log(`${bold}Renamed "${deletedColumns[missingItemIndex].name} -> ${addedColumns[newItemIndex].name}" in "${tableName}" table`);
171
+ service.send({ type: confirmation ? 'CONFIRM' : 'CANCEL' });
172
+ }
173
+ if (state.changed && state.matches('action.rename')) {
174
+ const columnName = await new Select({
175
+ name: 'tableName',
176
+ message: `Column "${deletedColumns[missingItemIndex]?.name}" was renamed to:`,
177
+ choices: addedColumns.map(({ name }) => name),
178
+ }).run();
179
+ clearLine();
180
+ service.send({ type: 'CHOICE_NEW_ITEM', itemIndex: getElementIndexByName(addedColumns, columnName) });
181
+ }
182
+ if (state.changed && state.matches('done')) {
183
+ if (created.length || deleted.length || renamed.length) {
184
+ const table = new Table({
185
+ head: [`${blue}Created`, `${blue}Renamed`, `${blue}Deleted`],
186
+ rows: formatDataForTable_1.default(created, renamed, deleted)
187
+ });
188
+ console.log(`${reset}${bold}Table "${tableName}" columns:`);
189
+ console.log(table.toString());
190
+ }
191
+ resolve({
192
+ created,
193
+ deleted,
194
+ renamed,
195
+ });
196
+ service.stop();
197
+ }
198
+ }
199
+ catch (e) {
200
+ console.error(e);
201
+ }
202
+ });
203
+ });
204
+ exports.promptColumnsConflicts = promptColumnsConflicts;
205
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/components-api/index.tsx"],"names":[],"mappings":"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"}
package/src/cli/enq.js ADDED
@@ -0,0 +1,38 @@
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 commander_1 = require("commander");
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const main = async () => {
9
+ const program = new commander_1.Command()
10
+ .arguments("[input]");
11
+ // const addCommand = new Command('add')
12
+ // program.addCommand(addCommand)
13
+ program.parse(process.argv);
14
+ if (program.args.length === 0) {
15
+ return;
16
+ }
17
+ console.log(program.args);
18
+ const [input] = program.args;
19
+ if (input === 'add') {
20
+ //todo add item
21
+ // // const exampleLink = terminalLink('here', 'https://google.com')
22
+ // console.log(`Example see ${exampleLink}`)
23
+ // console.log(exampleLink)
24
+ // try {
25
+ // const newEntry = await prepareNewEntry()
26
+ // newEntry.secret
27
+ // } catch (_) { }
28
+ return;
29
+ }
30
+ if (fs_1.default.existsSync(input)) {
31
+ // handle file
32
+ console.log('handle file');
33
+ return;
34
+ }
35
+ console.log('is encoded secret');
36
+ };
37
+ main();
38
+ //# sourceMappingURL=enq.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enq.js","sourceRoot":"","sources":["../../../src/cli/enq.ts"],"names":[],"mappings":";;;;;AAAA,yCAAmC;AACnC,4CAAmB;AAEnB,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;IACpB,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE;SACxB,SAAS,CAAC,SAAS,CAAC,CAAA;IAEzB,wCAAwC;IACxC,iCAAiC;IACjC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAG3B,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3B,OAAM;KACT;IAED,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAA;IAC5B,IAAI,KAAK,KAAK,KAAK,EAAE;QACjB,eAAe;QACf,oEAAoE;QACpE,4CAA4C;QAC5C,2BAA2B;QAC3B,QAAQ;QACR,+CAA+C;QAC/C,sBAAsB;QACtB,kBAAkB;QAClB,OAAM;KACT;IAED,IAAI,YAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QACtB,cAAc;QACd,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAC1B,OAAM;KACT;IAED,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAE,CAAA;AACrC,CAAC,CAAA;AAGD,IAAI,EAAE,CAAA"}
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const commander_1 = require("commander");
5
+ const migrate_1 = require("./commands/migrate");
6
+ require("source-map-support/register");
7
+ require("pretty-error/start");
8
+ require("./commands/migrate");
9
+ const migrationCommand = new commander_1.Command('migrate')
10
+ .alias('mg')
11
+ .description('Migration')
12
+ .action(migrate_1.prepareAndMigrate);
13
+ commander_1.program.addCommand(migrationCommand);
14
+ commander_1.program.parse();
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.tsx"],"names":[],"mappings":";;;AACA,yCAA6C;AAC7C,gDAAuD;AACvD,uCAAqC;AACrC,8BAA4B;AAC5B,8BAA4B;AAE5B,MAAM,gBAAgB,GAAG,IAAI,mBAAO,CAAC,SAAS,CAAC;KAC1C,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,WAAW,CAAC;KACxB,MAAM,CAAC,2BAAiB,CAAC,CAAC;AAE/B,mBAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAA;AACpC,mBAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const xstate_1 = require("xstate");
4
+ const createResolveColumnsMachine = (props) => (xstate_1.createMachine({
5
+ id: 'resolveColumns',
6
+ initial: 'idle',
7
+ context: {
8
+ tableName: props.name,
9
+ addedColumns: props.added,
10
+ deletedColumns: props.deleted,
11
+ missingItemIndex: 0,
12
+ newItemIndex: 0,
13
+ created: [],
14
+ renamed: [],
15
+ deleted: [],
16
+ },
17
+ states: {
18
+ idle: {
19
+ entry: xstate_1.send({ type: 'NEXT' }),
20
+ on: {
21
+ NEXT: [
22
+ {
23
+ target: 'done',
24
+ cond: 'isResolved',
25
+ actions: ['resolveRemaining'],
26
+ },
27
+ {
28
+ target: 'table',
29
+ },
30
+ ],
31
+ },
32
+ },
33
+ table: {
34
+ on: {
35
+ CHOICE_ITEM: { target: 'action', actions: ['choseItem'] },
36
+ },
37
+ },
38
+ action: {
39
+ initial: 'actionChoice',
40
+ states: {
41
+ actionChoice: {
42
+ on: { DELETED: '#resolveColumns.confirmationDelete', RENAMED: 'rename' },
43
+ },
44
+ rename: {
45
+ on: {
46
+ CHOICE_NEW_ITEM: { target: '#resolveColumns.confirmationRename', actions: ['choseNewItem'] },
47
+ },
48
+ },
49
+ },
50
+ },
51
+ confirmationDelete: {
52
+ on: {
53
+ CANCEL: 'action.actionChoice',
54
+ CONFIRM: [
55
+ { target: 'check', actions: ['delete'] },
56
+ ],
57
+ },
58
+ },
59
+ confirmationRename: {
60
+ on: {
61
+ CANCEL: 'action.actionChoice',
62
+ CONFIRM: [
63
+ { target: 'check', actions: ['rename'] },
64
+ ],
65
+ },
66
+ },
67
+ check: {
68
+ entry: xstate_1.send({ type: 'NEXT' }),
69
+ on: {
70
+ NEXT: [
71
+ {
72
+ target: 'done',
73
+ cond: 'isResolved',
74
+ actions: ['resolveRemaining'],
75
+ },
76
+ {
77
+ target: 'table',
78
+ },
79
+ ],
80
+ },
81
+ },
82
+ done: {},
83
+ },
84
+ }, {
85
+ guards: {
86
+ isResolved: ({ deletedColumns, addedColumns }) => !deletedColumns.length || !addedColumns.length,
87
+ },
88
+ actions: {
89
+ choseItem: xstate_1.assign({
90
+ missingItemIndex: (context, event) => (event.type === 'CHOICE_ITEM' ? event.itemIndex : 0),
91
+ }),
92
+ choseNewItem: xstate_1.assign({
93
+ newItemIndex: (context, event) => (event.type === 'CHOICE_NEW_ITEM' ? event.itemIndex : 0),
94
+ }),
95
+ delete: xstate_1.assign({
96
+ deleted: ({ missingItemIndex, deleted, deletedColumns, }) => [...deleted, deletedColumns[missingItemIndex]],
97
+ deletedColumns: ({ missingItemIndex, deletedColumns, }) => deletedColumns.filter((_, index) => index !== missingItemIndex),
98
+ }),
99
+ rename: xstate_1.assign({
100
+ renamed: ({ missingItemIndex, newItemIndex, renamed, addedColumns, deletedColumns, }) => [
101
+ ...renamed,
102
+ { from: deletedColumns[missingItemIndex], to: addedColumns[newItemIndex] },
103
+ ],
104
+ deletedColumns: ({ missingItemIndex, deletedColumns, }) => deletedColumns.filter((_, index) => index !== missingItemIndex),
105
+ addedColumns: ({ newItemIndex, addedColumns, }) => addedColumns.filter((_, index) => index !== newItemIndex),
106
+ }),
107
+ resolveRemaining: xstate_1.assign({
108
+ created: ({ addedColumns, created, }) => [...created, ...addedColumns],
109
+ deleted: ({ deletedColumns, deleted, }) => [...deleted, ...deletedColumns],
110
+ deletedColumns: (context) => [],
111
+ addedColumns: (context) => [],
112
+ }),
113
+ },
114
+ }));
115
+ exports.default = createResolveColumnsMachine;
116
+ //# sourceMappingURL=resolveColumnsMachine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveColumnsMachine.js","sourceRoot":"","sources":["../../../../src/cli/machines/resolveColumnsMachine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const xstate_1 = require("xstate");
4
+ const createResolveTablesMachine = (props) => (xstate_1.createMachine({
5
+ id: 'resolveTables',
6
+ initial: 'idle',
7
+ context: {
8
+ ...props,
9
+ missingItemIndex: 0,
10
+ newItemIndex: 0,
11
+ createdTables: [],
12
+ renamedTables: [],
13
+ deletedTables: [],
14
+ },
15
+ states: {
16
+ idle: {
17
+ entry: xstate_1.send({ type: 'NEXT' }),
18
+ on: {
19
+ NEXT: [
20
+ {
21
+ target: 'done',
22
+ cond: 'isResolved',
23
+ actions: ['resolveRemaining'],
24
+ },
25
+ {
26
+ target: 'table',
27
+ },
28
+ ],
29
+ },
30
+ },
31
+ table: {
32
+ on: {
33
+ CHOICE_ITEM: { target: 'action', actions: ['choseItem'] },
34
+ },
35
+ },
36
+ action: {
37
+ initial: 'actionChoice',
38
+ states: {
39
+ actionChoice: {
40
+ on: { DELETED: '#resolveTables.confirmationDelete', RENAMED: 'rename' },
41
+ },
42
+ rename: {
43
+ on: {
44
+ CHOICE_NEW_ITEM: { target: '#resolveTables.confirmationRename', actions: ['choseNewItem'] },
45
+ },
46
+ },
47
+ },
48
+ },
49
+ confirmationDelete: {
50
+ on: {
51
+ CANCEL: 'action.actionChoice',
52
+ CONFIRM: [
53
+ { target: 'check', actions: ['delete'] },
54
+ ],
55
+ },
56
+ },
57
+ confirmationRename: {
58
+ on: {
59
+ CANCEL: 'action.actionChoice',
60
+ CONFIRM: [
61
+ { target: 'check', actions: ['rename'] },
62
+ ],
63
+ },
64
+ },
65
+ check: {
66
+ entry: xstate_1.send({ type: 'NEXT' }),
67
+ on: {
68
+ NEXT: [
69
+ {
70
+ target: 'done',
71
+ cond: 'isResolved',
72
+ actions: ['resolveRemaining'],
73
+ },
74
+ {
75
+ target: 'table',
76
+ },
77
+ ],
78
+ },
79
+ },
80
+ done: {},
81
+ },
82
+ }, {
83
+ guards: {
84
+ isResolved: ({ missingTables, newTables }) => !missingTables.length || !newTables.length,
85
+ },
86
+ actions: {
87
+ choseItem: xstate_1.assign({
88
+ missingItemIndex: (context, event) => (event.type === 'CHOICE_ITEM' ? event.itemIndex : 0),
89
+ }),
90
+ choseNewItem: xstate_1.assign({
91
+ newItemIndex: (context, event) => (event.type === 'CHOICE_NEW_ITEM' ? event.itemIndex : 0),
92
+ }),
93
+ delete: xstate_1.assign({
94
+ deletedTables: ({ missingItemIndex, deletedTables, missingTables, }) => [...deletedTables, missingTables[missingItemIndex]],
95
+ missingTables: ({ missingItemIndex, missingTables, }) => missingTables.filter((_, index) => index !== missingItemIndex),
96
+ }),
97
+ rename: xstate_1.assign({
98
+ renamedTables: ({ missingItemIndex, newItemIndex, renamedTables, newTables, missingTables, }) => [
99
+ ...renamedTables,
100
+ { from: missingTables[missingItemIndex], to: newTables[newItemIndex] },
101
+ ],
102
+ missingTables: ({ missingItemIndex, missingTables, }) => missingTables.filter((_, index) => index !== missingItemIndex),
103
+ newTables: ({ newItemIndex, newTables, }) => newTables.filter((_, index) => index !== newItemIndex),
104
+ }),
105
+ resolveRemaining: xstate_1.assign({
106
+ createdTables: ({ newTables, createdTables, }) => [...createdTables, ...newTables],
107
+ deletedTables: ({ missingTables, deletedTables, }) => [...deletedTables, ...missingTables],
108
+ missingTables: (context) => [],
109
+ newTables: (context) => [],
110
+ }),
111
+ }
112
+ }));
113
+ exports.default = createResolveTablesMachine;
114
+ //# sourceMappingURL=resolveTablesMachine.js.map