celerp 2.2.0__tar.gz → 2.2.1__tar.gz

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 (617) hide show
  1. {celerp-2.2.0 → celerp-2.2.1}/PKG-INFO +1 -1
  2. {celerp-2.2.0 → celerp-2.2.1}/celerp/output/pdf.py +1 -1
  3. {celerp-2.2.0 → celerp-2.2.1}/celerp.egg-info/PKG-INFO +1 -1
  4. {celerp-2.2.0 → celerp-2.2.1}/celerp.egg-info/SOURCES.txt +1 -0
  5. {celerp-2.2.0 → celerp-2.2.1}/celerp.egg-info/scm_file_list.json +7 -0
  6. celerp-2.2.1/celerp.egg-info/scm_version.json +8 -0
  7. {celerp-2.2.0 → celerp-2.2.1}/conftest.py +11 -14
  8. celerp-2.2.1/conftest_support.py +44 -0
  9. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-inventory/celerp_inventory/routes.py +17 -4
  10. {celerp-2.2.0 → celerp-2.2.1}/default_modules/first_party.lock.json +1 -1
  11. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/documents.py +18 -11
  12. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/inventory.py +5 -1
  13. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/reconciliation.py +2 -2
  14. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/setup.py +4 -4
  15. celerp-2.2.0/celerp.egg-info/scm_version.json +0 -8
  16. {celerp-2.2.0 → celerp-2.2.1}/CLA.md +0 -0
  17. {celerp-2.2.0 → celerp-2.2.1}/CONTRIBUTING.md +0 -0
  18. {celerp-2.2.0 → celerp-2.2.1}/LICENSE +0 -0
  19. {celerp-2.2.0 → celerp-2.2.1}/LICENSING.md +0 -0
  20. {celerp-2.2.0 → celerp-2.2.1}/MANIFEST.in +0 -0
  21. {celerp-2.2.0 → celerp-2.2.1}/NOTICE +0 -0
  22. {celerp-2.2.0 → celerp-2.2.1}/README.md +0 -0
  23. {celerp-2.2.0 → celerp-2.2.1}/alembic.ini +0 -0
  24. {celerp-2.2.0 → celerp-2.2.1}/celerp/__init__.py +0 -0
  25. {celerp-2.2.0 → celerp-2.2.1}/celerp/__main__.py +0 -0
  26. {celerp-2.2.0 → celerp-2.2.1}/celerp/ai/__init__.py +0 -0
  27. {celerp-2.2.0 → celerp-2.2.1}/celerp/ai/batch.py +0 -0
  28. {celerp-2.2.0 → celerp-2.2.1}/celerp/ai/cleanup.py +0 -0
  29. {celerp-2.2.0 → celerp-2.2.1}/celerp/ai/commands.py +0 -0
  30. {celerp-2.2.0 → celerp-2.2.1}/celerp/ai/conversations.py +0 -0
  31. {celerp-2.2.0 → celerp-2.2.1}/celerp/ai/files.py +0 -0
  32. {celerp-2.2.0 → celerp-2.2.1}/celerp/ai/intent.py +0 -0
  33. {celerp-2.2.0 → celerp-2.2.1}/celerp/ai/llm.py +0 -0
  34. {celerp-2.2.0 → celerp-2.2.1}/celerp/ai/memory.py +0 -0
  35. {celerp-2.2.0 → celerp-2.2.1}/celerp/ai/models.py +0 -0
  36. {celerp-2.2.0 → celerp-2.2.1}/celerp/ai/page_count.py +0 -0
  37. {celerp-2.2.0 → celerp-2.2.1}/celerp/ai/quota.py +0 -0
  38. {celerp-2.2.0 → celerp-2.2.1}/celerp/ai/service.py +0 -0
  39. {celerp-2.2.0 → celerp-2.2.1}/celerp/ai/tools.py +0 -0
  40. {celerp-2.2.0 → celerp-2.2.1}/celerp/alembic.ini +0 -0
  41. {celerp-2.2.0 → celerp-2.2.1}/celerp/alembic_config.py +0 -0
  42. {celerp-2.2.0 → celerp-2.2.1}/celerp/cli.py +0 -0
  43. {celerp-2.2.0 → celerp-2.2.1}/celerp/compat.py +0 -0
  44. {celerp-2.2.0 → celerp-2.2.1}/celerp/compute/__init__.py +0 -0
  45. {celerp-2.2.0 → celerp-2.2.1}/celerp/compute/aggregations.py +0 -0
  46. {celerp-2.2.0 → celerp-2.2.1}/celerp/compute/valuation.py +0 -0
  47. {celerp-2.2.0 → celerp-2.2.1}/celerp/config.py +0 -0
  48. {celerp-2.2.0 → celerp-2.2.1}/celerp/connectors/__init__.py +0 -0
  49. {celerp-2.2.0 → celerp-2.2.1}/celerp/connectors/base.py +0 -0
  50. {celerp-2.2.0 → celerp-2.2.1}/celerp/connectors/daily_scheduler.py +0 -0
  51. {celerp-2.2.0 → celerp-2.2.1}/celerp/connectors/http.py +0 -0
  52. {celerp-2.2.0 → celerp-2.2.1}/celerp/connectors/images.py +0 -0
  53. {celerp-2.2.0 → celerp-2.2.1}/celerp/connectors/quickbooks.py +0 -0
  54. {celerp-2.2.0 → celerp-2.2.1}/celerp/connectors/registry.py +0 -0
  55. {celerp-2.2.0 → celerp-2.2.1}/celerp/connectors/relay_token.py +0 -0
  56. {celerp-2.2.0 → celerp-2.2.1}/celerp/connectors/shopify.py +0 -0
  57. {celerp-2.2.0 → celerp-2.2.1}/celerp/connectors/sync_runner.py +0 -0
  58. {celerp-2.2.0 → celerp-2.2.1}/celerp/connectors/upsert.py +0 -0
  59. {celerp-2.2.0 → celerp-2.2.1}/celerp/connectors/util.py +0 -0
  60. {celerp-2.2.0 → celerp-2.2.1}/celerp/connectors/webhooks.py +0 -0
  61. {celerp-2.2.0 → celerp-2.2.1}/celerp/connectors/woocommerce.py +0 -0
  62. {celerp-2.2.0 → celerp-2.2.1}/celerp/connectors/xero.py +0 -0
  63. {celerp-2.2.0 → celerp-2.2.1}/celerp/constants.py +0 -0
  64. {celerp-2.2.0 → celerp-2.2.1}/celerp/db.py +0 -0
  65. {celerp-2.2.0 → celerp-2.2.1}/celerp/embedded_pg.py +0 -0
  66. {celerp-2.2.0 → celerp-2.2.1}/celerp/events/__init__.py +0 -0
  67. {celerp-2.2.0 → celerp-2.2.1}/celerp/events/engine.py +0 -0
  68. {celerp-2.2.0 → celerp-2.2.1}/celerp/events/schemas.py +0 -0
  69. {celerp-2.2.0 → celerp-2.2.1}/celerp/events/types.py +0 -0
  70. {celerp-2.2.0 → celerp-2.2.1}/celerp/gateway/__init__.py +0 -0
  71. {celerp-2.2.0 → celerp-2.2.1}/celerp/gateway/client.py +0 -0
  72. {celerp-2.2.0 → celerp-2.2.1}/celerp/gateway/state.py +0 -0
  73. {celerp-2.2.0 → celerp-2.2.1}/celerp/importers/__init__.py +0 -0
  74. {celerp-2.2.0 → celerp-2.2.1}/celerp/importers/importer.py +0 -0
  75. {celerp-2.2.0 → celerp-2.2.1}/celerp/importers/schema.py +0 -0
  76. {celerp-2.2.0 → celerp-2.2.1}/celerp/main.py +0 -0
  77. {celerp-2.2.0 → celerp-2.2.1}/celerp/middleware.py +0 -0
  78. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/README.md +0 -0
  79. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/_auto_stamp.py +0 -0
  80. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/_data_reconcile.py +0 -0
  81. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/_json_compat.py +0 -0
  82. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/env.py +0 -0
  83. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/script.py.mako +0 -0
  84. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/a0b1c2d3e4f5_seed_landed_cost_clearing_accounts.py +0 -0
  85. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/a1b2c3d4e5f6_add_doc_share_tokens.py +0 -0
  86. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/b1c2d3e4f5a6_add_supporter_badges.py +0 -0
  87. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/b2c3d4e5f6a7_add_import_batches.py +0 -0
  88. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/b3c4d5e6f7a8_expand_role_permissions_to_role_grants.py +0 -0
  89. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/c1d2e3f4a5b6_add_marketplace.py +0 -0
  90. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/c2d3e4f5a6b7_add_is_sync_to_shopify.py +0 -0
  91. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/c4d5e6f7a8b9_account_cash_flow_category.py +0 -0
  92. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/d0e1f2a3b4c5_add_share_token_expiry.py +0 -0
  93. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/d2e3f4a5b6c7_add_password_reset_token.py +0 -0
  94. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/d5e6f7a8b9c0_rename_fx_rounding_to_fx_difference.py +0 -0
  95. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/e3f4a5b6c7d8_add_company_is_active.py +0 -0
  96. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/e4f5a6b7c8d9_backfill_connector_idempotency_key.py +0 -0
  97. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/e7c9a1b3d5f2_work_center_default_columns.py +0 -0
  98. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/f1a2b3c4d5e6_move_accounts_marketplace_to_modules.py +0 -0
  99. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/f6a7b8c9d0e1_seed_fx_rounding_account.py +0 -0
  100. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/f8a9b0c1d2e3_work_center_default_backfill.py +0 -0
  101. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/fd5de461e14e_initial_schema.py +0 -0
  102. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/g1h2i3j4k5l6_add_consignment_flag.py +0 -0
  103. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/h2i3j4k5l6m7_add_bank_accounts_and_reconciliation.py +0 -0
  104. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/j4k5l6m7n8o9_labels_db_persistence.py +0 -0
  105. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/k5l6m7n8o9p0_add_reconciliation_v2.py +0 -0
  106. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/l6m7n8o9p0q1_add_sync_runs_table.py +0 -0
  107. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/m7n8o9p0q1r2_add_connector_configs_and_outbound_queue.py +0 -0
  108. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/n8o9p0q1r2s3_backfill_payment_date.py +0 -0
  109. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/o9p0q1r2s3t4_backfill_item_price_fields.py +0 -0
  110. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/p1q2r3s4t5u6_add_session_registry_and_user_auth_state.py +0 -0
  111. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/q2r3s4t5u6v7_add_system_runtime_state.py +0 -0
  112. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/r3s4t5u6v7w8_add_projections_company_entity_type_index.py +0 -0
  113. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/s4t5u6v7w8x9_drop_user_company_id_role.py +0 -0
  114. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/t5u6v7w8x9y0_seed_inventory_sub_accounts.py +0 -0
  115. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/u6v7w8x9y0z1_backfill_item_prices_from_attributes.py +0 -0
  116. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/v7w8x9y0z1a2_backfill_purchase_unit_defaults.py +0 -0
  117. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/w8x9y0z1a2b3_backfill_category_unit_defaults.py +0 -0
  118. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/x7y8z9a0b1c2_add_projection_created_at.py +0 -0
  119. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/y8z9a0b1c2d3_per_company_ledger_idempotency.py +0 -0
  120. {celerp-2.2.0 → celerp-2.2.1}/celerp/migrations/versions/z9a0b1c2d3e4_work_centers.py +0 -0
  121. {celerp-2.2.0 → celerp-2.2.1}/celerp/models/__init__.py +0 -0
  122. {celerp-2.2.0 → celerp-2.2.1}/celerp/models/accounting.py +0 -0
  123. {celerp-2.2.0 → celerp-2.2.1}/celerp/models/ai.py +0 -0
  124. {celerp-2.2.0 → celerp-2.2.1}/celerp/models/auth.py +0 -0
  125. {celerp-2.2.0 → celerp-2.2.1}/celerp/models/base.py +0 -0
  126. {celerp-2.2.0 → celerp-2.2.1}/celerp/models/company.py +0 -0
  127. {celerp-2.2.0 → celerp-2.2.1}/celerp/models/connector_config.py +0 -0
  128. {celerp-2.2.0 → celerp-2.2.1}/celerp/models/import_batch.py +0 -0
  129. {celerp-2.2.0 → celerp-2.2.1}/celerp/models/ledger.py +0 -0
  130. {celerp-2.2.0 → celerp-2.2.1}/celerp/models/marketplace.py +0 -0
  131. {celerp-2.2.0 → celerp-2.2.1}/celerp/models/notification.py +0 -0
  132. {celerp-2.2.0 → celerp-2.2.1}/celerp/models/projections.py +0 -0
  133. {celerp-2.2.0 → celerp-2.2.1}/celerp/models/share.py +0 -0
  134. {celerp-2.2.0 → celerp-2.2.1}/celerp/models/supporter.py +0 -0
  135. {celerp-2.2.0 → celerp-2.2.1}/celerp/models/sync_run.py +0 -0
  136. {celerp-2.2.0 → celerp-2.2.1}/celerp/modules/__init__.py +0 -0
  137. {celerp-2.2.0 → celerp-2.2.1}/celerp/modules/api.py +0 -0
  138. {celerp-2.2.0 → celerp-2.2.1}/celerp/modules/audit.py +0 -0
  139. {celerp-2.2.0 → celerp-2.2.1}/celerp/modules/demotion.py +0 -0
  140. {celerp-2.2.0 → celerp-2.2.1}/celerp/modules/importer.py +0 -0
  141. {celerp-2.2.0 → celerp-2.2.1}/celerp/modules/license.py +0 -0
  142. {celerp-2.2.0 → celerp-2.2.1}/celerp/modules/loader.py +0 -0
  143. {celerp-2.2.0 → celerp-2.2.1}/celerp/modules/meta.py +0 -0
  144. {celerp-2.2.0 → celerp-2.2.1}/celerp/modules/migrations_runner.py +0 -0
  145. {celerp-2.2.0 → celerp-2.2.1}/celerp/modules/references.py +0 -0
  146. {celerp-2.2.0 → celerp-2.2.1}/celerp/modules/registry.py +0 -0
  147. {celerp-2.2.0 → celerp-2.2.1}/celerp/modules/slots.py +0 -0
  148. {celerp-2.2.0 → celerp-2.2.1}/celerp/notifications/__init__.py +0 -0
  149. {celerp-2.2.0 → celerp-2.2.1}/celerp/notifications/service.py +0 -0
  150. {celerp-2.2.0 → celerp-2.2.1}/celerp/notifications/sse.py +0 -0
  151. {celerp-2.2.0 → celerp-2.2.1}/celerp/output/__init__.py +0 -0
  152. {celerp-2.2.0 → celerp-2.2.1}/celerp/output/branding.py +0 -0
  153. {celerp-2.2.0 → celerp-2.2.1}/celerp/output/doc_print.py +0 -0
  154. {celerp-2.2.0 → celerp-2.2.1}/celerp/output/share_render.py +0 -0
  155. {celerp-2.2.0 → celerp-2.2.1}/celerp/projections/__init__.py +0 -0
  156. {celerp-2.2.0 → celerp-2.2.1}/celerp/projections/engine.py +0 -0
  157. {celerp-2.2.0 → celerp-2.2.1}/celerp/projections/handlers/__init__.py +0 -0
  158. {celerp-2.2.0 → celerp-2.2.1}/celerp/projections/handlers/marketplace.py +0 -0
  159. {celerp-2.2.0 → celerp-2.2.1}/celerp/projections/handlers/scanning.py +0 -0
  160. {celerp-2.2.0 → celerp-2.2.1}/celerp/projections/handlers/shopify.py +0 -0
  161. {celerp-2.2.0 → celerp-2.2.1}/celerp/projections/handlers/system.py +0 -0
  162. {celerp-2.2.0 → celerp-2.2.1}/celerp/routers/__init__.py +0 -0
  163. {celerp-2.2.0 → celerp-2.2.1}/celerp/routers/auth.py +0 -0
  164. {celerp-2.2.0 → celerp-2.2.1}/celerp/routers/companies.py +0 -0
  165. {celerp-2.2.0 → celerp-2.2.1}/celerp/routers/debug.py +0 -0
  166. {celerp-2.2.0 → celerp-2.2.1}/celerp/routers/doctor.py +0 -0
  167. {celerp-2.2.0 → celerp-2.2.1}/celerp/routers/events.py +0 -0
  168. {celerp-2.2.0 → celerp-2.2.1}/celerp/routers/health.py +0 -0
  169. {celerp-2.2.0 → celerp-2.2.1}/celerp/routers/ledger.py +0 -0
  170. {celerp-2.2.0 → celerp-2.2.1}/celerp/routers/notifications.py +0 -0
  171. {celerp-2.2.0 → celerp-2.2.1}/celerp/routers/stars.py +0 -0
  172. {celerp-2.2.0 → celerp-2.2.1}/celerp/routers/system.py +0 -0
  173. {celerp-2.2.0 → celerp-2.2.1}/celerp/schemas/__init__.py +0 -0
  174. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/__init__.py +0 -0
  175. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/activity_redaction.py +0 -0
  176. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/attachments.py +0 -0
  177. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/auth.py +0 -0
  178. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/auto_je.py +0 -0
  179. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/backup.py +0 -0
  180. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/backup_export.py +0 -0
  181. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/backup_import.py +0 -0
  182. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/backup_repo.py +0 -0
  183. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/backup_scheduler.py +0 -0
  184. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/backup_state.py +0 -0
  185. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/cost_visibility.py +0 -0
  186. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/demo.py +0 -0
  187. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/dev_release_guard.py +0 -0
  188. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/email.py +0 -0
  189. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/field_schema.py +0 -0
  190. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/fulfill.py +0 -0
  191. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/holdings.py +0 -0
  192. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/je_keys.py +0 -0
  193. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/landed_cost.py +0 -0
  194. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/line_measures.py +0 -0
  195. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/list_behavior.py +0 -0
  196. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/money.py +0 -0
  197. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/payments.py +0 -0
  198. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/permissions.py +0 -0
  199. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/pick.py +0 -0
  200. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/pricing.py +0 -0
  201. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/relay_share.py +0 -0
  202. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/reorder.py +0 -0
  203. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/runtime_state.py +0 -0
  204. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/session_tracker.py +0 -0
  205. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/shipping.py +0 -0
  206. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/star_cta.py +0 -0
  207. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/status_doc_backfill.py +0 -0
  208. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/supporter_badge.py +0 -0
  209. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/system_health.py +0 -0
  210. {celerp-2.2.0 → celerp-2.2.1}/celerp/services/units.py +0 -0
  211. {celerp-2.2.0 → celerp-2.2.1}/celerp/session_gate.py +0 -0
  212. {celerp-2.2.0 → celerp-2.2.1}/celerp/tax_regimes.py +0 -0
  213. {celerp-2.2.0 → celerp-2.2.1}/celerp.egg-info/dependency_links.txt +0 -0
  214. {celerp-2.2.0 → celerp-2.2.1}/celerp.egg-info/entry_points.txt +0 -0
  215. {celerp-2.2.0 → celerp-2.2.1}/celerp.egg-info/requires.txt +0 -0
  216. {celerp-2.2.0 → celerp-2.2.1}/celerp.egg-info/top_level.txt +0 -0
  217. {celerp-2.2.0 → celerp-2.2.1}/default_modules/__init__.py +0 -0
  218. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/LICENSE +0 -0
  219. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/__init__.py +0 -0
  220. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/celerp_accounting/__init__.py +0 -0
  221. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/celerp_accounting/api_setup.py +0 -0
  222. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/celerp_accounting/csv_parser.py +0 -0
  223. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/celerp_accounting/matcher.py +0 -0
  224. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/celerp_accounting/models.py +0 -0
  225. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/celerp_accounting/projections.py +0 -0
  226. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/celerp_accounting/routes.py +0 -0
  227. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/celerp_accounting/ui_routes.py +0 -0
  228. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/report_goldens/balance-sheet.html +0 -0
  229. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/report_goldens/cash-flow.html +0 -0
  230. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/report_goldens/extended-journal-csv.csv +0 -0
  231. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/report_goldens/extended-journal-print.html +0 -0
  232. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/report_goldens/extended-journal.html +0 -0
  233. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/report_goldens/general-ledger.html +0 -0
  234. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/report_goldens/journal-csv.csv +0 -0
  235. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/report_goldens/journal-print.html +0 -0
  236. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/report_goldens/journal.html +0 -0
  237. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/report_goldens/ledger.html +0 -0
  238. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/report_goldens/pnl.html +0 -0
  239. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/report_goldens/statement.html +0 -0
  240. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/report_goldens/trial-balance.html +0 -0
  241. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/test_accounting_banking.py +0 -0
  242. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/test_accounting_banking_routers.py +0 -0
  243. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/test_accounting_gaps.py +0 -0
  244. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/test_accounting_import_idempotency.py +0 -0
  245. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/test_cash_flow.py +0 -0
  246. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/test_financial_reports_ui.py +0 -0
  247. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/test_journal_gl_soa.py +0 -0
  248. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/test_journal_gl_soa_ui.py +0 -0
  249. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/test_reconciliation_v2.py +0 -0
  250. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/test_reports_end_to_end.py +0 -0
  251. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-accounting/tests/test_route_permissions.py +0 -0
  252. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-admin/__init__.py +0 -0
  253. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-admin/celerp_admin/__init__.py +0 -0
  254. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-admin/celerp_admin/routes.py +0 -0
  255. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-admin/celerp_admin/setup.py +0 -0
  256. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-ai/__init__.py +0 -0
  257. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-ai/celerp_ai/__init__.py +0 -0
  258. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-ai/celerp_ai/routes.py +0 -0
  259. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-ai/celerp_ai/setup.py +0 -0
  260. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-ai/celerp_ai/ui_routes.py +0 -0
  261. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-ai/tests/conftest.py +0 -0
  262. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-ai/tests/test_batch.py +0 -0
  263. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-ai/tests/test_cleanup.py +0 -0
  264. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-ai/tests/test_conversations.py +0 -0
  265. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-ai/tests/test_coverage_gaps.py +0 -0
  266. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-ai/tests/test_intent.py +0 -0
  267. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-ai/tests/test_llm.py +0 -0
  268. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-ai/tests/test_memory.py +0 -0
  269. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-ai/tests/test_models.py +0 -0
  270. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-ai/tests/test_page_count.py +0 -0
  271. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-ai/tests/test_quota.py +0 -0
  272. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-ai/tests/test_router.py +0 -0
  273. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-ai/tests/test_routes_coverage.py +0 -0
  274. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-ai/tests/test_service.py +0 -0
  275. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-ai/tests/test_tools.py +0 -0
  276. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-backup/__init__.py +0 -0
  277. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-backup/celerp_backup/__init__.py +0 -0
  278. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-backup/celerp_backup/routes.py +0 -0
  279. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-backup/celerp_backup/setup.py +0 -0
  280. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-connectors/__init__.py +0 -0
  281. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-connectors/celerp_connectors/__init__.py +0 -0
  282. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-connectors/celerp_connectors/models.py +0 -0
  283. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-connectors/celerp_connectors/routes.py +0 -0
  284. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-connectors/tests/__init__.py +0 -0
  285. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-connectors/tests/conftest.py +0 -0
  286. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-connectors/tests/test_compliance.py +0 -0
  287. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-connectors/tests/test_connector_correctness.py +0 -0
  288. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-connectors/tests/test_connectors.py +0 -0
  289. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-connectors/tests/test_credentials_routes.py +0 -0
  290. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-connectors/tests/test_images.py +0 -0
  291. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-connectors/tests/test_outbound.py +0 -0
  292. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-connectors/tests/test_quickbooks.py +0 -0
  293. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-connectors/tests/test_rate_limiting.py +0 -0
  294. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-connectors/tests/test_shopify.py +0 -0
  295. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-connectors/tests/test_wiring.py +0 -0
  296. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-connectors/tests/test_woocommerce.py +0 -0
  297. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-connectors/tests/test_woocommerce_webhooks.py +0 -0
  298. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-connectors/tests/test_xero.py +0 -0
  299. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-contacts/LICENSE +0 -0
  300. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-contacts/__init__.py +0 -0
  301. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-contacts/celerp_contacts/__init__.py +0 -0
  302. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-contacts/celerp_contacts/migrations.py +0 -0
  303. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-contacts/celerp_contacts/projections.py +0 -0
  304. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-contacts/celerp_contacts/routes.py +0 -0
  305. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-contacts/celerp_contacts/services.py +0 -0
  306. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-contacts/celerp_contacts/ui_routes.py +0 -0
  307. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-dashboard/LICENSE +0 -0
  308. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-dashboard/__init__.py +0 -0
  309. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-dashboard/celerp_dashboard/__init__.py +0 -0
  310. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-dashboard/celerp_dashboard/routes.py +0 -0
  311. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-dashboard/celerp_dashboard/setup.py +0 -0
  312. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/LICENSE +0 -0
  313. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/__init__.py +0 -0
  314. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/celerp_docs/__init__.py +0 -0
  315. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/celerp_docs/api_setup.py +0 -0
  316. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/celerp_docs/doc_constants.py +0 -0
  317. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/celerp_docs/doc_email.py +0 -0
  318. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/celerp_docs/doc_projections.py +0 -0
  319. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/celerp_docs/doc_service.py +0 -0
  320. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/celerp_docs/models_share.py +0 -0
  321. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/celerp_docs/routes.py +0 -0
  322. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/celerp_docs/routes_payments.py +0 -0
  323. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/celerp_docs/routes_share.py +0 -0
  324. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/celerp_docs/sequences.py +0 -0
  325. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/celerp_docs/taxes.py +0 -0
  326. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/celerp_docs/ui_routes.py +0 -0
  327. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/tests/conftest.py +0 -0
  328. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/tests/test_audits.py +0 -0
  329. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/tests/test_freight_je.py +0 -0
  330. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/tests/test_freight_lines.py +0 -0
  331. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/tests/test_fulfill_no_split.py +0 -0
  332. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/tests/test_fulfillment_activity.py +0 -0
  333. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/tests/test_inbound_je_lifecycle.py +0 -0
  334. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/tests/test_inventory_account_reconciliation.py +0 -0
  335. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/tests/test_landed_receive.py +0 -0
  336. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/tests/test_line_delete_persist.py +0 -0
  337. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/tests/test_line_identifier.py +0 -0
  338. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/tests/test_payment_void_activity.py +0 -0
  339. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/tests/test_receive_sku_batch.py +0 -0
  340. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/tests/test_send_visibility.py +0 -0
  341. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/tests/test_service_lines.py +0 -0
  342. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-docs/tests/test_void_guards.py +0 -0
  343. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-inventory/LICENSE +0 -0
  344. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-inventory/__init__.py +0 -0
  345. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-inventory/celerp_inventory/__init__.py +0 -0
  346. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-inventory/celerp_inventory/models_import_batch.py +0 -0
  347. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-inventory/celerp_inventory/projections.py +0 -0
  348. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-inventory/celerp_inventory/routes_attachments.py +0 -0
  349. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-inventory/celerp_inventory/routes_scanning.py +0 -0
  350. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-inventory/celerp_inventory/services.py +0 -0
  351. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-inventory/celerp_inventory/ui_routes.py +0 -0
  352. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-inventory/tests/test_item_recipe_projection.py +0 -0
  353. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-inventory/tests/test_item_workflow_projection.py +0 -0
  354. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-inventory/tests/test_landed_cost_projection.py +0 -0
  355. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-labels/LICENSE +0 -0
  356. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-labels/__init__.py +0 -0
  357. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-labels/celerp_labels/__init__.py +0 -0
  358. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-labels/celerp_labels/models.py +0 -0
  359. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-labels/celerp_labels/presets.py +0 -0
  360. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-labels/celerp_labels/routes.py +0 -0
  361. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-labels/celerp_labels/service.py +0 -0
  362. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-labels/celerp_labels/ui_routes.py +0 -0
  363. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-labels/requirements.txt +0 -0
  364. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-labels/tests/test_labels.py +0 -0
  365. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-labels/tests/test_labels_module.py +0 -0
  366. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/LICENSE +0 -0
  367. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/__init__.py +0 -0
  368. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/celerp_manufacturing/__init__.py +0 -0
  369. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/celerp_manufacturing/costing.py +0 -0
  370. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/celerp_manufacturing/expansion.py +0 -0
  371. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/celerp_manufacturing/labor.py +0 -0
  372. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/celerp_manufacturing/migrations.py +0 -0
  373. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/celerp_manufacturing/projection_handler.py +0 -0
  374. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/celerp_manufacturing/routes.py +0 -0
  375. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/celerp_manufacturing/ui_routes.py +0 -0
  376. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/requirements.txt +0 -0
  377. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/tests/test_auto_complete_on_finalize.py +0 -0
  378. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/tests/test_bom_removed.py +0 -0
  379. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/tests/test_build_api.py +0 -0
  380. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/tests/test_item_recipe_api.py +0 -0
  381. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/tests/test_item_workflow_api.py +0 -0
  382. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/tests/test_labor_providers.py +0 -0
  383. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/tests/test_manufacture_from_doc.py +0 -0
  384. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/tests/test_manufacturing.py +0 -0
  385. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/tests/test_manufacturing_import_idempotency.py +0 -0
  386. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/tests/test_manufacturing_module.py +0 -0
  387. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/tests/test_mfg_events.py +0 -0
  388. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/tests/test_phase2_manufacturing_validations.py +0 -0
  389. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/tests/test_production_order.py +0 -0
  390. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/tests/test_recipe_costing.py +0 -0
  391. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/tests/test_recipe_expansion.py +0 -0
  392. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/tests/test_recost_api.py +0 -0
  393. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/tests/test_to_make_allocation.py +0 -0
  394. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/tests/test_where_used.py +0 -0
  395. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/tests/test_work_centers_and_settings.py +0 -0
  396. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-manufacturing/tests/test_workflow_time.py +0 -0
  397. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-reports/LICENSE +0 -0
  398. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-reports/__init__.py +0 -0
  399. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-reports/celerp_reports/__init__.py +0 -0
  400. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-reports/celerp_reports/api_setup.py +0 -0
  401. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-reports/celerp_reports/routes.py +0 -0
  402. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-reports/celerp_reports/ui_routes.py +0 -0
  403. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-reports/tests/test_reports_full.py +0 -0
  404. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-reports/tests/test_reports_unit.py +0 -0
  405. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-subscriptions/LICENSE +0 -0
  406. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-subscriptions/__init__.py +0 -0
  407. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-subscriptions/celerp_subscriptions/__init__.py +0 -0
  408. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-subscriptions/celerp_subscriptions/routes.py +0 -0
  409. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-subscriptions/celerp_subscriptions/ui_routes.py +0 -0
  410. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-subscriptions/tests/test_subscriptions.py +0 -0
  411. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-subscriptions/tests/test_subscriptions_ui.py +0 -0
  412. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/LICENSE +0 -0
  413. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/__init__.py +0 -0
  414. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/__init__.py +0 -0
  415. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/accessory_fashion.json +0 -0
  416. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/activewear.json +0 -0
  417. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/art_photography.json +0 -0
  418. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/audio_equipment.json +0 -0
  419. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/bag_handbag.json +0 -0
  420. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/banknote.json +0 -0
  421. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/beauty_tool.json +0 -0
  422. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/bed_bedroom.json +0 -0
  423. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/beer.json +0 -0
  424. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/beverage_nonalc.json +0 -0
  425. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/body_part_auto.json +0 -0
  426. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/book.json +0 -0
  427. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/bottoms.json +0 -0
  428. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/brake_suspension.json +0 -0
  429. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/bullion_coin.json +0 -0
  430. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/camera.json +0 -0
  431. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/colored_stone.json +0 -0
  432. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/comic.json +0 -0
  433. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/commercial_space.json +0 -0
  434. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/component_part.json +0 -0
  435. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/confectionery.json +0 -0
  436. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/consulting_service.json +0 -0
  437. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/decorative_art.json +0 -0
  438. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/diamond.json +0 -0
  439. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/drawing.json +0 -0
  440. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/dress_jumpsuit.json +0 -0
  441. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/electrical_auto.json +0 -0
  442. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/electrical_component.json +0 -0
  443. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/emerald.json +0 -0
  444. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/engine_part.json +0 -0
  445. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/fastener.json +0 -0
  446. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/fertilizer_chemical.json +0 -0
  447. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/film_video.json +0 -0
  448. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/fine_writing_instrument.json +0 -0
  449. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/fluid_lubricant.json +0 -0
  450. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/footwear.json +0 -0
  451. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/fragrance.json +0 -0
  452. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/fresh_food.json +0 -0
  453. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/fresh_produce.json +0 -0
  454. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/frozen_food.json +0 -0
  455. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/gaming_console.json +0 -0
  456. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/gold_bullion.json +0 -0
  457. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/grain_cereal.json +0 -0
  458. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/haircare.json +0 -0
  459. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/hand_tool.json +0 -0
  460. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/ingredient_bulk.json +0 -0
  461. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/interior_part.json +0 -0
  462. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/jewelry.json +0 -0
  463. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/kitchen_dining.json +0 -0
  464. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/laptop.json +0 -0
  465. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/lighting.json +0 -0
  466. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/livestock_feed.json +0 -0
  467. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/makeup.json +0 -0
  468. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/measuring_instrument.json +0 -0
  469. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/medal_token.json +0 -0
  470. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/mineral_specimen.json +0 -0
  471. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/mobile_phone.json +0 -0
  472. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/music_cd.json +0 -0
  473. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/music_vinyl.json +0 -0
  474. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/nail.json +0 -0
  475. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/numismatic_coin.json +0 -0
  476. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/outdoor_furniture.json +0 -0
  477. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/outerwear.json +0 -0
  478. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/packaged_food.json +0 -0
  479. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/painting.json +0 -0
  480. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/parking_bay.json +0 -0
  481. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/pearl.json +0 -0
  482. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/personal_care.json +0 -0
  483. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/pipe_plumbing.json +0 -0
  484. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/platinum_bullion.json +0 -0
  485. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/power_tool.json +0 -0
  486. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/print_edition.json +0 -0
  487. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/residential_unit.json +0 -0
  488. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/rough_gemstone.json +0 -0
  489. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/ruby.json +0 -0
  490. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/saas_plan.json +0 -0
  491. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/safety_ppe.json +0 -0
  492. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/sapphire.json +0 -0
  493. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/sculpture.json +0 -0
  494. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/seating.json +0 -0
  495. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/seeds.json +0 -0
  496. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/silver_bullion.json +0 -0
  497. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/skincare.json +0 -0
  498. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/soft_furnishing.json +0 -0
  499. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/software_addon.json +0 -0
  500. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/software_license.json +0 -0
  501. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/spirit.json +0 -0
  502. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/storage_furniture.json +0 -0
  503. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/swimwear.json +0 -0
  504. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/table_desk.json +0 -0
  505. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/tablet.json +0 -0
  506. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/tire_wheel.json +0 -0
  507. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/tops.json +0 -0
  508. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/trading_card.json +0 -0
  509. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/tv_display.json +0 -0
  510. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/video_game.json +0 -0
  511. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/watch.json +0 -0
  512. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/watch_strap.json +0 -0
  513. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/categories/wine.json +0 -0
  514. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/presets/agricultural.json +0 -0
  515. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/presets/artwork.json +0 -0
  516. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/presets/automotive.json +0 -0
  517. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/presets/blank.json +0 -0
  518. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/presets/books_media.json +0 -0
  519. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/presets/coins_precious_metals.json +0 -0
  520. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/presets/consulting.json +0 -0
  521. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/presets/cosmetics.json +0 -0
  522. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/presets/electronics.json +0 -0
  523. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/presets/fashion.json +0 -0
  524. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/presets/food_beverage.json +0 -0
  525. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/presets/furniture.json +0 -0
  526. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/presets/gemstones.json +0 -0
  527. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/presets/hardware.json +0 -0
  528. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/presets/property_rental.json +0 -0
  529. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/presets/saas.json +0 -0
  530. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/presets/watches.json +0 -0
  531. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/presets/wine_spirits.json +0 -0
  532. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/routes.py +0 -0
  533. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/celerp_verticals/ui_routes.py +0 -0
  534. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/tests/test_verticals.py +0 -0
  535. {celerp-2.2.0 → celerp-2.2.1}/default_modules/celerp-verticals/tests/test_verticals_routers.py +0 -0
  536. {celerp-2.2.0 → celerp-2.2.1}/legal/OFFICIAL-COMPONENTS.md +0 -0
  537. {celerp-2.2.0 → celerp-2.2.1}/legal/TRADEMARK.md +0 -0
  538. {celerp-2.2.0 → celerp-2.2.1}/packaging/winget/Celerp.Celerp.installer.yaml +0 -0
  539. {celerp-2.2.0 → celerp-2.2.1}/packaging/winget/Celerp.Celerp.locale.en-US.yaml +0 -0
  540. {celerp-2.2.0 → celerp-2.2.1}/packaging/winget/Celerp.Celerp.yaml +0 -0
  541. {celerp-2.2.0 → celerp-2.2.1}/packaging/winget/README.md +0 -0
  542. {celerp-2.2.0 → celerp-2.2.1}/pyproject.toml +0 -0
  543. {celerp-2.2.0 → celerp-2.2.1}/setup.cfg +0 -0
  544. {celerp-2.2.0 → celerp-2.2.1}/test_helpers.py +0 -0
  545. {celerp-2.2.0 → celerp-2.2.1}/ui/__init__.py +0 -0
  546. {celerp-2.2.0 → celerp-2.2.1}/ui/api_client.py +0 -0
  547. {celerp-2.2.0 → celerp-2.2.1}/ui/app.py +0 -0
  548. {celerp-2.2.0 → celerp-2.2.1}/ui/components/__init__.py +0 -0
  549. {celerp-2.2.0 → celerp-2.2.1}/ui/components/activity.py +0 -0
  550. {celerp-2.2.0 → celerp-2.2.1}/ui/components/attrs.py +0 -0
  551. {celerp-2.2.0 → celerp-2.2.1}/ui/components/backup.py +0 -0
  552. {celerp-2.2.0 → celerp-2.2.1}/ui/components/cloud_gate.py +0 -0
  553. {celerp-2.2.0 → celerp-2.2.1}/ui/components/currency.py +0 -0
  554. {celerp-2.2.0 → celerp-2.2.1}/ui/components/files.py +0 -0
  555. {celerp-2.2.0 → celerp-2.2.1}/ui/components/journal.py +0 -0
  556. {celerp-2.2.0 → celerp-2.2.1}/ui/components/notes.py +0 -0
  557. {celerp-2.2.0 → celerp-2.2.1}/ui/components/phone.py +0 -0
  558. {celerp-2.2.0 → celerp-2.2.1}/ui/components/report_kit.py +0 -0
  559. {celerp-2.2.0 → celerp-2.2.1}/ui/components/shell.py +0 -0
  560. {celerp-2.2.0 → celerp-2.2.1}/ui/components/table.py +0 -0
  561. {celerp-2.2.0 → celerp-2.2.1}/ui/config.py +0 -0
  562. {celerp-2.2.0 → celerp-2.2.1}/ui/i18n.py +0 -0
  563. {celerp-2.2.0 → celerp-2.2.1}/ui/locales/ar.json +0 -0
  564. {celerp-2.2.0 → celerp-2.2.1}/ui/locales/de.json +0 -0
  565. {celerp-2.2.0 → celerp-2.2.1}/ui/locales/en.json +0 -0
  566. {celerp-2.2.0 → celerp-2.2.1}/ui/locales/es.json +0 -0
  567. {celerp-2.2.0 → celerp-2.2.1}/ui/locales/fr.json +0 -0
  568. {celerp-2.2.0 → celerp-2.2.1}/ui/locales/id.json +0 -0
  569. {celerp-2.2.0 → celerp-2.2.1}/ui/locales/it.json +0 -0
  570. {celerp-2.2.0 → celerp-2.2.1}/ui/locales/ja.json +0 -0
  571. {celerp-2.2.0 → celerp-2.2.1}/ui/locales/pt.json +0 -0
  572. {celerp-2.2.0 → celerp-2.2.1}/ui/locales/th.json +0 -0
  573. {celerp-2.2.0 → celerp-2.2.1}/ui/locales/vi.json +0 -0
  574. {celerp-2.2.0 → celerp-2.2.1}/ui/marketplace_catalog.py +0 -0
  575. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/__init__.py +0 -0
  576. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/account.py +0 -0
  577. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/accounting.py +0 -0
  578. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/accounting_import.py +0 -0
  579. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/auth.py +0 -0
  580. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/contacts.py +0 -0
  581. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/csv_import.py +0 -0
  582. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/dashboard.py +0 -0
  583. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/docs_import.py +0 -0
  584. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/events.py +0 -0
  585. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/financial_reports.py +0 -0
  586. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/lists_import.py +0 -0
  587. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/manufacturing.py +0 -0
  588. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/modules_page.py +0 -0
  589. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/notifications.py +0 -0
  590. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/reports.py +0 -0
  591. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/search.py +0 -0
  592. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/settings.py +0 -0
  593. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/settings_accounting.py +0 -0
  594. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/settings_cloud.py +0 -0
  595. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/settings_connectors.py +0 -0
  596. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/settings_contacts.py +0 -0
  597. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/settings_general.py +0 -0
  598. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/settings_import.py +0 -0
  599. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/settings_inventory.py +0 -0
  600. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/settings_manufacturing.py +0 -0
  601. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/settings_payments.py +0 -0
  602. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/settings_purchasing.py +0 -0
  603. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/settings_sales.py +0 -0
  604. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/stars.py +0 -0
  605. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/subscriptions.py +0 -0
  606. {celerp-2.2.0 → celerp-2.2.1}/ui/routes/subscriptions_import.py +0 -0
  607. {celerp-2.2.0 → celerp-2.2.1}/ui/security.py +0 -0
  608. {celerp-2.2.0 → celerp-2.2.1}/ui/static/app.css +0 -0
  609. {celerp-2.2.0 → celerp-2.2.1}/ui/static/htmx.min.js +0 -0
  610. {celerp-2.2.0 → celerp-2.2.1}/ui/static/icon.png +0 -0
  611. {celerp-2.2.0 → celerp-2.2.1}/ui/static/logo.png +0 -0
  612. {celerp-2.2.0 → celerp-2.2.1}/ui/static/vendor/intl-tel-input/img/flags.webp +0 -0
  613. {celerp-2.2.0 → celerp-2.2.1}/ui/static/vendor/intl-tel-input/img/flags@2x.webp +0 -0
  614. {celerp-2.2.0 → celerp-2.2.1}/ui/static/vendor/intl-tel-input/intlTelInput.min.css +0 -0
  615. {celerp-2.2.0 → celerp-2.2.1}/ui/static/vendor/intl-tel-input/intlTelInput.min.js +0 -0
  616. {celerp-2.2.0 → celerp-2.2.1}/ui/static/vendor/intl-tel-input/intlTelInputWithUtils.min.js +0 -0
  617. {celerp-2.2.0 → celerp-2.2.1}/ui/static/vendor/intl-tel-input/utils.js +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: celerp
