@contember/migrations-client 2.1.0-alpha.9 → 2.1.0-beta.1

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 (79) hide show
  1. package/dist/development/src/JsLoader.cjs +5 -5
  2. package/dist/development/src/JsLoader.cjs.map +1 -1
  3. package/dist/development/src/JsLoader.js +5 -5
  4. package/dist/development/src/JsLoader.js.map +1 -1
  5. package/dist/development/src/JsonLoader.cjs.map +1 -1
  6. package/dist/development/src/JsonLoader.js.map +1 -1
  7. package/dist/development/src/MigrationCreator.cjs.map +1 -1
  8. package/dist/development/src/MigrationCreator.js.map +1 -1
  9. package/dist/development/src/MigrationExecuteHelper.cjs.map +1 -1
  10. package/dist/development/src/MigrationExecuteHelper.js.map +1 -1
  11. package/dist/development/src/MigrationFile.cjs.map +1 -1
  12. package/dist/development/src/MigrationFile.js.map +1 -1
  13. package/dist/development/src/MigrationFilesManager.cjs.map +1 -1
  14. package/dist/development/src/MigrationFilesManager.js.map +1 -1
  15. package/dist/development/src/MigrationParser.cjs.map +1 -1
  16. package/dist/development/src/MigrationParser.js.map +1 -1
  17. package/dist/development/src/MigrationsResolver.cjs +1 -3
  18. package/dist/development/src/MigrationsResolver.cjs.map +1 -1
  19. package/dist/development/src/MigrationsResolver.js +1 -3
  20. package/dist/development/src/MigrationsResolver.js.map +1 -1
  21. package/dist/development/src/SchemaVersionBuilder.cjs.map +1 -1
  22. package/dist/development/src/SchemaVersionBuilder.js.map +1 -1
  23. package/dist/development/src/SystemClient.cjs.map +1 -1
  24. package/dist/development/src/SystemClient.js.map +1 -1
  25. package/dist/development/src/migrations.cjs +11 -0
  26. package/dist/development/src/migrations.cjs.map +1 -1
  27. package/dist/development/src/migrations.js +11 -0
  28. package/dist/development/src/migrations.js.map +1 -1
  29. package/dist/development/src/utils/assertNever.cjs.map +1 -1
  30. package/dist/development/src/utils/assertNever.js.map +1 -1
  31. package/dist/production/src/JsLoader.cjs +5 -5
  32. package/dist/production/src/JsLoader.cjs.map +1 -1
  33. package/dist/production/src/JsLoader.js +5 -5
  34. package/dist/production/src/JsLoader.js.map +1 -1
  35. package/dist/production/src/JsonLoader.cjs.map +1 -1
  36. package/dist/production/src/JsonLoader.js.map +1 -1
  37. package/dist/production/src/MigrationCreator.cjs.map +1 -1
  38. package/dist/production/src/MigrationCreator.js.map +1 -1
  39. package/dist/production/src/MigrationExecuteHelper.cjs.map +1 -1
  40. package/dist/production/src/MigrationExecuteHelper.js.map +1 -1
  41. package/dist/production/src/MigrationFile.cjs.map +1 -1
  42. package/dist/production/src/MigrationFile.js.map +1 -1
  43. package/dist/production/src/MigrationFilesManager.cjs.map +1 -1
  44. package/dist/production/src/MigrationFilesManager.js.map +1 -1
  45. package/dist/production/src/MigrationParser.cjs.map +1 -1
  46. package/dist/production/src/MigrationParser.js.map +1 -1
  47. package/dist/production/src/MigrationsResolver.cjs +1 -3
  48. package/dist/production/src/MigrationsResolver.cjs.map +1 -1
  49. package/dist/production/src/MigrationsResolver.js +1 -3
  50. package/dist/production/src/MigrationsResolver.js.map +1 -1
  51. package/dist/production/src/SchemaVersionBuilder.cjs.map +1 -1
  52. package/dist/production/src/SchemaVersionBuilder.js.map +1 -1
  53. package/dist/production/src/SystemClient.cjs.map +1 -1
  54. package/dist/production/src/SystemClient.js.map +1 -1
  55. package/dist/production/src/migrations.cjs +11 -0
  56. package/dist/production/src/migrations.cjs.map +1 -1
  57. package/dist/production/src/migrations.js +11 -0
  58. package/dist/production/src/migrations.js.map +1 -1
  59. package/dist/production/src/utils/assertNever.cjs.map +1 -1
  60. package/dist/production/src/utils/assertNever.js.map +1 -1
  61. package/dist/types/JsLoader.d.ts.map +1 -1
  62. package/dist/types/MigrationExecuteHelper.d.ts.map +1 -1
  63. package/dist/types/MigrationFile.d.ts.map +1 -1
  64. package/dist/types/MigrationsResolver.d.ts.map +1 -1
  65. package/dist/types/SchemaVersionBuilder.d.ts.map +1 -1
  66. package/dist/types/index.d.ts +2 -2
  67. package/dist/types/index.d.ts.map +1 -1
  68. package/dist/types/migrations.d.ts +5 -1
  69. package/dist/types/migrations.d.ts.map +1 -1
  70. package/dist/types/tsconfig.tsbuildinfo +1 -1
  71. package/package.json +13 -8
  72. package/src/JsLoader.ts +0 -2
  73. package/src/MigrationExecuteHelper.ts +0 -2
  74. package/src/MigrationFile.ts +2 -2
  75. package/src/MigrationFilesManager.ts +1 -1
  76. package/src/MigrationsResolver.ts +1 -4
  77. package/src/SchemaVersionBuilder.ts +1 -2
  78. package/src/index.ts +2 -5
  79. package/src/migrations.ts +20 -7
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contember/migrations-client",
3
- "version": "2.1.0-alpha.9",
3
+ "version": "2.1.0-beta.1",
4
4
  "license": "Apache-2.0",
