@open-mercato/core 0.4.5-develop-3093b8bee8 → 0.4.5-develop-8a56591995

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 (64) hide show
  1. package/dist/generated/entities/progress_job/index.js +57 -0
  2. package/dist/generated/entities/progress_job/index.js.map +7 -0
  3. package/dist/generated/entities.ids.generated.js +4 -0
  4. package/dist/generated/entities.ids.generated.js.map +2 -2
  5. package/dist/generated/entity-fields-registry.js +2 -0
  6. package/dist/generated/entity-fields-registry.js.map +2 -2
  7. package/dist/modules/progress/__integration__/TC-PROG-001.spec.js +51 -0
  8. package/dist/modules/progress/__integration__/TC-PROG-001.spec.js.map +7 -0
  9. package/dist/modules/progress/acl.js +33 -0
  10. package/dist/modules/progress/acl.js.map +7 -0
  11. package/dist/modules/progress/api/active/route.js +57 -0
  12. package/dist/modules/progress/api/active/route.js.map +7 -0
  13. package/dist/modules/progress/api/jobs/[id]/route.js +126 -0
  14. package/dist/modules/progress/api/jobs/[id]/route.js.map +7 -0
  15. package/dist/modules/progress/api/jobs/route.js +156 -0
  16. package/dist/modules/progress/api/jobs/route.js.map +7 -0
  17. package/dist/modules/progress/api/openapi.js +27 -0
  18. package/dist/modules/progress/api/openapi.js.map +7 -0
  19. package/dist/modules/progress/data/entities.js +113 -0
  20. package/dist/modules/progress/data/entities.js.map +7 -0
  21. package/dist/modules/progress/data/validators.js +48 -0
  22. package/dist/modules/progress/data/validators.js.map +7 -0
  23. package/dist/modules/progress/di.js +16 -0
  24. package/dist/modules/progress/di.js.map +7 -0
  25. package/dist/modules/progress/events.js +22 -0
  26. package/dist/modules/progress/events.js.map +7 -0
  27. package/dist/modules/progress/index.js +13 -0
  28. package/dist/modules/progress/index.js.map +7 -0
  29. package/dist/modules/progress/lib/events.js +14 -0
  30. package/dist/modules/progress/lib/events.js.map +7 -0
  31. package/dist/modules/progress/lib/progressService.js +21 -0
  32. package/dist/modules/progress/lib/progressService.js.map +7 -0
  33. package/dist/modules/progress/lib/progressServiceImpl.js +215 -0
  34. package/dist/modules/progress/lib/progressServiceImpl.js.map +7 -0
  35. package/dist/modules/progress/migrations/Migration20260220214819.js +16 -0
  36. package/dist/modules/progress/migrations/Migration20260220214819.js.map +7 -0
  37. package/dist/modules/progress/setup.js +12 -0
  38. package/dist/modules/progress/setup.js.map +7 -0
  39. package/generated/entities/progress_job/index.ts +27 -0
  40. package/generated/entities.ids.generated.ts +4 -0
  41. package/generated/entity-fields-registry.ts +2 -0
  42. package/package.json +2 -2
  43. package/src/modules/progress/__integration__/TC-PROG-001.spec.ts +67 -0
  44. package/src/modules/progress/__tests__/progressService.test.ts +377 -0
  45. package/src/modules/progress/acl.ts +29 -0
  46. package/src/modules/progress/api/active/route.ts +61 -0
  47. package/src/modules/progress/api/jobs/[id]/route.ts +136 -0
  48. package/src/modules/progress/api/jobs/route.ts +192 -0
  49. package/src/modules/progress/api/openapi.ts +28 -0
  50. package/src/modules/progress/data/entities.ts +94 -0
  51. package/src/modules/progress/data/validators.ts +51 -0
  52. package/src/modules/progress/di.ts +15 -0
  53. package/src/modules/progress/events.ts +21 -0
  54. package/src/modules/progress/i18n/de.json +20 -0
  55. package/src/modules/progress/i18n/en.json +20 -0
  56. package/src/modules/progress/i18n/es.json +20 -0
  57. package/src/modules/progress/i18n/pl.json +20 -0
  58. package/src/modules/progress/index.ts +11 -0
  59. package/src/modules/progress/lib/events.ts +60 -0
  60. package/src/modules/progress/lib/progressService.ts +47 -0
  61. package/src/modules/progress/lib/progressServiceImpl.ts +261 -0
  62. package/src/modules/progress/migrations/.snapshot-open-mercato.json +316 -0
  63. package/src/modules/progress/migrations/Migration20260220214819.ts +15 -0
  64. package/src/modules/progress/setup.ts +10 -0
@@ -0,0 +1,57 @@
1
+ const id = "id";
2
+ const job_type = "job_type";
3
+ const name = "name";
4
+ const description = "description";
5
+ const status = "status";
6
+ const progress_percent = "progress_percent";
7
+ const processed_count = "processed_count";
8
+ const total_count = "total_count";
9
+ const eta_seconds = "eta_seconds";
10
+ const started_by_user_id = "started_by_user_id";
11
+ const started_at = "started_at";
12
+ const heartbeat_at = "heartbeat_at";
13
+ const finished_at = "finished_at";
14
+ const result_summary = "result_summary";
15
+ const error_message = "error_message";
16
+ const error_stack = "error_stack";
17
+ const meta = "meta";
18
+ const cancellable = "cancellable";
19
+ const cancelled_by_user_id = "cancelled_by_user_id";
20
+ const cancel_requested_at = "cancel_requested_at";
21
+ const parent_job_id = "parent_job_id";
22
+ const partition_index = "partition_index";
23
+ const partition_count = "partition_count";
24
+ const tenant_id = "tenant_id";
25
+ const organization_id = "organization_id";
26
+ const created_at = "created_at";
27
+ const updated_at = "updated_at";
28
+ export {
29
+ cancel_requested_at,
30
+ cancellable,
31
+ cancelled_by_user_id,
32
+ created_at,
33
+ description,
34
+ error_message,
35
+ error_stack,
36
+ eta_seconds,
37
+ finished_at,
38
+ heartbeat_at,
39
+ id,
40
+ job_type,
41
+ meta,
42
+ name,
43
+ organization_id,
44
+ parent_job_id,
45
+ partition_count,
46
+ partition_index,
47
+ processed_count,
48
+ progress_percent,
49
+ result_summary,
50
+ started_at,
51
+ started_by_user_id,
52
+ status,
53
+ tenant_id,
54
+ total_count,
55
+ updated_at
56
+ };
57
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../generated/entities/progress_job/index.ts"],
4
+ "sourcesContent": ["export const id = 'id'\nexport const job_type = 'job_type'\nexport const name = 'name'\nexport const description = 'description'\nexport const status = 'status'\nexport const progress_percent = 'progress_percent'\nexport const processed_count = 'processed_count'\nexport const total_count = 'total_count'\nexport const eta_seconds = 'eta_seconds'\nexport const started_by_user_id = 'started_by_user_id'\nexport const started_at = 'started_at'\nexport const heartbeat_at = 'heartbeat_at'\nexport const finished_at = 'finished_at'\nexport const result_summary = 'result_summary'\nexport const error_message = 'error_message'\nexport const error_stack = 'error_stack'\nexport const meta = 'meta'\nexport const cancellable = 'cancellable'\nexport const cancelled_by_user_id = 'cancelled_by_user_id'\nexport const cancel_requested_at = 'cancel_requested_at'\nexport const parent_job_id = 'parent_job_id'\nexport const partition_index = 'partition_index'\nexport const partition_count = 'partition_count'\nexport const tenant_id = 'tenant_id'\nexport const organization_id = 'organization_id'\nexport const created_at = 'created_at'\nexport const updated_at = 'updated_at'\n"],
5
+ "mappings": "AAAO,MAAM,KAAK;AACX,MAAM,WAAW;AACjB,MAAM,OAAO;AACb,MAAM,cAAc;AACpB,MAAM,SAAS;AACf,MAAM,mBAAmB;AACzB,MAAM,kBAAkB;AACxB,MAAM,cAAc;AACpB,MAAM,cAAc;AACpB,MAAM,qBAAqB;AAC3B,MAAM,aAAa;AACnB,MAAM,eAAe;AACrB,MAAM,cAAc;AACpB,MAAM,iBAAiB;AACvB,MAAM,gBAAgB;AACtB,MAAM,cAAc;AACpB,MAAM,OAAO;AACb,MAAM,cAAc;AACpB,MAAM,uBAAuB;AAC7B,MAAM,sBAAsB;AAC5B,MAAM,gBAAgB;AACtB,MAAM,kBAAkB;AACxB,MAAM,kBAAkB;AACxB,MAAM,YAAY;AAClB,MAAM,kBAAkB;AACxB,MAAM,aAAa;AACnB,MAAM,aAAa;",
6
+ "names": []
7
+ }
@@ -22,6 +22,7 @@ const M = {
22
22
  "resources": "resources",
23
23
  "staff": "staff",
24
24
  "notifications": "notifications",
25
+ "progress": "progress",
25
26
  "translations": "translations",
26
27
  "inbox_ops": "inbox_ops"
27
28
  };