3
- Version: 2.2.0
3
+ Version: 2.2.1
4
4
  Summary: Free, self-hosted ERP for small businesses
5
5
  License: Business Source License 1.1
6
6
 
@@ -349,7 +349,7 @@ def generate_document_pdf(doc: dict[str, Any], company: dict[str, Any] | None =
349
349
  if li_taxes:
350
350
  tax_str = " + ".join(
351
351
  f"{t.get('label') or t.get('code') or 'Tax'} {float(t.get('rate', 0)):.1f}%"
352
- for item in li_taxes
352
+ for t in li_taxes
353
353
  )
354
354
  else:
355
355
  tax_str = f"{float(li.get('tax_rate') or 0):.1f}%"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: celerp
3
- Version: 2.2.0
3
+ Version: 2.2.1
4
4
  Summary: Free, self-hosted ERP for small businesses
5
5
  License: Business Source License 1.1
6
6
 
@@ -7,6 +7,7 @@ NOTICE
7
7
  README.md
8
8
  alembic.ini
9
9
  conftest.py
10
+ conftest_support.py
10
11
  pyproject.toml
11
12
  test_helpers.py
12
13
  celerp/__init__.py
@@ -214,6 +214,7 @@
214
214
  "celerp/session_gate.py",
215
215
  "celerp/tax_regimes.py",
216
216
  "conftest.py",
217
+ "conftest_support.py",
217
218
  "core/.github/workflows/ci.yml",
218
219
  "default_modules/__init__.py",
219
220
  "default_modules/celerp-accounting/LICENSE",
@@ -709,6 +710,7 @@
709
710
  "pyproject.toml",
710
711
  "scripts/apply_i18n.py",
711
712
  "scripts/bump-version.sh",
713
+ "scripts/check_undefined_names.py",
712
714
  "scripts/download-python.sh",
713
715
  "scripts/extract_i18n.py",
714
716
  "scripts/gen_first_party_lock.py",
@@ -790,6 +792,7 @@
790
792
  "tests/test_browser/test_production_order.py",
791
793
  "tests/test_browser/test_reorder_digest_upsell.py",
792
794
  "tests/test_browser/test_reprice_preserves_lines.py",
795
+ "tests/test_browser/test_reprice_wrong_lot.py",
793
796
  "tests/test_browser/test_reserved_conflict_modal.py",
794
797
  "tests/test_browser/test_settings_tabs.py",
795
798
  "tests/test_browser/test_split_ghost_cols.py",
@@ -807,6 +810,7 @@
807
810
  "tests/test_browser/test_worksheet_workflow.py",
808
811
  "tests/test_bulk_upload_limits.py",
809
812
  "tests/test_cell_placeholder.py",
813
+ "tests/test_check_undefined_names.py",
810
814
  "tests/test_clear_fields.py",
811
815
  "tests/test_cli.py",
812
816
  "tests/test_cloud_disconnect_persist.py",
@@ -907,6 +911,7 @@
907
911
  "tests/test_modules/test_registry.py",
908
912
  "tests/test_modules/test_slots.py",
909
913
  "tests/test_modules/test_slots_lifecycle.py",
914
+ "tests/test_no_undefined_names.py",
910
915
  "tests/test_notifications/__init__.py",
911
916
  "tests/test_notifications/test_router.py",
912
917
  "tests/test_notifications/test_service.py",
@@ -929,6 +934,7 @@
929
934
  "tests/test_projections/test_status_doc_backfill.py",
930
935
  "tests/test_purchasing_fields.py",
931
936
  "tests/test_python310_floor.py",
937
+ "tests/test_reconciliation_forms.py",
932
938
  "tests/test_regression.py",
933
939
  "tests/test_relay_account_proxy.py",
934
940
  "tests/test_reorder_v2.py",
@@ -1026,6 +1032,7 @@
1026
1032
  "tests/test_verticals_integrity.py",
1027
1033
  "tests/test_visual.py",
1028
1034
  "tests/test_weight_unit_behavior.py",
1035
+ "tests/test_worker_config_isolation.py",
1029
1036
  "tests/test_xss_hygiene.py",
1030
1037
  "ui/__init__.py",
1031
1038
  "ui/api_client.py",
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "2.2.1",
3
+ "distance": 0,
4
+ "node": "g2590c97b63d729423ef35d9ba2abdda76459c902",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-08-18"
8
+ }
@@ -5,29 +5,26 @@ from __future__ import annotations
5
5
 