5
5
  "main": "./dist/production/index.js",
6
6
  "typings": "./dist/types/index.d.ts",
@@ -26,14 +26,19 @@
26
26
  "test": "echo 'No tests'"
27
27
  },
28
28
  "dependencies": {
29
- "@contember/engine-common": "2.1.0-alpha.9",
30
- "@contember/graphql-client": "2.1.0-alpha.9",
31
- "@contember/schema": "2.1.0-alpha.9",
32
- "@contember/schema-migrations": "2.1.0-alpha.9",
33
- "@contember/schema-utils": "2.1.0-alpha.9"
29
+ "@contember/engine-common": "2.1.0-beta.1",
30
+ "@contember/graphql-client": "2.1.0-beta.1",
31
+ "@contember/schema": "2.1.0-beta.1",
32
+ "@contember/schema-migrations": "2.1.0-beta.1",
33
+ "@contember/schema-utils": "2.1.0-beta.1"
34
34
  },
35
35
  "devDependencies": {
36
- "@types/node": "^20.17.22"
36
+ "@types/node": "^24.12.0"
37
37
  },
38
- "type": "module"
38
+ "type": "module",
39
+ "repository": {
40
+ "type": "git",
41
+ "url": "git+https://github.com/contember/contember.git",
42
+ "directory": "packages/migrations-client"
43
+ }
39
44
  }
package/src/JsLoader.ts CHANGED
@@ -9,7 +9,6 @@ export class JsLoader implements MigrationFileLoader {
9
9
  ) {
10
10
  }
11
11
 
12
-
13
12
  public async load(file: MigrationFile): Promise<MigrationContent> {
14
13
  const exports = await this.jsExecutor(file.path)
15
14
  if (!('default' in exports) && !('query' in exports) && !('queries' in exports)) {
@@ -29,7 +28,6 @@ export class JsLoader implements MigrationFileLoader {
29
28
  }
30
29
  return migration
31
30
  },
32
-
33
31
  }
34
32
  }
35
33
  }
@@ -3,9 +3,7 @@ import { ContentMigrationFactoryArgs, ResolvedMigrationContent } from './Migrati
3
3
  import { assertNever } from './utils/assertNever'
4
4
  import { SystemClient } from './SystemClient'
5
5
 