@@ -189,6 +190,9 @@ const E = {
189
190
  "notifications": {
190
191
  "notification": "notifications:notification"
191
192
  },
193
+ "progress": {
194
+ "progress_job": "progress:progress_job"
195
+ },
192
196
  "translations": {
193
197
  "entity_translation": "translations:entity_translation"
194
198
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../generated/entities.ids.generated.ts"],
4
- "sourcesContent": ["// AUTO-GENERATED by mercato generate entity-ids\nexport const M = {\n \"dashboards\": \"dashboards\",\n \"auth\": \"auth\",\n \"directory\": \"directory\",\n \"customers\": \"customers\",\n \"perspectives\": \"perspectives\",\n \"entities\": \"entities\",\n \"configs\": \"configs\",\n \"query_index\": \"query_index\",\n \"audit_logs\": \"audit_logs\",\n \"attachments\": \"attachments\",\n \"catalog\": \"catalog\",\n \"sales\": \"sales\",\n \"api_keys\": \"api_keys\",\n \"dictionaries\": \"dictionaries\",\n \"api_docs\": \"api_docs\",\n \"business_rules\": \"business_rules\",\n \"feature_toggles\": \"feature_toggles\",\n \"workflows\": \"workflows\",\n \"currencies\": \"currencies\",\n \"planner\": \"planner\",\n \"resources\": \"resources\",\n \"staff\": \"staff\",\n \"notifications\": \"notifications\",\n \"translations\": \"translations\",\n \"inbox_ops\": \"inbox_ops\"\n} as const\nexport const E = {\n \"dashboards\": {\n \"dashboard_layout\": \"dashboards:dashboard_layout\",\n \"dashboard_role_widgets\": \"dashboards:dashboard_role_widgets\",\n \"dashboard_user_widgets\": \"dashboards:dashboard_user_widgets\"\n },\n \"auth\": {\n \"user\": \"auth:user\",\n \"role\": \"auth:role\",\n \"user_sidebar_preference\": \"auth:user_sidebar_preference\",\n \"role_sidebar_preference\": \"auth:role_sidebar_preference\",\n \"user_role\": \"auth:user_role\",\n \"session\": \"auth:session\",\n \"password_reset\": \"auth:password_reset\",\n \"role_acl\": \"auth:role_acl\",\n \"user_acl\": \"auth:user_acl\"\n },\n \"directory\": {\n \"tenant\": \"directory:tenant\",\n \"organization\": \"directory:organization\"\n },\n \"customers\": {\n \"customer_entity\": \"customers:customer_entity\",\n \"customer_person_profile\": \"customers:customer_person_profile\",\n \"customer_company_profile\": \"customers:customer_company_profile\",\n \"customer_deal\": \"customers:customer_deal\",\n \"customer_deal_person_link\": \"customers:customer_deal_person_link\",\n \"customer_deal_company_link\": \"customers:customer_deal_company_link\",\n \"customer_activity\": \"customers:customer_activity\",\n \"customer_comment\": \"customers:customer_comment\",\n \"customer_address\": \"customers:customer_address\",\n \"customer_settings\": \"customers:customer_settings\",\n \"customer_tag\": \"customers:customer_tag\",\n \"customer_tag_assignment\": \"customers:customer_tag_assignment\",\n \"customer_dictionary_entry\": \"customers:customer_dictionary_entry\",\n \"customer_todo_link\": \"customers:customer_todo_link\"\n },\n \"perspectives\": {\n \"perspective\": \"perspectives:perspective\",\n \"role_perspective\": \"perspectives:role_perspective\"\n },\n \"entities\": {\n \"custom_field_def\": \"entities:custom_field_def\",\n \"custom_field_entity_config\": \"entities:custom_field_entity_config\",\n \"custom_entity\": \"entities:custom_entity\",\n \"custom_entity_storage\": \"entities:custom_entity_storage\",\n \"custom_field_value\": \"entities:custom_field_value\",\n \"encryption_map\": \"entities:encryption_map\"\n },\n \"configs\": {\n \"module_config\": \"configs:module_config\",\n \"upgrade_action_run\": \"configs:upgrade_action_run\"\n },\n \"query_index\": {\n \"entity_index_row\": \"query_index:entity_index_row\",\n \"entity_index_job\": \"query_index:entity_index_job\",\n \"entity_index_coverage\": \"query_index:entity_index_coverage\",\n \"indexer_error_log\": \"query_index:indexer_error_log\",\n \"indexer_status_log\": \"query_index:indexer_status_log\",\n \"search_token\": \"query_index:search_token\"\n },\n \"audit_logs\": {\n \"action_log\": \"audit_logs:action_log\",\n \"access_log\": \"audit_logs:access_log\"\n },\n \"attachments\": {\n \"attachment_partition\": \"attachments:attachment_partition\",\n \"attachment\": \"attachments:attachment\"\n },\n \"catalog\": {\n \"catalog_option_schema_template\": \"catalog:catalog_option_schema_template\",\n \"catalog_product\": \"catalog:catalog_product\",\n \"catalog_product_category\": \"catalog:catalog_product_category\",\n \"catalog_product_category_assignment\": \"catalog:catalog_product_category_assignment\",\n \"catalog_product_tag\": \"catalog:catalog_product_tag\",\n \"catalog_product_tag_assignment\": \"catalog:catalog_product_tag_assignment\",\n \"catalog_offer\": \"catalog:catalog_offer\",\n \"catalog_product_variant\": \"catalog:catalog_product_variant\",\n \"catalog_product_variant_relation\": \"catalog:catalog_product_variant_relation\",\n \"catalog_price_kind\": \"catalog:catalog_price_kind\",\n \"catalog_product_price\": \"catalog:catalog_product_price\"\n },\n \"sales\": {\n \"sales_channel\": \"sales:sales_channel\",\n \"sales_shipping_method\": \"sales:sales_shipping_method\",\n \"sales_delivery_window\": \"sales:sales_delivery_window\",\n \"sales_payment_method\": \"sales:sales_payment_method\",\n \"sales_tax_rate\": \"sales:sales_tax_rate\",\n \"sales_order\": \"sales:sales_order\",\n \"sales_order_line\": \"sales:sales_order_line\",\n \"sales_order_adjustment\": \"sales:sales_order_adjustment\",\n \"sales_settings\": \"sales:sales_settings\",\n \"sales_document_sequence\": \"sales:sales_document_sequence\",\n \"sales_quote\": \"sales:sales_quote\",\n \"sales_quote_line\": \"sales:sales_quote_line\",\n \"sales_quote_adjustment\": \"sales:sales_quote_adjustment\",\n \"sales_shipment\": \"sales:sales_shipment\",\n \"sales_shipment_item\": \"sales:sales_shipment_item\",\n \"sales_invoice\": \"sales:sales_invoice\",\n \"sales_invoice_line\": \"sales:sales_invoice_line\",\n \"sales_credit_memo\": \"sales:sales_credit_memo\",\n \"sales_credit_memo_line\": \"sales:sales_credit_memo_line\",\n \"sales_payment\": \"sales:sales_payment\",\n \"sales_payment_allocation\": \"sales:sales_payment_allocation\",\n \"sales_note\": \"sales:sales_note\",\n \"sales_document_address\": \"sales:sales_document_address\",\n \"sales_document_tag\": \"sales:sales_document_tag\",\n \"sales_document_tag_assignment\": \"sales:sales_document_tag_assignment\"\n },\n \"api_keys\": {\n \"api_key\": \"api_keys:api_key\"\n },\n \"dictionaries\": {\n \"dictionary\": \"dictionaries:dictionary\",\n \"dictionary_entry\": \"dictionaries:dictionary_entry\"\n },\n \"business_rules\": {\n \"business_rule\": \"business_rules:business_rule\",\n \"rule_execution_log\": \"business_rules:rule_execution_log\",\n \"rule_set\": \"business_rules:rule_set\",\n \"rule_set_member\": \"business_rules:rule_set_member\"\n },\n \"feature_toggles\": {\n \"feature_toggle\": \"feature_toggles:feature_toggle\",\n \"feature_toggle_override\": \"feature_toggles:feature_toggle_override\"\n },\n \"workflows\": {\n \"workflow_definition\": \"workflows:workflow_definition\",\n \"workflow_instance\": \"workflows:workflow_instance\",\n \"step_instance\": \"workflows:step_instance\",\n \"user_task\": \"workflows:user_task\",\n \"workflow_event\": \"workflows:workflow_event\",\n \"workflow_event_trigger\": \"workflows:workflow_event_trigger\"\n },\n \"currencies\": {\n \"currency\": \"currencies:currency\",\n \"exchange_rate\": \"currencies:exchange_rate\",\n \"currency_fetch_config\": \"currencies:currency_fetch_config\"\n },\n \"planner\": {\n \"planner_availability_rule_set\": \"planner:planner_availability_rule_set\",\n \"planner_availability_rule\": \"planner:planner_availability_rule\"\n },\n \"resources\": {\n \"resources_resource_type\": \"resources:resources_resource_type\",\n \"resources_resource\": \"resources:resources_resource\",\n \"resources_resource_comment\": \"resources:resources_resource_comment\",\n \"resources_resource_activity\": \"resources:resources_resource_activity\",\n \"resources_resource_tag\": \"resources:resources_resource_tag\",\n \"resources_resource_tag_assignment\": \"resources:resources_resource_tag_assignment\"\n },\n \"staff\": {\n \"staff_team\": \"staff:staff_team\",\n \"staff_team_role\": \"staff:staff_team_role\",\n \"staff_team_member\": \"staff:staff_team_member\",\n \"staff_leave_request\": \"staff:staff_leave_request\",\n \"staff_team_member_comment\": \"staff:staff_team_member_comment\",\n \"staff_team_member_activity\": \"staff:staff_team_member_activity\",\n \"staff_team_member_job_history\": \"staff:staff_team_member_job_history\",\n \"staff_team_member_address\": \"staff:staff_team_member_address\"\n },\n \"notifications\": {\n \"notification\": \"notifications:notification\"\n },\n \"translations\": {\n \"entity_translation\": \"translations:entity_translation\"\n },\n \"inbox_ops\": {\n \"inbox_settings\": \"inbox_ops:inbox_settings\",\n \"inbox_email\": \"inbox_ops:inbox_email\",\n \"inbox_proposal\": \"inbox_ops:inbox_proposal\",\n \"inbox_proposal_action\": \"inbox_ops:inbox_proposal_action\",\n \"inbox_discrepancy\": \"inbox_ops:inbox_discrepancy\"\n }\n} as const\nexport type KnownModuleId = keyof typeof M\nexport type KnownEntities = typeof E\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// AUTO-GENERATED by mercato generate entity-ids\nexport const M = {\n \"dashboards\": \"dashboards\",\n \"auth\": \"auth\",\n \"directory\": \"directory\",\n \"customers\": \"customers\",\n \"perspectives\": \"perspectives\",\n \"entities\": \"entities\",\n \"configs\": \"configs\",\n \"query_index\": \"query_index\",\n \"audit_logs\": \"audit_logs\",\n \"attachments\": \"attachments\",\n \"catalog\": \"catalog\",\n \"sales\": \"sales\",\n \"api_keys\": \"api_keys\",\n \"dictionaries\": \"dictionaries\",\n \"api_docs\": \"api_docs\",\n \"business_rules\": \"business_rules\",\n \"feature_toggles\": \"feature_toggles\",\n \"workflows\": \"workflows\",\n \"currencies\": \"currencies\",\n \"planner\": \"planner\",\n \"resources\": \"resources\",\n \"staff\": \"staff\",\n \"notifications\": \"notifications\",\n \"progress\": \"progress\",\n \"translations\": \"translations\",\n \"inbox_ops\": \"inbox_ops\"\n} as const\nexport const E = {\n \"dashboards\": {\n \"dashboard_layout\": \"dashboards:dashboard_layout\",\n \"dashboard_role_widgets\": \"dashboards:dashboard_role_widgets\",\n \"dashboard_user_widgets\": \"dashboards:dashboard_user_widgets\"\n },\n \"auth\": {\n \"user\": \"auth:user\",\n \"role\": \"auth:role\",\n \"user_sidebar_preference\": \"auth:user_sidebar_preference\",\n \"role_sidebar_preference\": \"auth:role_sidebar_preference\",\n \"user_role\": \"auth:user_role\",\n \"session\": \"auth:session\",\n \"password_reset\": \"auth:password_reset\",\n \"role_acl\": \"auth:role_acl\",\n \"user_acl\": \"auth:user_acl\"\n },\n \"directory\": {\n \"tenant\": \"directory:tenant\",\n \"organization\": \"directory:organization\"\n },\n \"customers\": {\n \"customer_entity\": \"customers:customer_entity\",\n \"customer_person_profile\": \"customers:customer_person_profile\",\n \"customer_company_profile\": \"customers:customer_company_profile\",\n \"customer_deal\": \"customers:customer_deal\",\n \"customer_deal_person_link\": \"customers:customer_deal_person_link\",\n \"customer_deal_company_link\": \"customers:customer_deal_company_link\",\n \"customer_activity\": \"customers:customer_activity\",\n \"customer_comment\": \"customers:customer_comment\",\n \"customer_address\": \"customers:customer_address\",\n \"customer_settings\": \"customers:customer_settings\",\n \"customer_tag\": \"customers:customer_tag\",\n \"customer_tag_assignment\": \"customers:customer_tag_assignment\",\n \"customer_dictionary_entry\": \"customers:customer_dictionary_entry\",\n \"customer_todo_link\": \"customers:customer_todo_link\"\n },\n \"perspectives\": {\n \"perspective\": \"perspectives:perspective\",\n \"role_perspective\": \"perspectives:role_perspective\"\n },\n \"entities\": {\n \"custom_field_def\": \"entities:custom_field_def\",\n \"custom_field_entity_config\": \"entities:custom_field_entity_config\",\n \"custom_entity\": \"entities:custom_entity\",\n \"custom_entity_storage\": \"entities:custom_entity_storage\",\n \"custom_field_value\": \"entities:custom_field_value\",\n \"encryption_map\": \"entities:encryption_map\"\n },\n \"configs\": {\n \"module_config\": \"configs:module_config\",\n \"upgrade_action_run\": \"configs:upgrade_action_run\"\n },\n \"query_index\": {\n \"entity_index_row\": \"query_index:entity_index_row\",\n \"entity_index_job\": \"query_index:entity_index_job\",\n \"entity_index_coverage\": \"query_index:entity_index_coverage\",\n \"indexer_error_log\": \"query_index:indexer_error_log\",\n \"indexer_status_log\": \"query_index:indexer_status_log\",\n \"search_token\": \"query_index:search_token\"\n },\n \"audit_logs\": {\n \"action_log\": \"audit_logs:action_log\",\n \"access_log\": \"audit_logs:access_log\"\n },\n \"attachments\": {\n \"attachment_partition\": \"attachments:attachment_partition\",\n \"attachment\": \"attachments:attachment\"\n },\n \"catalog\": {\n \"catalog_option_schema_template\": \"catalog:catalog_option_schema_template\",\n \"catalog_product\": \"catalog:catalog_product\",\n \"catalog_product_category\": \"catalog:catalog_product_category\",\n \"catalog_product_category_assignment\": \"catalog:catalog_product_category_assignment\",\n \"catalog_product_tag\": \"catalog:catalog_product_tag\",\n \"catalog_product_tag_assignment\": \"catalog:catalog_product_tag_assignment\",\n \"catalog_offer\": \"catalog:catalog_offer\",\n \"catalog_product_variant\": \"catalog:catalog_product_variant\",\n \"catalog_product_variant_relation\": \"catalog:catalog_product_variant_relation\",\n \"catalog_price_kind\": \"catalog:catalog_price_kind\",\n \"catalog_product_price\": \"catalog:catalog_product_price\"\n },\n \"sales\": {\n \"sales_channel\": \"sales:sales_channel\",\n \"sales_shipping_method\": \"sales:sales_shipping_method\",\n \"sales_delivery_window\": \"sales:sales_delivery_window\",\n \"sales_payment_method\": \"sales:sales_payment_method\",\n \"sales_tax_rate\": \"sales:sales_tax_rate\",\n \"sales_order\": \"sales:sales_order\",\n \"sales_order_line\": \"sales:sales_order_line\",\n \"sales_order_adjustment\": \"sales:sales_order_adjustment\",\n \"sales_settings\": \"sales:sales_settings\",\n \"sales_document_sequence\": \"sales:sales_document_sequence\",\n \"sales_quote\": \"sales:sales_quote\",\n \"sales_quote_line\": \"sales:sales_quote_line\",\n \"sales_quote_adjustment\": \"sales:sales_quote_adjustment\",\n \"sales_shipment\": \"sales:sales_shipment\",\n \"sales_shipment_item\": \"sales:sales_shipment_item\",\n \"sales_invoice\": \"sales:sales_invoice\",\n \"sales_invoice_line\": \"sales:sales_invoice_line\",\n \"sales_credit_memo\": \"sales:sales_credit_memo\",\n \"sales_credit_memo_line\": \"sales:sales_credit_memo_line\",\n \"sales_payment\": \"sales:sales_payment\",\n \"sales_payment_allocation\": \"sales:sales_payment_allocation\",\n \"sales_note\": \"sales:sales_note\",\n \"sales_document_address\": \"sales:sales_document_address\",\n \"sales_document_tag\": \"sales:sales_document_tag\",\n \"sales_document_tag_assignment\": \"sales:sales_document_tag_assignment\"\n },\n \"api_keys\": {\n \"api_key\": \"api_keys:api_key\"\n },\n \"dictionaries\": {\n \"dictionary\": \"dictionaries:dictionary\",\n \"dictionary_entry\": \"dictionaries:dictionary_entry\"\n },\n \"business_rules\": {\n \"business_rule\": \"business_rules:business_rule\",\n \"rule_execution_log\": \"business_rules:rule_execution_log\",\n \"rule_set\": \"business_rules:rule_set\",\n \"rule_set_member\": \"business_rules:rule_set_member\"\n },\n \"feature_toggles\": {\n \"feature_toggle\": \"feature_toggles:feature_toggle\",\n \"feature_toggle_override\": \"feature_toggles:feature_toggle_override\"\n },\n \"workflows\": {\n \"workflow_definition\": \"workflows:workflow_definition\",\n \"workflow_instance\": \"workflows:workflow_instance\",\n \"step_instance\": \"workflows:step_instance\",\n \"user_task\": \"workflows:user_task\",\n \"workflow_event\": \"workflows:workflow_event\",\n \"workflow_event_trigger\": \"workflows:workflow_event_trigger\"\n },\n \"currencies\": {\n \"currency\": \"currencies:currency\",\n \"exchange_rate\": \"currencies:exchange_rate\",\n \"currency_fetch_config\": \"currencies:currency_fetch_config\"\n },\n \"planner\": {\n \"planner_availability_rule_set\": \"planner:planner_availability_rule_set\",\n \"planner_availability_rule\": \"planner:planner_availability_rule\"\n },\n \"resources\": {\n \"resources_resource_type\": \"resources:resources_resource_type\",\n \"resources_resource\": \"resources:resources_resource\",\n \"resources_resource_comment\": \"resources:resources_resource_comment\",\n \"resources_resource_activity\": \"resources:resources_resource_activity\",\n \"resources_resource_tag\": \"resources:resources_resource_tag\",\n \"resources_resource_tag_assignment\": \"resources:resources_resource_tag_assignment\"\n },\n \"staff\": {\n \"staff_team\": \"staff:staff_team\",\n \"staff_team_role\": \"staff:staff_team_role\",\n \"staff_team_member\": \"staff:staff_team_member\",\n \"staff_leave_request\": \"staff:staff_leave_request\",\n \"staff_team_member_comment\": \"staff:staff_team_member_comment\",\n \"staff_team_member_activity\": \"staff:staff_team_member_activity\",\n \"staff_team_member_job_history\": \"staff:staff_team_member_job_history\",\n \"staff_team_member_address\": \"staff:staff_team_member_address\"\n },\n \"notifications\": {\n \"notification\": \"notifications:notification\"\n },\n \"progress\": {\n \"progress_job\": \"progress:progress_job\"\n },\n \"translations\": {\n \"entity_translation\": \"translations:entity_translation\"\n },\n \"inbox_ops\": {\n \"inbox_settings\": \"inbox_ops:inbox_settings\",\n \"inbox_email\": \"inbox_ops:inbox_email\",\n \"inbox_proposal\": \"inbox_ops:inbox_proposal\",\n \"inbox_proposal_action\": \"inbox_ops:inbox_proposal_action\",\n \"inbox_discrepancy\": \"inbox_ops:inbox_discrepancy\"\n }\n} as const\nexport type KnownModuleId = keyof typeof M\nexport type KnownEntities = typeof E\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -63,6 +63,7 @@ import * as password_reset from "./entities/password_reset/index.js";
63
63
  import * as perspective from "./entities/perspective/index.js";
64
64
  import * as planner_availability_rule from "./entities/planner_availability_rule/index.js";
65
65
  import * as planner_availability_rule_set from "./entities/planner_availability_rule_set/index.js";
66
+ import * as progress_job from "./entities/progress_job/index.js";
66
67
  import * as resources_resource from "./entities/resources_resource/index.js";
67
68
  import * as resources_resource_activity from "./entities/resources_resource_activity/index.js";
68
69
  import * as resources_resource_comment from "./entities/resources_resource_comment/index.js";
@@ -189,6 +190,7 @@ const entityFieldsRegistry = {
189
190
  perspective,
190
191
  planner_availability_rule,
191
192
  planner_availability_rule_set,
193
+ progress_job,
192
194
  resources_resource,
193
195
  resources_resource_activity,
194
196
  resources_resource_comment,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../generated/entity-fields-registry.ts"],
4
- "sourcesContent": ["// AUTO-GENERATED by mercato generate entity-ids\n// Static registry for entity fields - eliminates dynamic imports for Turbopack compatibility\nimport * as access_log from './entities/access_log/index'\nimport * as action_log from './entities/action_log/index'\nimport * as api_key from './entities/api_key/index'\nimport * as attachment from './entities/attachment/index'\nimport * as attachment_partition from './entities/attachment_partition/index'\nimport * as business_rule from './entities/business_rule/index'\nimport * as catalog_offer from './entities/catalog_offer/index'\nimport * as catalog_option_schema_template from './entities/catalog_option_schema_template/index'\nimport * as catalog_price_kind from './entities/catalog_price_kind/index'\nimport * as catalog_product from './entities/catalog_product/index'\nimport * as catalog_product_category from './entities/catalog_product_category/index'\nimport * as catalog_product_category_assignment from './entities/catalog_product_category_assignment/index'\nimport * as catalog_product_price from './entities/catalog_product_price/index'\nimport * as catalog_product_tag from './entities/catalog_product_tag/index'\nimport * as catalog_product_tag_assignment from './entities/catalog_product_tag_assignment/index'\nimport * as catalog_product_variant from './entities/catalog_product_variant/index'\nimport * as catalog_product_variant_relation from './entities/catalog_product_variant_relation/index'\nimport * as currency from './entities/currency/index'\nimport * as currency_fetch_config from './entities/currency_fetch_config/index'\nimport * as custom_entity from './entities/custom_entity/index'\nimport * as custom_entity_storage from './entities/custom_entity_storage/index'\nimport * as custom_field_def from './entities/custom_field_def/index'\nimport * as custom_field_entity_config from './entities/custom_field_entity_config/index'\nimport * as custom_field_value from './entities/custom_field_value/index'\nimport * as customer_activity from './entities/customer_activity/index'\nimport * as customer_address from './entities/customer_address/index'\nimport * as customer_comment from './entities/customer_comment/index'\nimport * as customer_company_profile from './entities/customer_company_profile/index'\nimport * as customer_deal from './entities/customer_deal/index'\nimport * as customer_deal_company_link from './entities/customer_deal_company_link/index'\nimport * as customer_deal_person_link from './entities/customer_deal_person_link/index'\nimport * as customer_dictionary_entry from './entities/customer_dictionary_entry/index'\nimport * as customer_entity from './entities/customer_entity/index'\nimport * as customer_person_profile from './entities/customer_person_profile/index'\nimport * as customer_settings from './entities/customer_settings/index'\nimport * as customer_tag from './entities/customer_tag/index'\nimport * as customer_tag_assignment from './entities/customer_tag_assignment/index'\nimport * as customer_todo_link from './entities/customer_todo_link/index'\nimport * as dashboard_layout from './entities/dashboard_layout/index'\nimport * as dashboard_role_widgets from './entities/dashboard_role_widgets/index'\nimport * as dashboard_user_widgets from './entities/dashboard_user_widgets/index'\nimport * as dictionary from './entities/dictionary/index'\nimport * as dictionary_entry from './entities/dictionary_entry/index'\nimport * as encryption_map from './entities/encryption_map/index'\nimport * as entity_index_coverage from './entities/entity_index_coverage/index'\nimport * as entity_index_job from './entities/entity_index_job/index'\nimport * as entity_index_row from './entities/entity_index_row/index'\nimport * as entity_translation from './entities/entity_translation/index'\nimport * as exchange_rate from './entities/exchange_rate/index'\nimport * as feature_toggle from './entities/feature_toggle/index'\nimport * as feature_toggle_override from './entities/feature_toggle_override/index'\nimport * as inbox_discrepancy from './entities/inbox_discrepancy/index'\nimport * as inbox_email from './entities/inbox_email/index'\nimport * as inbox_proposal from './entities/inbox_proposal/index'\nimport * as inbox_proposal_action from './entities/inbox_proposal_action/index'\nimport * as inbox_settings from './entities/inbox_settings/index'\nimport * as indexer_error_log from './entities/indexer_error_log/index'\nimport * as indexer_status_log from './entities/indexer_status_log/index'\nimport * as module_config from './entities/module_config/index'\nimport * as notification from './entities/notification/index'\nimport * as organization from './entities/organization/index'\nimport * as password_reset from './entities/password_reset/index'\nimport * as perspective from './entities/perspective/index'\nimport * as planner_availability_rule from './entities/planner_availability_rule/index'\nimport * as planner_availability_rule_set from './entities/planner_availability_rule_set/index'\nimport * as resources_resource from './entities/resources_resource/index'\nimport * as resources_resource_activity from './entities/resources_resource_activity/index'\nimport * as resources_resource_comment from './entities/resources_resource_comment/index'\nimport * as resources_resource_tag from './entities/resources_resource_tag/index'\nimport * as resources_resource_tag_assignment from './entities/resources_resource_tag_assignment/index'\nimport * as resources_resource_type from './entities/resources_resource_type/index'\nimport * as role from './entities/role/index'\nimport * as role_acl from './entities/role_acl/index'\nimport * as role_perspective from './entities/role_perspective/index'\nimport * as role_sidebar_preference from './entities/role_sidebar_preference/index'\nimport * as rule_execution_log from './entities/rule_execution_log/index'\nimport * as rule_set from './entities/rule_set/index'\nimport * as rule_set_member from './entities/rule_set_member/index'\nimport * as sales_channel from './entities/sales_channel/index'\nimport * as sales_credit_memo from './entities/sales_credit_memo/index'\nimport * as sales_credit_memo_line from './entities/sales_credit_memo_line/index'\nimport * as sales_delivery_window from './entities/sales_delivery_window/index'\nimport * as sales_document_address from './entities/sales_document_address/index'\nimport * as sales_document_sequence from './entities/sales_document_sequence/index'\nimport * as sales_document_tag from './entities/sales_document_tag/index'\nimport * as sales_document_tag_assignment from './entities/sales_document_tag_assignment/index'\nimport * as sales_invoice from './entities/sales_invoice/index'\nimport * as sales_invoice_line from './entities/sales_invoice_line/index'\nimport * as sales_note from './entities/sales_note/index'\nimport * as sales_order from './entities/sales_order/index'\nimport * as sales_order_adjustment from './entities/sales_order_adjustment/index'\nimport * as sales_order_line from './entities/sales_order_line/index'\nimport * as sales_payment from './entities/sales_payment/index'\nimport * as sales_payment_allocation from './entities/sales_payment_allocation/index'\nimport * as sales_payment_method from './entities/sales_payment_method/index'\nimport * as sales_quote from './entities/sales_quote/index'\nimport * as sales_quote_adjustment from './entities/sales_quote_adjustment/index'\nimport * as sales_quote_line from './entities/sales_quote_line/index'\nimport * as sales_settings from './entities/sales_settings/index'\nimport * as sales_shipment from './entities/sales_shipment/index'\nimport * as sales_shipment_item from './entities/sales_shipment_item/index'\nimport * as sales_shipping_method from './entities/sales_shipping_method/index'\nimport * as sales_tax_rate from './entities/sales_tax_rate/index'\nimport * as search_token from './entities/search_token/index'\nimport * as session from './entities/session/index'\nimport * as staff_leave_request from './entities/staff_leave_request/index'\nimport * as staff_team from './entities/staff_team/index'\nimport * as staff_team_member from './entities/staff_team_member/index'\nimport * as staff_team_member_activity from './entities/staff_team_member_activity/index'\nimport * as staff_team_member_address from './entities/staff_team_member_address/index'\nimport * as staff_team_member_comment from './entities/staff_team_member_comment/index'\nimport * as staff_team_member_job_history from './entities/staff_team_member_job_history/index'\nimport * as staff_team_role from './entities/staff_team_role/index'\nimport * as step_instance from './entities/step_instance/index'\nimport * as tenant from './entities/tenant/index'\nimport * as upgrade_action_run from './entities/upgrade_action_run/index'\nimport * as user from './entities/user/index'\nimport * as user_acl from './entities/user_acl/index'\nimport * as user_role from './entities/user_role/index'\nimport * as user_sidebar_preference from './entities/user_sidebar_preference/index'\nimport * as user_task from './entities/user_task/index'\nimport * as workflow_definition from './entities/workflow_definition/index'\nimport * as workflow_event from './entities/workflow_event/index'\nimport * as workflow_event_trigger from './entities/workflow_event_trigger/index'\nimport * as workflow_instance from './entities/workflow_instance/index'\n\nexport const entityFieldsRegistry: Record<string, Record<string, string>> = {\n access_log,\n action_log,\n api_key,\n attachment,\n attachment_partition,\n business_rule,\n catalog_offer,\n catalog_option_schema_template,\n catalog_price_kind,\n catalog_product,\n catalog_product_category,\n catalog_product_category_assignment,\n catalog_product_price,\n catalog_product_tag,\n catalog_product_tag_assignment,\n catalog_product_variant,\n catalog_product_variant_relation,\n currency,\n currency_fetch_config,\n custom_entity,\n custom_entity_storage,\n custom_field_def,\n custom_field_entity_config,\n custom_field_value,\n customer_activity,\n customer_address,\n customer_comment,\n customer_company_profile,\n customer_deal,\n customer_deal_company_link,\n customer_deal_person_link,\n customer_dictionary_entry,\n customer_entity,\n customer_person_profile,\n customer_settings,\n customer_tag,\n customer_tag_assignment,\n customer_todo_link,\n dashboard_layout,\n dashboard_role_widgets,\n dashboard_user_widgets,\n dictionary,\n dictionary_entry,\n encryption_map,\n entity_index_coverage,\n entity_index_job,\n entity_index_row,\n entity_translation,\n exchange_rate,\n feature_toggle,\n feature_toggle_override,\n inbox_discrepancy,\n inbox_email,\n inbox_proposal,\n inbox_proposal_action,\n inbox_settings,\n indexer_error_log,\n indexer_status_log,\n module_config,\n notification,\n organization,\n password_reset,\n perspective,\n planner_availability_rule,\n planner_availability_rule_set,\n resources_resource,\n resources_resource_activity,\n resources_resource_comment,\n resources_resource_tag,\n resources_resource_tag_assignment,\n resources_resource_type,\n role,\n role_acl,\n role_perspective,\n role_sidebar_preference,\n rule_execution_log,\n rule_set,\n rule_set_member,\n sales_channel,\n sales_credit_memo,\n sales_credit_memo_line,\n sales_delivery_window,\n sales_document_address,\n sales_document_sequence,\n sales_document_tag,\n sales_document_tag_assignment,\n sales_invoice,\n sales_invoice_line,\n sales_note,\n sales_order,\n sales_order_adjustment,\n sales_order_line,\n sales_payment,\n sales_payment_allocation,\n sales_payment_method,\n sales_quote,\n sales_quote_adjustment,\n sales_quote_line,\n sales_settings,\n sales_shipment,\n sales_shipment_item,\n sales_shipping_method,\n sales_tax_rate,\n search_token,\n session,\n staff_leave_request,\n staff_team,\n staff_team_member,\n staff_team_member_activity,\n staff_team_member_address,\n staff_team_member_comment,\n staff_team_member_job_history,\n staff_team_role,\n step_instance,\n tenant,\n upgrade_action_run,\n user,\n user_acl,\n user_role,\n user_sidebar_preference,\n user_task,\n workflow_definition,\n workflow_event,\n workflow_event_trigger,\n workflow_instance\n}\n\nexport function getEntityFields(slug: string): Record<string, string> | undefined {\n return entityFieldsRegistry[slug]\n}\n"],
5
- "mappings": "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,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,SAAS,gBAAgB,MAAkD;AAChF,SAAO,qBAAqB,IAAI;AAClC;",
4
+ "sourcesContent": ["// AUTO-GENERATED by mercato generate entity-ids\n// Static registry for entity fields - eliminates dynamic imports for Turbopack compatibility\nimport * as access_log from './entities/access_log/index'\nimport * as action_log from './entities/action_log/index'\nimport * as api_key from './entities/api_key/index'\nimport * as attachment from './entities/attachment/index'\nimport * as attachment_partition from './entities/attachment_partition/index'\nimport * as business_rule from './entities/business_rule/index'\nimport * as catalog_offer from './entities/catalog_offer/index'\nimport * as catalog_option_schema_template from './entities/catalog_option_schema_template/index'\nimport * as catalog_price_kind from './entities/catalog_price_kind/index'\nimport * as catalog_product from './entities/catalog_product/index'\nimport * as catalog_product_category from './entities/catalog_product_category/index'\nimport * as catalog_product_category_assignment from './entities/catalog_product_category_assignment/index'\nimport * as catalog_product_price from './entities/catalog_product_price/index'\nimport * as catalog_product_tag from './entities/catalog_product_tag/index'\nimport * as catalog_product_tag_assignment from './entities/catalog_product_tag_assignment/index'\nimport * as catalog_product_variant from './entities/catalog_product_variant/index'\nimport * as catalog_product_variant_relation from './entities/catalog_product_variant_relation/index'\nimport * as currency from './entities/currency/index'\nimport * as currency_fetch_config from './entities/currency_fetch_config/index'\nimport * as custom_entity from './entities/custom_entity/index'\nimport * as custom_entity_storage from './entities/custom_entity_storage/index'\nimport * as custom_field_def from './entities/custom_field_def/index'\nimport * as custom_field_entity_config from './entities/custom_field_entity_config/index'\nimport * as custom_field_value from './entities/custom_field_value/index'\nimport * as customer_activity from './entities/customer_activity/index'\nimport * as customer_address from './entities/customer_address/index'\nimport * as customer_comment from './entities/customer_comment/index'\nimport * as customer_company_profile from './entities/customer_company_profile/index'\nimport * as customer_deal from './entities/customer_deal/index'\nimport * as customer_deal_company_link from './entities/customer_deal_company_link/index'\nimport * as customer_deal_person_link from './entities/customer_deal_person_link/index'\nimport * as customer_dictionary_entry from './entities/customer_dictionary_entry/index'\nimport * as customer_entity from './entities/customer_entity/index'\nimport * as customer_person_profile from './entities/customer_person_profile/index'\nimport * as customer_settings from './entities/customer_settings/index'\nimport * as customer_tag from './entities/customer_tag/index'\nimport * as customer_tag_assignment from './entities/customer_tag_assignment/index'\nimport * as customer_todo_link from './entities/customer_todo_link/index'\nimport * as dashboard_layout from './entities/dashboard_layout/index'\nimport * as dashboard_role_widgets from './entities/dashboard_role_widgets/index'\nimport * as dashboard_user_widgets from './entities/dashboard_user_widgets/index'\nimport * as dictionary from './entities/dictionary/index'\nimport * as dictionary_entry from './entities/dictionary_entry/index'\nimport * as encryption_map from './entities/encryption_map/index'\nimport * as entity_index_coverage from './entities/entity_index_coverage/index'\nimport * as entity_index_job from './entities/entity_index_job/index'\nimport * as entity_index_row from './entities/entity_index_row/index'\nimport * as entity_translation from './entities/entity_translation/index'\nimport * as exchange_rate from './entities/exchange_rate/index'\nimport * as feature_toggle from './entities/feature_toggle/index'\nimport * as feature_toggle_override from './entities/feature_toggle_override/index'\nimport * as inbox_discrepancy from './entities/inbox_discrepancy/index'\nimport * as inbox_email from './entities/inbox_email/index'\nimport * as inbox_proposal from './entities/inbox_proposal/index'\nimport * as inbox_proposal_action from './entities/inbox_proposal_action/index'\nimport * as inbox_settings from './entities/inbox_settings/index'\nimport * as indexer_error_log from './entities/indexer_error_log/index'\nimport * as indexer_status_log from './entities/indexer_status_log/index'\nimport * as module_config from './entities/module_config/index'\nimport * as notification from './entities/notification/index'\nimport * as organization from './entities/organization/index'\nimport * as password_reset from './entities/password_reset/index'\nimport * as perspective from './entities/perspective/index'\nimport * as planner_availability_rule from './entities/planner_availability_rule/index'\nimport * as planner_availability_rule_set from './entities/planner_availability_rule_set/index'\nimport * as progress_job from './entities/progress_job/index'\nimport * as resources_resource from './entities/resources_resource/index'\nimport * as resources_resource_activity from './entities/resources_resource_activity/index'\nimport * as resources_resource_comment from './entities/resources_resource_comment/index'\nimport * as resources_resource_tag from './entities/resources_resource_tag/index'\nimport * as resources_resource_tag_assignment from './entities/resources_resource_tag_assignment/index'\nimport * as resources_resource_type from './entities/resources_resource_type/index'\nimport * as role from './entities/role/index'\nimport * as role_acl from './entities/role_acl/index'\nimport * as role_perspective from './entities/role_perspective/index'\nimport * as role_sidebar_preference from './entities/role_sidebar_preference/index'\nimport * as rule_execution_log from './entities/rule_execution_log/index'\nimport * as rule_set from './entities/rule_set/index'\nimport * as rule_set_member from './entities/rule_set_member/index'\nimport * as sales_channel from './entities/sales_channel/index'\nimport * as sales_credit_memo from './entities/sales_credit_memo/index'\nimport * as sales_credit_memo_line from './entities/sales_credit_memo_line/index'\nimport * as sales_delivery_window from './entities/sales_delivery_window/index'\nimport * as sales_document_address from './entities/sales_document_address/index'\nimport * as sales_document_sequence from './entities/sales_document_sequence/index'\nimport * as sales_document_tag from './entities/sales_document_tag/index'\nimport * as sales_document_tag_assignment from './entities/sales_document_tag_assignment/index'\nimport * as sales_invoice from './entities/sales_invoice/index'\nimport * as sales_invoice_line from './entities/sales_invoice_line/index'\nimport * as sales_note from './entities/sales_note/index'\nimport * as sales_order from './entities/sales_order/index'\nimport * as sales_order_adjustment from './entities/sales_order_adjustment/index'\nimport * as sales_order_line from './entities/sales_order_line/index'\nimport * as sales_payment from './entities/sales_payment/index'\nimport * as sales_payment_allocation from './entities/sales_payment_allocation/index'\nimport * as sales_payment_method from './entities/sales_payment_method/index'\nimport * as sales_quote from './entities/sales_quote/index'\nimport * as sales_quote_adjustment from './entities/sales_quote_adjustment/index'\nimport * as sales_quote_line from './entities/sales_quote_line/index'\nimport * as sales_settings from './entities/sales_settings/index'\nimport * as sales_shipment from './entities/sales_shipment/index'\nimport * as sales_shipment_item from './entities/sales_shipment_item/index'\nimport * as sales_shipping_method from './entities/sales_shipping_method/index'\nimport * as sales_tax_rate from './entities/sales_tax_rate/index'\nimport * as search_token from './entities/search_token/index'\nimport * as session from './entities/session/index'\nimport * as staff_leave_request from './entities/staff_leave_request/index'\nimport * as staff_team from './entities/staff_team/index'\nimport * as staff_team_member from './entities/staff_team_member/index'\nimport * as staff_team_member_activity from './entities/staff_team_member_activity/index'\nimport * as staff_team_member_address from './entities/staff_team_member_address/index'\nimport * as staff_team_member_comment from './entities/staff_team_member_comment/index'\nimport * as staff_team_member_job_history from './entities/staff_team_member_job_history/index'\nimport * as staff_team_role from './entities/staff_team_role/index'\nimport * as step_instance from './entities/step_instance/index'\nimport * as tenant from './entities/tenant/index'\nimport * as upgrade_action_run from './entities/upgrade_action_run/index'\nimport * as user from './entities/user/index'\nimport * as user_acl from './entities/user_acl/index'\nimport * as user_role from './entities/user_role/index'\nimport * as user_sidebar_preference from './entities/user_sidebar_preference/index'\nimport * as user_task from './entities/user_task/index'\nimport * as workflow_definition from './entities/workflow_definition/index'\nimport * as workflow_event from './entities/workflow_event/index'\nimport * as workflow_event_trigger from './entities/workflow_event_trigger/index'\nimport * as workflow_instance from './entities/workflow_instance/index'\n\nexport const entityFieldsRegistry: Record<string, Record<string, string>> = {\n access_log,\n action_log,\n api_key,\n attachment,\n attachment_partition,\n business_rule,\n catalog_offer,\n catalog_option_schema_template,\n catalog_price_kind,\n catalog_product,\n catalog_product_category,\n catalog_product_category_assignment,\n catalog_product_price,\n catalog_product_tag,\n catalog_product_tag_assignment,\n catalog_product_variant,\n catalog_product_variant_relation,\n currency,\n currency_fetch_config,\n custom_entity,\n custom_entity_storage,\n custom_field_def,\n custom_field_entity_config,\n custom_field_value,\n customer_activity,\n customer_address,\n customer_comment,\n customer_company_profile,\n customer_deal,\n customer_deal_company_link,\n customer_deal_person_link,\n customer_dictionary_entry,\n customer_entity,\n customer_person_profile,\n customer_settings,\n customer_tag,\n customer_tag_assignment,\n customer_todo_link,\n dashboard_layout,\n dashboard_role_widgets,\n dashboard_user_widgets,\n dictionary,\n dictionary_entry,\n encryption_map,\n entity_index_coverage,\n entity_index_job,\n entity_index_row,\n entity_translation,\n exchange_rate,\n feature_toggle,\n feature_toggle_override,\n inbox_discrepancy,\n inbox_email,\n inbox_proposal,\n inbox_proposal_action,\n inbox_settings,\n indexer_error_log,\n indexer_status_log,\n module_config,\n notification,\n organization,\n password_reset,\n perspective,\n planner_availability_rule,\n planner_availability_rule_set,\n progress_job,\n resources_resource,\n resources_resource_activity,\n resources_resource_comment,\n resources_resource_tag,\n resources_resource_tag_assignment,\n resources_resource_type,\n role,\n role_acl,\n role_perspective,\n role_sidebar_preference,\n rule_execution_log,\n rule_set,\n rule_set_member,\n sales_channel,\n sales_credit_memo,\n sales_credit_memo_line,\n sales_delivery_window,\n sales_document_address,\n sales_document_sequence,\n sales_document_tag,\n sales_document_tag_assignment,\n sales_invoice,\n sales_invoice_line,\n sales_note,\n sales_order,\n sales_order_adjustment,\n sales_order_line,\n sales_payment,\n sales_payment_allocation,\n sales_payment_method,\n sales_quote,\n sales_quote_adjustment,\n sales_quote_line,\n sales_settings,\n sales_shipment,\n sales_shipment_item,\n sales_shipping_method,\n sales_tax_rate,\n search_token,\n session,\n staff_leave_request,\n staff_team,\n staff_team_member,\n staff_team_member_activity,\n staff_team_member_address,\n staff_team_member_comment,\n staff_team_member_job_history,\n staff_team_role,\n step_instance,\n tenant,\n upgrade_action_run,\n user,\n user_acl,\n user_role,\n user_sidebar_preference,\n user_task,\n workflow_definition,\n workflow_event,\n workflow_event_trigger,\n workflow_instance\n}\n\nexport function getEntityFields(slug: string): Record<string, string> | undefined {\n return entityFieldsRegistry[slug]\n}\n"],
5
+ "mappings": "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ACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,SAAS,gBAAgB,MAAkD;AAChF,SAAO,qBAAqB,IAAI;AAClC;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,51 @@
1
+ import { test, expect } from "@playwright/test";
2
+ import { getAuthToken, apiRequest } from "@open-mercato/core/modules/core/__integration__/helpers/api";
3
+ test.describe("TC-PROG-001: Progress Job Lifecycle", () => {
4
+ test("should create, list, update, and cancel a progress job", async ({ request }) => {
5
+ let token = null;
6
+ let jobId = null;
7
+ try {
8
+ token = await getAuthToken(request);
9
+ const createRes = await apiRequest(request, "POST", "/api/progress/jobs", {
10
+ token,
11
+ data: {
12
+ jobType: "integration-test",
13
+ name: `QA TC-PROG-001 ${Date.now()}`,
14
+ totalCount: 200,
15
+ cancellable: true
16
+ }
17
+ });
18
+ expect(createRes.status()).toBe(201);
19
+ const createBody = await createRes.json();
20
+ expect(createBody.id).toBeTruthy();
21
+ jobId = createBody.id;
22
+ const activeRes = await apiRequest(request, "GET", "/api/progress/active", { token });
23
+ expect(activeRes.ok()).toBeTruthy();
24
+ const activeBody = await activeRes.json();
25
+ const activeIds = activeBody.active.map((j) => j.id);
26
+ expect(activeIds).toContain(jobId);
27
+ const updateRes = await apiRequest(request, "PUT", `/api/progress/jobs/${jobId}`, {
28
+ token,
29
+ data: { processedCount: 80, totalCount: 200 }
30
+ });
31
+ expect(updateRes.ok()).toBeTruthy();
32
+ const updateBody = await updateRes.json();
33
+ expect(updateBody.ok).toBe(true);
34
+ expect(updateBody.progressPercent).toBe(40);
35
+ const cancelRes = await apiRequest(request, "DELETE", `/api/progress/jobs/${jobId}`, { token });
36
+ expect(cancelRes.ok()).toBeTruthy();
37
+ const cancelBody = await cancelRes.json();
38
+ expect(cancelBody.ok).toBe(true);
39
+ const detailRes = await apiRequest(request, "GET", `/api/progress/jobs/${jobId}`, { token });
40
+ expect(detailRes.ok()).toBeTruthy();
41
+ const detailBody = await detailRes.json();
42
+ expect(detailBody.status).toBe("cancelled");
43
+ } finally {
44
+ if (token && jobId) {
45
+ await apiRequest(request, "DELETE", `/api/progress/jobs/${jobId}`, { token }).catch(() => {
46
+ });
47
+ }
48
+ }
49
+ });
50
+ });
51
+ //# sourceMappingURL=TC-PROG-001.spec.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/modules/progress/__integration__/TC-PROG-001.spec.ts"],
4
+ "sourcesContent": ["import { test, expect } from '@playwright/test';\nimport { getAuthToken, apiRequest } from '@open-mercato/core/modules/core/__integration__/helpers/api';\n\n/**\n * TC-PROG-001: Progress Job Lifecycle\n * Covers: create, list active, update progress, cancel\n */\ntest.describe('TC-PROG-001: Progress Job Lifecycle', () => {\n test('should create, list, update, and cancel a progress job', async ({ request }) => {\n let token: string | null = null;\n let jobId: string | null = null;\n\n try {\n token = await getAuthToken(request);\n\n // 1. Create a job via POST /api/progress/jobs\n const createRes = await apiRequest(request, 'POST', '/api/progress/jobs', {\n token,\n data: {\n jobType: 'integration-test',\n name: `QA TC-PROG-001 ${Date.now()}`,\n totalCount: 200,\n cancellable: true,\n },\n });\n expect(createRes.status()).toBe(201);\n const createBody = await createRes.json();\n expect(createBody.id).toBeTruthy();\n jobId = createBody.id;\n\n // 2. Verify it appears in GET /api/progress/active\n const activeRes = await apiRequest(request, 'GET', '/api/progress/active', { token });\n expect(activeRes.ok()).toBeTruthy();\n const activeBody = await activeRes.json();\n const activeIds = activeBody.active.map((j: { id: string }) => j.id);\n expect(activeIds).toContain(jobId);\n\n // 3. Update progress via PUT /api/progress/jobs/:id\n const updateRes = await apiRequest(request, 'PUT', `/api/progress/jobs/${jobId}`, {\n token,\n data: { processedCount: 80, totalCount: 200 },\n });\n expect(updateRes.ok()).toBeTruthy();\n const updateBody = await updateRes.json();\n expect(updateBody.ok).toBe(true);\n expect(updateBody.progressPercent).toBe(40);\n\n // 4. Cancel job via DELETE /api/progress/jobs/:id\n const cancelRes = await apiRequest(request, 'DELETE', `/api/progress/jobs/${jobId}`, { token });\n expect(cancelRes.ok()).toBeTruthy();\n const cancelBody = await cancelRes.json();\n expect(cancelBody.ok).toBe(true);\n\n // 5. Verify the job is now cancelled (pending jobs cancel immediately)\n const detailRes = await apiRequest(request, 'GET', `/api/progress/jobs/${jobId}`, { token });\n expect(detailRes.ok()).toBeTruthy();\n const detailBody = await detailRes.json();\n expect(detailBody.status).toBe('cancelled');\n } finally {\n // Jobs are soft state \u2014 no explicit cleanup needed.\n // If the test created a job that wasn't cancelled, cancel it to keep state clean.\n if (token && jobId) {\n await apiRequest(request, 'DELETE', `/api/progress/jobs/${jobId}`, { token }).catch(() => {});\n }\n }\n });\n});\n"],
5
+ "mappings": "AAAA,SAAS,MAAM,cAAc;AAC7B,SAAS,cAAc,kBAAkB;AAMzC,KAAK,SAAS,uCAAuC,MAAM;AACzD,OAAK,0DAA0D,OAAO,EAAE,QAAQ,MAAM;AACpF,QAAI,QAAuB;AAC3B,QAAI,QAAuB;AAE3B,QAAI;AACF,cAAQ,MAAM,aAAa,OAAO;AAGlC,YAAM,YAAY,MAAM,WAAW,SAAS,QAAQ,sBAAsB;AAAA,QACxE;AAAA,QACA,MAAM;AAAA,UACJ,SAAS;AAAA,UACT,MAAM,kBAAkB,KAAK,IAAI,CAAC;AAAA,UAClC,YAAY;AAAA,UACZ,aAAa;AAAA,QACf;AAAA,MACF,CAAC;AACD,aAAO,UAAU,OAAO,CAAC,EAAE,KAAK,GAAG;AACnC,YAAM,aAAa,MAAM,UAAU,KAAK;AACxC,aAAO,WAAW,EAAE,EAAE,WAAW;AACjC,cAAQ,WAAW;AAGnB,YAAM,YAAY,MAAM,WAAW,SAAS,OAAO,wBAAwB,EAAE,MAAM,CAAC;AACpF,aAAO,UAAU,GAAG,CAAC,EAAE,WAAW;AAClC,YAAM,aAAa,MAAM,UAAU,KAAK;AACxC,YAAM,YAAY,WAAW,OAAO,IAAI,CAAC,MAAsB,EAAE,EAAE;AACnE,aAAO,SAAS,EAAE,UAAU,KAAK;AAGjC,YAAM,YAAY,MAAM,WAAW,SAAS,OAAO,sBAAsB,KAAK,IAAI;AAAA,QAChF;AAAA,QACA,MAAM,EAAE,gBAAgB,IAAI,YAAY,IAAI;AAAA,MAC9C,CAAC;AACD,aAAO,UAAU,GAAG,CAAC,EAAE,WAAW;AAClC,YAAM,aAAa,MAAM,UAAU,KAAK;AACxC,aAAO,WAAW,EAAE,EAAE,KAAK,IAAI;AAC/B,aAAO,WAAW,eAAe,EAAE,KAAK,EAAE;AAG1C,YAAM,YAAY,MAAM,WAAW,SAAS,UAAU,sBAAsB,KAAK,IAAI,EAAE,MAAM,CAAC;AAC9F,aAAO,UAAU,GAAG,CAAC,EAAE,WAAW;AAClC,YAAM,aAAa,MAAM,UAAU,KAAK;AACxC,aAAO,WAAW,EAAE,EAAE,KAAK,IAAI;AAG/B,YAAM,YAAY,MAAM,WAAW,SAAS,OAAO,sBAAsB,KAAK,IAAI,EAAE,MAAM,CAAC;AAC3F,aAAO,UAAU,GAAG,CAAC,EAAE,WAAW;AAClC,YAAM,aAAa,MAAM,UAAU,KAAK;AACxC,aAAO,WAAW,MAAM,EAAE,KAAK,WAAW;AAAA,IAC5C,UAAE;AAGA,UAAI,SAAS,OAAO;AAClB,cAAM,WAAW,SAAS,UAAU,sBAAsB,KAAK,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,MAAM;AAAA,QAAC,CAAC;AAAA,MAC9F;AAAA,IACF;AAAA,EACF,CAAC;AACH,CAAC;",
6
+ "names": []
7
+ }
@@ -0,0 +1,33 @@
1
+ const features = [
2
+ {
3
+ id: "progress.view",
4
+ title: "View progress jobs",
5
+ module: "progress"
6
+ },
7
+ {
8
+ id: "progress.create",
9
+ title: "Create progress jobs",
10
+ module: "progress"
11
+ },
12
+ {
13
+ id: "progress.update",
14
+ title: "Update progress jobs",
15
+ module: "progress"
16
+ },
17
+ {
18
+ id: "progress.cancel",
19
+ title: "Cancel progress jobs",
20
+ module: "progress"
21
+ },
22
+ {
23
+ id: "progress.manage",
24
+ title: "Manage all progress jobs",
25
+ module: "progress"
26
+ }
27
+ ];
28
+ var acl_default = features;
29
+ export {
30
+ acl_default as default,
31
+ features
32
+ };
33
+ //# sourceMappingURL=acl.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/modules/progress/acl.ts"],
4
+ "sourcesContent": ["export const features = [\n {\n id: 'progress.view',\n title: 'View progress jobs',\n module: 'progress',\n },\n {\n id: 'progress.create',\n title: 'Create progress jobs',\n module: 'progress',\n },\n {\n id: 'progress.update',\n title: 'Update progress jobs',\n module: 'progress',\n },\n {\n id: 'progress.cancel',\n title: 'Cancel progress jobs',\n module: 'progress',\n },\n {\n id: 'progress.manage',\n title: 'Manage all progress jobs',\n module: 'progress',\n },\n]\n\nexport default features\n"],
5
+ "mappings": "AAAO,MAAM,WAAW;AAAA,EACtB;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AACF;AAEA,IAAO,cAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,57 @@
1
+ import { NextResponse } from "next/server";
2
+ import { getAuthFromRequest } from "@open-mercato/shared/lib/auth/server";
3
+ import { createRequestContainer } from "@open-mercato/shared/lib/di/container";
4
+ const routeMetadata = {
5
+ GET: { requireAuth: true, requireFeatures: ["progress.view"] }
6
+ };
7
+ const metadata = routeMetadata;
8
+ async function GET(req) {
9
+ const auth = await getAuthFromRequest(req);
10
+ if (!auth || !auth.tenantId) {
11
+ return NextResponse.json({ active: [], recentlyCompleted: [] }, { status: 401 });
12
+ }
13
+ const container = await createRequestContainer();
14
+ const progressService = container.resolve("progressService");
15
+ const ctx = { tenantId: auth.tenantId, organizationId: auth.orgId };
16
+ const [jobs, recentlyCompleted] = await Promise.all([
17
+ progressService.getActiveJobs(ctx),
18
+ progressService.getRecentlyCompletedJobs(ctx)
19
+ ]);
20
+ return NextResponse.json({
21
+ active: jobs.map(formatJob),
22
+ recentlyCompleted: recentlyCompleted.map(formatJob)
23
+ });
24
+ }
25
+ function formatJob(job) {
26
+ return {
27
+ id: job.id,
28
+ jobType: job.jobType,
29
+ name: job.name,
30
+ description: job.description,
31
+ status: job.status,
32
+ progressPercent: job.progressPercent,
33
+ processedCount: job.processedCount,
34
+ totalCount: job.totalCount,
35
+ etaSeconds: job.etaSeconds,
36
+ cancellable: job.cancellable,
37
+ startedAt: job.startedAt?.toISOString() ?? null,
38
+ finishedAt: job.finishedAt?.toISOString() ?? null,
39
+ errorMessage: job.errorMessage
40
+ };
41
+ }
42
+ const openApi = {
43
+ GET: {
44
+ summary: "Get active progress jobs",
45
+ description: "Returns currently running jobs and recently completed jobs for the progress top bar.",
46
+ tags: ["Progress"],
47
+ responses: {
48
+ 200: { description: "Active and recently completed jobs" }
49
+ }
50
+ }
51
+ };
52
+ export {
53
+ GET,
54
+ metadata,
55
+ openApi
56
+ };
57
+ //# sourceMappingURL=route.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/modules/progress/api/active/route.ts"],
4
+ "sourcesContent": ["import { NextResponse } from 'next/server'\nimport { getAuthFromRequest } from '@open-mercato/shared/lib/auth/server'\nimport { createRequestContainer } from '@open-mercato/shared/lib/di/container'\nimport type { ProgressJob } from '../../data/entities'\n\nconst routeMetadata = {\n GET: { requireAuth: true, requireFeatures: ['progress.view'] },\n}\n\nexport const metadata = routeMetadata\n\nexport async function GET(req: Request) {\n const auth = await getAuthFromRequest(req)\n if (!auth || !auth.tenantId) {\n return NextResponse.json({ active: [], recentlyCompleted: [] }, { status: 401 })\n }\n\n const container = await createRequestContainer()\n const progressService = container.resolve('progressService') as import('../../lib/progressService').ProgressService\n\n const ctx = { tenantId: auth.tenantId, organizationId: auth.orgId }\n\n const [jobs, recentlyCompleted] = await Promise.all([\n progressService.getActiveJobs(ctx),\n progressService.getRecentlyCompletedJobs(ctx),\n ])\n\n return NextResponse.json({\n active: jobs.map(formatJob),\n recentlyCompleted: recentlyCompleted.map(formatJob),\n })\n}\n\nfunction formatJob(job: ProgressJob) {\n return {\n id: job.id,\n jobType: job.jobType,\n name: job.name,\n description: job.description,\n status: job.status,\n progressPercent: job.progressPercent,\n processedCount: job.processedCount,\n totalCount: job.totalCount,\n etaSeconds: job.etaSeconds,\n cancellable: job.cancellable,\n startedAt: job.startedAt?.toISOString() ?? null,\n finishedAt: job.finishedAt?.toISOString() ?? null,\n errorMessage: job.errorMessage,\n }\n}\n\nexport const openApi = {\n GET: {\n summary: 'Get active progress jobs',\n description: 'Returns currently running jobs and recently completed jobs for the progress top bar.',\n tags: ['Progress'],\n responses: {\n 200: { description: 'Active and recently completed jobs' },\n },\n },\n}\n"],
5
+ "mappings": "AAAA,SAAS,oBAAoB;AAC7B,SAAS,0BAA0B;AACnC,SAAS,8BAA8B;AAGvC,MAAM,gBAAgB;AAAA,EACpB,KAAK,EAAE,aAAa,MAAM,iBAAiB,CAAC,eAAe,EAAE;AAC/D;AAEO,MAAM,WAAW;AAExB,eAAsB,IAAI,KAAc;AACtC,QAAM,OAAO,MAAM,mBAAmB,GAAG;AACzC,MAAI,CAAC,QAAQ,CAAC,KAAK,UAAU;AAC3B,WAAO,aAAa,KAAK,EAAE,QAAQ,CAAC,GAAG,mBAAmB,CAAC,EAAE,GAAG,EAAE,QAAQ,IAAI,CAAC;AAAA,EACjF;AAEA,QAAM,YAAY,MAAM,uBAAuB;AAC/C,QAAM,kBAAkB,UAAU,QAAQ,iBAAiB;AAE3D,QAAM,MAAM,EAAE,UAAU,KAAK,UAAU,gBAAgB,KAAK,MAAM;AAElE,QAAM,CAAC,MAAM,iBAAiB,IAAI,MAAM,QAAQ,IAAI;AAAA,IAClD,gBAAgB,cAAc,GAAG;AAAA,IACjC,gBAAgB,yBAAyB,GAAG;AAAA,EAC9C,CAAC;AAED,SAAO,aAAa,KAAK;AAAA,IACvB,QAAQ,KAAK,IAAI,SAAS;AAAA,IAC1B,mBAAmB,kBAAkB,IAAI,SAAS;AAAA,EACpD,CAAC;AACH;AAEA,SAAS,UAAU,KAAkB;AACnC,SAAO;AAAA,IACL,IAAI,IAAI;AAAA,IACR,SAAS,IAAI;AAAA,IACb,MAAM,IAAI;AAAA,IACV,aAAa,IAAI;AAAA,IACjB,QAAQ,IAAI;AAAA,IACZ,iBAAiB,IAAI;AAAA,IACrB,gBAAgB,IAAI;AAAA,IACpB,YAAY,IAAI;AAAA,IAChB,YAAY,IAAI;AAAA,IAChB,aAAa,IAAI;AAAA,IACjB,WAAW,IAAI,WAAW,YAAY,KAAK;AAAA,IAC3C,YAAY,IAAI,YAAY,YAAY,KAAK;AAAA,IAC7C,cAAc,IAAI;AAAA,EACpB;AACF;AAEO,MAAM,UAAU;AAAA,EACrB,KAAK;AAAA,IACH,SAAS;AAAA,IACT,aAAa;AAAA,IACb,MAAM,CAAC,UAAU;AAAA,IACjB,WAAW;AAAA,MACT,KAAK,EAAE,aAAa,qCAAqC;AAAA,IAC3D;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,126 @@
1
+ import { NextResponse } from "next/server";
2
+ import { getAuthFromRequest } from "@open-mercato/shared/lib/auth/server";
3
+ import { createRequestContainer } from "@open-mercato/shared/lib/di/container";
4
+ import { ProgressJob } from "../../../data/entities.js";
5
+ import { updateProgressSchema } from "../../../data/validators.js";
6
+ const routeMetadata = {
7
+ GET: { requireAuth: true, requireFeatures: ["progress.view"] },
8
+ PUT: { requireAuth: true, requireFeatures: ["progress.update"] },
9
+ DELETE: { requireAuth: true, requireFeatures: ["progress.cancel"] }
10
+ };
11
+ const metadata = routeMetadata;
12
+ async function GET(req, { params }) {
13
+ const auth = await getAuthFromRequest(req);
14
+ if (!auth || !auth.tenantId) {
15
+ return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
16
+ }
17
+ const container = await createRequestContainer();
18
+ const em = container.resolve("em");
19
+ const job = await em.findOne(ProgressJob, {
20
+ id: params.id,
21
+ tenantId: auth.tenantId
22
+ });
23
+ if (!job) {
24
+ return NextResponse.json({ error: "Not found" }, { status: 404 });
25
+ }
26
+ return NextResponse.json({
27
+ id: job.id,
28
+ jobType: job.jobType,
29
+ name: job.name,
30
+ description: job.description,
31
+ status: job.status,
32
+ progressPercent: job.progressPercent,
33
+ processedCount: job.processedCount,
34
+ totalCount: job.totalCount,
35
+ etaSeconds: job.etaSeconds,
36
+ cancellable: job.cancellable,
37
+ meta: job.meta,
38
+ resultSummary: job.resultSummary,
39
+ errorMessage: job.errorMessage,
40
+ startedByUserId: job.startedByUserId,
41
+ startedAt: job.startedAt?.toISOString() ?? null,
42
+ heartbeatAt: job.heartbeatAt?.toISOString() ?? null,
43
+ finishedAt: job.finishedAt?.toISOString() ?? null,
44
+ parentJobId: job.parentJobId,
45
+ partitionIndex: job.partitionIndex,
46
+ partitionCount: job.partitionCount,
47
+ createdAt: job.createdAt.toISOString(),
48
+ updatedAt: job.updatedAt.toISOString(),
49
+ tenantId: job.tenantId,
50
+ organizationId: job.organizationId
51
+ });
52
+ }
53
+ async function PUT(req, { params }) {
54
+ const auth = await getAuthFromRequest(req);
55
+ if (!auth || !auth.tenantId) {
56
+ return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
57
+ }
58
+ const body = await req.json();
59
+ const parsed = updateProgressSchema.safeParse(body);
60
+ if (!parsed.success) {
61
+ return NextResponse.json({ error: "Invalid input", details: parsed.error.flatten() }, { status: 400 });
62
+ }
63
+ const container = await createRequestContainer();
64
+ const progressService = container.resolve("progressService");
65
+ const job = await progressService.updateProgress(params.id, parsed.data, {
66
+ tenantId: auth.tenantId,
67
+ organizationId: auth.orgId,
68
+ userId: auth.sub
69
+ });
70
+ return NextResponse.json({ ok: true, progressPercent: job.progressPercent });
71
+ }
72
+ async function DELETE(req, { params }) {
73
+ const auth = await getAuthFromRequest(req);
74
+ if (!auth || !auth.tenantId) {
75
+ return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
76
+ }
77
+ const container = await createRequestContainer();
78
+ const progressService = container.resolve("progressService");
79
+ try {
80
+ await progressService.cancelJob(params.id, {
81
+ tenantId: auth.tenantId,
82
+ organizationId: auth.orgId,
83
+ userId: auth.sub
84
+ });
85
+ return NextResponse.json({ ok: true });
86
+ } catch {
87
+ return NextResponse.json({ error: "Cannot cancel this job" }, { status: 400 });
88
+ }
89
+ }
90
+ const openApi = {
91
+ GET: {
92
+ summary: "Get progress job details",
93
+ description: "Returns full details of a specific progress job by ID.",
94
+ tags: ["Progress"],
95
+ responses: {
96
+ 200: { description: "Progress job details" },
97
+ 404: { description: "Job not found" }
98
+ }
99
+ },
100
+ PUT: {
101
+ summary: "Update progress job",
102
+ description: "Updates progress metrics and heartbeat for a running job.",
103
+ tags: ["Progress"],
104
+ responses: {
105
+ 200: { description: "Progress updated" },
106
+ 400: { description: "Invalid input" }
107
+ }
108
+ },
109
+ DELETE: {
110
+ summary: "Cancel progress job",
111
+ description: "Requests cancellation of a running or pending job.",
112
+ tags: ["Progress"],
113
+ responses: {
114
+ 200: { description: "Cancellation requested" },
115
+ 400: { description: "Cannot cancel this job" }
116
+ }
117
+ }
118
+ };
119
+ export {
120
+ DELETE,
121
+ GET,
122
+ PUT,
123
+ metadata,
124
+ openApi
125
+ };
126
+ //# sourceMappingURL=route.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/modules/progress/api/jobs/%5Bid%5D/route.ts"],
4
+ "sourcesContent": ["import { NextResponse } from 'next/server'\nimport { getAuthFromRequest } from '@open-mercato/shared/lib/auth/server'\nimport { createRequestContainer } from '@open-mercato/shared/lib/di/container'\nimport type { EntityManager } from '@mikro-orm/postgresql'\nimport { ProgressJob } from '../../../data/entities'\nimport { updateProgressSchema } from '../../../data/validators'\nimport type { ProgressService } from '../../../lib/progressService'\n\nconst routeMetadata = {\n GET: { requireAuth: true, requireFeatures: ['progress.view'] },\n PUT: { requireAuth: true, requireFeatures: ['progress.update'] },\n DELETE: { requireAuth: true, requireFeatures: ['progress.cancel'] },\n}\n\nexport const metadata = routeMetadata\n\nexport async function GET(req: Request, { params }: { params: { id: string } }) {\n const auth = await getAuthFromRequest(req)\n if (!auth || !auth.tenantId) {\n return NextResponse.json({ error: 'Unauthorized' }, { status: 401 })\n }\n\n const container = await createRequestContainer()\n const em = container.resolve('em') as EntityManager\n\n const job = await em.findOne(ProgressJob, {\n id: params.id,\n tenantId: auth.tenantId,\n })\n\n if (!job) {\n return NextResponse.json({ error: 'Not found' }, { status: 404 })\n }\n\n return NextResponse.json({\n id: job.id,\n jobType: job.jobType,\n name: job.name,\n description: job.description,\n status: job.status,\n progressPercent: job.progressPercent,\n processedCount: job.processedCount,\n totalCount: job.totalCount,\n etaSeconds: job.etaSeconds,\n cancellable: job.cancellable,\n meta: job.meta,\n resultSummary: job.resultSummary,\n errorMessage: job.errorMessage,\n startedByUserId: job.startedByUserId,\n startedAt: job.startedAt?.toISOString() ?? null,\n heartbeatAt: job.heartbeatAt?.toISOString() ?? null,\n finishedAt: job.finishedAt?.toISOString() ?? null,\n parentJobId: job.parentJobId,\n partitionIndex: job.partitionIndex,\n partitionCount: job.partitionCount,\n createdAt: job.createdAt.toISOString(),\n updatedAt: job.updatedAt.toISOString(),\n tenantId: job.tenantId,\n organizationId: job.organizationId,\n })\n}\n\nexport async function PUT(req: Request, { params }: { params: { id: string } }) {\n const auth = await getAuthFromRequest(req)\n if (!auth || !auth.tenantId) {\n return NextResponse.json({ error: 'Unauthorized' }, { status: 401 })\n }\n\n const body = await req.json()\n const parsed = updateProgressSchema.safeParse(body)\n if (!parsed.success) {\n return NextResponse.json({ error: 'Invalid input', details: parsed.error.flatten() }, { status: 400 })\n }\n\n const container = await createRequestContainer()\n const progressService = container.resolve('progressService') as ProgressService\n\n const job = await progressService.updateProgress(params.id, parsed.data, {\n tenantId: auth.tenantId,\n organizationId: auth.orgId,\n userId: auth.sub,\n })\n\n return NextResponse.json({ ok: true, progressPercent: job.progressPercent })\n}\n\nexport async function DELETE(req: Request, { params }: { params: { id: string } }) {\n const auth = await getAuthFromRequest(req)\n if (!auth || !auth.tenantId) {\n return NextResponse.json({ error: 'Unauthorized' }, { status: 401 })\n }\n\n const container = await createRequestContainer()\n const progressService = container.resolve('progressService') as ProgressService\n\n try {\n await progressService.cancelJob(params.id, {\n tenantId: auth.tenantId,\n organizationId: auth.orgId,\n userId: auth.sub,\n })\n return NextResponse.json({ ok: true })\n } catch {\n return NextResponse.json({ error: 'Cannot cancel this job' }, { status: 400 })\n }\n}\n\nexport const openApi = {\n GET: {\n summary: 'Get progress job details',\n description: 'Returns full details of a specific progress job by ID.',\n tags: ['Progress'],\n responses: {\n 200: { description: 'Progress job details' },\n 404: { description: 'Job not found' },\n },\n },\n PUT: {\n summary: 'Update progress job',\n description: 'Updates progress metrics and heartbeat for a running job.',\n tags: ['Progress'],\n responses: {\n 200: { description: 'Progress updated' },\n 400: { description: 'Invalid input' },\n },\n },\n DELETE: {\n summary: 'Cancel progress job',\n description: 'Requests cancellation of a running or pending job.',\n tags: ['Progress'],\n responses: {\n 200: { description: 'Cancellation requested' },\n 400: { description: 'Cannot cancel this job' },\n },\n },\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }