@fayz-ai/core 0.9.0 → 0.11.0

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 (218) hide show
  1. package/README.md +2 -2
  2. package/dist/access/index.js.map +1 -1
  3. package/dist/chunk-BEGXYHS4.js +566 -0
  4. package/dist/chunk-BEGXYHS4.js.map +1 -0
  5. package/dist/chunk-ED6NBH6U.js +348 -0
  6. package/dist/chunk-ED6NBH6U.js.map +1 -0
  7. package/dist/chunk-EWKX4VUM.js +429 -0
  8. package/dist/chunk-EWKX4VUM.js.map +1 -0
  9. package/dist/chunk-LARZWDHA.js +319 -0
  10. package/dist/chunk-LARZWDHA.js.map +1 -0
  11. package/dist/chunk-OXQGRJZT.js +125 -0
  12. package/dist/chunk-OXQGRJZT.js.map +1 -0
  13. package/dist/chunk-RRYFXUQX.js +1247 -0
  14. package/dist/chunk-RRYFXUQX.js.map +1 -0
  15. package/dist/{chunk-5RJVUC6J.js → chunk-TDI6F6PT.js} +373 -25
  16. package/dist/chunk-TDI6F6PT.js.map +1 -0
  17. package/dist/{chunk-V2MSAUHO.js → chunk-UVKH6RDX.js} +211 -335
  18. package/dist/chunk-UVKH6RDX.js.map +1 -0
  19. package/dist/chunk-V53GR4UT.js +289 -0
  20. package/dist/chunk-V53GR4UT.js.map +1 -0
  21. package/dist/connector-runtime/index.d.ts +15 -0
  22. package/dist/connector-runtime/index.d.ts.map +1 -0
  23. package/dist/connector-runtime/index.js +3 -0
  24. package/dist/connector-runtime/index.js.map +1 -0
  25. package/dist/data/archetype.d.ts.map +1 -1
  26. package/dist/data/backend-env.d.ts +38 -0
  27. package/dist/data/backend-env.d.ts.map +1 -0
  28. package/dist/data/bulk.d.ts +24 -0
  29. package/dist/data/bulk.d.ts.map +1 -1
  30. package/dist/data/cached.d.ts.map +1 -1
  31. package/dist/data/custom-fields.d.ts +5 -0
  32. package/dist/data/custom-fields.d.ts.map +1 -0
  33. package/dist/data/index.d.ts +2 -1
  34. package/dist/data/index.d.ts.map +1 -1
  35. package/dist/data/index.js +3 -1
  36. package/dist/data/mock.d.ts.map +1 -1
  37. package/dist/data/platform-api.d.ts.map +1 -1
  38. package/dist/data/resolve.d.ts.map +1 -1
  39. package/dist/data/supabase.d.ts.map +1 -1
  40. package/dist/data/types.d.ts +8 -0
  41. package/dist/data/types.d.ts.map +1 -1
  42. package/dist/entity/events.d.ts +14 -0
  43. package/dist/entity/events.d.ts.map +1 -0
  44. package/dist/events/envelope.d.ts +31 -0
  45. package/dist/events/envelope.d.ts.map +1 -0
  46. package/dist/events/index.d.ts +4 -0
  47. package/dist/events/index.d.ts.map +1 -1
  48. package/dist/events/log.d.ts +44 -0
  49. package/dist/events/log.d.ts.map +1 -0
  50. package/dist/events/types.d.ts +40 -0
  51. package/dist/events/types.d.ts.map +1 -0
  52. package/dist/fields/store.d.ts +45 -0
  53. package/dist/fields/store.d.ts.map +1 -0
  54. package/dist/i18n/index.d.ts +10 -0
  55. package/dist/i18n/index.d.ts.map +1 -1
  56. package/dist/i18n/index.js +1 -1
  57. package/dist/i18n/shell-translations.en.d.ts.map +1 -1
  58. package/dist/i18n/shell-translations.pt-br.d.ts.map +1 -1
  59. package/dist/index.d.ts +45 -21
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +543 -56
  62. package/dist/index.js.map +1 -1
  63. package/dist/integrations/events.d.ts +7 -0
  64. package/dist/integrations/events.d.ts.map +1 -0
  65. package/dist/integrations/index.d.ts +533 -29
  66. package/dist/integrations/index.d.ts.map +1 -1
  67. package/dist/integrations/index.js +3 -1
  68. package/dist/integrations/permissions.d.ts +132 -0
  69. package/dist/integrations/permissions.d.ts.map +1 -0
  70. package/dist/integrations/request.d.ts +170 -0
  71. package/dist/integrations/request.d.ts.map +1 -0
  72. package/dist/integrations/runtime-token.d.ts +33 -0
  73. package/dist/integrations/runtime-token.d.ts.map +1 -0
  74. package/dist/integrations/runtime.d.ts +398 -0
  75. package/dist/integrations/runtime.d.ts.map +1 -0
  76. package/dist/integrations/settings.d.ts +102 -0
  77. package/dist/integrations/settings.d.ts.map +1 -0
  78. package/dist/integrations/store.d.ts +145 -0
  79. package/dist/integrations/store.d.ts.map +1 -0
  80. package/dist/{address/index.d.ts → lib/address.d.ts} +1 -1
  81. package/dist/{address/index.d.ts.map → lib/address.d.ts.map} +1 -1
  82. package/dist/{phone/index.d.ts → lib/phone.d.ts} +1 -1
  83. package/dist/lib/phone.d.ts.map +1 -0
  84. package/dist/{seo/index.d.ts → lib/seo.d.ts} +18 -1
  85. package/dist/lib/seo.d.ts.map +1 -0
  86. package/dist/{tenant/index.d.ts → lib/tenant.d.ts} +1 -1
  87. package/dist/lib/tenant.d.ts.map +1 -0
  88. package/dist/manifest/index.d.ts +1 -1
  89. package/dist/manifest/index.d.ts.map +1 -1
  90. package/dist/messaging/index.d.ts +3 -0
  91. package/dist/messaging/index.d.ts.map +1 -0
  92. package/dist/messaging/registry.d.ts +35 -0
  93. package/dist/messaging/registry.d.ts.map +1 -0
  94. package/dist/messaging/types.d.ts +67 -0
  95. package/dist/messaging/types.d.ts.map +1 -0
  96. package/dist/plugin/index.js +3 -1
  97. package/dist/plugin/runtime.d.ts +17 -0
  98. package/dist/plugin/runtime.d.ts.map +1 -1
  99. package/dist/registry/block-catalog.d.ts +78 -0
  100. package/dist/registry/block-catalog.d.ts.map +1 -0
  101. package/dist/registry/block-constraints.d.ts +64 -0
  102. package/dist/registry/block-constraints.d.ts.map +1 -0
  103. package/dist/registry/block-schema.d.ts +69 -0
  104. package/dist/registry/block-schema.d.ts.map +1 -0
  105. package/dist/registry/blocks.d.ts +84 -0
  106. package/dist/registry/blocks.d.ts.map +1 -0
  107. package/dist/registry/entities.d.ts +179 -0
  108. package/dist/registry/entities.d.ts.map +1 -0
  109. package/dist/registry/extension-points.d.ts +117 -0
  110. package/dist/registry/extension-points.d.ts.map +1 -0
  111. package/dist/registry/handles.d.ts +41 -0
  112. package/dist/registry/handles.d.ts.map +1 -0
  113. package/dist/registry/index.d.ts +41 -41
  114. package/dist/registry/index.d.ts.map +1 -1
  115. package/dist/registry/loaders.d.ts +55 -0
  116. package/dist/registry/loaders.d.ts.map +1 -0
  117. package/dist/registry/registry-class.d.ts +157 -0
  118. package/dist/registry/registry-class.d.ts.map +1 -0
  119. package/dist/registry/schema-check.d.ts +14 -0
  120. package/dist/registry/schema-check.d.ts.map +1 -0
  121. package/dist/router/index.d.ts +78 -1
  122. package/dist/router/index.d.ts.map +1 -1
  123. package/dist/router/index.js +1 -1
  124. package/dist/{shell-translations.pt-br-2GWRQRRP.js → shell-translations.pt-br-BM5ZFSKJ.js} +72 -3
  125. package/dist/shell-translations.pt-br-BM5ZFSKJ.js.map +1 -0
  126. package/dist/telemetry/errors.d.ts +87 -0
  127. package/dist/telemetry/errors.d.ts.map +1 -0
  128. package/dist/testing/index.js +4 -1
  129. package/dist/{testing/index.d.ts → testing.d.ts} +5 -3
  130. package/dist/testing.d.ts.map +1 -0
  131. package/dist/types/analytics.d.ts +213 -0
  132. package/dist/types/analytics.d.ts.map +1 -0
  133. package/dist/types/crud.d.ts +37 -3
  134. package/dist/types/crud.d.ts.map +1 -1
  135. package/dist/types/plugins.d.ts +138 -1
  136. package/dist/types/plugins.d.ts.map +1 -1
  137. package/package.json +9 -17
  138. package/dist/blocks/index.d.ts +0 -25
  139. package/dist/blocks/index.d.ts.map +0 -1
  140. package/dist/chunk-5RJVUC6J.js.map +0 -1
  141. package/dist/chunk-L4TLMYGC.js +0 -42
  142. package/dist/chunk-L4TLMYGC.js.map +0 -1
  143. package/dist/chunk-V2MSAUHO.js.map +0 -1
  144. package/dist/chunk-X5THHG6T.js +0 -77
  145. package/dist/chunk-X5THHG6T.js.map +0 -1
  146. package/dist/chunk-Y2C2FBQP.js +0 -35
  147. package/dist/chunk-Y2C2FBQP.js.map +0 -1
  148. package/dist/chunk-YH25Y4FW.js +0 -311
  149. package/dist/chunk-YH25Y4FW.js.map +0 -1
  150. package/dist/phone/index.d.ts.map +0 -1
  151. package/dist/seo/index.d.ts.map +0 -1
  152. package/dist/shell-translations.pt-br-2GWRQRRP.js.map +0 -1
  153. package/dist/tenant/index.d.ts.map +0 -1
  154. package/dist/testing/index.d.ts.map +0 -1
  155. package/src/access/denial.ts +0 -33
  156. package/src/access/engine.test.ts +0 -48
  157. package/src/access/engine.ts +0 -136
  158. package/src/access/index.ts +0 -14
  159. package/src/access/limits.ts +0 -18
  160. package/src/address/index.ts +0 -188
  161. package/src/app/render.tsx +0 -69
  162. package/src/blocks/index.tsx +0 -68
  163. package/src/data/archetype.ts +0 -255
  164. package/src/data/bulk.ts +0 -35
  165. package/src/data/cached.ts +0 -55
  166. package/src/data/count.test.ts +0 -152
  167. package/src/data/count.ts +0 -131
  168. package/src/data/filters.test.ts +0 -70
  169. package/src/data/filters.ts +0 -90
  170. package/src/data/index.ts +0 -11
  171. package/src/data/mock.ts +0 -90
  172. package/src/data/platform-api.ts +0 -209
  173. package/src/data/refresh.ts +0 -115
  174. package/src/data/resolve.ts +0 -126
  175. package/src/data/supabase.ts +0 -230
  176. package/src/data/types.ts +0 -50
  177. package/src/entity/index.ts +0 -2
  178. package/src/entity/registry.ts +0 -49
  179. package/src/events/index.tsx +0 -82
  180. package/src/i18n/index.ts +0 -476
  181. package/src/i18n/shell-translations.en.ts +0 -875
  182. package/src/i18n/shell-translations.pt-br.ts +0 -873
  183. package/src/index.ts +0 -217
  184. package/src/integrations/index.ts +0 -237
  185. package/src/lib/cache.ts +0 -118
  186. package/src/lib/csv.ts +0 -54
  187. package/src/lib/format.ts +0 -58
  188. package/src/manifest/app-manifest.schema.json +0 -676
  189. package/src/manifest/index.ts +0 -518
  190. package/src/manifest/serialize.ts +0 -52
  191. package/src/phone/index.ts +0 -85
  192. package/src/plugin/createSafeDataProvider.ts +0 -30
  193. package/src/plugin/index.ts +0 -1
  194. package/src/plugin/runtime.ts +0 -331
  195. package/src/registry/index.ts +0 -163
  196. package/src/router/history.ts +0 -86
  197. package/src/router/index.ts +0 -29
  198. package/src/runtime/index.ts +0 -15
  199. package/src/runtime/oauth.ts +0 -219
  200. package/src/search/engine.ts +0 -559
  201. package/src/search/index.ts +0 -25
  202. package/src/search/text.ts +0 -206
  203. package/src/search/types.ts +0 -75
  204. package/src/seo/index.ts +0 -128
  205. package/src/tenant/index.ts +0 -38
  206. package/src/testing/index.ts +0 -116
  207. package/src/types/auth.ts +0 -41
  208. package/src/types/billing.ts +0 -39
  209. package/src/types/crud.ts +0 -184
  210. package/src/types/entities.ts +0 -142
  211. package/src/types/entitlements.ts +0 -45
  212. package/src/types/i18n.ts +0 -7
  213. package/src/types/index.ts +0 -11
  214. package/src/types/org.ts +0 -137
  215. package/src/types/payment.ts +0 -44
  216. package/src/types/permissions.ts +0 -32
  217. package/src/types/plugins.ts +0 -480
  218. package/src/types/theme.ts +0 -8
@@ -1 +1 @@
1
- {"version":3,"file":"archetype.d.ts","sourceRoot":"","sources":["../../src/data/archetype.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAyB,MAAM,SAAS,CAAA;AAGlE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AA6CxD,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,eAAe,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;IAClC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CACzB;AAED,wBAAgB,uBAAuB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC9D,MAAM,EAAE,uBAAuB,GAC9B,YAAY,CAAC,CAAC,CAAC,CAoMjB"}
1
+ {"version":3,"file":"archetype.d.ts","sourceRoot":"","sources":["../../src/data/archetype.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAyB,MAAM,SAAS,CAAA;AAGlE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAsDxD,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,eAAe,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;IAClC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CACzB;AAED,wBAAgB,uBAAuB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC9D,MAAM,EAAE,uBAAuB,GAC9B,YAAY,CAAC,CAAC,CAAC,CA+NjB"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * One answer to "is this app live or on mocks?".
3
+ *
4
+ * Every dogfood app had rewritten this by hand and no two agreed: some keyed off
5
+ * the mere presence of VITE_SUPABASE_URL, some off an explicit
6
+ * VITE_SUPABASE_ENABLED flag, some off `url && key` — and the key itself was
7
+ * read as `_ANON_KEY`, `_PUBLISHABLE_KEY ?? _ANON_KEY` or `_PUBLISHABLE_KEY ||
8
+ * _ANON_KEY` depending on the app. The divergence is why a pool conversion could
9
+ * leave one app live and its neighbour silently on mocks.
10
+ *
11
+ * Precedence:
12
+ * 1. `VITE_SUPABASE_ENABLED` — when set, it decides ('true' = live). The
13
+ * explicit kill switch wins even with credentials present, which is what
14
+ * lets an app sit on mocks while its pool is converted.
15
+ * 2. Otherwise credentials decide: live when BOTH url and a key are present.
16
+ *
17
+ * The publishable key is preferred over the anon key (browser-safe, and the one
18
+ * the industry pools issue); NEVER pass a service_role key through a VITE_ var.
19
+ */
20
+ export interface BackendEnv {
21
+ /** True when the app should talk to a real Supabase project. */
22
+ live: boolean;
23
+ /** Undefined unless `live` — so passing these straight into config can't half-connect. */
24
+ supabaseUrl?: string;
25
+ supabaseAnonKey?: string;
26
+ /** 'supabase' | 'mock' — ready for `auth.adapter` / `org.adapter`. */
27
+ adapter: 'supabase' | 'mock';
28
+ }
29
+ type EnvRecord = Record<string, string | boolean | undefined>;
30
+ export interface ResolveBackendEnvOptions {
31
+ /** Defaults to `import.meta.env` (Vite). Pass a record in Node/tests. */
32
+ env?: EnvRecord;
33
+ /** Force the outcome regardless of env — escape hatch for previews/tests. */
34
+ force?: 'live' | 'mock';
35
+ }
36
+ export declare function resolveBackendEnv(options?: ResolveBackendEnvOptions): BackendEnv;
37
+ export {};
38
+ //# sourceMappingURL=backend-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend-env.d.ts","sourceRoot":"","sources":["../../src/data/backend-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,UAAU;IACzB,gEAAgE;IAChE,IAAI,EAAE,OAAO,CAAA;IACb,0FAA0F;IAC1F,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,sEAAsE;IACtE,OAAO,EAAE,UAAU,GAAG,MAAM,CAAA;CAC7B;AAED,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;AAE7D,MAAM,WAAW,wBAAwB;IACvC,yEAAyE;IACzE,GAAG,CAAC,EAAE,SAAS,CAAA;IACf,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACxB;AAMD,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,GAAG,UAAU,CAuBpF"}
@@ -14,4 +14,28 @@ import type { BulkWriteOptions, BulkWriteResult, DataProvider } from './types';
14
14
  export declare function bulkCreate<T extends {
15
15
  id: string;
16
16
  }>(provider: DataProvider<T>, rows: Array<Omit<T, 'id' | 'createdAt' | 'updatedAt' | 'tenantId'>>, options?: BulkWriteOptions): Promise<BulkWriteResult>;
17
+ /** Outcome of a bulk delete: how many rows went, and which ids did not and why. */
18
+ export interface BulkRemoveResult {
19
+ removed: number;
20
+ failed: Array<{
21
+ id: string;
22
+ message: string;
23
+ }>;
24
+ }
25
+ /**
26
+ * Delete many rows through whatever the provider supports.
27
+ *
28
+ * `removeMany` when it exists — chunked, because PostgREST puts `in.(…)` in the
29
+ * query STRING and a few hundred uuids there is a URL no proxy promises to
30
+ * carry. Otherwise a sequential `remove` loop.
31
+ *
32
+ * A chunk is all-or-nothing on the wire, so a chunk that throws is reported as
33
+ * every id in it having failed: the caller must not tell the user rows are gone
34
+ * when the statement rolled back.
35
+ */
36
+ export declare function bulkRemove<T extends {
37
+ id: string;
38
+ }>(provider: DataProvider<T>, ids: string[], options?: {
39
+ chunkSize?: number;
40
+ }): Promise<BulkRemoveResult>;
17
41
  //# sourceMappingURL=bulk.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bulk.d.ts","sourceRoot":"","sources":["../../src/data/bulk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE9E;;;;;;;;;;;GAWG;AACH,wBAAsB,UAAU,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACvD,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EACzB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC,CAAC,EACnE,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CAgB1B"}
1
+ {"version":3,"file":"bulk.d.ts","sourceRoot":"","sources":["../../src/data/bulk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE9E;;;;;;;;;;;GAWG;AACH,wBAAsB,UAAU,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACvD,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EACzB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC,CAAC,EACnE,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CAgB1B;AAED,mFAAmF;AACnF,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC/C;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACvD,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EACzB,GAAG,EAAE,MAAM,EAAE,EACb,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CA+B3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"cached.d.ts","sourceRoot":"","sources":["../../src/data/cached.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAyB,MAAM,SAAS,CAAA;AAGlE,MAAM,WAAW,oBAAoB;IACnC,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAA;IACb,iCAAiC;IACjC,QAAQ,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;IAClC,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAChD,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EACzB,OAAO,EAAE,oBAAoB,GAC5B,YAAY,CAAC,CAAC,CAAC,CAiCjB"}
1
+ {"version":3,"file":"cached.d.ts","sourceRoot":"","sources":["../../src/data/cached.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAyB,MAAM,SAAS,CAAA;AAGlE,MAAM,WAAW,oBAAoB;IACnC,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAA;IACb,iCAAiC;IACjC,QAAQ,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;IAClC,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAChD,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EACzB,OAAO,EAAE,oBAAoB,GAC5B,YAAY,CAAC,CAAC,CAAC,CAmDjB"}
@@ -0,0 +1,5 @@
1
+ import type { DataProvider } from './types';
2
+ export declare function withCustomFields<T extends {
3
+ id: string;
4
+ }>(provider: DataProvider<T>, reference: string): DataProvider<T>;
5
+ //# sourceMappingURL=custom-fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-fields.d.ts","sourceRoot":"","sources":["../../src/data/custom-fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AA8B3C,wBAAgB,gBAAgB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACvD,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EACzB,SAAS,EAAE,MAAM,GAChB,YAAY,CAAC,CAAC,CAAC,CA6BjB"}
@@ -3,7 +3,8 @@ export { countByTenant, invalidateCount } from './count';
3
3
  export type { CountByTenantOptions } from './count';
4
4
  export { createFayzApiProvider } from './platform-api';
5
5
  export { createMockProvider } from './mock';
6
- export { bulkCreate } from './bulk';
6
+ export { bulkCreate, bulkRemove } from './bulk';
7
+ export type { BulkRemoveResult } from './bulk';
7
8
  export { resolveDataProvider } from './resolve';
8
9
  export type { DataProvider, CrudQuery, CrudResult, BulkWriteOptions, BulkWriteResult } from './types';
9
10
  export type { SupabaseProviderConfig } from './supabase';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AACvG,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACxD,YAAY,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAC/C,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACrG,YAAY,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AACxD,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAC3D,YAAY,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AACvG,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACxD,YAAY,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAC/C,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACrG,YAAY,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AACxD,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAC3D,YAAY,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAA"}
@@ -1,3 +1,5 @@
1
- export { bulkCreate, countByTenant, createFayzApiProvider, createMockProvider, createSupabaseProvider, getSupabaseClientOptional, invalidateCount, resolveDataProvider, setGlobalSupabaseClient } from '../chunk-V2MSAUHO.js';
1
+ export { bulkCreate, bulkRemove, countByTenant, createFayzApiProvider, createMockProvider, invalidateCount, resolveDataProvider } from '../chunk-UVKH6RDX.js';
2
+ export { createSupabaseProvider, getSupabaseClientOptional, setGlobalSupabaseClient } from '../chunk-LARZWDHA.js';
3
+ import '../chunk-EWKX4VUM.js';
2
4
  //# sourceMappingURL=index.js.map
3
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../src/data/mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAyB,MAAM,SAAS,CAAA;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAG9C,wBAAgB,kBAAkB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EACjF,qBAAqB,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,EAC9C,WAAW,GAAE,CAAC,EAAO,GACpB,YAAY,CAAC,CAAC,CAAC,CAkFjB"}
1
+ {"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../src/data/mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAyB,MAAM,SAAS,CAAA;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAG9C,wBAAgB,kBAAkB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EACjF,qBAAqB,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,EAC9C,WAAW,GAAE,CAAC,EAAO,GACpB,YAAY,CAAC,CAAC,CAAC,CAuFjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"platform-api.d.ts","sourceRoot":"","sources":["../../src/data/platform-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,YAAY,EAAE,MAAM,SAAS,CAAA;AAWlE,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAA;IAC9C,cAAc,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;IAChF,OAAO,CAAC,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAClD,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;CACvB;AAgFD,wBAAgB,qBAAqB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC5D,aAAa,EAAE,MAAM,EACrB,MAAM,GAAE,qBAA0B,GACjC,YAAY,CAAC,CAAC,CAAC,CAqGjB"}
1
+ {"version":3,"file":"platform-api.d.ts","sourceRoot":"","sources":["../../src/data/platform-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,YAAY,EAAE,MAAM,SAAS,CAAA;AAWlE,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAA;IAC9C,cAAc,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;IAChF,OAAO,CAAC,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAClD,OAAO,CAAC,EAAE,OAAO,KAAK,CAAA;CACvB;AAgFD,wBAAgB,qBAAqB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC5D,aAAa,EAAE,MAAM,EACrB,MAAM,GAAE,qBAA0B,GACjC,YAAY,CAAC,CAAC,CAAC,CAoHjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/data/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAK3C,OAAO,EAAyB,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAIlF;;;;;;GAMG;AACH,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,OAAO,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,WAAW,GAAG,OAAO,CAAC,CAAA;IAC5D;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;CACzH;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC1D,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EACvB,QAAQ,CAAC,EAAE,CAAC,EAAE,EACd,OAAO,GAAE,0BAA+B,GACvC,YAAY,CAAC,CAAC,CAAC,CAuFjB"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/data/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAK3C,OAAO,EAAyB,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAKlF;;;;;;GAMG;AACH,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,OAAO,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,WAAW,GAAG,OAAO,CAAC,CAAA;IAC5D;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;CACzH;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC1D,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EACvB,QAAQ,CAAC,EAAE,CAAC,EAAE,EACd,OAAO,GAAE,0BAA+B,GACvC,YAAY,CAAC,CAAC,CAAC,CA2FjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../../src/data/supabase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAyB,MAAM,SAAS,CAAA;AAGlE,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAA;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAsCD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAE7D;AAED,wBAAgB,yBAAyB,IAAI,OAAO,GAAG,IAAI,CAE1D;AAED,wBAAgB,sBAAsB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC7D,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,sBAAsB,GAC9B,YAAY,CAAC,CAAC,CAAC,CAuKjB"}
1
+ {"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../../src/data/supabase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAyB,MAAM,SAAS,CAAA;AAGlE,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAA;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AA0CD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAE7D;AAED,wBAAgB,yBAAyB,IAAI,OAAO,GAAG,IAAI,CAE1D;AAED,wBAAgB,sBAAsB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC7D,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,sBAAsB,GAC9B,YAAY,CAAC,CAAC,CAAC,CA+KjB"}
@@ -47,5 +47,13 @@ export interface DataProvider<T extends {
47
47
  createMany?(rows: Array<Omit<T, 'id' | 'createdAt' | 'updatedAt' | 'tenantId'>>, options?: BulkWriteOptions): Promise<BulkWriteResult>;
48
48
  update(id: string, data: Partial<T>): Promise<T>;
49
49
  remove(id: string): Promise<void>;
50
+ /**
51
+ * Delete many rows in one round-trip. Symmetric with `createMany`, and for the
52
+ * same reason: a merchant who ticks 40 products and hits Delete should cost 40
53
+ * rows, not 40 requests.
54
+ *
55
+ * Optional — `bulkRemove` loops `remove` for providers without it.
56
+ */
57
+ removeMany?(ids: string[]): Promise<void>;
50
58
  }
51
59
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/data/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;CACd;AAED,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAClD;AAED,MAAM,WAAW,gBAAgB;IAC/B,sFAAsF;IACtF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACnD;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;IACrE,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9C,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAChF;;;;;;;OAOG;IACH,UAAU,CAAC,CACT,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC,CAAC,EACnE,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CAAA;IAC3B,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAChD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAClC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/data/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;CACd;AAED,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAClD;AAED,MAAM,WAAW,gBAAgB;IAC/B,sFAAsF;IACtF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACnD;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;IACrE,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9C,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAChF;;;;;;;OAOG;IACH,UAAU,CAAC,CACT,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC,CAAC,EACnE,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CAAA;IAC3B,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAChD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC;;;;;;OAMG;IACH,UAAU,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1C"}
@@ -0,0 +1,14 @@
1
+ import type { ResolvedDomainEvent } from '../types/plugins';
2
+ import type { RegisteredEntity } from './registry';
3
+ export type EntityEventAction = 'created' | 'updated' | 'deleted' | 'imported';
4
+ /** `registry.person:client.created` — a chave que webhook, auditoria e
5
+ * automações usam para falar do mesmo fato. */
6
+ export declare function entityEventKey(entityKey: string, action: EntityEventAction): string;
7
+ /**
8
+ * Os fatos de um cadastro. Todos auditados: "quem cadastrou este fornecedor?"
9
+ * e "quem apagou este registro?" são as perguntas que a trilha existe para
10
+ * responder, e são justamente as que ninguém pensa em declarar antes de
11
+ * precisar.
12
+ */
13
+ export declare function buildEntityDomainEvents(entities: RegisteredEntity[]): ResolvedDomainEvent[];
14
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/entity/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAqBlD,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAA;AAY9E;gDACgD;AAChD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAEnF;AAsBD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,mBAAmB,EAAE,CA6B3F"}
@@ -0,0 +1,31 @@
1
+ import type { DomainEvent, DomainEventHandler } from './types';
2
+ export declare function emitDomainEvent(key: string, payload: Record<string, unknown>, meta?: {
3
+ actorId?: string | null;
4
+ tenantId?: string | null;
5
+ subject?: {
6
+ type: string;
7
+ id: string;
8
+ } | null;
9
+ occurredAt?: string;
10
+ }): DomainEvent;
11
+ export declare function registerEventSink(sink: (event: DomainEvent) => void): () => void;
12
+ export declare function clearEventSinks(): void;
13
+ /** Subscribes to ONE event. Returns the unsubscribe. */
14
+ export declare function onDomainEvent(key: string, handler: DomainEventHandler): () => void;
15
+ /**
16
+ * Subscribes to MANY by prefix — 'shop.*', or '*' for everything.
17
+ *
18
+ * The bus matches exact names, so the wildcard is resolved here: known events
19
+ * come from the runtime (active plugins), and subscribing one by one keeps the
20
+ * bus simple. Call again when the plugin list changes.
21
+ */
22
+ export declare function onDomainEvents(keys: string[], known: string[], handler: DomainEventHandler): () => void;
23
+ /**
24
+ * Fills the payload's example fields. The message preview and the webhook test
25
+ * body both come from here, so the two show the SAME shape.
26
+ */
27
+ export declare function sampleEventPayload(fields?: {
28
+ name: string;
29
+ example?: string;
30
+ }[]): Record<string, string>;
31
+ //# sourceMappingURL=envelope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/events/envelope.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAc9D,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,CAAC,EAAE;IACL,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,GACA,WAAW,CAyBb;AAYD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,MAAM,IAAI,CAGhF;AAED,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED,wDAAwD;AACxD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,MAAM,IAAI,CAElF;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,EAAE,kBAAkB,GAC1B,MAAM,IAAI,CAKZ;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIxG"}
@@ -13,4 +13,8 @@ export declare const eventBus: EventBus;
13
13
  /** Subscribe to an event for the lifetime of the component. The latest handler
14
14
  * is always invoked, so closures over fresh props/state work without resubscribing. */
15
15
  export declare function useOnEvent<T = unknown>(event: string, handler: EventHandler<T>, deps?: React.DependencyList): void;
16
+ export { emitDomainEvent, onDomainEvent, onDomainEvents, sampleEventPayload, registerEventSink, clearEventSinks } from './envelope';
17
+ export type { EventField, DomainEvent, DomainEventHandler, DomainEventSubscription } from './types';
18
+ export { startEventLog, recordEventRun, loadEventRuns, EVENT_LOG_TABLE } from './log';
19
+ export type { EventRun, EventRunStatus } from './log';
16
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAW9B,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAA;AAE5D,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;IACnD,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAA;IACpE,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAA;IACtE,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IAC/D,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED,wBAAgB,cAAc,IAAI,QAAQ,CAyCzC;AAED,oEAAoE;AACpE,eAAO,MAAM,QAAQ,EAAE,QAA2B,CAAA;AAElD;wFACwF;AACxF,wBAAgB,UAAU,CAAC,CAAC,GAAG,OAAO,EACpC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EACxB,IAAI,GAAE,KAAK,CAAC,cAAmB,GAC9B,IAAI,CAQN"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAW9B,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAA;AAE5D,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;IACnD,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAA;IACpE,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAA;IACtE,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IAC/D,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED,wBAAgB,cAAc,IAAI,QAAQ,CAyCzC;AAED,oEAAoE;AACpE,eAAO,MAAM,QAAQ,EAAE,QAA2B,CAAA;AAElD;wFACwF;AACxF,wBAAgB,UAAU,CAAC,CAAC,GAAG,OAAO,EACpC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EACxB,IAAI,GAAE,KAAK,CAAC,cAAmB,GAC9B,IAAI,CAQN;AAID,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACnI,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAEnG,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACrF,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA"}
@@ -0,0 +1,44 @@
1
+ import type { DomainEvent } from './types';
2
+ export declare const EVENT_LOG_TABLE = "plg_event_log";
3
+ /**
4
+ * 'recorded' the trigger fired and nobody acted yet (today's state: the catalog
5
+ * exists, message dispatch does not).
6
+ * 'sent' someone acted and it worked — `result` says what.
7
+ * 'skipped' acted and chose to do nothing (automation off, no channel).
8
+ * 'failed' tried and broke — `error` says why.
9
+ */
10
+ export type EventRunStatus = 'recorded' | 'sent' | 'skipped' | 'failed';
11
+ export interface EventRun {
12
+ id: string;
13
+ eventKey: string;
14
+ status: EventRunStatus;
15
+ /** The firing's exact payload — what answers "why did the message go out with
16
+ * the wrong name?" without reproducing the case. */
17
+ payload: Record<string, unknown>;
18
+ result: Record<string, unknown> | null;
19
+ error: string | null;
20
+ actorId: string | null;
21
+ subjectType: string | null;
22
+ subjectId: string | null;
23
+ occurredAt: string;
24
+ }
25
+ /**
26
+ * Records a firing. Never throws and never awaits: the emitter must not get
27
+ * slower — or fail — because the history is unavailable. A saved customer stays
28
+ * saved when the log does not write.
29
+ */
30
+ export declare function recordEventRun(event: DomainEvent, status?: EventRunStatus): void;
31
+ /**
32
+ * Turns the history on. Idempotent: calling twice does not write two rows, and
33
+ * the call comes from a plugin factory that re-runs on every hot reload.
34
+ */
35
+ export declare function startEventLog(): () => void;
36
+ /**
37
+ * An event's most recent firings. With no client or no table it returns empty:
38
+ * "nothing has happened yet" is a complete state, and the screen can say it.
39
+ */
40
+ export declare function loadEventRuns(eventKey: string, options?: {
41
+ tenantId?: string;
42
+ limit?: number;
43
+ }): Promise<EventRun[]>;
44
+ //# sourceMappingURL=log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/events/log.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAc1C,eAAO,MAAM,eAAe,kBAAkB,CAAA;AAE9C;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAA;AAEvE,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,cAAc,CAAA;IACtB;yDACqD;IACrD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IACtC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;CACnB;AAiDD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,GAAE,cAA2B,GAAG,IAAI,CAgB5F;AAID;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,IAAI,CAK1C;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9C,OAAO,CAAC,QAAQ,EAAE,CAAC,CAgBrB"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Um campo do payload. É contrato, não documentação: o mesmo descritor gera os
3
+ * campos de mesclagem do editor de mensagem, o exemplo do corpo do webhook e a
4
+ * frase da linha de auditoria. Uma lista escrita à mão em cada um dos três
5
+ * diverge do que o emissor de fato manda — e ninguém percebe até o envio sair
6
+ * com `{{order_total}}` cru.
7
+ */
8
+ export interface EventField {
9
+ /** Nome no payload. Vira `{{name}}` no editor de mensagem. */
10
+ name: string;
11
+ label: string;
12
+ type?: 'string' | 'number' | 'money' | 'date' | 'url' | 'id';
13
+ /** Valor de exemplo — a prévia da mensagem e o corpo de teste do webhook. */
14
+ example?: string;
15
+ }
16
+ /** O fato acontecido: a definição + os dados daquela vez. */
17
+ export interface DomainEvent<T = Record<string, unknown>> {
18
+ key: string;
19
+ payload: T;
20
+ /** Quem causou. Ausente quando foi o sistema (um agendador, um webhook). */
21
+ actorId?: string | null;
22
+ tenantId?: string | null;
23
+ /** ISO. Quem emite decide — um evento reprocessado guarda a hora original. */
24
+ occurredAt: string;
25
+ /** Registro que o fato descreve, para a auditoria e o link "abrir". */
26
+ subject?: {
27
+ type: string;
28
+ id: string;
29
+ } | null;
30
+ }
31
+ /** Um consumidor. Retorna void: quem emite não espera nem depende do resultado. */
32
+ export type DomainEventHandler = (event: DomainEvent) => void | Promise<void>;
33
+ export interface DomainEventSubscription {
34
+ /** Identidade do consumidor ('automations', 'webhooks', 'audit'). */
35
+ id: string;
36
+ /** Chaves ou prefixos: 'shop.order_paid', 'shop.*', '*'. */
37
+ keys: string[];
38
+ handler: DomainEventHandler;
39
+ }
40
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"AAkBA;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,CAAA;IAC5D,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,6DAA6D;AAC7D,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtD,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,CAAC,CAAA;IACV,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAA;IAClB,uEAAuE;IACvE,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAC9C;AAED,mFAAmF;AACnF,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAE7E,MAAM,WAAW,uBAAuB;IACtC,qEAAqE;IACrE,EAAE,EAAE,MAAM,CAAA;IACV,4DAA4D;IAC5D,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,OAAO,EAAE,kBAAkB,CAAA;CAC5B"}
@@ -0,0 +1,45 @@
1
+ import { type EntityField, type EntityRecordIssue } from '../registry/entities';
2
+ /**
3
+ * The field registry, resolved. Two halves merge here and nowhere else:
4
+ *
5
+ * declared — plugin/app code, via defineCustomFields. Re-asserted on deploy.
6
+ * merchant — plg_entity_fields rows (035), written from the admin, no deploy.
7
+ *
8
+ * Reads of the merchant half also pick up the vertical's own vocabulary, the
9
+ * rows with `tenant_id IS NULL` that a pool ships with: RLS publishes them to
10
+ * every member and lets none of them write.
11
+ *
12
+ * Declared wins a collision, so a deploy adopts a key a merchant invented
13
+ * instead of either side losing work — the rule 035's `origin` column records.
14
+ */
15
+ export declare const FIELDS_TABLE = "plg_entity_fields";
16
+ /** A write naming a key the registry does not know, or a value it refuses. */
17
+ export declare class CustomFieldsError extends Error {
18
+ readonly issues: EntityRecordIssue[];
19
+ constructor(reference: string, issues: EntityRecordIssue[]);
20
+ }
21
+ export interface ResolvedCustomFields {
22
+ reference: string;
23
+ fields: Record<string, EntityField>;
24
+ /** Declaration order for the merchant half: what the form renders by. */
25
+ order: string[];
26
+ }
27
+ export declare function clearCustomFieldsCache(): void;
28
+ /** The full field set for a record kind, declared ∪ merchant, memoised. */
29
+ export declare function resolveCustomFields(reference: string, tenantId?: string): Promise<ResolvedCustomFields>;
30
+ /**
31
+ * The write gate. Throws on an undeclared key or a refused value, the same
32
+ * shape validateEntityRecordData produces — so the admin can point at the
33
+ * offending field instead of showing a wall of text.
34
+ */
35
+ export declare function validateCustomFields(reference: string, values: Record<string, unknown>, tenantId?: string): Promise<void>;
36
+ /**
37
+ * Merge a partial write onto what the record already holds.
38
+ *
39
+ * jsonb through PostgREST is a whole-value write, so sending only the keys a
40
+ * form touched replaces the column and drops its siblings. That is not
41
+ * hypothetical: it is the live CRM defect on people.metadata, where dragging a
42
+ * card wiped formId/fields/utm. An explicit null removes a key.
43
+ */
44
+ export declare function mergeCustomFields(current: Record<string, unknown> | null | undefined, patch: Record<string, unknown>): Record<string, unknown>;
45
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/fields/store.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,WAAW,EAGhB,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAA;AAE7B;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,YAAY,sBAAsB,CAAA;AAO/C,8EAA8E;AAC9E,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAA;gBACxB,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE;CAK3D;AA8CD,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACnC,yEAAyE;IACzE,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAWD,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAmCD,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAavG;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EACnD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOzB"}
@@ -13,6 +13,16 @@ interface LocaleStore {
13
13
  }
14
14
  export declare function setLocaleStore(store: LocaleStore): void;
15
15
  export declare function getCurrentLocale(): string;
16
+ /**
17
+ * Pick a bilingual literal at CONFIG time — outside React, before any provider
18
+ * mounts. App config modules evaluate at import time, when `getCurrentLocale()`
19
+ * is still the 'en' default (ES imports hoist above `setCurrentLocale`), so this
20
+ * reads the persisted locale directly and treats pt-BR as the default for a
21
+ * first visit. Inside components use `useTranslation()` instead.
22
+ *
23
+ * name: tl('Appointments', 'Agenda')
24
+ */
25
+ export declare function tl(en: string, ptBR: string): string;
16
26
  export declare function setCurrentLocale(locale: string): void;
17
27
  export declare const coreTranslations: Record<string, Record<string, string>>;
18
28
  export declare function registerTranslations(translations?: Record<string, Record<string, string>>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CACrD;AAQD,eAAO,MAAM,YAAY,4BAAuB,CAAA;AAEhD,wBAAgB,aAAa,IAAI,UAAU,CAE1C;AAED,wBAAgB,cAAc,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CA0BlG;AAGD,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CACpC;AAQD,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAEvD;AAwBD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAOrD;AAGD,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmTnE,CAAA;AAMD,wBAAgB,oBAAoB,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAGhG;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC5C,GAAG,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,GACtE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CASxC;AAsBD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB3D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CACrD;AAQD,eAAO,MAAM,YAAY,4BAAuB,CAAA;AAEhD,wBAAgB,aAAa,IAAI,UAAU,CAE1C;AAED,wBAAgB,cAAc,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CAmClG;AAGD,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CACpC;AAQD,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAEvD;AAwBD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAKD;;;;;;;;GAQG;AACH,wBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAOnD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAWrD;AAGD,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqmBnE,CAAA;AAMD,wBAAgB,oBAAoB,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAGhG;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC5C,GAAG,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,GACtE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CASxC;AAsBD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB3D"}
@@ -1,3 +1,3 @@
1
- export { I18nProvider, coreTranslations, getCurrentLocale, mergeTranslations, preloadLocale, registerTranslations, setCurrentLocale, setLocaleStore, useI18nConfig, useTranslation } from '../chunk-5RJVUC6J.js';
1
+ export { I18nProvider, coreTranslations, getCurrentLocale, mergeTranslations, preloadLocale, registerTranslations, setCurrentLocale, setLocaleStore, tl, useI18nConfig, useTranslation } from '../chunk-TDI6F6PT.js';
2
2
  //# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shell-translations.en.d.ts","sourceRoot":"","sources":["../../src/i18n/shell-translations.en.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAu2BtD,CAAA"}
1
+ {"version":3,"file":"shell-translations.en.d.ts","sourceRoot":"","sources":["../../src/i18n/shell-translations.en.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAg7BtD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"shell-translations.pt-br.d.ts","sourceRoot":"","sources":["../../src/i18n/shell-translations.pt-br.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAq2BxD,CAAA"}
1
+ {"version":3,"file":"shell-translations.pt-br.d.ts","sourceRoot":"","sources":["../../src/i18n/shell-translations.pt-br.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA26BxD,CAAA"}
package/dist/index.d.ts CHANGED
@@ -10,6 +10,8 @@ export type { PlanEntitlements, LimitDeclaration } from './types/entitlements';
10
10
  export type { ThemeBrand, ThemeRadius, ThemeMode } from './types/theme';
11
11
  export type { LocaleConfig } from './types/i18n';
12
12
  export { createSupabaseProvider, setGlobalSupabaseClient, getSupabaseClientOptional } from './data/supabase';
13
+ export { resolveBackendEnv } from './data/backend-env';
14
+ export type { BackendEnv, ResolveBackendEnvOptions } from './data/backend-env';
13
15
  export { countByTenant, invalidateCount } from './data/count';
14
16
  export type { CountByTenantOptions } from './data/count';
15
17
  export { createFayzApiProvider } from './data/platform-api';
@@ -17,54 +19,76 @@ export { createMockProvider } from './data/mock';
17
19
  export { createArchetypeProvider } from './data/archetype';
18
20
  export { withCache } from './data/cached';
19
21
  export { resolveDataProvider } from './data/resolve';
20
- export { bulkCreate } from './data/bulk';
22
+ export { bulkCreate, bulkRemove } from './data/bulk';
23
+ export type { BulkRemoveResult } from './data/bulk';
21
24
  export type { BulkWriteOptions, BulkWriteResult } from './data/types';
22
25
  export { parseRangeFilter, isFilterObject, matchesRange, applyRangeToQuery, } from './data/filters';
23
26
  export type { RangeFilter } from './data/filters';
24
27
  export { DATA_CHANGED_EVENT, emitDataChanged, matchesDataChange, useDataChanged, } from './data/refresh';
25
28
  export type { DataChangedPayload, DataChangedMatch } from './data/refresh';
26
29
  export { createSafeDataProvider } from './plugin/createSafeDataProvider';
27
- export { COUNTRIES, DEFAULT_COUNTRY, getCountry, unmaskPhone, maskPhone, maskDigitCount, } from './phone';
28
- export type { CountryDef } from './phone';
29
- export { normalizePostalCode, formatPostalCode, isValidPostalCode, createViaCepProvider, setPostalLookupProvider, getPostalLookupProvider, lookupPostalCode, clearPostalCache, } from './address';
30
- export type { PostalAddress, PostalLookupProvider } from './address';
30
+ export { COUNTRIES, DEFAULT_COUNTRY, getCountry, unmaskPhone, maskPhone, maskDigitCount, } from './lib/phone';
31
+ export type { CountryDef } from './lib/phone';
32
+ export { normalizePostalCode, formatPostalCode, isValidPostalCode, createViaCepProvider, setPostalLookupProvider, getPostalLookupProvider, lookupPostalCode, clearPostalCache, } from './lib/address';
33
+ export type { PostalAddress, PostalLookupProvider } from './lib/address';
31
34
  export type { PaymentProvider, PaymentMethod, ChargeStatus, CreateChargeInput, PixCharge, } from './types/payment';
32
- export { useSeo, applySeo, absoluteUrl, seoOrigin, breadcrumbJsonLd, organizationJsonLd, } from './seo';
33
- export type { SeoConfig, BreadcrumbItem } from './seo';
35
+ export { useSeo, applySeo, buildSeoTags, absoluteUrl, seoOrigin, breadcrumbJsonLd, organizationJsonLd, } from './lib/seo';
36
+ export type { SeoConfig, BreadcrumbItem, SeoTags, SeoMetaTag, SeoLinkTag } from './lib/seo';
34
37
  export type { DataProvider, CrudQuery, CrudResult, SupabaseProviderConfig, FayzApiProviderConfig } from './data/index';
35
- export { setActiveTenantId, getActiveTenantId, subscribeActiveTenant, useActiveTenantId } from './tenant';
38
+ export { setActiveTenantId, getActiveTenantId, subscribeActiveTenant, useActiveTenantId } from './lib/tenant';
36
39
  export { createFayzRuntimeClient, FayzRuntimeError } from './runtime';
37
40
  export type { FayzRuntimeClientOptions, FayzRuntimeEnvironment, GoogleCalendarEvent, GoogleCalendarEventInput, GoogleCalendarEventTime, ListGoogleCalendarEventsInput, PluginOAuthExchangeInput, PluginOAuthExchangeResponse, RuntimePluginOAuthGrant, } from './runtime';
38
- export { assertPluginManifestContract, assertConnectorContract, PluginContractError } from './testing';
39
- export { withAfterHooks, connectorPlanes, preferredPlane, connectorDirection } from './integrations';
40
- export type { Connector, ConnectorCapability, ConnectionConfig, SyncRun, SyncDirection, SyncTrigger, IntegrationAuthKind, TestConnectionResult, ConnectorDefinition, ConnectorField, ConnectorStatus, ConnectorPlane, ConnectorDirection, ConnectorAgentTool, } from './integrations';
41
+ export { assertPluginManifestContract, assertConnectorContract, bespokeConnectorTables, PluginContractError } from './testing';
42
+ export { withAfterHooks, connectorPlanes, preferredPlane, connectorDirection, eventKeyMatches, connectorSubscribes, cursorCompleteness, CONNECTOR_CATEGORIES, isConnectorCategory, invocationPlane } from './integrations';
43
+ export { createConnectionStore, listConnections, connectionKey, connectionStatus, connectionSettings, connectionRuns, assertSettingsAllowed, ConnectionSettingsError, CONNECTIONS_TABLE, SYNC_RUNS_TABLE } from './integrations';
44
+ export { CONNECTOR_RUNTIME_TOKEN_HEADER, ConnectorRuntimeTokenUnavailableError, connectorRuntimeToken, getConnectorRuntimeTokenSource, setConnectorRuntimeTokenSource } from './integrations';
45
+ export type { ConnectorRuntimeTokenRequest, ConnectorRuntimeTokenSource } from './integrations';
46
+ export { connectorSettings, isSettingSet, missingRequiredSettings, settingsStatus, setupStatusDetail } from './integrations';
47
+ export { permissionActions, isDataPermission, isEventPermission, grants, connectorPermissions, connectorEntities, connectorSubscribesTo, permissionsWrite, hasSensitivePermission, sortedPermissions, groupedPermissions, connectorGrantScopes, } from './integrations';
48
+ export type { ConnectorPermission, ConnectorPermissionAction, ConnectorResourceKind, PermissionBearing, } from './integrations';
49
+ export { runRequest, runEffect, requestPlaneSpec, hasRequestPlane, buyerIdempotencyKey, createRpcEffectLedger, RequestBlockedError, RequestPlaneError } from './integrations';
50
+ export { ConnectorHttpError, RateLimitExceededError, parseRetryAfter, backoffDelay, classify, statusNeedsBody, fetchWithRetry, isExpiring, paginate, createRateLimiter, sliceWindow, advanceWindow, serializeCursor, reconcileMirror, } from './integrations';
51
+ export type { Verdict, AttemptOutcome, ClassifyOptions, BackoffOptions, FetchWithRetryOptions, MinimalResponse, PageResult, PaginateOptions, PaginateResult, RateLimitBudget, RateLimiter, RateLimiterOptions, MirrorRecord, ReconcileInput, ReconcileResult, ConnectorFirstLoad, } from './integrations';
52
+ export type { Connector, ConnectorCapability, ConnectionConfig, ConnectionStatusValue, ConnectionStore, ConnectionStoreOptions, ConnectionSaveInput, ConnectionBackedStatus, ConnectionSettingsIO, ListConnectionsOptions, Cursor, Completeness, SyncRun, SyncResult, SyncDirection, SyncTrigger, IntegrationAuthKind, TestConnectionResult, ConnectorCategory, ConnectorDefinition, ConnectorField, ConnectorProviderInstall, ConnectorConnectContext, ConnectorSetting, ConnectorSettingType, ConnectorSettingOption, ConnectorSettingValue, SettingsReadiness, ConnectorInvocation, ConnectorSyncAction, ConnectorSyncOutcome, ConnectorDelivery, ConnectorStatus, ConnectorPlane, ConnectorDirection, ConnectorAgentTool, ConnectorManagedAutomation, RequestFailureMode, DegradeReason, RequestOutcome, RequestAttempt, ResolvedRequestPlane, EffectLedger, EffectClaim, EffectClaimInput, EffectOutcome, EffectStatus, } from './integrations';
41
53
  export { formatCurrency, formatDate, formatDateTime, getActiveLocale, getDefaultCurrency, setDefaultCurrency } from './lib/format';
42
54
  export { exportCSV, buildCSV, downloadCSV } from './lib/csv';
43
55
  export type { CSVColumn } from './lib/csv';
44
56
  export { globalCache, createCacheStore, stableKey, clearGlobalCache } from './lib/cache';
45
57
  export type { CacheStore } from './lib/cache';
46
- export { definePlugin, resolvePluginRuntime, getWidgetsForZone, getDashboardWidgets, PluginRuntimeProvider, usePluginRuntime, usePluginRuntimeOptional, useConnectorsForPlugin, PLUGIN_API_VERSION, resolvePluginComponent } from './plugin/runtime';
58
+ export { definePlugin, resolvePluginRuntime, getWidgetsForZone, getDashboardWidgets, getAnalyticsCards, PluginRuntimeProvider, usePluginRuntime, usePluginRuntimeOptional, useConnectorsForPlugin, PLUGIN_API_VERSION, resolvePluginComponent } from './plugin/runtime';
47
59
  export type { PluginEventDefinition, PluginQuickAction } from './types/plugins';
48
- export { createEventBus, eventBus, useOnEvent } from './events';
49
- export type { EventBus, EventHandler } from './events';
50
60
  export { registerEntity, getEntityByKey, getAllEntities, clearEntityRegistry, deriveEntityKey } from './entity/registry';
51
61
  export type { RegisteredEntity } from './entity/registry';
62
+ export { entityEventKey, buildEntityDomainEvents } from './entity/events';
63
+ export type { EntityEventAction } from './entity/events';
52
64
  export { searchEverything, clearSearchCache, setSearchIndexAvailable, isSearchIndexAvailable, MIN_QUERY_LENGTH, foldText, foldWithMap, digitsOf, normalizeQuery, similarity, scoreCandidate, highlightRanges, } from './search';
53
65
  export type { SearchTarget, SearchHit, SearchGroup, SearchPath, SearchOptions, GlobalSearchResult, NormalizedQuery, RankCandidate, } from './search';
54
- export { Registry, isCustomId, componentRegistry, blockRegistry, pageRegistry, scaffoldRegistry, metricRegistry, pluginRegistry, registerComponent, getComponent, registerBlock, getBlock, listBlocks, registerPage, getPage, registerScaffold, getScaffold, registerMetric, getMetric, listMetrics, registerPlugin, getPlugin, listPlugins, pluginFactoryRegistry, registerPluginFactory, getPluginFactory, listPluginFactories, } from './registry';
55
- export type { PluginFactory } from './registry';
56
- export type { JsonSchema, RegistrySource, RegistryMeta, RegistryEntry, MetricFormat, MetricContext, MetricValue, MetricDefinition, } from './registry';
57
- export { BlockRenderer, renderBlocks, BlockChildren } from './blocks';
58
- export type { BlockNode, BlockComponentProps } from './blocks';
66
+ export { Registry, isCustomId, componentRegistry, blockRegistry, pageRegistry, scaffoldRegistry, metricRegistry, pluginRegistry, registerComponent, getComponent, registerBlock, defineBlock, getBlock, getBlockMeta, listBlocks, registerPage, getPage, registerScaffold, getScaffold, registerMetric, getMetric, listMetrics, registerPlugin, getPlugin, listPlugins, pluginFactoryRegistry, registerPluginFactory, getPluginFactory, listPluginFactories, settingsToJsonSchema, defaultPropsFromSettings, BLOCK_SETTING_TYPES, describeBlock, describeBlocks, isBlockEnabledOn, auditBlocks, summarizeBlockAudit, handleRegistry, registerHandle, getHandle, hasHandle, resolveHandle, listHandles, handleNameFor, clearHandles, checkBlockConstraints, checkNodePlacement, checkBlockContext, repairBlockTree, loaderRegistry, defineLoader, resolveLoader, hasLoader, listLoaders, clearLoaders, describeLoaders, isLoaderParamRef, isLoaderPropRef, dataNeedKey, ENTITY_FIELD_TYPES, GENERIC_ENTITY_TABLE, RESERVED_ENTITY_FIELDS, entityDeclarationRegistry, defineEntity, resolveEntityDeclaration, hasEntityDeclaration, listEntityDeclarations, clearEntityDeclarations, entityRecordSchema, validateEntityRecordData, describeEntities, entityAdminForm, customFieldsRegistry, defineCustomFields, declaredCustomFields, hasCustomFieldsDeclaration, clearCustomFieldsDeclarations, checkAgainstSchema, formatSchemaIssues, extensionPointRegistry, defineExtensionPoint, registerExtensionHandler, unregisterExtensionHandler, runExtensionPoint, runEscapeValve, describeExtensionPoints, hasExtensionPoint, listExtensionPoints, listExtensionHandlers, clearExtensionPoints, extensionAfterHooks, } from './registry';
67
+ export type { SchemaIssue, ExtensionPointMode, ExtensionPointDeclaration, ExtensionHandlerOptions, ExtensionHandler, ExtensionContribution, ExtensionHandlerDescriptor, ExtensionPointDescriptor, } from './registry';
68
+ export type { EntityFieldType, EntityField, EntityReadAccess, EntityAccess, EntityStorageDescriptor, EntityDeclarationInput, EntityDeclaration, EntityRecordIssue, EntityDescriptor, EntityAdminFormDescriptor, EntityFieldValidation, EntityFieldOption, CustomFieldsDeclaration, } from './registry';
69
+ export { FIELDS_TABLE, CustomFieldsError, resolveCustomFields, validateCustomFields, mergeCustomFields, clearCustomFieldsCache, } from './fields/store';
70
+ export type { ResolvedCustomFields } from './fields/store';
71
+ export type { PluginFactory, RegisterHandleOptions } from './registry';
72
+ export type { LoaderContext, LoaderImpl, LoaderDescriptor, LoaderParamRef, LoaderPropRef, BlockDataNeed, BlockDataNeeds, } from './registry';
73
+ export type { BlockSetting, BlockSettingType, BlockSettingOption, BlockPreset, BlockStability, BlockDescriptor, BlockCatalogOptions, BlockAudit, BlockAuditLevel, RequiredBlockChild, BlockTreeNode, BlockConstraintRule, BlockConstraintViolation, BlockContextFinding, BlockTreeRepair, RepairBlockTreeResult, } from './registry';
74
+ export type { JsonSchema, RegistrySource, RegistryMeta, RegistryEntry, RegistryEntryDescriptor, MetricFormat, MetricContext, MetricValue, MetricDefinition, } from './registry';
75
+ export { BlockRenderer, renderBlocks, BlockChildren, BlockErrorBoundary, setBlockErrorVisibility, getBlockErrorVisibility, setBlockEditorMode, blockEditorMode, useBlockPath, BLOCK_PATH_ATTRIBUTE, BLOCK_TYPE_ATTRIBUTE, } from './registry/blocks';
76
+ export type { BlockNode, BlockComponentProps, BlockErrorVisibility } from './registry/blocks';
59
77
  export { CURRENT_MANIFEST_VERSION, registerManifestMigration, migrateManifest, validateManifest, } from './manifest';
60
78
  export type { AppManifest, BackendProvider, BackendRef, SurfaceManifest, PageManifest, PluginRef, ManifestMigration, AgentContract, AgentDomainKnowledge, EntityContract, AIToolContract, RpcContract, } from './manifest';
61
79
  export { serializeManifest, computeContractHash, serializeManifestWithHash } from './manifest/serialize';
62
80
  export { default as appManifestSchema } from './manifest/app-manifest.schema.json';
63
81
  export { defineApp, renderApp, useManifest } from './app/render';
64
82
  export type { RenderAppOptions } from './app/render';
65
- export { I18nProvider, useI18nConfig, useTranslation, coreTranslations, mergeTranslations, registerTranslations, getCurrentLocale, setCurrentLocale, preloadLocale, setLocaleStore } from './i18n/index';
66
- export { hashRouterAdapter, windowRouterAdapter } from './router/index';
83
+ export { I18nProvider, useI18nConfig, useTranslation, coreTranslations, mergeTranslations, registerTranslations, getCurrentLocale, setCurrentLocale, preloadLocale, setLocaleStore, tl } from './i18n/index';
84
+ export { hashRouterAdapter, historyRouterAdapter, staticRouterAdapter, hostRouterAdapter, defaultRouterAdapter, windowRouterAdapter, } from './router/index';
67
85
  export type { RouterAdapter } from './router/index';
68
86
  export { useNavHistoryStore, recordNavigation, useNavReferrer, navHistoryBack, routeModule, } from './router/history';
69
87
  export type { NavHistoryEntry } from './router/history';
88
+ export type { AnalyticsCardDef, ResolvedAnalyticsCard, AnalyticsQuery, AnalyticsSource, AnalyticsRunContext, AnalyticsDimension, AnalyticsMeasure, AnalyticsAgg, AnalyticsGrain, AnalyticsFormat, AnalyticsFilterDef, AnalyticsFilterOption, AnalyticsVizDef, AnalyticsVizType, AnalyticsColumnDef, AnalyticsPlacement, AnalyticsDateRange, AnalyticsCompare, AnalyticsQueryState, AnalyticsResult, AnalyticsSummary, AnalyticsProvider, AnalyticsRow, AnalyticsBatchRequest, } from './types/analytics';
89
+ export type { ResolvedDomainEvent, PluginEventSource, PluginFunctionDeclaration } from './types/plugins';
90
+ export * from './events';
91
+ export * from './messaging';
92
+ export { reportAppError, registerErrorReporter, clearErrorReporters, installGlobalErrorHandlers, createVendorReporter, resetErrorDedupe, APP_ERROR_EVENT, } from './telemetry/errors';
93
+ export type { AppErrorReport, AppErrorContext, AppErrorSource, ErrorReporter, ErrorVendorClient, } from './telemetry/errors';
70
94
  //# sourceMappingURL=index.d.ts.map