simple-module-records 0.0.8__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 (603) hide show
  1. simple_module_records-0.0.8/.gitignore +53 -0
  2. simple_module_records-0.0.8/PKG-INFO +1658 -0
  3. simple_module_records-0.0.8/README.md +1637 -0
  4. simple_module_records-0.0.8/docs/api-reference.md +1523 -0
  5. simple_module_records-0.0.8/docs/architecture.md +499 -0
  6. simple_module_records-0.0.8/docs/index.md +99 -0
  7. simple_module_records-0.0.8/docs/operations.md +1229 -0
  8. simple_module_records-0.0.8/docs/perf-study-2026-09-19.md +799 -0
  9. simple_module_records-0.0.8/docs/performance.md +1696 -0
  10. simple_module_records-0.0.8/docs/postgres-2026-09-21.md +1149 -0
  11. simple_module_records-0.0.8/docs/qa-api-2026-09-19.md +371 -0
  12. simple_module_records-0.0.8/docs/qa-api-phase5-2026-09-20.md +468 -0
  13. simple_module_records-0.0.8/docs/qa-ui-2026-09-19.md +352 -0
  14. simple_module_records-0.0.8/docs/qa-ui-phase5-2026-09-20.md +247 -0
  15. simple_module_records-0.0.8/docs/review-phase4-2026-09-20.md +471 -0
  16. simple_module_records-0.0.8/docs/sql/README.md +42 -0
  17. simple_module_records-0.0.8/docs/sql/postgres-base-to-heads.sql +1068 -0
  18. simple_module_records-0.0.8/docs/user-guide.md +1097 -0
  19. simple_module_records-0.0.8/package.json +19 -0
  20. simple_module_records-0.0.8/pyproject.toml +56 -0
  21. simple_module_records-0.0.8/sm_records/__init__.py +6 -0
  22. simple_module_records-0.0.8/sm_records/_body_limit.py +160 -0
  23. simple_module_records-0.0.8/sm_records/_cross_tenant.py +101 -0
  24. simple_module_records-0.0.8/sm_records/_grammar.py +286 -0
  25. simple_module_records-0.0.8/sm_records/_health_counts.py +124 -0
  26. simple_module_records-0.0.8/sm_records/_menu_middleware.py +61 -0
  27. simple_module_records-0.0.8/sm_records/_tenancy_mode.py +111 -0
  28. simple_module_records-0.0.8/sm_records/_tenant_guard.py +100 -0
  29. simple_module_records-0.0.8/sm_records/_text.py +53 -0
  30. simple_module_records-0.0.8/sm_records/boot.py +117 -0
  31. simple_module_records-0.0.8/sm_records/cli.py +196 -0
  32. simple_module_records-0.0.8/sm_records/cli_common.py +110 -0
  33. simple_module_records-0.0.8/sm_records/cli_io.py +208 -0
  34. simple_module_records-0.0.8/sm_records/cli_reindex.py +131 -0
  35. simple_module_records-0.0.8/sm_records/cli_verify.py +91 -0
  36. simple_module_records-0.0.8/sm_records/collections.py +85 -0
  37. simple_module_records-0.0.8/sm_records/components/BulkRefusalReport.test.tsx +122 -0
  38. simple_module_records-0.0.8/sm_records/components/BulkRefusalReport.tsx +95 -0
  39. simple_module_records-0.0.8/sm_records/components/ColumnChooser.tsx +86 -0
  40. simple_module_records-0.0.8/sm_records/components/ColumnChooserPanel.test.tsx +253 -0
  41. simple_module_records-0.0.8/sm_records/components/ColumnChooserPanel.tsx +191 -0
  42. simple_module_records-0.0.8/sm_records/components/ColumnOptionRow.tsx +170 -0
  43. simple_module_records-0.0.8/sm_records/components/ConfirmDialog.test.tsx +121 -0
  44. simple_module_records-0.0.8/sm_records/components/ConfirmDialog.tsx +142 -0
  45. simple_module_records-0.0.8/sm_records/components/ConflictPanel.tsx +87 -0
  46. simple_module_records-0.0.8/sm_records/components/EmptyTrashButton.test.tsx +132 -0
  47. simple_module_records-0.0.8/sm_records/components/EmptyTrashButton.tsx +151 -0
  48. simple_module_records-0.0.8/sm_records/components/FilterBar.test.tsx +202 -0
  49. simple_module_records-0.0.8/sm_records/components/FilterBar.tsx +223 -0
  50. simple_module_records-0.0.8/sm_records/components/FilterValueInput.test.tsx +98 -0
  51. simple_module_records-0.0.8/sm_records/components/FilterValueInput.tsx +210 -0
  52. simple_module_records-0.0.8/sm_records/components/ImportReportSummary.tsx +109 -0
  53. simple_module_records-0.0.8/sm_records/components/InvalidBadge.test.tsx +112 -0
  54. simple_module_records-0.0.8/sm_records/components/InvalidFilter.test.tsx +79 -0
  55. simple_module_records-0.0.8/sm_records/components/InvalidNotice.tsx +47 -0
  56. simple_module_records-0.0.8/sm_records/components/JsonField.tsx +48 -0
  57. simple_module_records-0.0.8/sm_records/components/PageSizeSelect.tsx +42 -0
  58. simple_module_records-0.0.8/sm_records/components/PagerButton.test.tsx +109 -0
  59. simple_module_records-0.0.8/sm_records/components/PagerButton.tsx +54 -0
  60. simple_module_records-0.0.8/sm_records/components/RecordActions.test.tsx +108 -0
  61. simple_module_records-0.0.8/sm_records/components/RecordActions.tsx +111 -0
  62. simple_module_records-0.0.8/sm_records/components/RecordBulkToolbar.test.tsx +89 -0
  63. simple_module_records-0.0.8/sm_records/components/RecordBulkToolbar.tsx +77 -0
  64. simple_module_records-0.0.8/sm_records/components/RecordCardList.test.tsx +136 -0
  65. simple_module_records-0.0.8/sm_records/components/RecordCardList.tsx +170 -0
  66. simple_module_records-0.0.8/sm_records/components/RecordCell.test.tsx +229 -0
  67. simple_module_records-0.0.8/sm_records/components/RecordCell.tsx +228 -0
  68. simple_module_records-0.0.8/sm_records/components/RecordColumnCells.tsx +169 -0
  69. simple_module_records-0.0.8/sm_records/components/RecordCursorPager.tsx +46 -0
  70. simple_module_records-0.0.8/sm_records/components/RecordDeleteDialog.test.tsx +111 -0
  71. simple_module_records-0.0.8/sm_records/components/RecordDeleteDialog.tsx +215 -0
  72. simple_module_records-0.0.8/sm_records/components/RecordEditorActionsRow.tsx +85 -0
  73. simple_module_records-0.0.8/sm_records/components/RecordEditorTypeLink.test.tsx +22 -0
  74. simple_module_records-0.0.8/sm_records/components/RecordEditorTypeLink.tsx +19 -0
  75. simple_module_records-0.0.8/sm_records/components/RecordEnvelopeFields.tsx +194 -0
  76. simple_module_records-0.0.8/sm_records/components/RecordForm.tsx +55 -0
  77. simple_module_records-0.0.8/sm_records/components/RecordImportOptions.tsx +152 -0
  78. simple_module_records-0.0.8/sm_records/components/RecordIoMenu.test.tsx +102 -0
  79. simple_module_records-0.0.8/sm_records/components/RecordIoMenu.tsx +252 -0
  80. simple_module_records-0.0.8/sm_records/components/RecordListActions.test.tsx +128 -0
  81. simple_module_records-0.0.8/sm_records/components/RecordListActions.tsx +118 -0
  82. simple_module_records-0.0.8/sm_records/components/RecordListBulk.tsx +109 -0
  83. simple_module_records-0.0.8/sm_records/components/RecordListEmpty.test.tsx +90 -0
  84. simple_module_records-0.0.8/sm_records/components/RecordListEmpty.tsx +127 -0
  85. simple_module_records-0.0.8/sm_records/components/RecordListFooter.tsx +66 -0
  86. simple_module_records-0.0.8/sm_records/components/RecordListPublicUrl.test.tsx +23 -0
  87. simple_module_records-0.0.8/sm_records/components/RecordListPublicUrl.tsx +65 -0
  88. simple_module_records-0.0.8/sm_records/components/RecordPagination.capped.test.tsx +50 -0
  89. simple_module_records-0.0.8/sm_records/components/RecordPagination.test.tsx +166 -0
  90. simple_module_records-0.0.8/sm_records/components/RecordPagination.tsx +236 -0
  91. simple_module_records-0.0.8/sm_records/components/RecordReferrers.tsx +201 -0
  92. simple_module_records-0.0.8/sm_records/components/RecordRevisions.test.tsx +23 -0
  93. simple_module_records-0.0.8/sm_records/components/RecordRevisions.tsx +245 -0
  94. simple_module_records-0.0.8/sm_records/components/RecordRowAction.test.tsx +132 -0
  95. simple_module_records-0.0.8/sm_records/components/RecordRowAction.tsx +123 -0
  96. simple_module_records-0.0.8/sm_records/components/RecordSelectCell.tsx +66 -0
  97. simple_module_records-0.0.8/sm_records/components/RecordStatusBadge.test.tsx +29 -0
  98. simple_module_records-0.0.8/sm_records/components/RecordStatusBadge.tsx +124 -0
  99. simple_module_records-0.0.8/sm_records/components/RecordTable.columns.test.tsx +254 -0
  100. simple_module_records-0.0.8/sm_records/components/RecordTable.test.tsx +196 -0
  101. simple_module_records-0.0.8/sm_records/components/RecordTable.tsx +232 -0
  102. simple_module_records-0.0.8/sm_records/components/RecordTranslations.test.tsx +57 -0
  103. simple_module_records-0.0.8/sm_records/components/RecordTranslations.tsx +144 -0
  104. simple_module_records-0.0.8/sm_records/components/RecordsLayout.tsx +15 -0
  105. simple_module_records-0.0.8/sm_records/components/RecordsToaster.tsx +10 -0
  106. simple_module_records-0.0.8/sm_records/components/RelationChips.tsx +73 -0
  107. simple_module_records-0.0.8/sm_records/components/RelationPicker.tsx +279 -0
  108. simple_module_records-0.0.8/sm_records/components/SortableHeader.tsx +42 -0
  109. simple_module_records-0.0.8/sm_records/components/TenantBadge.test.tsx +39 -0
  110. simple_module_records-0.0.8/sm_records/components/TenantBadge.tsx +33 -0
  111. simple_module_records-0.0.8/sm_records/components/TypesCardList.tsx +182 -0
  112. simple_module_records-0.0.8/sm_records/components/fields/BooleanField.test.tsx +80 -0
  113. simple_module_records-0.0.8/sm_records/components/fields/BooleanField.tsx +85 -0
  114. simple_module_records-0.0.8/sm_records/components/fields/ChoiceFields.test.tsx +40 -0
  115. simple_module_records-0.0.8/sm_records/components/fields/ChoiceFields.tsx +104 -0
  116. simple_module_records-0.0.8/sm_records/components/fields/FieldShell.tsx +110 -0
  117. simple_module_records-0.0.8/sm_records/components/fields/MediaField.test.tsx +195 -0
  118. simple_module_records-0.0.8/sm_records/components/fields/MediaField.tsx +115 -0
  119. simple_module_records-0.0.8/sm_records/components/fields/RelationField.tsx +32 -0
  120. simple_module_records-0.0.8/sm_records/components/fields/StructuredFields.tsx +37 -0
  121. simple_module_records-0.0.8/sm_records/components/fields/TextFields.test.tsx +45 -0
  122. simple_module_records-0.0.8/sm_records/components/fields/TextFields.tsx +146 -0
  123. simple_module_records-0.0.8/sm_records/components/fields/index.test.ts +41 -0
  124. simple_module_records-0.0.8/sm_records/components/fields/index.ts +54 -0
  125. simple_module_records-0.0.8/sm_records/components/filterBarFields.ts +100 -0
  126. simple_module_records-0.0.8/sm_records/components/media/MediaApiContext.tsx +34 -0
  127. simple_module_records-0.0.8/sm_records/components/media/MediaCell.test.tsx +283 -0
  128. simple_module_records-0.0.8/sm_records/components/media/MediaCell.tsx +45 -0
  129. simple_module_records-0.0.8/sm_records/components/media/MediaGrid.tsx +130 -0
  130. simple_module_records-0.0.8/sm_records/components/media/MediaPickerDialog.test.tsx +270 -0
  131. simple_module_records-0.0.8/sm_records/components/media/MediaPickerDialog.tsx +281 -0
  132. simple_module_records-0.0.8/sm_records/components/media/MediaPreview.tsx +221 -0
  133. simple_module_records-0.0.8/sm_records/components/media/MediaUpload.tsx +129 -0
  134. simple_module_records-0.0.8/sm_records/components/media/catalog.test.ts +49 -0
  135. simple_module_records-0.0.8/sm_records/components/trashToast.test.tsx +56 -0
  136. simple_module_records-0.0.8/sm_records/components/trashToast.tsx +61 -0
  137. simple_module_records-0.0.8/sm_records/components/typeeditor/ChoicesEditor.test.ts +29 -0
  138. simple_module_records-0.0.8/sm_records/components/typeeditor/ChoicesEditor.tsx +189 -0
  139. simple_module_records-0.0.8/sm_records/components/typeeditor/CollectionField.tsx +75 -0
  140. simple_module_records-0.0.8/sm_records/components/typeeditor/DefaultInput.tsx +137 -0
  141. simple_module_records-0.0.8/sm_records/components/typeeditor/DeleteTypeSection.test.tsx +88 -0
  142. simple_module_records-0.0.8/sm_records/components/typeeditor/DeleteTypeSection.tsx +142 -0
  143. simple_module_records-0.0.8/sm_records/components/typeeditor/DryRunReportView.tsx +46 -0
  144. simple_module_records-0.0.8/sm_records/components/typeeditor/FieldList.test.tsx +94 -0
  145. simple_module_records-0.0.8/sm_records/components/typeeditor/FieldList.tsx +163 -0
  146. simple_module_records-0.0.8/sm_records/components/typeeditor/FieldOptions.tsx +160 -0
  147. simple_module_records-0.0.8/sm_records/components/typeeditor/FieldRow.tsx +103 -0
  148. simple_module_records-0.0.8/sm_records/components/typeeditor/FieldRowBody.test.tsx +85 -0
  149. simple_module_records-0.0.8/sm_records/components/typeeditor/FieldRowBody.tsx +235 -0
  150. simple_module_records-0.0.8/sm_records/components/typeeditor/FieldRowSummary.tsx +130 -0
  151. simple_module_records-0.0.8/sm_records/components/typeeditor/FieldsCard.tsx +90 -0
  152. simple_module_records-0.0.8/sm_records/components/typeeditor/IconField.tsx +77 -0
  153. simple_module_records-0.0.8/sm_records/components/typeeditor/LastAppliedReport.tsx +94 -0
  154. simple_module_records-0.0.8/sm_records/components/typeeditor/OrphanedConflictsList.tsx +26 -0
  155. simple_module_records-0.0.8/sm_records/components/typeeditor/PointerFields.tsx +140 -0
  156. simple_module_records-0.0.8/sm_records/components/typeeditor/PublicField.tsx +99 -0
  157. simple_module_records-0.0.8/sm_records/components/typeeditor/ReindexStatus.tsx +98 -0
  158. simple_module_records-0.0.8/sm_records/components/typeeditor/RelationOptions.tsx +101 -0
  159. simple_module_records-0.0.8/sm_records/components/typeeditor/RolesMultiSelect.tsx +47 -0
  160. simple_module_records-0.0.8/sm_records/components/typeeditor/SaveBar.test.tsx +37 -0
  161. simple_module_records-0.0.8/sm_records/components/typeeditor/SaveBar.tsx +119 -0
  162. simple_module_records-0.0.8/sm_records/components/typeeditor/SchemaChangeList.tsx +63 -0
  163. simple_module_records-0.0.8/sm_records/components/typeeditor/SchemaConflictPanel.test.tsx +59 -0
  164. simple_module_records-0.0.8/sm_records/components/typeeditor/SchemaConflictPanel.tsx +134 -0
  165. simple_module_records-0.0.8/sm_records/components/typeeditor/SchemaPreviewPanel.test.tsx +121 -0
  166. simple_module_records-0.0.8/sm_records/components/typeeditor/SchemaPreviewPanel.tsx +289 -0
  167. simple_module_records-0.0.8/sm_records/components/typeeditor/SidebarField.test.tsx +47 -0
  168. simple_module_records-0.0.8/sm_records/components/typeeditor/SidebarField.tsx +82 -0
  169. simple_module_records-0.0.8/sm_records/components/typeeditor/TypeConflictNotice.tsx +51 -0
  170. simple_module_records-0.0.8/sm_records/components/typeeditor/TypeImportDialog.test.tsx +154 -0
  171. simple_module_records-0.0.8/sm_records/components/typeeditor/TypeImportDialog.tsx +149 -0
  172. simple_module_records-0.0.8/sm_records/components/typeeditor/TypeIoMenu.test.tsx +37 -0
  173. simple_module_records-0.0.8/sm_records/components/typeeditor/TypeIoMenu.tsx +135 -0
  174. simple_module_records-0.0.8/sm_records/components/typeeditor/TypeMetadataForm.tsx +275 -0
  175. simple_module_records-0.0.8/sm_records/components/typeeditor/TypeRevisions.tsx +211 -0
  176. simple_module_records-0.0.8/sm_records/components/typeeditor/changeLabels.test.ts +92 -0
  177. simple_module_records-0.0.8/sm_records/components/typeeditor/changeLabels.ts +61 -0
  178. simple_module_records-0.0.8/sm_records/components/typeeditor/errors.ts +98 -0
  179. simple_module_records-0.0.8/sm_records/components/typeeditor/focusInvalid.ts +83 -0
  180. simple_module_records-0.0.8/sm_records/components/typeeditor/formHelpers.test.ts +190 -0
  181. simple_module_records-0.0.8/sm_records/components/typeeditor/formHelpers.ts +218 -0
  182. simple_module_records-0.0.8/sm_records/components/typeeditor/navIcons.ts +114 -0
  183. simple_module_records-0.0.8/sm_records/components/typeeditor/reindexPending.test.ts +51 -0
  184. simple_module_records-0.0.8/sm_records/components/typeeditor/reindexPending.ts +35 -0
  185. simple_module_records-0.0.8/sm_records/components/typeeditor/rules.test.ts +257 -0
  186. simple_module_records-0.0.8/sm_records/components/typeeditor/rules.ts +200 -0
  187. simple_module_records-0.0.8/sm_records/components/typeeditor/types.ts +150 -0
  188. simple_module_records-0.0.8/sm_records/components/widget/FieldValues.test.tsx +88 -0
  189. simple_module_records-0.0.8/sm_records/components/widget/FieldValues.tsx +54 -0
  190. simple_module_records-0.0.8/sm_records/components/widget/FieldsPicker.test.tsx +67 -0
  191. simple_module_records-0.0.8/sm_records/components/widget/FieldsPicker.tsx +96 -0
  192. simple_module_records-0.0.8/sm_records/components/widget/PublicMediaImage.tsx +21 -0
  193. simple_module_records-0.0.8/sm_records/components/widget/RecordsListBlock.tsx +241 -0
  194. simple_module_records-0.0.8/sm_records/components/widget/RecordsListRender.tsx +260 -0
  195. simple_module_records-0.0.8/sm_records/components/widget/format.test.ts +156 -0
  196. simple_module_records-0.0.8/sm_records/components/widget/format.ts +148 -0
  197. simple_module_records-0.0.8/sm_records/components/widget/types.ts +60 -0
  198. simple_module_records-0.0.8/sm_records/constants.py +221 -0
  199. simple_module_records-0.0.8/sm_records/contracts/__init__.py +1 -0
  200. simple_module_records-0.0.8/sm_records/contracts/_types.py +164 -0
  201. simple_module_records-0.0.8/sm_records/contracts/aggregate.py +52 -0
  202. simple_module_records-0.0.8/sm_records/contracts/bulk.py +163 -0
  203. simple_module_records-0.0.8/sm_records/contracts/errors.py +114 -0
  204. simple_module_records-0.0.8/sm_records/contracts/events.py +179 -0
  205. simple_module_records-0.0.8/sm_records/contracts/i18n.py +76 -0
  206. simple_module_records-0.0.8/sm_records/contracts/io.py +172 -0
  207. simple_module_records-0.0.8/sm_records/contracts/public.py +123 -0
  208. simple_module_records-0.0.8/sm_records/contracts/relations.py +117 -0
  209. simple_module_records-0.0.8/sm_records/contracts/revisions.py +68 -0
  210. simple_module_records-0.0.8/sm_records/contracts/schema_change.py +207 -0
  211. simple_module_records-0.0.8/sm_records/contracts/schemas.py +269 -0
  212. simple_module_records-0.0.8/sm_records/deferred.py +142 -0
  213. simple_module_records-0.0.8/sm_records/deps.py +265 -0
  214. simple_module_records-0.0.8/sm_records/endpoints/__init__.py +1 -0
  215. simple_module_records-0.0.8/sm_records/endpoints/_list_view.py +120 -0
  216. simple_module_records-0.0.8/sm_records/endpoints/api/__init__.py +72 -0
  217. simple_module_records-0.0.8/sm_records/endpoints/api/_error_bodies.py +151 -0
  218. simple_module_records-0.0.8/sm_records/endpoints/api/_error_table.py +255 -0
  219. simple_module_records-0.0.8/sm_records/endpoints/api/_errors.py +248 -0
  220. simple_module_records-0.0.8/sm_records/endpoints/api/_io_upload.py +155 -0
  221. simple_module_records-0.0.8/sm_records/endpoints/api/_public_cache.py +175 -0
  222. simple_module_records-0.0.8/sm_records/endpoints/api/_responses.py +107 -0
  223. simple_module_records-0.0.8/sm_records/endpoints/api/aggregate.py +113 -0
  224. simple_module_records-0.0.8/sm_records/endpoints/api/bulk.py +148 -0
  225. simple_module_records-0.0.8/sm_records/endpoints/api/io.py +189 -0
  226. simple_module_records-0.0.8/sm_records/endpoints/api/io_types.py +130 -0
  227. simple_module_records-0.0.8/sm_records/endpoints/api/lifecycle.py +92 -0
  228. simple_module_records-0.0.8/sm_records/endpoints/api/preview.py +186 -0
  229. simple_module_records-0.0.8/sm_records/endpoints/api/public.py +230 -0
  230. simple_module_records-0.0.8/sm_records/endpoints/api/records.py +248 -0
  231. simple_module_records-0.0.8/sm_records/endpoints/api/referrers.py +121 -0
  232. simple_module_records-0.0.8/sm_records/endpoints/api/revisions.py +221 -0
  233. simple_module_records-0.0.8/sm_records/endpoints/api/translations.py +115 -0
  234. simple_module_records-0.0.8/sm_records/endpoints/api/types.py +291 -0
  235. simple_module_records-0.0.8/sm_records/endpoints/views.py +275 -0
  236. simple_module_records-0.0.8/sm_records/endpoints/views_types.py +142 -0
  237. simple_module_records-0.0.8/sm_records/events.py +220 -0
  238. simple_module_records-0.0.8/sm_records/health.py +261 -0
  239. simple_module_records-0.0.8/sm_records/hooks/useBulkActions.test.tsx +148 -0
  240. simple_module_records-0.0.8/sm_records/hooks/useBulkActions.ts +170 -0
  241. simple_module_records-0.0.8/sm_records/hooks/useIsNarrow.test.tsx +56 -0
  242. simple_module_records-0.0.8/sm_records/hooks/useIsNarrow.ts +34 -0
  243. simple_module_records-0.0.8/sm_records/hooks/useListColumns.ts +104 -0
  244. simple_module_records-0.0.8/sm_records/hooks/useMediaFile.ts +72 -0
  245. simple_module_records-0.0.8/sm_records/hooks/useRecordEditor.ts +297 -0
  246. simple_module_records-0.0.8/sm_records/hooks/useRecordForm.ts +269 -0
  247. simple_module_records-0.0.8/sm_records/hooks/useRecordImport.test.tsx +117 -0
  248. simple_module_records-0.0.8/sm_records/hooks/useRecordImport.ts +125 -0
  249. simple_module_records-0.0.8/sm_records/hooks/useRecordListMutations.test.tsx +85 -0
  250. simple_module_records-0.0.8/sm_records/hooks/useRecordListMutations.ts +44 -0
  251. simple_module_records-0.0.8/sm_records/hooks/useRecordListNav.ts +124 -0
  252. simple_module_records-0.0.8/sm_records/hooks/useRecordSelection.test.tsx +121 -0
  253. simple_module_records-0.0.8/sm_records/hooks/useRecordSelection.ts +78 -0
  254. simple_module_records-0.0.8/sm_records/hooks/useRelationLabels.ts +104 -0
  255. simple_module_records-0.0.8/sm_records/hooks/useSchemaApply.ts +90 -0
  256. simple_module_records-0.0.8/sm_records/hooks/useTypeEditorSave.test.tsx +94 -0
  257. simple_module_records-0.0.8/sm_records/hooks/useTypeEditorSave.ts +103 -0
  258. simple_module_records-0.0.8/sm_records/hooks/useTypeImport.test.tsx +85 -0
  259. simple_module_records-0.0.8/sm_records/hooks/useTypeImport.ts +50 -0
  260. simple_module_records-0.0.8/sm_records/hooks/useTypeSync.test.tsx +115 -0
  261. simple_module_records-0.0.8/sm_records/hooks/useTypeSync.ts +65 -0
  262. simple_module_records-0.0.8/sm_records/hooks/useUnsavedGuard.ts +56 -0
  263. simple_module_records-0.0.8/sm_records/index/__init__.py +65 -0
  264. simple_module_records-0.0.8/sm_records/index/_analyze.py +83 -0
  265. simple_module_records-0.0.8/sm_records/index/_batch.py +79 -0
  266. simple_module_records-0.0.8/sm_records/index/_coerce.py +150 -0
  267. simple_module_records-0.0.8/sm_records/index/_cursor.py +218 -0
  268. simple_module_records-0.0.8/sm_records/index/_drift.py +78 -0
  269. simple_module_records-0.0.8/sm_records/index/_fields.py +90 -0
  270. simple_module_records-0.0.8/sm_records/index/_filters.py +158 -0
  271. simple_module_records-0.0.8/sm_records/index/_fixed.py +279 -0
  272. simple_module_records-0.0.8/sm_records/index/_predicates.py +228 -0
  273. simple_module_records-0.0.8/sm_records/index/_prefix.py +89 -0
  274. simple_module_records-0.0.8/sm_records/index/_reduce_write.py +183 -0
  275. simple_module_records-0.0.8/sm_records/index/_registry.py +208 -0
  276. simple_module_records-0.0.8/sm_records/index/_sorting.py +297 -0
  277. simple_module_records-0.0.8/sm_records/index/aggregate.py +210 -0
  278. simple_module_records-0.0.8/sm_records/index/providers.py +243 -0
  279. simple_module_records-0.0.8/sm_records/index/query.py +292 -0
  280. simple_module_records-0.0.8/sm_records/index/reduce.py +223 -0
  281. simple_module_records-0.0.8/sm_records/index/reduce_rebuild.py +191 -0
  282. simple_module_records-0.0.8/sm_records/index/reindex.py +262 -0
  283. simple_module_records-0.0.8/sm_records/index/writer.py +273 -0
  284. simple_module_records-0.0.8/sm_records/locales/en.json +700 -0
  285. simple_module_records-0.0.8/sm_records/locales.py +106 -0
  286. simple_module_records-0.0.8/sm_records/media.py +249 -0
  287. simple_module_records-0.0.8/sm_records/menu.py +273 -0
  288. simple_module_records-0.0.8/sm_records/models/__init__.py +73 -0
  289. simple_module_records-0.0.8/sm_records/models/_base.py +58 -0
  290. simple_module_records-0.0.8/sm_records/models/_factory.py +52 -0
  291. simple_module_records-0.0.8/sm_records/models/_index.py +202 -0
  292. simple_module_records-0.0.8/sm_records/models/_record.py +264 -0
  293. simple_module_records-0.0.8/sm_records/models/_record_args.py +248 -0
  294. simple_module_records-0.0.8/sm_records/models/_record_tables.py +56 -0
  295. simple_module_records-0.0.8/sm_records/models/_reduce.py +96 -0
  296. simple_module_records-0.0.8/sm_records/models/_tables.py +228 -0
  297. simple_module_records-0.0.8/sm_records/models/_type.py +194 -0
  298. simple_module_records-0.0.8/sm_records/module.py +286 -0
  299. simple_module_records-0.0.8/sm_records/page-tests/InvalidWorklistLink.test.tsx +79 -0
  300. simple_module_records-0.0.8/sm_records/page-tests/RecordEditor.duplicate.test.tsx +174 -0
  301. simple_module_records-0.0.8/sm_records/page-tests/RecordEditor.inflight.test.tsx +148 -0
  302. simple_module_records-0.0.8/sm_records/page-tests/RecordEditor.invalid.test.tsx +111 -0
  303. simple_module_records-0.0.8/sm_records/page-tests/RecordEditor.tenancy.test.tsx +102 -0
  304. simple_module_records-0.0.8/sm_records/page-tests/RecordEditor.test.tsx +300 -0
  305. simple_module_records-0.0.8/sm_records/page-tests/RecordList.columns.test.tsx +278 -0
  306. simple_module_records-0.0.8/sm_records/page-tests/RecordList.cursor.test.tsx +190 -0
  307. simple_module_records-0.0.8/sm_records/page-tests/RecordList.repeated.test.tsx +160 -0
  308. simple_module_records-0.0.8/sm_records/page-tests/RecordList.test.tsx +158 -0
  309. simple_module_records-0.0.8/sm_records/page-tests/Types.test.tsx +140 -0
  310. simple_module_records-0.0.8/sm_records/pages/RecordEditor.tsx +285 -0
  311. simple_module_records-0.0.8/sm_records/pages/RecordList.tsx +293 -0
  312. simple_module_records-0.0.8/sm_records/pages/TypeEditor.tsx +272 -0
  313. simple_module_records-0.0.8/sm_records/pages/Types.tsx +155 -0
  314. simple_module_records-0.0.8/sm_records/puck-blocks.ts +20 -0
  315. simple_module_records-0.0.8/sm_records/schema/__init__.py +1 -0
  316. simple_module_records-0.0.8/sm_records/schema/_builders.py +260 -0
  317. simple_module_records-0.0.8/sm_records/schema/_diff_rules.py +185 -0
  318. simple_module_records-0.0.8/sm_records/schema/_keys.py +103 -0
  319. simple_module_records-0.0.8/sm_records/schema/_scalars.py +216 -0
  320. simple_module_records-0.0.8/sm_records/schema/changes.py +96 -0
  321. simple_module_records-0.0.8/sm_records/schema/compile.py +272 -0
  322. simple_module_records-0.0.8/sm_records/schema/diff.py +192 -0
  323. simple_module_records-0.0.8/sm_records/schema/fields.py +274 -0
  324. simple_module_records-0.0.8/sm_records/schema/types.py +103 -0
  325. simple_module_records-0.0.8/sm_records/seed/__init__.py +25 -0
  326. simple_module_records-0.0.8/sm_records/seed/_i18n.py +75 -0
  327. simple_module_records-0.0.8/sm_records/seed/data.py +166 -0
  328. simple_module_records-0.0.8/sm_records/seed/generate.py +179 -0
  329. simple_module_records-0.0.8/sm_records/seed/log.py +18 -0
  330. simple_module_records-0.0.8/sm_records/seed/plan.py +76 -0
  331. simple_module_records-0.0.8/sm_records/seed/runner.py +268 -0
  332. simple_module_records-0.0.8/sm_records/seed/types.py +294 -0
  333. simple_module_records-0.0.8/sm_records/services/__init__.py +41 -0
  334. simple_module_records-0.0.8/sm_records/services/_bulk_turn.py +188 -0
  335. simple_module_records-0.0.8/sm_records/services/_claims.py +291 -0
  336. simple_module_records-0.0.8/sm_records/services/_common.py +279 -0
  337. simple_module_records-0.0.8/sm_records/services/_delete_plan.py +190 -0
  338. simple_module_records-0.0.8/sm_records/services/_dry_run.py +269 -0
  339. simple_module_records-0.0.8/sm_records/services/_duplicates.py +263 -0
  340. simple_module_records-0.0.8/sm_records/services/_empty_trash.py +136 -0
  341. simple_module_records-0.0.8/sm_records/services/_export_cells.py +182 -0
  342. simple_module_records-0.0.8/sm_records/services/_import_checks.py +158 -0
  343. simple_module_records-0.0.8/sm_records/services/_import_csv.py +191 -0
  344. simple_module_records-0.0.8/sm_records/services/_import_match.py +167 -0
  345. simple_module_records-0.0.8/sm_records/services/_import_parse.py +172 -0
  346. simple_module_records-0.0.8/sm_records/services/_import_plan.py +238 -0
  347. simple_module_records-0.0.8/sm_records/services/_import_rows.py +296 -0
  348. simple_module_records-0.0.8/sm_records/services/_invalid.py +177 -0
  349. simple_module_records-0.0.8/sm_records/services/_lifecycle.py +245 -0
  350. simple_module_records-0.0.8/sm_records/services/_listing.py +182 -0
  351. simple_module_records-0.0.8/sm_records/services/_lock.py +68 -0
  352. simple_module_records-0.0.8/sm_records/services/_orphaned.py +120 -0
  353. simple_module_records-0.0.8/sm_records/services/_payload.py +237 -0
  354. simple_module_records-0.0.8/sm_records/services/_prepare.py +85 -0
  355. simple_module_records-0.0.8/sm_records/services/_preview.py +89 -0
  356. simple_module_records-0.0.8/sm_records/services/_referrer_page.py +170 -0
  357. simple_module_records-0.0.8/sm_records/services/_referrer_sets.py +108 -0
  358. simple_module_records-0.0.8/sm_records/services/_referrers.py +259 -0
  359. simple_module_records-0.0.8/sm_records/services/_relations.py +140 -0
  360. simple_module_records-0.0.8/sm_records/services/_rollback.py +73 -0
  361. simple_module_records-0.0.8/sm_records/services/_schema.py +216 -0
  362. simple_module_records-0.0.8/sm_records/services/_titles.py +57 -0
  363. simple_module_records-0.0.8/sm_records/services/_translations.py +277 -0
  364. simple_module_records-0.0.8/sm_records/services/_type_update.py +218 -0
  365. simple_module_records-0.0.8/sm_records/services/_uuids.py +151 -0
  366. simple_module_records-0.0.8/sm_records/services/aggregate.py +157 -0
  367. simple_module_records-0.0.8/sm_records/services/bulk.py +185 -0
  368. simple_module_records-0.0.8/sm_records/services/errors.py +225 -0
  369. simple_module_records-0.0.8/sm_records/services/expand.py +252 -0
  370. simple_module_records-0.0.8/sm_records/services/export.py +228 -0
  371. simple_module_records-0.0.8/sm_records/services/import_.py +280 -0
  372. simple_module_records-0.0.8/sm_records/services/preview_jobs.py +256 -0
  373. simple_module_records-0.0.8/sm_records/services/preview_runner.py +99 -0
  374. simple_module_records-0.0.8/sm_records/services/public.py +246 -0
  375. simple_module_records-0.0.8/sm_records/services/records.py +278 -0
  376. simple_module_records-0.0.8/sm_records/services/reindex_runner.py +275 -0
  377. simple_module_records-0.0.8/sm_records/services/revisions.py +245 -0
  378. simple_module_records-0.0.8/sm_records/services/schema_change.py +293 -0
  379. simple_module_records-0.0.8/sm_records/services/types.py +259 -0
  380. simple_module_records-0.0.8/sm_records/settings.py +264 -0
  381. simple_module_records-0.0.8/sm_records/settings_boot.py +133 -0
  382. simple_module_records-0.0.8/sm_records/settings_checks.py +172 -0
  383. simple_module_records-0.0.8/sm_records/tenancy.py +233 -0
  384. simple_module_records-0.0.8/sm_records/test-dom.tsx +121 -0
  385. simple_module_records-0.0.8/sm_records/utils/api-history.ts +106 -0
  386. simple_module_records-0.0.8/sm_records/utils/api-net.test.ts +34 -0
  387. simple_module_records-0.0.8/sm_records/utils/api-net.ts +137 -0
  388. simple_module_records-0.0.8/sm_records/utils/api-records.test.ts +68 -0
  389. simple_module_records-0.0.8/sm_records/utils/api-records.ts +158 -0
  390. simple_module_records-0.0.8/sm_records/utils/api.test.ts +158 -0
  391. simple_module_records-0.0.8/sm_records/utils/api.ts +188 -0
  392. simple_module_records-0.0.8/sm_records/utils/bulk-copy.test.ts +99 -0
  393. simple_module_records-0.0.8/sm_records/utils/bulk-copy.ts +139 -0
  394. simple_module_records-0.0.8/sm_records/utils/column-storage.test.ts +42 -0
  395. simple_module_records-0.0.8/sm_records/utils/column-storage.ts +42 -0
  396. simple_module_records-0.0.8/sm_records/utils/conflicts.test.ts +60 -0
  397. simple_module_records-0.0.8/sm_records/utils/conflicts.ts +79 -0
  398. simple_module_records-0.0.8/sm_records/utils/created-flag.ts +37 -0
  399. simple_module_records-0.0.8/sm_records/utils/dry-run-messages.test.ts +35 -0
  400. simple_module_records-0.0.8/sm_records/utils/dry-run-messages.ts +46 -0
  401. simple_module_records-0.0.8/sm_records/utils/duplicate.test.ts +90 -0
  402. simple_module_records-0.0.8/sm_records/utils/duplicate.ts +86 -0
  403. simple_module_records-0.0.8/sm_records/utils/errors-display.test.ts +19 -0
  404. simple_module_records-0.0.8/sm_records/utils/errors-display.ts +15 -0
  405. simple_module_records-0.0.8/sm_records/utils/export-scope.ts +64 -0
  406. simple_module_records-0.0.8/sm_records/utils/field-type-name.ts +34 -0
  407. simple_module_records-0.0.8/sm_records/utils/filters.test.ts +137 -0
  408. simple_module_records-0.0.8/sm_records/utils/filters.ts +169 -0
  409. simple_module_records-0.0.8/sm_records/utils/focus-invalid.test.ts +34 -0
  410. simple_module_records-0.0.8/sm_records/utils/focus-invalid.ts +78 -0
  411. simple_module_records-0.0.8/sm_records/utils/format-bytes.ts +44 -0
  412. simple_module_records-0.0.8/sm_records/utils/io.test.ts +234 -0
  413. simple_module_records-0.0.8/sm_records/utils/io.ts +265 -0
  414. simple_module_records-0.0.8/sm_records/utils/list-columns.ts +226 -0
  415. simple_module_records-0.0.8/sm_records/utils/list-errors.ts +143 -0
  416. simple_module_records-0.0.8/sm_records/utils/listing-cursor.test.ts +174 -0
  417. simple_module_records-0.0.8/sm_records/utils/listing.columns.test.ts +279 -0
  418. simple_module_records-0.0.8/sm_records/utils/listing.test.ts +186 -0
  419. simple_module_records-0.0.8/sm_records/utils/listing.ts +227 -0
  420. simple_module_records-0.0.8/sm_records/utils/locale.ts +21 -0
  421. simple_module_records-0.0.8/sm_records/utils/media-api.test.ts +175 -0
  422. simple_module_records-0.0.8/sm_records/utils/media-api.ts +299 -0
  423. simple_module_records-0.0.8/sm_records/utils/media-cache.test.ts +35 -0
  424. simple_module_records-0.0.8/sm_records/utils/media-test-support.ts +140 -0
  425. simple_module_records-0.0.8/sm_records/utils/public-api.test.ts +168 -0
  426. simple_module_records-0.0.8/sm_records/utils/public-api.ts +141 -0
  427. simple_module_records-0.0.8/sm_records/utils/record-form-helpers.ts +51 -0
  428. simple_module_records-0.0.8/sm_records/utils/record-title.test.ts +29 -0
  429. simple_module_records-0.0.8/sm_records/utils/record-title.ts +31 -0
  430. simple_module_records-0.0.8/sm_records/utils/record-types.test.ts +54 -0
  431. simple_module_records-0.0.8/sm_records/utils/record-types.ts +249 -0
  432. simple_module_records-0.0.8/sm_records/utils/relation-search.ts +55 -0
  433. simple_module_records-0.0.8/sm_records/utils/selection.test.ts +76 -0
  434. simple_module_records-0.0.8/sm_records/utils/selection.ts +83 -0
  435. simple_module_records-0.0.8/sm_records/utils/translate.ts +13 -0
  436. simple_module_records-0.0.8/sm_records/utils/type-io.test.ts +82 -0
  437. simple_module_records-0.0.8/sm_records/utils/type-io.ts +130 -0
  438. simple_module_records-0.0.8/sm_records/utils/types.ts +163 -0
  439. simple_module_records-0.0.8/sm_records/utils/validation.test.ts +204 -0
  440. simple_module_records-0.0.8/sm_records/utils/validation.ts +277 -0
  441. simple_module_records-0.0.8/sm_records/utils/values.test.ts +243 -0
  442. simple_module_records-0.0.8/sm_records/utils/values.ts +300 -0
  443. simple_module_records-0.0.8/tests/__init__.py +11 -0
  444. simple_module_records-0.0.8/tests/app_harness.py +258 -0
  445. simple_module_records-0.0.8/tests/bulk_helpers.py +72 -0
  446. simple_module_records-0.0.8/tests/census.py +143 -0
  447. simple_module_records-0.0.8/tests/collections_harness.py +63 -0
  448. simple_module_records-0.0.8/tests/conftest.py +272 -0
  449. simple_module_records-0.0.8/tests/events_harness.py +142 -0
  450. simple_module_records-0.0.8/tests/harness_auth.py +115 -0
  451. simple_module_records-0.0.8/tests/i18n_helpers.py +90 -0
  452. simple_module_records-0.0.8/tests/invalid_support.py +101 -0
  453. simple_module_records-0.0.8/tests/io_helpers.py +140 -0
  454. simple_module_records-0.0.8/tests/isolation_support.py +277 -0
  455. simple_module_records-0.0.8/tests/migration_support.py +175 -0
  456. simple_module_records-0.0.8/tests/perf/__init__.py +11 -0
  457. simple_module_records-0.0.8/tests/perf/_bench.py +269 -0
  458. simple_module_records-0.0.8/tests/perf/_collection_worker.py +208 -0
  459. simple_module_records-0.0.8/tests/perf/_http.py +84 -0
  460. simple_module_records-0.0.8/tests/perf/_schema.py +119 -0
  461. simple_module_records-0.0.8/tests/perf/conftest.py +278 -0
  462. simple_module_records-0.0.8/tests/perf/test_aggregate.py +236 -0
  463. simple_module_records-0.0.8/tests/perf/test_collections.py +197 -0
  464. simple_module_records-0.0.8/tests/perf/test_i18n.py +267 -0
  465. simple_module_records-0.0.8/tests/perf/test_io.py +213 -0
  466. simple_module_records-0.0.8/tests/perf/test_pagination.py +250 -0
  467. simple_module_records-0.0.8/tests/perf/test_preview_job.py +165 -0
  468. simple_module_records-0.0.8/tests/perf/test_read_path.py +299 -0
  469. simple_module_records-0.0.8/tests/perf/test_reduce_write.py +197 -0
  470. simple_module_records-0.0.8/tests/perf/test_schema_ops.py +281 -0
  471. simple_module_records-0.0.8/tests/perf/test_write_path.py +225 -0
  472. simple_module_records-0.0.8/tests/pg_support.py +99 -0
  473. simple_module_records-0.0.8/tests/relation_helpers.py +92 -0
  474. simple_module_records-0.0.8/tests/round5_helpers.py +21 -0
  475. simple_module_records-0.0.8/tests/schema_helpers.py +39 -0
  476. simple_module_records-0.0.8/tests/shared_fixtures.py +95 -0
  477. simple_module_records-0.0.8/tests/tenancy_support.py +116 -0
  478. simple_module_records-0.0.8/tests/test_aggregate.py +238 -0
  479. simple_module_records-0.0.8/tests/test_api_bulk.py +246 -0
  480. simple_module_records-0.0.8/tests/test_api_bulk_compose.py +244 -0
  481. simple_module_records-0.0.8/tests/test_api_empty_trash.py +159 -0
  482. simple_module_records-0.0.8/tests/test_api_records.py +213 -0
  483. simple_module_records-0.0.8/tests/test_api_records_lifecycle.py +277 -0
  484. simple_module_records-0.0.8/tests/test_api_schema.py +252 -0
  485. simple_module_records-0.0.8/tests/test_api_types.py +238 -0
  486. simple_module_records-0.0.8/tests/test_body_limit.py +143 -0
  487. simple_module_records-0.0.8/tests/test_bulk_no_op_publish.py +129 -0
  488. simple_module_records-0.0.8/tests/test_bulk_self_cascade.py +168 -0
  489. simple_module_records-0.0.8/tests/test_bulk_sqlite_transaction.py +126 -0
  490. simple_module_records-0.0.8/tests/test_cli_io.py +180 -0
  491. simple_module_records-0.0.8/tests/test_collections_crud.py +282 -0
  492. simple_module_records-0.0.8/tests/test_collections_ddl.py +124 -0
  493. simple_module_records-0.0.8/tests/test_collections_index.py +211 -0
  494. simple_module_records-0.0.8/tests/test_collections_inert.py +107 -0
  495. simple_module_records-0.0.8/tests/test_collections_io.py +139 -0
  496. simple_module_records-0.0.8/tests/test_collections_name_limit.py +144 -0
  497. simple_module_records-0.0.8/tests/test_collections_registry.py +128 -0
  498. simple_module_records-0.0.8/tests/test_collections_relations.py +270 -0
  499. simple_module_records-0.0.8/tests/test_collections_seed.py +106 -0
  500. simple_module_records-0.0.8/tests/test_collections_types.py +132 -0
  501. simple_module_records-0.0.8/tests/test_collision_uuid_sets.py +187 -0
  502. simple_module_records-0.0.8/tests/test_csv_formula_escape.py +167 -0
  503. simple_module_records-0.0.8/tests/test_cursor_keyset.py +133 -0
  504. simple_module_records-0.0.8/tests/test_docs_error_table.py +50 -0
  505. simple_module_records-0.0.8/tests/test_error_route_negotiation.py +120 -0
  506. simple_module_records-0.0.8/tests/test_events.py +192 -0
  507. simple_module_records-0.0.8/tests/test_events_types.py +138 -0
  508. simple_module_records-0.0.8/tests/test_expand.py +180 -0
  509. simple_module_records-0.0.8/tests/test_expand_batching.py +113 -0
  510. simple_module_records-0.0.8/tests/test_export.py +197 -0
  511. simple_module_records-0.0.8/tests/test_export_stream.py +152 -0
  512. simple_module_records-0.0.8/tests/test_framework_strict.py +69 -0
  513. simple_module_records-0.0.8/tests/test_http_grammar_caps.py +152 -0
  514. simple_module_records-0.0.8/tests/test_http_io_limits.py +87 -0
  515. simple_module_records-0.0.8/tests/test_http_referrer_limits.py +159 -0
  516. simple_module_records-0.0.8/tests/test_http_type_import.py +137 -0
  517. simple_module_records-0.0.8/tests/test_i18n_model.py +141 -0
  518. simple_module_records-0.0.8/tests/test_i18n_public.py +295 -0
  519. simple_module_records-0.0.8/tests/test_i18n_translations.py +280 -0
  520. simple_module_records-0.0.8/tests/test_import.py +260 -0
  521. simple_module_records-0.0.8/tests/test_import_groups_versions.py +235 -0
  522. simple_module_records-0.0.8/tests/test_import_modes.py +145 -0
  523. simple_module_records-0.0.8/tests/test_import_rows_and_type_delete.py +244 -0
  524. simple_module_records-0.0.8/tests/test_import_schema.py +151 -0
  525. simple_module_records-0.0.8/tests/test_import_uuid_across_sets.py +143 -0
  526. simple_module_records-0.0.8/tests/test_index_keyset.py +197 -0
  527. simple_module_records-0.0.8/tests/test_index_providers.py +287 -0
  528. simple_module_records-0.0.8/tests/test_index_providers_api.py +140 -0
  529. simple_module_records-0.0.8/tests/test_index_query.py +289 -0
  530. simple_module_records-0.0.8/tests/test_index_reindex.py +176 -0
  531. simple_module_records-0.0.8/tests/test_index_writer.py +202 -0
  532. simple_module_records-0.0.8/tests/test_int_bounds.py +121 -0
  533. simple_module_records-0.0.8/tests/test_invalid_column.py +37 -0
  534. simple_module_records-0.0.8/tests/test_invalid_flag.py +237 -0
  535. simple_module_records-0.0.8/tests/test_invalid_listing.py +160 -0
  536. simple_module_records-0.0.8/tests/test_invalid_rescan.py +147 -0
  537. simple_module_records-0.0.8/tests/test_json_shape_bounds.py +142 -0
  538. simple_module_records-0.0.8/tests/test_list_pagination.py +246 -0
  539. simple_module_records-0.0.8/tests/test_media.py +262 -0
  540. simple_module_records-0.0.8/tests/test_menu.py +288 -0
  541. simple_module_records-0.0.8/tests/test_menu_api.py +271 -0
  542. simple_module_records-0.0.8/tests/test_migration_tenant_id.py +242 -0
  543. simple_module_records-0.0.8/tests/test_nul_bytes.py +233 -0
  544. simple_module_records-0.0.8/tests/test_openapi_errors.py +128 -0
  545. simple_module_records-0.0.8/tests/test_postgres_lock.py +289 -0
  546. simple_module_records-0.0.8/tests/test_public_api.py +285 -0
  547. simple_module_records-0.0.8/tests/test_public_cache.py +132 -0
  548. simple_module_records-0.0.8/tests/test_public_grammar_locales.py +240 -0
  549. simple_module_records-0.0.8/tests/test_public_routes.py +109 -0
  550. simple_module_records-0.0.8/tests/test_qa_fixes.py +212 -0
  551. simple_module_records-0.0.8/tests/test_qa_fixes_roles.py +201 -0
  552. simple_module_records-0.0.8/tests/test_qa_fixes_spec.py +297 -0
  553. simple_module_records-0.0.8/tests/test_record_indexes.py +80 -0
  554. simple_module_records-0.0.8/tests/test_reduce.py +248 -0
  555. simple_module_records-0.0.8/tests/test_reduce_verify.py +242 -0
  556. simple_module_records-0.0.8/tests/test_referrers.py +213 -0
  557. simple_module_records-0.0.8/tests/test_reindex_health_cli.py +125 -0
  558. simple_module_records-0.0.8/tests/test_reindex_race.py +231 -0
  559. simple_module_records-0.0.8/tests/test_reindex_runner.py +233 -0
  560. simple_module_records-0.0.8/tests/test_reindex_runner_locking.py +186 -0
  561. simple_module_records-0.0.8/tests/test_reserved_keys_sync.py +65 -0
  562. simple_module_records-0.0.8/tests/test_review_fixes.py +228 -0
  563. simple_module_records-0.0.8/tests/test_review_fixes_round2.py +297 -0
  564. simple_module_records-0.0.8/tests/test_review_fixes_round4.py +206 -0
  565. simple_module_records-0.0.8/tests/test_review_fixes_round4_providers.py +213 -0
  566. simple_module_records-0.0.8/tests/test_review_fixes_round4_roles.py +246 -0
  567. simple_module_records-0.0.8/tests/test_review_fixes_round5.py +216 -0
  568. simple_module_records-0.0.8/tests/test_review_fixes_round5_io.py +225 -0
  569. simple_module_records-0.0.8/tests/test_schema_change.py +275 -0
  570. simple_module_records-0.0.8/tests/test_schema_compile.py +157 -0
  571. simple_module_records-0.0.8/tests/test_schema_diff.py +244 -0
  572. simple_module_records-0.0.8/tests/test_schema_fields.py +213 -0
  573. simple_module_records-0.0.8/tests/test_schema_orphaned.py +250 -0
  574. simple_module_records-0.0.8/tests/test_schema_preview_jobs.py +234 -0
  575. simple_module_records-0.0.8/tests/test_schema_preview_rescan.py +212 -0
  576. simple_module_records-0.0.8/tests/test_schema_types.py +190 -0
  577. simple_module_records-0.0.8/tests/test_schema_unique_duplicates.py +164 -0
  578. simple_module_records-0.0.8/tests/test_seed.py +171 -0
  579. simple_module_records-0.0.8/tests/test_services_records.py +270 -0
  580. simple_module_records-0.0.8/tests/test_services_records_lifecycle.py +172 -0
  581. simple_module_records-0.0.8/tests/test_services_types.py +295 -0
  582. simple_module_records-0.0.8/tests/test_tenancy_binding.py +168 -0
  583. simple_module_records-0.0.8/tests/test_tenancy_cli.py +221 -0
  584. simple_module_records-0.0.8/tests/test_tenancy_deferred.py +277 -0
  585. simple_module_records-0.0.8/tests/test_tenancy_guard.py +130 -0
  586. simple_module_records-0.0.8/tests/test_tenancy_health.py +187 -0
  587. simple_module_records-0.0.8/tests/test_tenancy_isolation.py +212 -0
  588. simple_module_records-0.0.8/tests/test_tenancy_isolation_io.py +185 -0
  589. simple_module_records-0.0.8/tests/test_tenancy_isolation_public.py +205 -0
  590. simple_module_records-0.0.8/tests/test_tenancy_isolation_records.py +228 -0
  591. simple_module_records-0.0.8/tests/test_tenancy_lookups.py +123 -0
  592. simple_module_records-0.0.8/tests/test_tenancy_multi.py +176 -0
  593. simple_module_records-0.0.8/tests/test_tenancy_predicates.py +168 -0
  594. simple_module_records-0.0.8/tests/test_tenancy_primitives.py +278 -0
  595. simple_module_records-0.0.8/tests/test_tenancy_schema.py +157 -0
  596. simple_module_records-0.0.8/tests/test_type_import_collection.py +119 -0
  597. simple_module_records-0.0.8/tests/test_type_revision_paging.py +101 -0
  598. simple_module_records-0.0.8/tests/test_unique_concurrency.py +193 -0
  599. simple_module_records-0.0.8/tests/test_unique_translations.py +262 -0
  600. simple_module_records-0.0.8/tests/test_views.py +252 -0
  601. simple_module_records-0.0.8/tests/test_views_cursor.py +176 -0
  602. simple_module_records-0.0.8/tests/test_write_response_state.py +154 -0
  603. simple_module_records-0.0.8/tsconfig.json +10 -0
@@ -0,0 +1,53 @@
1
+ .claude/settings.local.json
2
+
3
+ # Python
4
+ .venv/
5
+ __pycache__/
6
+ *.pyc
7
+ *.egg-info/
8
+
9
+ # Node
10
+ node_modules/
11
+ dist/
12
+
13
+ # Built module frontend bundles (force-included into wheels at build time)
14
+ modules/*/*/static/dist/
15
+
16
+ # Host build output and the module-pages manifest regenerated by `make gen-pages`
17
+ host/static/dist/
18
+ host/client_app/modules.manifest.json
19
+ host/client_app/modules.generated.ts
20
+ host/client_app/modules.generated.css
21
+ host/client_app/modules.assets.json
22
+
23
+ # Local databases. `make migrate` resolves alembic's script_location relative
24
+ # to the repo root, so running it the documented way leaves ./app.db here —
25
+ # not under host/ — and it must never be committed.
26
+ host/*.db
27
+ app.db*
28
+ # SQLite runs in WAL mode since framework 0.0.35 (#339): its sidecar files.
29
+ host/*.db-wal
30
+ host/*.db-shm
31
+
32
+ # Runtime upload storage (PagebuilderSettings.media_root)
33
+ var/
34
+ # file_storage's local backend (DEFAULT_FS_ROOT = ./uploads), which the dev
35
+ # host creates in the repo root
36
+ uploads/
37
+
38
+ # Env
39
+ .env
40
+
41
+ # Playwright
42
+ playwright-report/
43
+ test-results/
44
+ .playwright-mcp/
45
+
46
+ # macOS
47
+ .DS_Store
48
+
49
+ # QA / verify pipeline artifacts (/qa, /vf)
50
+ .qa/
51
+ .verify/
52
+ # Scratch database a /qa run boots against, so it never touches host/app.db.
53
+ qa.db*