@dangl/ava-partial-updater 1.4.5-beta0071 → 1.5.0-beta0079

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.
@@ -1 +1 @@
1
- {"version":3,"file":"dangl-ava-partial-updater.mjs","sources":["../../../projects/ava-partial-updater/src/lib/utils/get-flat-list.ts","../../../projects/ava-partial-updater/src/lib/ava-partial-updater.service.ts","../../../projects/ava-partial-updater/src/public-api.ts","../../../projects/ava-partial-updater/src/dangl-ava-partial-updater.ts"],"sourcesContent":["import { IElementDto, ServiceSpecificationGroupDto } from '../interfaces/ava-models';\n\nexport function getFlatElements(container: { elements?: IElementDto[] | null }): IElementDto[] {\n const flatElements: IElementDto[] = [];\n\n if (container.elements) {\n container.elements.forEach((e) => {\n flatElements.push(e);\n if (e.elementTypeDiscriminator === 'ServiceSpecificationGroupDto') {\n const group = e as ServiceSpecificationGroupDto;\n flatElements.push(...getFlatElements(group));\n }\n });\n }\n\n return flatElements;\n}\n","import { IElementDto, ServiceSpecificationDto, ServiceSpecificationGroupDto } from './interfaces/ava-models';\nimport { AvaProjectDiff } from './interfaces/ava-project-diff.interface';\nimport { Operation } from './interfaces/operation.interface';\nimport { getFlatElements } from './utils/get-flat-list';\n\nimport jsonPatch, { Operation as JsonPatchOperation } from 'fast-json-patch';\n\nconst { applyOperation } = jsonPatch;\n\nexport class AvaPartialUpdaterService {\n public static applyAvaProjectDiffToSpecificServiceSpecification(\n serviceSpecification: ServiceSpecificationDto,\n avaProjectDiff: AvaProjectDiff\n ): ServiceSpecificationDto {\n const clonedServiceSpecification = structuredClone(serviceSpecification);\n\n const flatElements = getFlatElements(clonedServiceSpecification);\n const elementsById: { [id: string]: IElementDto } = {};\n const containers: { id?: string; elements?: IElementDto[] }[] = [];\n flatElements.forEach((element) => {\n elementsById[element.id] = element;\n if (element.elementType === 'ServiceSpecificationGroupDto') {\n containers.push(element);\n }\n });\n containers.push(clonedServiceSpecification);\n\n return this.internalServiceSpecificationDiffApply(clonedServiceSpecification, avaProjectDiff, elementsById, containers);\n }\n\n private static internalServiceSpecificationDiffApply(\n serviceSpecification: ServiceSpecificationDto,\n avaProjectDiff: AvaProjectDiff,\n elementsById: { [elementId: string]: IElementDto },\n containers: { id?: string; elements?: IElementDto[] }[]\n ): ServiceSpecificationDto {\n if (avaProjectDiff.elementDiffs != null) {\n for (const elementId in avaProjectDiff.elementDiffs) {\n const originalElement = elementsById[elementId];\n if (originalElement) {\n avaProjectDiff.elementDiffs[elementId].forEach((operation) => {\n this.applySingleElementDiffOperation(originalElement, operation);\n });\n }\n }\n }\n\n // Here, it's important that we first remove the elements that are to be deleted,\n // because a move between two containers is represented as a deletion and a move, so we\n // first delete the element and then add it again to the new container.\n if (avaProjectDiff.removedElementIds && avaProjectDiff.removedElementIds.length > 0) {\n avaProjectDiff.removedElementIds.forEach((removedElementId) => {\n if (elementsById[removedElementId]) {\n delete elementsById[removedElementId];\n }\n\n const parentContainer = containers.find((c) => c.elements?.some((e) => e.id === removedElementId));\n if (parentContainer && parentContainer.elements?.length) {\n const elementIndex = parentContainer.elements.findIndex((e) => e.id === removedElementId);\n if (elementIndex >= 0) {\n parentContainer.elements.splice(elementIndex, 1);\n }\n\n const cachedContainerIndex = containers.findIndex((c) => c.id === removedElementId);\n if (cachedContainerIndex >= 0) {\n containers.splice(cachedContainerIndex, 1);\n }\n }\n });\n }\n if (avaProjectDiff.newElements) {\n if (avaProjectDiff.newElements.length > 0) {\n avaProjectDiff.newElements.forEach((newElement) => {\n if (newElement.element) {\n elementsById[newElement.element.id] = newElement.element;\n\n const parentContainer = containers.find((c) => c.id === newElement.parentElementId);\n if (parentContainer) {\n if (parentContainer.elements && newElement.elementIndex) {\n parentContainer.elements.splice(newElement.elementIndex, 0, newElement.element);\n }\n\n if (newElement.element.elementType === 'ServiceSpecificationGroupDto') {\n const group = newElement.element as ServiceSpecificationGroupDto;\n if (group.elements == null) {\n group.elements = [];\n }\n\n containers.push(newElement.element);\n }\n }\n }\n });\n }\n }\n\n if (avaProjectDiff.serviceSpecificationDiff && avaProjectDiff.serviceSpecificationDiff.length > 0) {\n avaProjectDiff.serviceSpecificationDiff.forEach((operation) => {\n applyOperation(serviceSpecification, this.transformToJsonPatchOperation(operation));\n });\n }\n\n if (avaProjectDiff.moveOperations && avaProjectDiff.moveOperations.length > 0) {\n avaProjectDiff.moveOperations.forEach((moveOperation) => {\n const sourceContainer = containers.find((c) => c.id === moveOperation.sourceContainerId);\n if (sourceContainer && sourceContainer.elements) {\n const targetContainer = containers.find((c) => c.id === moveOperation.targetContainerId);\n const sourceIndex = sourceContainer.elements.findIndex((e) => e.id === moveOperation.elementId);\n const element = sourceContainer.elements[sourceIndex];\n sourceContainer.elements.splice(sourceIndex, 1);\n // Reordering happens in the next step, so we only need to move the element to the new container\n if (targetContainer && targetContainer.elements) {\n targetContainer.elements.push(element);\n }\n }\n });\n }\n\n if (avaProjectDiff.containerReorderOperations && avaProjectDiff.containerReorderOperations.length > 0) {\n avaProjectDiff.containerReorderOperations.forEach((reorderOperation) => {\n const localCachedContainer = containers.find((c) => c.id === reorderOperation.containerId);\n if (localCachedContainer && localCachedContainer.elements && reorderOperation.elementIds && reorderOperation.elementIds.length) {\n const newElements = reorderOperation.elementIds.map((elementId) => elementsById[elementId]);\n // To keep the reference for the array but just set the new values, we're directly using\n // Object.assign to set the values. We need to additionally also set the length property.\n // Taken from here: https://stackoverflow.com/a/44660117/4190785\n Object.assign(localCachedContainer.elements, newElements, {\n length: newElements.length\n });\n }\n });\n }\n\n return serviceSpecification;\n }\n\n private static transformToJsonPatchOperation(operation: Operation): JsonPatchOperation {\n return operation as JsonPatchOperation;\n }\n\n private static applySingleElementDiffOperation(originalElement: IElementDto, operation: Operation): void {\n applyOperation(originalElement, this.transformToJsonPatchOperation(operation));\n }\n}\n","/*\n * Public API Surface of ava-partial-updater\n */\n\nexport * from './lib/ava-partial-updater.service';\nexport { AvaProjectDiff } from './lib/interfaces/ava-project-diff.interface';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dangl-ava-partial-updater.mjs","sources":["../../../projects/ava-partial-updater/src/lib/utils/get-flat-list.ts","../../../projects/ava-partial-updater/src/lib/ava-partial-updater.service.ts","../../../projects/ava-partial-updater/src/public-api.ts","../../../projects/ava-partial-updater/src/dangl-ava-partial-updater.ts"],"sourcesContent":["import { IElementDto, ServiceSpecificationGroupDto } from '../interfaces/ava-models';\n\nexport function getFlatElements(container: { elements?: IElementDto[] | null }): IElementDto[] {\n const flatElements: IElementDto[] = [];\n\n if (container.elements) {\n container.elements.forEach((e) => {\n flatElements.push(e);\n if (e.elementTypeDiscriminator === 'ServiceSpecificationGroupDto') {\n const group = e as ServiceSpecificationGroupDto;\n flatElements.push(...getFlatElements(group));\n }\n });\n }\n\n return flatElements;\n}\n","import { IElementDto, ServiceSpecificationDto, ServiceSpecificationGroupDto } from './interfaces/ava-models';\nimport { AvaProjectDiff } from './interfaces/ava-project-diff.interface';\nimport { Operation } from './interfaces/operation.interface';\nimport { getFlatElements } from './utils/get-flat-list';\n\nimport jsonPatch, { Operation as JsonPatchOperation } from 'fast-json-patch';\n\nconst { applyOperation } = jsonPatch;\n\nexport class AvaPartialUpdaterService {\n public static applyAvaProjectDiffToSpecificServiceSpecification(\n serviceSpecification: ServiceSpecificationDto,\n avaProjectDiff: AvaProjectDiff\n ): ServiceSpecificationDto {\n const clonedServiceSpecification = structuredClone(serviceSpecification);\n\n const flatElements = getFlatElements(clonedServiceSpecification);\n const elementsById: { [id: string]: IElementDto } = {};\n const containers: { id?: string; elements?: IElementDto[] }[] = [];\n flatElements.forEach((element) => {\n elementsById[element.id] = element;\n if (element.elementType === 'ServiceSpecificationGroupDto') {\n containers.push(element);\n }\n });\n containers.push(clonedServiceSpecification);\n\n return this.internalServiceSpecificationDiffApply(clonedServiceSpecification, avaProjectDiff, elementsById, containers);\n }\n\n private static internalServiceSpecificationDiffApply(\n serviceSpecification: ServiceSpecificationDto,\n avaProjectDiff: AvaProjectDiff,\n elementsById: { [elementId: string]: IElementDto },\n containers: { id?: string; elements?: IElementDto[] }[]\n ): ServiceSpecificationDto {\n if (avaProjectDiff.elementDiffs != null) {\n for (const elementId in avaProjectDiff.elementDiffs) {\n const originalElement = elementsById[elementId];\n if (originalElement) {\n avaProjectDiff.elementDiffs[elementId].forEach((operation) => {\n this.applySingleElementDiffOperation(originalElement, operation);\n });\n }\n }\n }\n\n // Here, it's important that we first remove the elements that are to be deleted,\n // because a move between two containers is represented as a deletion and a move, so we\n // first delete the element and then add it again to the new container.\n if (avaProjectDiff.removedElementIds && avaProjectDiff.removedElementIds.length > 0) {\n avaProjectDiff.removedElementIds.forEach((removedElementId) => {\n if (elementsById[removedElementId]) {\n delete elementsById[removedElementId];\n }\n\n const parentContainer = containers.find((c) => c.elements?.some((e) => e.id === removedElementId));\n if (parentContainer && parentContainer.elements?.length) {\n const elementIndex = parentContainer.elements.findIndex((e) => e.id === removedElementId);\n if (elementIndex >= 0) {\n parentContainer.elements.splice(elementIndex, 1);\n }\n\n const cachedContainerIndex = containers.findIndex((c) => c.id === removedElementId);\n if (cachedContainerIndex >= 0) {\n containers.splice(cachedContainerIndex, 1);\n }\n }\n });\n }\n if (avaProjectDiff.newElements) {\n if (avaProjectDiff.newElements.length > 0) {\n avaProjectDiff.newElements.forEach((newElement) => {\n if (newElement.element) {\n elementsById[newElement.element.id] = newElement.element;\n\n const parentContainer = containers.find((c) => c.id === newElement.parentElementId);\n if (parentContainer) {\n if (parentContainer.elements && newElement.elementIndex) {\n parentContainer.elements.splice(newElement.elementIndex, 0, newElement.element);\n }\n\n if (newElement.element.elementType === 'ServiceSpecificationGroupDto') {\n const group = newElement.element as ServiceSpecificationGroupDto;\n if (group.elements == null) {\n group.elements = [];\n }\n\n containers.push(newElement.element);\n }\n }\n }\n });\n }\n }\n\n if (avaProjectDiff.serviceSpecificationDiff && avaProjectDiff.serviceSpecificationDiff.length > 0) {\n avaProjectDiff.serviceSpecificationDiff.forEach((operation) => {\n applyOperation(serviceSpecification, this.transformToJsonPatchOperation(operation));\n });\n }\n\n if (avaProjectDiff.moveOperations && avaProjectDiff.moveOperations.length > 0) {\n avaProjectDiff.moveOperations.forEach((moveOperation) => {\n const sourceContainer = containers.find((c) => c.id === moveOperation.sourceContainerId);\n if (sourceContainer && sourceContainer.elements) {\n const targetContainer = containers.find((c) => c.id === moveOperation.targetContainerId);\n const sourceIndex = sourceContainer.elements.findIndex((e) => e.id === moveOperation.elementId);\n const element = sourceContainer.elements[sourceIndex];\n sourceContainer.elements.splice(sourceIndex, 1);\n // Reordering happens in the next step, so we only need to move the element to the new container\n if (targetContainer && targetContainer.elements) {\n targetContainer.elements.push(element);\n }\n }\n });\n }\n\n if (avaProjectDiff.containerReorderOperations && avaProjectDiff.containerReorderOperations.length > 0) {\n avaProjectDiff.containerReorderOperations.forEach((reorderOperation) => {\n const localCachedContainer = containers.find((c) => c.id === reorderOperation.containerId);\n if (localCachedContainer && localCachedContainer.elements && reorderOperation.elementIds && reorderOperation.elementIds.length) {\n const newElements = reorderOperation.elementIds.map((elementId) => elementsById[elementId]);\n // To keep the reference for the array but just set the new values, we're directly using\n // Object.assign to set the values. We need to additionally also set the length property.\n // Taken from here: https://stackoverflow.com/a/44660117/4190785\n Object.assign(localCachedContainer.elements, newElements, {\n length: newElements.length\n });\n }\n });\n }\n\n return serviceSpecification;\n }\n\n private static transformToJsonPatchOperation(operation: Operation): JsonPatchOperation {\n return operation as JsonPatchOperation;\n }\n\n private static applySingleElementDiffOperation(originalElement: IElementDto, operation: Operation): void {\n applyOperation(originalElement, this.transformToJsonPatchOperation(operation));\n }\n}\n","/*\n * Public API Surface of ava-partial-updater\n */\n\nexport * from './lib/ava-partial-updater.service';\nexport { AvaProjectDiff } from './lib/interfaces/ava-project-diff.interface';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dangl/ava-partial-updater",
3
- "version": "1.4.5-beta0071",
3
+ "version": "1.5.0-beta0079",
4
4
  "description": "A package to apply partial updates to Ava Projects",
5
5
  "dependencies": {
6
6
  "fast-json-patch": "^3.1.1",