6
6
  import os
7
7
 
8
+ from conftest_support import is_own_test_config, resolve_worker_config
9
+
8
10
  # Must be set before celerp.config is imported (JWT guard fires at module load).
9
11
  os.environ.setdefault("ALLOW_INSECURE_JWT", "true")
10
12
 
11
- # Point config.toml at a per-worker temp file. Otherwise every xdist worker
12
- # shares ~/.config/celerp/config.toml, which ensure_instance_id() reads+writes
13
- # on the cloud-relay endpoints concurrent access across workers (and leakage
14
- # of one test's instance_id/token into the next) made those tests flaky.
15
- import tempfile as _tempfile
13
+ # Point config.toml at a per-worker temp file. Otherwise every xdist worker shares
14
+ # ~/.config/celerp/config.toml, which ensure_instance_id() reads+writes on the
15
+ # cloud-relay endpoints: concurrent access across workers corrupts the file
16
+ # mid-write (a torn read raises tomllib.TOMLDecodeError) and leaks one test's
17
+ # instance_id/token into the next. resolve_worker_config is the shared rule (see
18
+ # its docstring for why a plain setdefault does not achieve this under xdist).
16
19
  _worker = os.environ.get("PYTEST_XDIST_WORKER", "main")
17
- os.environ.setdefault(
18
- "CELERP_CONFIG",
19
- os.path.join(_tempfile.gettempdir(), f"celerp-test-config-{_worker}.toml"),
20
- )
20
+ os.environ["CELERP_CONFIG"] = resolve_worker_config(os.environ.get("CELERP_CONFIG"), _worker)
21
+
21
22
  # Start from a clean config: a temp file left by a previous local run (e.g. a