6
-
7
6
  export class MigrationExecutor {
8
-
9
7
  async executeMigrations({
10
8
  client,
11
9
  migrations,
@@ -10,7 +10,8 @@ export interface MigrationFile {
10
10
  getContent: () => Promise<MigrationContent>
11
11
  }
12
12
 
13
- export const isSchemaMigration = (content: MigrationContent): content is SchemaMigration => typeof content !== 'function' && 'modifications' in content
13
+ export const isSchemaMigration = (content: MigrationContent): content is SchemaMigration =>
14
+ typeof content !== 'function' && 'modifications' in content
14
15
 
15
16
  export type ResolvedMigrationContent =
16
17
  | SchemaMigration
@@ -52,4 +53,3 @@ export type ContentMigrationQuery = {
52
53
  stage?: string
53
54
  checkMutationResult?: boolean
54
55
  }
55
-
@@ -83,7 +83,7 @@ export class MigrationFilesManager {
83
83
  const files = await this.tryReadDir()
84
84
 
85
85
  const extensions = Object.keys(this.loaders).join('|')
86
- const regex = new RegExp('^\\d{4}-\\d{2}-\\d{2}-\\d{6}-[\\w-]+\\.(' + extensions + ')$')
86
+ const regex = new RegExp('^\\d{4}-\\d{2}-\\d{2}-\\d{6}-[\\w-]+\\.(' + extensions + ')$')
87
87
  const filteredFiles = await Promise.all(
88
88
  files
89
89
  .filter(it => it.isFile())
@@ -4,7 +4,6 @@ import { isSchemaMigration, MigrationFile } from './MigrationFile'
4
4
  import { MigrationVersionHelper } from '@contember/engine-common'
5
5
 
6
6
  export class MigrationsResolver {
7
-
8
7
  constructor(private readonly migrationFilesManager: MigrationFilesManager) {}
9
8
 
10
9
  public get directory(): string {
@@ -31,9 +30,7 @@ export class MigrationsResolver {
31
30
  public async findSchemaMigrationByVersion(version: string): Promise<Migration | null> {
32
31
  const migrations = await this.getSchemaMigrations()
33
32
  return migrations
34
- .find(it =>
35
- MigrationVersionHelper.extractVersion(it.version) === MigrationVersionHelper.extractVersion(version),
36
- )
33
+ .find(it => MigrationVersionHelper.extractVersion(it.version) === MigrationVersionHelper.extractVersion(version))
37
34
  ?? null
38
35
  }
39
36
 
@@ -25,8 +25,7 @@ export class SchemaVersionBuilder {
25
25
  return (await this.migrationsResolver.getSchemaMigrations())
26
26
  .filter(({ version }) => condition(version))
27
27
  .reduce<Schema>(
28
- (schema, { modifications, formatVersion }) =>
29
- this.schemaMigrator.applyModifications(schema, modifications, formatVersion),
28
+ (schema, { modifications, formatVersion }) => this.schemaMigrator.applyModifications(schema, modifications, formatVersion),
30
29
  initialSchema,
31
30
  )
32
31
  }
package/src/index.ts CHANGED
@@ -1,15 +1,12 @@
1
1
  export {
2
+ calculateMigrationChecksum,
2
3
  MigrationDescriber,
3
4
  ModificationHandlerFactory,
4
5
  SchemaDiffer,
5
6
  SchemaMigrator,
6
7
  VERSION_LATEST,
7
- calculateMigrationChecksum,
8
- } from '@contember/schema-migrations'
9
- export type {
10
- MigrationInfo,
11
- Migration,
12
8
  } from '@contember/schema-migrations'
9
+ export type { Migration, MigrationInfo } from '@contember/schema-migrations'
13
10
  export * from './JsLoader'
14
11
  export * from './JsonLoader'
15
12
  export * from './MigrationCreator'
package/src/migrations.ts CHANGED
@@ -14,6 +14,7 @@ export interface ExecutedMigration extends Migration {
14
14
  export enum MigrationState {
15
15
  TO_EXECUTE_OK = 'to_execute_ok',
16
16
  TO_EXECUTE_ERROR = 'to_execute_error',
17
+ SKIP_EMPTY = 'skip_empty',
17
18
  EXECUTED_OK = 'executed_ok',
18
19
  EXECUTED_ERROR = 'executed_error',
19
20
  EXECUTED_MISSING = 'executed_missing',
@@ -34,22 +35,26 @@ interface MigrationToExecuteInvalidStatus extends MigrationStatusBase<MigrationS
34
35
  errorMessage: string
35
36
  }
36
37
 
37
- interface MigrationExecutedOkStatus extends MigrationStatusBase<MigrationState.EXECUTED_OK>{
38
+ interface MigrationExecutedOkStatus extends MigrationStatusBase<MigrationState.EXECUTED_OK> {
38
39
  executedMigration: ExecutedMigrationInfo
39
40
  localMigration: MigrationFile
40
41
  }
41
42
 
42
- interface MigrationExecutedMissingStatus extends MigrationStatusBase<MigrationState.EXECUTED_MISSING>{
43
+ interface MigrationExecutedMissingStatus extends MigrationStatusBase<MigrationState.EXECUTED_MISSING> {
43
44
  executedMigration: ExecutedMigrationInfo
44
45
  errorMessage: string
45
46
  }
46
47
 
47
- interface MigrationExecutedErrorStatus extends MigrationStatusBase<MigrationState.EXECUTED_ERROR>{
48
+ interface MigrationExecutedErrorStatus extends MigrationStatusBase<MigrationState.EXECUTED_ERROR> {
48
49
  executedMigration: ExecutedMigrationInfo
49
50
  localMigration: MigrationFile
50
51
  errorMessage: string
51
52
  }
52
53
 
54
+ export interface MigrationSkipStatus extends MigrationStatusBase<MigrationState.SKIP_EMPTY> {
55
+ localMigration: MigrationFile
56
+ }
57
+
53
58
  export type ErrorMigrationStatus =
54
59
  | MigrationToExecuteInvalidStatus
55
60
  | MigrationExecutedMissingStatus
@@ -59,6 +64,7 @@ export type AnyMigrationStatus =
59
64
  | ErrorMigrationStatus
60
65
  | MigrationToExecuteOkStatus
61
66
  | MigrationExecutedOkStatus
67
+ | MigrationSkipStatus
62
68
 
63
69
  const isErrorMigrationStatus = (migration: AnyMigrationStatus): migration is ErrorMigrationStatus =>
64
70
  [MigrationState.EXECUTED_ERROR, MigrationState.EXECUTED_MISSING, MigrationState.TO_EXECUTE_ERROR].includes(
@@ -70,7 +76,6 @@ export const sortMigrations = <M extends { version: string }>(migrations: M[]):
70
76
  }
71
77
 
72
78
  export class MigrationsStatusResolver {
73
-
74
79
  async getMigrationsStatus(
75
80
  executedMigrations: ExecutedMigrationInfo[],
76
81
  localMigrations: MigrationFile[],
@@ -124,6 +129,16 @@ export class MigrationsStatusResolver {
124
129
  if (allMigrations.find(it => it.version === localMigration.version)) {
125
130
  continue
126
131
  }
132
+ const migrationContent = await localMigration.getContent()
133
+ if (isSchemaMigration(migrationContent) && migrationContent.modifications.length === 0) {
134
+ allMigrations.push({
135
+ state: MigrationState.SKIP_EMPTY,
136
+ localMigration,
137
+ version: localMigration.version,
138
+ name: localMigration.name,
139
+ })
140
+ continue
141
+ }
127
142
 
128
143
  if (latestExecuted && latestExecuted.version > localMigration.version) {
129
144
  allMigrations.push({
@@ -148,10 +163,8 @@ export class MigrationsStatusResolver {
148
163
  allMigrations: allMigrationsSorted,
149
164
  errorMigrations: allMigrationsSorted.filter(isErrorMigrationStatus),
150
165
  migrationsToExecute: allMigrationsSorted.filter(
151
- (it): it is MigrationToExecuteOkStatus =>
152
- it.state === MigrationState.TO_EXECUTE_OK || (force && it.state === MigrationState.TO_EXECUTE_ERROR),
166
+ (it): it is MigrationToExecuteOkStatus => it.state === MigrationState.TO_EXECUTE_OK || (force && it.state === MigrationState.TO_EXECUTE_ERROR),
153
167
  ),
154
168
  }
155
169
  }
156
-
157
170
  }