{ "CI_job_history_included": false, "approvals": [], "diff_versions": [ { "commits": [ { "authored_date": null, "commit_author_id": null, "committed_date": null, "committer_id": null, "merge_request_commits_metadata_id": 308, "merge_request_diff_id": 197, "message": null, "project_id": null, "relative_order": 0, "sha": null, "trailers": {} } ], "files": [ { "a_mode": "100644", "b_mode": "100644", "binary": false, "deleted_file": false, "diff": "@@ -46,7 +46,7 @@\n \t\t\t\t\"karma-jasmine\": \"~5.1.0\",\n \t\t\t\t\"karma-jasmine-html-reporter\": \"~2.2.0\",\n \t\t\t\t\"prettier\": \"^3.8.2\",\n-\t\t\t\t\"typescript\": \"~5.9.3\",\n+\t\t\t\t\"typescript\": \"~6.0.2\",\n \t\t\t\t\"typescript-eslint\": \"^8.58.2\"\n \t\t\t}\n \t\t},\n@@ -15627,19 +15627,19 @@\n \t\t\t}\n \t\t},\n \t\t\"node_modules/ts-jest\": {\n-\t\t\t\"version\": \"29.4.6\",\n-\t\t\t\"resolved\": \"https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.6.tgz\",\n-\t\t\t\"integrity\": \"sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA==\",\n+\t\t\t\"version\": \"29.4.9\",\n+\t\t\t\"resolved\": \"https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.9.tgz\",\n+\t\t\t\"integrity\": \"sha512-LTb9496gYPMCqjeDLdPrKuXtncudeV1yRZnF4Wo5l3SFi0RYEnYRNgMrFIdg+FHvfzjCyQk1cLncWVqiSX+EvQ==\",\n \t\t\t\"dev\": true,\n \t\t\t\"license\": \"MIT\",\n \t\t\t\"dependencies\": {\n \t\t\t\t\"bs-logger\": \"^0.2.6\",\n \t\t\t\t\"fast-json-stable-stringify\": \"^2.1.0\",\n-\t\t\t\t\"handlebars\": \"^4.7.8\",\n+\t\t\t\t\"handlebars\": \"^4.7.9\",\n \t\t\t\t\"json5\": \"^2.2.3\",\n \t\t\t\t\"lodash.memoize\": \"^4.1.2\",\n \t\t\t\t\"make-error\": \"^1.3.6\",\n-\t\t\t\t\"semver\": \"^7.7.3\",\n+\t\t\t\t\"semver\": \"^7.7.4\",\n \t\t\t\t\"type-fest\": \"^4.41.0\",\n \t\t\t\t\"yargs-parser\": \"^21.1.1\"\n \t\t\t},\n@@ -15656,7 +15656,7 @@\n \t\t\t\t\"babel-jest\": \"^29.0.0 || ^30.0.0\",\n \t\t\t\t\"jest\": \"^29.0.0 || ^30.0.0\",\n \t\t\t\t\"jest-util\": \"^29.0.0 || ^30.0.0\",\n-\t\t\t\t\"typescript\": \">=4.3 <6\"\n+\t\t\t\t\"typescript\": \">=4.3 <7\"\n \t\t\t},\n \t\t\t\"peerDependenciesMeta\": {\n \t\t\t\t\"@babel/core\": {\n@@ -15764,9 +15764,9 @@\n \t\t\t}\n \t\t},\n \t\t\"node_modules/typescript\": {\n-\t\t\t\"version\": \"5.9.3\",\n-\t\t\t\"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz\",\n-\t\t\t\"integrity\": \"sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==\",\n+\t\t\t\"version\": \"6.0.2\",\n+\t\t\t\"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-6.0.2.tgz\",\n+\t\t\t\"integrity\": \"sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==\",\n \t\t\t\"dev\": true,\n \t\t\t\"license\": \"Apache-2.0\",\n \t\t\t\"bin\": {\n", "encoded_file_path": false, "external_diff_offset": null, "external_diff_size": null, "generated": true, "merge_request_diff_id": 197, "new_file": false, "new_path": null, "old_path": "package-lock.json", "project_id": 35, "relative_order": 0, "renamed_file": false, "too_large": false }, { "a_mode": "100644", "b_mode": "100644", "binary": false, "deleted_file": false, "diff": "@@ -65,7 +65,7 @@\n \t\t\"karma-jasmine\": \"~5.1.0\",\n \t\t\"karma-jasmine-html-reporter\": \"~2.2.0\",\n \t\t\"prettier\": \"^3.8.2\",\n-\t\t\"typescript\": \"~5.9.3\",\n+\t\t\"typescript\": \"~6.0.2\",\n \t\t\"typescript-eslint\": \"^8.58.2\"\n \t}\n }\n", "encoded_file_path": false, "external_diff_offset": null, "external_diff_size": null, "generated": false, "merge_request_diff_id": 197, "new_file": false, "new_path": null, "old_path": "package.json", "project_id": 35, "relative_order": 1, "renamed_file": false, "too_large": false } ], "metadata": { "base_commit_sha": "7a16c1f716f10417fa7b36e326d68b1653e87e78", "commits_count": 1, "created_at": "2026-05-03T16:00:26.228495", "diff_type": 1, "files_count": 2, "head_commit_sha": "2c95b89a1b18abf3dda35250e1b17ac9ee5dc911", "id": 197, "merge_request_id": 197, "project_id": 35, "start_commit_sha": "7a16c1f716f10417fa7b36e326d68b1653e87e78", "state": "collected", "stored_externally": null, "updated_at": "2026-05-03T16:00:26.667216" } } ], "discussions": [ { "id": "3e762f4c5fd86d13629505590f83cd28f2bb5f16", "individual_note": true, "notes": [ { "author": { "avatar_url": "https://secure.gravatar.com/avatar/4657567e632c1ae9940f03534ba102a8a0321e4278100cbef34f0ff2d5e4eb72?s=80&d=identicon", "id": 8, "locked": false, "name": "nessar", "public_email": null, "state": "active", "username": "nessar", "web_url": "https://gitlab.nessar.fr/nessar" }, "body": "/blocked_by #46", "commands_changes": {}, "confidential": false, "created_at": "2026-07-24T15:46:04.792Z", "id": 845, "imported": false, "imported_from": "none", "internal": false, "noteable_id": 197, "noteable_iid": 51, "noteable_type": "Issue", "project_id": 47, "resolvable": false, "system": false, "type": null, "updated_at": "2026-07-24T15:46:04.792Z" } ], "resolvable": false }, { "id": "3939c403e239ff0ed77a59504c6eb819bcfcfdee", "individual_note": true, "notes": [ { "author": { "avatar_url": "https://secure.gravatar.com/avatar/4657567e632c1ae9940f03534ba102a8a0321e4278100cbef34f0ff2d5e4eb72?s=80&d=identicon", "id": 8, "locked": false, "name": "nessar", "public_email": null, "state": "active", "username": "nessar", "web_url": "https://gitlab.nessar.fr/nessar" }, "body": "mentioned in issue #59", "commands_changes": {}, "confidential": false, "created_at": "2026-07-24T15:46:11.256Z", "id": 878, "imported": false, "imported_from": "none", "internal": false, "noteable_id": 197, "noteable_iid": 51, "noteable_type": "Issue", "project_id": 47, "resolvable": false, "system": true, "type": null, "updated_at": "2026-07-24T15:46:11.257Z" } ], "resolvable": false }, { "id": "7f316da0e6735fe118824a137efb020df7eb3def", "individual_note": true, "notes": [ { "author": { "avatar_url": "https://secure.gravatar.com/avatar/4657567e632c1ae9940f03534ba102a8a0321e4278100cbef34f0ff2d5e4eb72?s=80&d=identicon", "id": 8, "locked": false, "name": "nessar", "public_email": null, "state": "active", "username": "nessar", "web_url": "https://gitlab.nessar.fr/nessar" }, "body": "mentioned in commit 7cb40d804123445a83d8994c65b126748bfe2e84", "commands_changes": {}, "confidential": false, "created_at": "2026-07-24T18:02:06.315Z", "id": 903, "imported": false, "imported_from": "none", "internal": false, "noteable_id": 197, "noteable_iid": 51, "noteable_type": "Issue", "project_id": 47, "resolvable": false, "system": true, "type": null, "updated_at": "2026-07-24T18:02:06.318Z" } ], "resolvable": false } ], "format_version": 1, "notes": [ { "author_id": 8, "change_position": null, "commit_id": null, "confidential": null, "created_at": "2026-07-24T15:46:04.792787", "discussion_id": "3e762f4c5fd86d13629505590f83cd28f2bb5f16", "id": 845, "imported_from": 0, "internal": false, "last_edited_at": null, "line_code": null, "namespace_id": null, "note": "/blocked_by #46", "noteable_id": 197, "noteable_type": "Issue", "organization_id": null, "original_position": null, "position": null, "project_id": 47, "resolved_at": null, "resolved_by_id": null, "resolved_by_push": null, "review_id": null, "source_iid": 51, "source_item_project_id": 47, "st_diff": null, "system": false, "type": null, "updated_at": "2026-07-24T15:46:04.792787", "updated_by_id": null }, { "author_id": 8, "change_position": null, "commit_id": null, "confidential": null, "created_at": "2026-07-24T15:46:11.256751", "discussion_id": "3939c403e239ff0ed77a59504c6eb819bcfcfdee", "id": 878, "imported_from": 0, "internal": false, "last_edited_at": null, "line_code": null, "namespace_id": null, "note": "mentioned in issue #59", "noteable_id": 197, "noteable_type": "Issue", "organization_id": null, "original_position": null, "position": null, "project_id": 47, "resolved_at": null, "resolved_by_id": null, "resolved_by_push": null, "review_id": null, "source_iid": 51, "source_item_project_id": 47, "st_diff": null, "system": true, "type": null, "updated_at": "2026-07-24T15:46:11.257665", "updated_by_id": null }, { "author_id": 8, "change_position": null, "commit_id": null, "confidential": null, "created_at": "2026-07-24T18:02:06.315594", "discussion_id": "7f316da0e6735fe118824a137efb020df7eb3def", "id": 903, "imported_from": 0, "internal": false, "last_edited_at": null, "line_code": null, "namespace_id": null, "note": "mentioned in commit 7cb40d804123445a83d8994c65b126748bfe2e84", "noteable_id": 197, "noteable_type": "Issue", "organization_id": null, "original_position": null, "position": null, "project_id": 47, "resolved_at": null, "resolved_by_id": null, "resolved_by_push": null, "review_id": null, "source_iid": 51, "source_item_project_id": 47, "st_diff": null, "system": true, "type": null, "updated_at": "2026-07-24T18:02:06.318289", "updated_by_id": null } ], "preexisting_missing_alternate_head": false, "source_assignees": [], "source_author": { "avatar_url": "https://secure.gravatar.com/avatar/4657567e632c1ae9940f03534ba102a8a0321e4278100cbef34f0ff2d5e4eb72?s=80&d=identicon", "id": 8, "locked": false, "name": "nessar", "public_email": null, "state": "active", "username": "nessar", "web_url": "https://gitlab.nessar.fr/nessar" }, "source_created_at": "2026-07-24T15:46:04.011Z", "source_discussion_locked": null, "source_id": 197, "source_iid": 51, "source_item_metadata": { "assignee": null, "assignees": [], "author": { "avatar_url": "https://secure.gravatar.com/avatar/4657567e632c1ae9940f03534ba102a8a0321e4278100cbef34f0ff2d5e4eb72?s=80&d=identicon", "id": 8, "locked": false, "name": "nessar", "public_email": null, "state": "active", "username": "nessar", "web_url": "https://gitlab.nessar.fr/nessar" }, "closed_at": "2026-07-26T17:21:40.384Z", "closed_by": { "avatar_url": "https://secure.gravatar.com/avatar/4657567e632c1ae9940f03534ba102a8a0321e4278100cbef34f0ff2d5e4eb72?s=80&d=identicon", "id": 8, "locked": false, "name": "nessar", "public_email": null, "state": "active", "username": "nessar", "web_url": "https://gitlab.nessar.fr/nessar" }, "confidential": false, "created_at": "2026-07-24T15:46:04.011Z", "description": "## Parent\n\n#42\n\n## What to build\n\nMake Appartement document uploads validate every landlord-correctable metadata and file constraint before or after submission with actionable, operation-local feedback.\n\n## Acceptance criteria\n\n- [ ] Document type, establishment date, expiry date, file presence, accepted content, and size are audited against the current backend rules.\n- [ ] Avoidable invalid metadata is blocked in Angular with French guidance at the matching control.\n- [ ] Backend validation and classified file failures use stable field errors or safe operation-level messages as appropriate.\n- [ ] Failed uploads preserve selected metadata, prevent duplicate submission, and leave existing documents available.\n- [ ] Replacing or deleting a document retains truthful local pending and error state.\n- [ ] Existing backend document web tests, Angular component/service tests, and relevant checks pass.\n\n## Blocked by\n\n- #46", "discussion_locked": null, "downvotes": 0, "due_date": null, "has_tasks": false, "id": 197, "iid": 51, "imported": false, "imported_from": "none", "issue_type": "issue", "labels": [ "ready-for-agent" ], "merge_requests_count": 0, "milestone": null, "moved_to_id": null, "project_id": 47, "references": { "full": "nessar/lmnp-organizer#51", "relative": "#51", "short": "#51" }, "service_desk_reply_to": null, "severity": "UNKNOWN", "start_date": null, "state": "closed", "task_completion_status": { "completed_count": 0, "count": 6 }, "time_stats": { "human_time_estimate": null, "human_total_time_spent": null, "time_estimate": 0, "total_time_spent": 0 }, "title": "Aligner le téléversement des documents Appartement", "type": "ISSUE", "updated_at": "2026-07-26T17:21:40.664Z", "upvotes": 0, "user_notes_count": 1, "web_url": "https://gitlab.nessar.fr/nessar/lmnp-organizer/-/work_items/51" }, "source_kind": "Issue", "source_path": "nessar/lmnp-organizer", "source_project_id": 47, "source_reviewers": [], "source_updated_at": "2026-07-26T17:21:40.664Z", "state_events": [ { "close_after_error_tracking_resolve": false, "close_auto_resolve_prometheus_alert": false, "created_at": "2026-07-26T17:21:40.592739+00:00", "epic_id": null, "id": 470, "imported_from": 0, "issue_id": 197, "merge_request_id": null, "namespace_id": 55, "source_commit": null, "source_merge_request_id": null, "state": 2, "user_id": 8 } ], "target_number": 51 }