@contember/schema-migrations 2.2.0-alpha.1 → 2.2.0-alpha.10

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 (114) hide show
  1. package/CLAUDE.md +16 -0
  2. package/dist/development/src/modifications/acl/PatchAclSchemaModification.cjs +4 -6
  3. package/dist/development/src/modifications/acl/PatchAclSchemaModification.cjs.map +1 -1
  4. package/dist/development/src/modifications/acl/PatchAclSchemaModification.js +4 -6
  5. package/dist/development/src/modifications/acl/PatchAclSchemaModification.js.map +1 -1
  6. package/dist/development/src/modifications/columns/CreateColumnModification.cjs +2 -1
  7. package/dist/development/src/modifications/columns/CreateColumnModification.cjs.map +1 -1
  8. package/dist/development/src/modifications/columns/CreateColumnModification.js +2 -1
  9. package/dist/development/src/modifications/columns/CreateColumnModification.js.map +1 -1
  10. package/dist/development/src/utils/applyPatchCopyOnWrite.cjs +51 -0
  11. package/dist/development/src/utils/applyPatchCopyOnWrite.cjs.map +1 -0
  12. package/dist/development/src/utils/applyPatchCopyOnWrite.js +51 -0
  13. package/dist/development/src/utils/applyPatchCopyOnWrite.js.map +1 -0
  14. package/dist/production/src/modifications/acl/PatchAclSchemaModification.cjs +4 -6
  15. package/dist/production/src/modifications/acl/PatchAclSchemaModification.cjs.map +1 -1
  16. package/dist/production/src/modifications/acl/PatchAclSchemaModification.js +4 -6
  17. package/dist/production/src/modifications/acl/PatchAclSchemaModification.js.map +1 -1
  18. package/dist/production/src/modifications/columns/CreateColumnModification.cjs +2 -1
  19. package/dist/production/src/modifications/columns/CreateColumnModification.cjs.map +1 -1
  20. package/dist/production/src/modifications/columns/CreateColumnModification.js +2 -1
  21. package/dist/production/src/modifications/columns/CreateColumnModification.js.map +1 -1
  22. package/dist/production/src/utils/applyPatchCopyOnWrite.cjs +51 -0
  23. package/dist/production/src/utils/applyPatchCopyOnWrite.cjs.map +1 -0
  24. package/dist/production/src/utils/applyPatchCopyOnWrite.js +51 -0
  25. package/dist/production/src/utils/applyPatchCopyOnWrite.js.map +1 -0
  26. package/dist/tests/cases/unit/patchAclSchemaModification.test.d.ts +2 -0
  27. package/dist/tests/cases/unit/patchAclSchemaModification.test.d.ts.map +1 -0
  28. package/dist/tests/src/tags.d.ts.map +1 -1
  29. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  30. package/dist/types/Migration.d.ts.map +1 -1
  31. package/dist/types/MigrationDescriber.d.ts.map +1 -1
  32. package/dist/types/SchemaDiffer.d.ts.map +1 -1
  33. package/dist/types/SchemaMigrator.d.ts.map +1 -1
  34. package/dist/types/modifications/ModificationHandler.d.ts.map +1 -1
  35. package/dist/types/modifications/ModificationHandlerFactory.d.ts.map +1 -1
  36. package/dist/types/modifications/NoopModification.d.ts.map +1 -1
  37. package/dist/types/modifications/acl/PatchAclSchemaModification.d.ts.map +1 -1
  38. package/dist/types/modifications/acl/UpdateAclSchemaModification.d.ts.map +1 -1
  39. package/dist/types/modifications/actions/CreateTargetModification.d.ts.map +1 -1
  40. package/dist/types/modifications/actions/CreateTriggerModification.d.ts.map +1 -1
  41. package/dist/types/modifications/actions/PatchTriggerModification.d.ts.map +1 -1
  42. package/dist/types/modifications/actions/RemoveTargetModification.d.ts.map +1 -1
  43. package/dist/types/modifications/actions/RemoveTriggerModification.d.ts.map +1 -1
  44. package/dist/types/modifications/actions/UpdateTargetModification.d.ts.map +1 -1
  45. package/dist/types/modifications/actions/UpdateTriggerModification.d.ts.map +1 -1
  46. package/dist/types/modifications/columns/CreateColumnModification.d.ts.map +1 -1
  47. package/dist/types/modifications/columns/UpdateColumnDefinitionModification.d.ts.map +1 -1
  48. package/dist/types/modifications/columns/UpdateColumnNameModification.d.ts.map +1 -1
  49. package/dist/types/modifications/columns/columnUtils.d.ts +1 -1
  50. package/dist/types/modifications/columns/columnUtils.d.ts.map +1 -1
  51. package/dist/types/modifications/constraints/CreateUniqueConstraintModification.d.ts.map +1 -1
  52. package/dist/types/modifications/constraints/RemoveUniqueConstraintModification.d.ts.map +1 -1
  53. package/dist/types/modifications/constraints/utils.d.ts.map +1 -1
  54. package/dist/types/modifications/differs/RemoveChangedFieldDiffer.d.ts.map +1 -1
  55. package/dist/types/modifications/differs/RemoveViewDiffer.d.ts.map +1 -1
  56. package/dist/types/modifications/differs/UpdateViewDiffer.d.ts.map +1 -1
  57. package/dist/types/modifications/entities/CreateEntityModification.d.ts.map +1 -1
  58. package/dist/types/modifications/entities/CreateViewModification.d.ts.map +1 -1
  59. package/dist/types/modifications/entities/RemoveEntityModification.d.ts.map +1 -1
  60. package/dist/types/modifications/entities/ToggleEventLogModification.d.ts.map +1 -1
  61. package/dist/types/modifications/entities/UpdateEntityNameModification.d.ts.map +1 -1
  62. package/dist/types/modifications/entities/UpdateEntityOrderByModification.d.ts.map +1 -1
  63. package/dist/types/modifications/entities/UpdateEntityTableNameModification.d.ts.map +1 -1
  64. package/dist/types/modifications/entities/UpdateViewModification.d.ts.map +1 -1
  65. package/dist/types/modifications/enums/CreateEnumModification.d.ts.map +1 -1
  66. package/dist/types/modifications/enums/RemoveEnumModification.d.ts.map +1 -1
  67. package/dist/types/modifications/enums/UpdateEnumModification.d.ts.map +1 -1
  68. package/dist/types/modifications/enums/enumUtils.d.ts.map +1 -1
  69. package/dist/types/modifications/fields/RemoveFieldModification.d.ts.map +1 -1
  70. package/dist/types/modifications/fields/UpdateFieldNameModification.d.ts.map +1 -1
  71. package/dist/types/modifications/indexes/CreateIndexModification.d.ts.map +1 -1
  72. package/dist/types/modifications/indexes/RemoveIndexModification.d.ts.map +1 -1
  73. package/dist/types/modifications/indexes/utils.d.ts.map +1 -1
  74. package/dist/types/modifications/relations/ConvertManyHasManyToJoiningEntityModification.d.ts.map +1 -1
  75. package/dist/types/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts.map +1 -1
  76. package/dist/types/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.d.ts.map +1 -1
  77. package/dist/types/modifications/relations/ConvertOneToManyRelationModification.d.ts.map +1 -1
  78. package/dist/types/modifications/relations/CreateRelationInverseSideModification.d.ts.map +1 -1
  79. package/dist/types/modifications/relations/CreateRelationModification.d.ts.map +1 -1
  80. package/dist/types/modifications/relations/DisableOrphanRemovalModification.d.ts.map +1 -1
  81. package/dist/types/modifications/relations/EnableOrphanRemovalModification.d.ts.map +1 -1
  82. package/dist/types/modifications/relations/MakeRelationNotNullModification.d.ts.map +1 -1
  83. package/dist/types/modifications/relations/MakeRelationNullableModification.d.ts.map +1 -1
  84. package/dist/types/modifications/relations/ToggleJunctionEventLogModification.d.ts.map +1 -1
  85. package/dist/types/modifications/relations/UpdateRelationOnDeleteModification.d.ts.map +1 -1
  86. package/dist/types/modifications/relations/UpdateRelationOrderByModification.d.ts.map +1 -1
  87. package/dist/types/modifications/relations/helpers.d.ts.map +1 -1
  88. package/dist/types/modifications/relations/normalization.d.ts.map +1 -1
  89. package/dist/types/modifications/settings/UpdateSettingsModification.d.ts.map +1 -1
  90. package/dist/types/modifications/upgrade/RemoveIndexNamesModification.d.ts.map +1 -1
  91. package/dist/types/modifications/utils/columnUtils.d.ts +1 -1
  92. package/dist/types/modifications/utils/columnUtils.d.ts.map +1 -1
  93. package/dist/types/modifications/utils/createJunctionTable.d.ts.map +1 -1
  94. package/dist/types/modifications/utils/diffUtils.d.ts.map +1 -1
  95. package/dist/types/modifications/utils/getPrimaryColumnType.d.ts.map +1 -1
  96. package/dist/types/modifications/utils/schemaUpdateUtils.d.ts.map +1 -1
  97. package/dist/types/modifications/utils/sqlUpdateUtils.d.ts.map +1 -1
  98. package/dist/types/modifications/utils/stringArrayEquals.d.ts.map +1 -1
  99. package/dist/types/modifications/utils/valueUtils.d.ts.map +1 -1
  100. package/dist/types/modifications/utils/viewDependencies.d.ts.map +1 -1
  101. package/dist/types/modifications/validation/PatchValidationSchemaModification.d.ts.map +1 -1
  102. package/dist/types/modifications/validation/UpdateValidationSchemaModification.d.ts.map +1 -1
  103. package/dist/types/tsconfig.tsbuildinfo +1 -1
  104. package/dist/types/utils/applyPatchCopyOnWrite.d.ts +10 -0
  105. package/dist/types/utils/applyPatchCopyOnWrite.d.ts.map +1 -0
  106. package/dist/types/utils/dbHelpers.d.ts.map +1 -1
  107. package/dist/types/utils/isDefined.d.ts.map +1 -1
  108. package/dist/types/utils/isIt.d.ts.map +1 -1
  109. package/package.json +7 -7
  110. package/src/modifications/acl/PatchAclSchemaModification.ts +5 -6
  111. package/src/modifications/columns/CreateColumnModification.ts +2 -1
  112. package/src/utils/applyPatchCopyOnWrite.ts +63 -0
  113. package/tests/cases/integration/createColumn.test.ts +28 -0
  114. package/tests/cases/unit/patchAclSchemaModification.test.ts +144 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyPatchCopyOnWrite.js","sources":["../../../../../packages/schema-migrations/src/utils/applyPatchCopyOnWrite.ts"],"sourcesContent":["import { applyPatch, Operation, Pointer } from 'rfc6902'\n\ntype JsonContainer = { [key: string]: unknown } | unknown[]\n\n// Pointer.evaluate in rfc6902 skips these tokens, so the copy walk must skip them too.\nconst skippedTokens = new Set(['__proto__', 'constructor', 'prototype'])\n\nconst isContainer = (value: unknown): value is JsonContainer => typeof value === 'object' && value !== null\n\nconst shallowCopy = (value: JsonContainer): JsonContainer => Array.isArray(value) ? [...value] : { ...value }\n\nconst getMutatedPointers = (operation: Operation): string[] => {\n\tswitch (operation.op) {\n\t\tcase 'test':\n\t\t\treturn []\n\t\tcase 'move':\n\t\t\treturn [operation.from, operation.path]\n\t\tdefault:\n\t\t\treturn [operation.path]\n\t}\n}\n\n/**\n * Applies the patch to a copy of `root`, leaving `root` untouched. Only the containers on the paths\n * the patch writes to are copied; everything else stays shared with `root`.\n */\nexport const applyPatchCopyOnWrite = <T extends object>(root: T, patch: Operation[]): { result: T; errors: Error[] } => {\n\tconst result = { ...root }\n\tconst copies = new Set<unknown>([result])\n\tconst errors: Error[] = []\n\tfor (const operation of patch) {\n\t\t// Each path is copied against the tree as the previous operations left it: array indices shift\n\t\t// and `move` relocates an uncopied original, so a path resolved up front can miss the target.\n\t\tfor (const pointer of getMutatedPointers(operation)) {\n\t\t\tcopyParents(result, pointer, copies)\n\t\t}\n\t\tfor (const error of applyPatch(result, [operation])) {\n\t\t\tif (error !== null) {\n\t\t\t\terrors.push(error)\n\t\t\t}\n\t\t}\n\t}\n\treturn { result, errors }\n}\n\nconst copyParents = (root: object, pointer: string, copies: Set<unknown>): void => {\n\tconst tokens = Pointer.fromJSON(pointer).tokens.slice(1)\n\t// rfc6902 writes into the node reached before the last token, unless that token is skipped.\n\tconst lastToken = tokens.at(-1)\n\tconst writtenTokens = lastToken !== undefined && skippedTokens.has(lastToken) ? tokens : tokens.slice(0, -1)\n\tconst parentTokens = writtenTokens.filter(token => !skippedTokens.has(token))\n\tlet node: object = root\n\tfor (const token of parentTokens) {\n\t\tconst child: unknown = Reflect.get(node, token)\n\t\tif (!isContainer(child)) {\n\t\t\treturn\n\t\t}\n\t\tconst childCopy = copies.has(child) ? child : shallowCopy(child)\n\t\tcopies.add(childCopy)\n\t\tReflect.set(node, token, childCopy)\n\t\tnode = childCopy\n\t}\n}\n"],"names":[],"mappings":";AAKA,MAAM,gBAAgB,oBAAI,IAAI,CAAC,aAAa,eAAe,WAAW,CAAC;AAEvE,MAAM,cAAc,CAAC,UAA2C,OAAO,UAAU,YAAY,UAAU;AAEvG,MAAM,cAAc,CAAC,UAAwC,MAAM,QAAQ,KAAK,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,GAAG,MAAA;AAEtG,MAAM,qBAAqB,CAAC,cAAmC;AAC9D,UAAQ,UAAU,IAAA;AAAA,IACjB,KAAK;AACJ,aAAO,CAAA;AAAA,IACR,KAAK;AACJ,aAAO,CAAC,UAAU,MAAM,UAAU,IAAI;AAAA,IACvC;AACC,aAAO,CAAC,UAAU,IAAI;AAAA,EAAA;AAEzB;AAMO,MAAM,wBAAwB,CAAmB,MAAS,UAAuD;AACvH,QAAM,SAAS,EAAE,GAAG,KAAA;AACpB,QAAM,SAAS,oBAAI,IAAa,CAAC,MAAM,CAAC;AACxC,QAAM,SAAkB,CAAA;AACxB,aAAW,aAAa,OAAO;AAG9B,eAAW,WAAW,mBAAmB,SAAS,GAAG;AACpD,kBAAY,QAAQ,SAAS,MAAM;AAAA,IACpC;AACA,eAAW,SAAS,WAAW,QAAQ,CAAC,SAAS,CAAC,GAAG;AACpD,UAAI,UAAU,MAAM;AACnB,eAAO,KAAK,KAAK;AAAA,MAClB;AAAA,IACD;AAAA,EACD;AACA,SAAO,EAAE,QAAQ,OAAA;AAClB;AAEA,MAAM,cAAc,CAAC,MAAc,SAAiB,WAA+B;AAClF,QAAM,SAAS,QAAQ,SAAS,OAAO,EAAE,OAAO,MAAM,CAAC;AAEvD,QAAM,YAAY,OAAO,GAAG,EAAE;AAC9B,QAAM,gBAAgB,cAAc,UAAa,cAAc,IAAI,SAAS,IAAI,SAAS,OAAO,MAAM,GAAG,EAAE;AAC3G,QAAM,eAAe,cAAc,OAAO,CAAA,UAAS,CAAC,cAAc,IAAI,KAAK,CAAC;AAC5E,MAAI,OAAe;AACnB,aAAW,SAAS,cAAc;AACjC,UAAM,QAAiB,QAAQ,IAAI,MAAM,KAAK;AAC9C,QAAI,CAAC,YAAY,KAAK,GAAG;AACxB;AAAA,IACD;AACA,UAAM,YAAY,OAAO,IAAI,KAAK,IAAI,QAAQ,YAAY,KAAK;AAC/D,WAAO,IAAI,SAAS;AACpB,YAAQ,IAAI,MAAM,OAAO,SAAS;AAClC,WAAO;AAAA,EACR;AACD;"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=patchAclSchemaModification.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patchAclSchemaModification.test.d.ts","sourceRoot":"","sources":["../../../../tests/cases/unit/patchAclSchemaModification.test.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../../tests/src/tags.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,GAAG,GAAI,SAAS,oBAAoB,EAAE,GAAG,QAAQ,MAAM,EAAE,WAG7D,CAAA"}
1
+ {"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../../tests/src/tags.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,GAAG,YAAa,oBAAoB,aAAa,MAAM,EAAE,WAG7D,CAAA"}