22
23
  # persisted [cloud] disconnected = true from the disconnect endpoint) must not
23
24
  # leak into this session. Scoped to our own temp path so a real CELERP_CONFIG
24
25
  # passed in by CI is never touched.
25
26
  _cfg_start = os.environ["CELERP_CONFIG"]
26
- if (
27
- os.path.dirname(_cfg_start) == _tempfile.gettempdir()
28
- and os.path.basename(_cfg_start).startswith("celerp-test-config-")
29
- and os.path.exists(_cfg_start)
30
- ):
27
+ if is_own_test_config(_cfg_start) and os.path.exists(_cfg_start):
31
28
  os.remove(_cfg_start)
32
29
 
33
30
  # ── Postgres for the whole test suite ──────────────────────────────────────────
@@ -0,0 +1,44 @@
1
+ # Copyright (c) 2026 Noah Severs
2
+ # SPDX-License-Identifier: LicenseRef-Proprietary
3
+ """Side-effect-free helpers for the root conftest.
4
+
5
+ Kept in a separate module (never collected as a test, never provisions a
6
+ database on import) so the per-worker config-isolation rule can be unit tested
7
+ without importing the root conftest, which spins up Postgres at import time.
8
+ """
9
+ from __future__ import annotations
10
+
11
+ import os
12
+ import tempfile
13
+
14
+ _CONFIG_PREFIX = "celerp-test-config-"
15
+
16
+
17
+ def is_own_test_config(path: str | None, tmpdir: str | None = None) -> bool:
18
+ """True for a config path this harness itself created (our per-worker temp).
19
+
20
+ Used to tell an inherited value we set from a genuine external CELERP_CONFIG:
21
+ only the former may be recomputed per worker, the latter is always honored.
22
+ """
23
+ if path is None:
24
+ return False
25
+ tmpdir = tmpdir or tempfile.gettempdir()
26
+ return os.path.dirname(path) == tmpdir and os.path.basename(path).startswith(_CONFIG_PREFIX)
27
+
28
+
29
+ def resolve_worker_config(existing: str | None, worker: str, tmpdir: str | None = None) -> str:
30
+ """Return the config.toml path this worker must use.
31
+
32
+ An xdist worker inherits the controller process's environment, where the root
33
+ conftest already ran and set CELERP_CONFIG to the controller's ("main") path.
34
+ A plain setdefault would then leave every worker pointing at that one shared
35
+ file, so concurrent read/write across workers corrupts it mid-write (a torn
36
+ file fails tomllib.load and 500s unrelated requests). So whenever the inherited
37
+ value is one of our own temp paths (or unset), recompute it for THIS worker; a
38
+ genuine external CELERP_CONFIG is always left untouched.
39
+ """
40
+ tmpdir = tmpdir or tempfile.gettempdir()
41
+ own = os.path.join(tmpdir, f"{_CONFIG_PREFIX}{worker}.toml")
42
+ if existing is None or is_own_test_config(existing, tmpdir):
43
+ return own
44
+ return existing
@@ -1888,7 +1888,16 @@ async def split_item(entity_id: str, payload: SplitBody, company_id=Depends(get_
1888
1888
  parent_attrs_wo_pieces = {k: v for k, v in parent_attrs.items() if k != "pieces"}
1889
1889
 
1890
1890
  parent_weight: float | None = _read_float(parent.state, "weight")
1891
- parent_weight_unit = parent.state.get("weight_unit") or "gram"
1891
+ parent_is_weight_unit = is_weight_unit(parent_sell_by, unit_map)
1892
+ # No weight was ever recorded (e.g. a CSV import that never synced it from
1893
+ # quantity): fall back to qty, same as split_preview, so the mother-weight
1894
+ # column the preview showed doesn't demand edit_inventory_amounts to confirm
1895
+ # the exact value it already displayed. A genuinely stored weight (which may
1896
+ # legitimately differ from qty) is never overridden.
1897
+ parent_weight_is_derived = parent_weight is None and parent_is_weight_unit
1898
+ if parent_weight_is_derived:
1899
+ parent_weight = parent_qty
1900
+ parent_weight_unit = parent.state.get("weight_unit") or (parent_sell_by if parent_is_weight_unit else "gram")
1892
1901
  weight_unit_cfg = unit_map.get(parent_weight_unit) or {}
1893
1902
  weight_decimals = weight_unit_cfg.get("decimals", 2)
1894
1903
 
@@ -1952,6 +1961,11 @@ async def split_item(entity_id: str, payload: SplitBody, company_id=Depends(get_
1952
1961
  else:
1953
1962
  _child_cost_totals = [None] * len(children)
1954
1963
 
1964
+ def _child_weight(c) -> float | None:
1965
+ if c.weight is not None:
1966
+ return c.weight
1967
+ return c.quantity if parent_is_weight_unit else None
1968
+
1955
1969
  # Per-child history descriptors with sequential mother deltas (one row per child).
1956
1970
  children_detail: list[dict] = []
1957
1971
  running_qty = parent_qty
@@ -2000,7 +2014,7 @@ async def split_item(entity_id: str, payload: SplitBody, company_id=Depends(get_
2000
2014
 
2001
2015
  # Origin marker on the child: "Split from <mother>" — the child's first history entry.
2002
2016
  ch_pieces = _to_int_pieces(child.attributes.get("pieces", 0)) if parent_pieces is not None else None
2003
- ch_weight = child.weight if (parent_weight is not None and child.weight is not None) else None
2017
+ ch_weight = _child_weight(child) if parent_weight is not None else None
2004
2018
  origin = await emit_event(
2005
2019
  session,
2006
2020
  company_id=company_id,
@@ -2075,8 +2089,7 @@ async def split_item(entity_id: str, payload: SplitBody, company_id=Depends(get_
2075
2089
  metadata_={"reason": "from_split"},
2076
2090
  )
2077
2091
 
2078
- # Reduce parent quantity use explicit mother_qty override when provided (user re-weighed mother).
2079
- total_child_weight = sum(c.weight for c in payload.children if c.weight is not None)
2092
+ total_child_weight = sum(w for c in payload.children if (w := _child_weight(c)) is not None)
2080
2093
  derived_parent_qty = round(parent_qty - total_child_qty, 10)
2081
2094
  derived_mother_weight = (
2082
2095
  round(parent_weight - total_child_weight, weight_decimals) if parent_weight is not None else None
@@ -7,7 +7,7 @@
7
7
  "celerp-contacts": "899cf9febb388356290f6eb8c8ab6d67f1f92a9c9fa8377ebb6d46bf04cedbc3",
8
8
  "celerp-dashboard": "00d2e8d6ef46a3afd5d6caf8434217095aabd40c963bfac19d0e988c714443ce",
9
9
  "celerp-docs": "8b69661d972454099f94fd0f22d0d3ce614bbc6a257effb776fdb12462a56b7b",
10
- "celerp-inventory": "3beccf81df7dff80513d8de0b70db17924d2f5bcd8a111068fddcd76475096c4",
10
+ "celerp-inventory": "0d3b85ddb73ce02a2a97a5e00827435e145bddaae79491a7ad6b7ade88f38c06",
11
11
  "celerp-labels": "1175c234602fbc80e20a33a4d03bf7abcc9a7a78d6e83729c73106cb0af53832",
12
12
  "celerp-manufacturing": "5cc089a345eeff66be25db51432481487e699f28c0a545731650843fce81dc01",
13
13
  "celerp-reports": "f100f83b3fc3e4565685d3a0c8e62dcc724bb35d32238f051b05c5f97ae10d13",
@@ -2540,12 +2540,16 @@ celerpUpdateBulkAlloc();
2540
2540
  repriced = 0
2541
2541
  for line in lines:
2542
2542
  sku = (line.get("sku") or "").strip()
2543
- if sku:
2543
+ eid = (line.get("item_id") or line.get("entity_id") or "").strip()
2544
+ if sku or eid:
2544
2545
  try:
2545
- resp = await api.list_items(token, {"sku": sku, "limit": 1})
2546
- items = resp.get("items", []) if isinstance(resp, dict) else resp
2547
- if items:
2548
- new_price = resolve_price(items[0], new_pl)
2546
+ item = await api.get_item(token, eid) if eid else None
2547
+ if item is None and sku:
2548
+ resp = await api.list_items(token, {"sku": sku, "limit": 1})
2549
+ items = resp.get("items", []) if isinstance(resp, dict) else resp
2550
+ item = items[0] if items else None
2551
+ if item is not None:
2552
+ new_price = resolve_price(item, new_pl)
2549
2553
  line = {**line, "unit_price": new_price, "price_list": new_pl}
2550
2554
  repriced += 1
2551
2555
  except Exception:
@@ -2900,13 +2904,16 @@ celerpUpdateBulkAlloc();
2900
2904
  updated_lines = []
2901
2905
  for line in existing_lines:
2902
2906
  sku = (line.get("sku") or "").strip()
2903
- if sku:
2904
- # Look up current item price via catalog endpoint (SKU lookup)
2907
+ eid = (line.get("item_id") or line.get("entity_id") or "").strip()
2908
+ if sku or eid:
2905
2909
  try:
2906
- resp = await api.list_items(token, {"sku": sku, "limit": 1})
2907
- items = resp.get("items", []) if isinstance(resp, dict) else resp
2908
- if items:
2909
- new_price = resolve_price(items[0], price_list)
2910
+ item = await api.get_item(token, eid) if eid else None
2911
+ if item is None and sku:
2912
+ resp = await api.list_items(token, {"sku": sku, "limit": 1})
2913
+ items = resp.get("items", []) if isinstance(resp, dict) else resp
2914
+ item = items[0] if items else None
2915
+ if item is not None:
2916
+ new_price = resolve_price(item, price_list)
2910
2917
  line = {**line, "unit_price": new_price, "price_list": price_list}
2911
2918
  repriced += 1
2912
2919
  except APIError:
@@ -1855,6 +1855,9 @@ def setup_routes(app):
1855
1855
  for f in schema
1856
1856
  ]
1857
1857
  schema = _apply_amount_edit_permission(schema, _get_role(request), company.get("settings") or {})
1858
+ if (str(item.get("status") or "").lower() == "draft"
1859
+ and role_has_permission(company.get("settings") or {}, _get_role(request), "edit_inventory")):
1860
+ schema = [{**f, "editable": True} if f.get("key") in AMOUNT_EDIT_GATED_KEYS else f for f in schema]
1858
1861
  # Merge category-specific fields for this item's category
1859
1862
  item_cat = item.get("category", "")
1860
1863
  if item_cat and item_cat in cat_schemas:
@@ -5438,7 +5441,8 @@ def _inventory_cell_renderers(schema: list[dict], unit_names: list[str] | None =
5438
5441
  data_col="pieces",
5439
5442
  data_decimals=str(decimals),
5440
5443
  )
5441
- return display_cell(entity_id=entity_id, field="pieces", value=row.get("pieces", ""), cell_type="number", editable=_ed)
5444
+ _rek = set(row.get("_row_editable_keys") or ())
5445
+ return display_cell(entity_id=entity_id, field="pieces", value=row.get("pieces", ""), cell_type="number", editable=_ed or "pieces" in _rek)
5442
5446
  renderers["pieces"] = _pieces_renderer
5443
5447
 
5444
5448
  # Status renderer: a doc-driven status (sold, memo_out, consigned-in stock) carries
@@ -204,7 +204,7 @@ def _create_form(session_id: str, line_id: str, line: dict, chart: list[dict], c
204
204
  Div(
205
205
  Label(t("acct.je_line_party"), cls="form-label"),
206
206
  searchable_select("contact", contact_opts, placeholder=t("acct.je_line_party"),
207
- cls_extra="form-input", search_url=_PARTY_SEARCH_URL),
207
+ cls_extra="form-input", search_url=PARTY_SEARCH_URL),
208
208
  cls="form-field",
209
209
  ),
210
210
  Div(
@@ -260,7 +260,7 @@ def _split_form(session_id: str, line_id: str, line: dict, chart: list[dict], cu
260
260
  step="0.01", cls="form-input max-w-sm"),
261
261
  searchable_select("contact_0", contact_opts,
262
262
  placeholder=t("acct.je_line_party"),
263
- cls_extra="form-input", search_url=_PARTY_SEARCH_URL),
263
+ cls_extra="form-input", search_url=PARTY_SEARCH_URL),
264
264
  Input(type="text", name="memo_0", placeholder="Memo", cls="form-input"),
265
265
  cls="split-entry-row flex-row gap-sm mb-sm",
266
266
  )
@@ -204,12 +204,12 @@ def setup_routes(app):
204
204
  # Store the vertical name in company settings so the dashboard can use it
205
205
  try:
206
206
  async with api._client(token) as c:
207
- raw = _raise(await c.get("/companies/me")).json()
207
+ raw = api._raise(await c.get("/companies/me")).json()
208
208
  settings = dict(raw.get("settings") or {})
209
209
  settings["vertical"] = vertical
210
- await c.patch("/companies/me", json={"name": raw.get("name", ""), "settings": settings})
211
- except Exception:
212
- pass
210
+ api._raise(await c.patch("/companies/me", json={"name": raw.get("name", ""), "settings": settings}))
211
+ except Exception as exc:
212
+ logger.warning("storing vertical failed during setup wizard: %s", exc)
213
213
  # Re-seed demo items with vertical-aware examples now that vertical is set
214
214
  try:
215
215
  async with api._client(token) as c:
@@ -1,8 +0,0 @@
1
- {
2
- "tag": "2.2.0",
3
- "distance": 0,
4
- "node": "g7294eca402bb2083fa7d15e2b75ef273f19238f4",
5
- "dirty": false,
6
- "branch": "HEAD",
7
- "node_date": "2026-08-16"
8
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes